feat: conclave challenges rotation (#2635)
Re #1192 Reviewed-on: OpenWF/SpaceNinjaServer#2635 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									264e9cfc98
								
							
						
					
					
						commit
						df316e3a7a
					
				@ -8,6 +8,7 @@ import syndicateMissions from "@/static/fixed_responses/worldState/syndicateMiss
 | 
			
		||||
import darvoDeals from "@/static/fixed_responses/worldState/darvoDeals.json";
 | 
			
		||||
import invasionNodes from "@/static/fixed_responses/worldState/invasionNodes.json";
 | 
			
		||||
import invasionRewards from "@/static/fixed_responses/worldState/invasionRewards.json";
 | 
			
		||||
import pvpChallenges from "@/static/fixed_responses/worldState/pvpChallenges.json";
 | 
			
		||||
import { buildConfig } from "@/src/services/buildConfigService";
 | 
			
		||||
import { unixTimesInMs } from "@/src/constants/timeConstants";
 | 
			
		||||
import { config } from "@/src/services/configService";
 | 
			
		||||
@ -21,6 +22,7 @@ import {
 | 
			
		||||
    ILiteSortie,
 | 
			
		||||
    IPrimeVaultTrader,
 | 
			
		||||
    IPrimeVaultTraderOffer,
 | 
			
		||||
    IPVPChallengeInstance,
 | 
			
		||||
    ISeasonChallenge,
 | 
			
		||||
    ISortie,
 | 
			
		||||
    ISortieMission,
 | 
			
		||||
@ -1401,6 +1403,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
 | 
			
		||||
        DailyDeals: [],
 | 
			
		||||
        EndlessXpChoices: [],
 | 
			
		||||
        KnownCalendarSeasons: [],
 | 
			
		||||
        PVPChallengeInstances: [],
 | 
			
		||||
        ...staticWorldState,
 | 
			
		||||
        SyndicateMissions: [...staticWorldState.SyndicateMissions],
 | 
			
		||||
        InGameMarket: {
 | 
			
		||||
@ -2632,6 +2635,23 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
 | 
			
		||||
        pushSyndicateMissions(worldState, sdy, rng.randomInt(0, 100_000), "ba6f84724fa48061", "SteelMeridianSyndicate");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
        const conclaveDayStart = EPOCH + day * unixTimesInMs.day + 5 * unixTimesInMs.hour + 30 * unixTimesInMs.minute;
 | 
			
		||||
        const conclaveDayEnd = conclaveDayStart + unixTimesInMs.day;
 | 
			
		||||
        const conclaveWeekStart = weekStart + 40 * unixTimesInMs.minute - 2 * unixTimesInMs.day;
 | 
			
		||||
        const conclaveWeekEnd = conclaveWeekStart + unixTimesInMs.week;
 | 
			
		||||
 | 
			
		||||
        pushConclaveWeakly(worldState.PVPChallengeInstances, week);
 | 
			
		||||
        pushConclaveDailys(worldState.PVPChallengeInstances, day);
 | 
			
		||||
 | 
			
		||||
        if (isBeforeNextExpectedWorldStateRefresh(timeMs, conclaveDayEnd)) {
 | 
			
		||||
            pushConclaveDailys(worldState.PVPChallengeInstances, day + 1);
 | 
			
		||||
        }
 | 
			
		||||
        if (isBeforeNextExpectedWorldStateRefresh(timeMs, conclaveWeekEnd)) {
 | 
			
		||||
            pushConclaveWeakly(worldState.PVPChallengeInstances, week + 1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Archon Hunt cycling every week
 | 
			
		||||
    worldState.LiteSorties.push(getLiteSortie(week));
 | 
			
		||||
    if (isBeforeNextExpectedWorldStateRefresh(timeMs, weekEnd)) {
 | 
			
		||||
@ -3017,3 +3037,136 @@ const updateDailyDeal = async (): Promise<void> => {
 | 
			
		||||
export const updateWorldStateCollections = async (): Promise<void> => {
 | 
			
		||||
    await Promise.all([updateFissures(), updateDailyDeal()]);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const pushConclaveDaily = (
 | 
			
		||||
    activeChallenges: IPVPChallengeInstance[],
 | 
			
		||||
    PVPMode: string,
 | 
			
		||||
    pool: {
 | 
			
		||||
        key: string;
 | 
			
		||||
        ScriptParamValue: number;
 | 
			
		||||
        PVPModeAllowed: string[];
 | 
			
		||||
        SyndicateXP: number;
 | 
			
		||||
        DuringSingleMatch?: boolean;
 | 
			
		||||
    }[],
 | 
			
		||||
    day: number,
 | 
			
		||||
    id: number
 | 
			
		||||
): void => {
 | 
			
		||||
    const conclaveDayStart = EPOCH + day * unixTimesInMs.day + 5 * unixTimesInMs.hour + 30 * unixTimesInMs.minute;
 | 
			
		||||
    const conclaveDayEnd = conclaveDayStart + unixTimesInMs.day;
 | 
			
		||||
    const challengeId = day * 8 + id;
 | 
			
		||||
    const rng = new SRng(new SRng(challengeId).randomInt(0, 100_000));
 | 
			
		||||
    let challenge: {
 | 
			
		||||
        key: string;
 | 
			
		||||
        ScriptParamValue: number;
 | 
			
		||||
        PVPModeAllowed?: string[];
 | 
			
		||||
        SyndicateXP?: number;
 | 
			
		||||
        DuringSingleMatch?: boolean;
 | 
			
		||||
    };
 | 
			
		||||
    do {
 | 
			
		||||
        challenge = rng.randomElement(pool)!;
 | 
			
		||||
    } while (
 | 
			
		||||
        activeChallenges.some(x => x.challengeTypeRefID == challenge.key) &&
 | 
			
		||||
        activeChallenges.some(x => x.PVPMode == PVPMode)
 | 
			
		||||
    );
 | 
			
		||||
    activeChallenges.push({
 | 
			
		||||
        _id: {
 | 
			
		||||
            $oid: "689ec5d985b55902" + challengeId.toString().padStart(8, "0")
 | 
			
		||||
        },
 | 
			
		||||
        challengeTypeRefID: challenge.key,
 | 
			
		||||
        startDate: { $date: { $numberLong: conclaveDayStart.toString() } },
 | 
			
		||||
        endDate: { $date: { $numberLong: conclaveDayEnd.toString() } },
 | 
			
		||||
        params: [{ n: "ScriptParamValue", v: challenge.ScriptParamValue }],
 | 
			
		||||
        isGenerated: true,
 | 
			
		||||
        PVPMode,
 | 
			
		||||
        subChallenges: [],
 | 
			
		||||
        Category: "PVPChallengeTypeCategory_DAILY"
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const pushConclaveDailys = (activeChallenges: IPVPChallengeInstance[], day: number): void => {
 | 
			
		||||
    const modes = [
 | 
			
		||||
        "PVPMODE_SPEEDBALL",
 | 
			
		||||
        "PVPMODE_CAPTURETHEFLAG",
 | 
			
		||||
        "PVPMODE_DEATHMATCH",
 | 
			
		||||
        "PVPMODE_TEAMDEATHMATCH"
 | 
			
		||||
    ] as const;
 | 
			
		||||
 | 
			
		||||
    const challengesMap: Record<
 | 
			
		||||
        string,
 | 
			
		||||
        {
 | 
			
		||||
            key: string;
 | 
			
		||||
            ScriptParamValue: number;
 | 
			
		||||
            PVPModeAllowed: string[];
 | 
			
		||||
            SyndicateXP: number;
 | 
			
		||||
            DuringSingleMatch?: boolean;
 | 
			
		||||
        }[]
 | 
			
		||||
    > = {};
 | 
			
		||||
 | 
			
		||||
    for (const mode of modes) {
 | 
			
		||||
        challengesMap[mode] = Object.entries(pvpChallenges)
 | 
			
		||||
            .filter(([_, challenge]) => challenge.PVPModeAllowed.includes(mode))
 | 
			
		||||
            .map(([key, challenge]) => ({ key, ...challenge }));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    modes.forEach((mode, index) => {
 | 
			
		||||
        pushConclaveDaily(activeChallenges, mode, challengesMap[mode], day, index * 2);
 | 
			
		||||
        pushConclaveDaily(activeChallenges, mode, challengesMap[mode], day, index * 2 + 1);
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const pushConclaveWeakly = (activeChallenges: IPVPChallengeInstance[], week: number): void => {
 | 
			
		||||
    const weekStart = EPOCH + week * unixTimesInMs.week;
 | 
			
		||||
    const conclaveWeekStart = weekStart + 40 * unixTimesInMs.minute - 2 * unixTimesInMs.day;
 | 
			
		||||
    const conclaveWeekEnd = conclaveWeekStart + unixTimesInMs.week;
 | 
			
		||||
    const conclaveIdStart = ((conclaveWeekStart / 1000) & 0xffffffff).toString(16).padStart(8, "0").padEnd(23, "0");
 | 
			
		||||
    activeChallenges.push(
 | 
			
		||||
        {
 | 
			
		||||
            _id: { $oid: conclaveIdStart + "1" },
 | 
			
		||||
            challengeTypeRefID: "/Lotus/PVPChallengeTypes/PVPTimedChallengeGameModeWins",
 | 
			
		||||
            startDate: { $date: { $numberLong: conclaveWeekStart.toString() } },
 | 
			
		||||
            endDate: { $date: { $numberLong: conclaveWeekEnd.toString() } },
 | 
			
		||||
            params: [{ n: "ScriptParamValue", v: 6 }],
 | 
			
		||||
            isGenerated: true,
 | 
			
		||||
            PVPMode: "PVPMODE_ALL",
 | 
			
		||||
            subChallenges: [],
 | 
			
		||||
            Category: "PVPChallengeTypeCategory_WEEKLY"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            _id: { $oid: conclaveIdStart + "2" },
 | 
			
		||||
            challengeTypeRefID: "/Lotus/PVPChallengeTypes/PVPTimedChallengeGameModeComplete",
 | 
			
		||||
            startDate: { $date: { $numberLong: conclaveWeekStart.toString() } },
 | 
			
		||||
            endDate: { $date: { $numberLong: conclaveWeekEnd.toString() } },
 | 
			
		||||
            params: [{ n: "ScriptParamValue", v: 20 }],
 | 
			
		||||
            isGenerated: true,
 | 
			
		||||
            PVPMode: "PVPMODE_ALL",
 | 
			
		||||
            subChallenges: [],
 | 
			
		||||
            Category: "PVPChallengeTypeCategory_WEEKLY"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            _id: { $oid: conclaveIdStart + "3" },
 | 
			
		||||
            challengeTypeRefID: "/Lotus/PVPChallengeTypes/PVPTimedChallengeOtherChallengeCompleteANY",
 | 
			
		||||
            startDate: { $date: { $numberLong: conclaveWeekStart.toString() } },
 | 
			
		||||
            endDate: { $date: { $numberLong: conclaveWeekEnd.toString() } },
 | 
			
		||||
            params: [{ n: "ScriptParamValue", v: 10 }],
 | 
			
		||||
            isGenerated: true,
 | 
			
		||||
            PVPMode: "PVPMODE_ALL",
 | 
			
		||||
            subChallenges: [],
 | 
			
		||||
            Category: "PVPChallengeTypeCategory_WEEKLY"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            _id: { $oid: conclaveIdStart + "4" },
 | 
			
		||||
            challengeTypeRefID: "/Lotus/PVPChallengeTypes/PVPTimedChallengeWeeklyStandardSet",
 | 
			
		||||
            startDate: { $date: { $numberLong: conclaveWeekStart.toString() } },
 | 
			
		||||
            endDate: { $date: { $numberLong: conclaveWeekEnd.toString() } },
 | 
			
		||||
            params: [{ n: "ScriptParamValue", v: 0 }],
 | 
			
		||||
            isGenerated: true,
 | 
			
		||||
            PVPMode: "PVPMODE_NONE",
 | 
			
		||||
            subChallenges: [
 | 
			
		||||
                { $oid: conclaveIdStart + "1" },
 | 
			
		||||
                { $oid: conclaveIdStart + "2" },
 | 
			
		||||
                { $oid: conclaveIdStart + "3" }
 | 
			
		||||
            ],
 | 
			
		||||
            Category: "PVPChallengeTypeCategory_WEEKLY_ROOT"
 | 
			
		||||
        }
 | 
			
		||||
    );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										290
									
								
								static/fixed_responses/worldState/pvpChallenges.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										290
									
								
								static/fixed_responses/worldState/pvpChallenges.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,290 @@
 | 
			
		||||
{
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeFlagCaptureEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_CAPTURETHEFLAG"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeFlagCaptureMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_CAPTURETHEFLAG"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeFlagReturnEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_CAPTURETHEFLAG"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsComboEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsComboMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsHeadShotsEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsHeadShotsMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsMeleeEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsMeleeMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsMeleeHARD": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 3000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsMultiMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPaybackEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPayback_MEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPowerEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPowerMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPowerHARD": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 3000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPrimaryEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPrimaryMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPrimaryHARD": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 3000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsSecondaryEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsSecondaryMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsSecondaryHARD": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 3000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreak_MEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakDominationEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakDomination_MEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakDominationHARD": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 3000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakStoppedEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakStopped_MEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakHARD": {
 | 
			
		||||
    "ScriptParamValue": 2,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 3000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsTargetInAirEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsTargetInAirMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsTargetInAirHARD": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 3000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsWhileSlidingEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsWhileSlidingMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsWhileSlidingHARD": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 3000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeMatchCompleteEASY": {
 | 
			
		||||
    "ScriptParamValue": 1,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_CAPTURETHEFLAG", "PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeMatchCompleteMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_CAPTURETHEFLAG", "PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
 | 
			
		||||
    "SyndicateXP": 1500
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballCatchesEASY": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 1000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballCatchesMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 10,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 3000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballCatchesHARD": {
 | 
			
		||||
    "ScriptParamValue": 6,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 6000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballChecksEASY": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 1000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballChecksMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 10,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 3000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballChecksHARD": {
 | 
			
		||||
    "ScriptParamValue": 6,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 6000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballGoalsEASY": {
 | 
			
		||||
    "ScriptParamValue": 2,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 1000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballGoalsMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 6,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 3000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballGoalsHARD": {
 | 
			
		||||
    "ScriptParamValue": 4,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 6000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballInterceptionsEASY": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 1000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballInterceptionsMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 6,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 3000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballInterceptionsHARD": {
 | 
			
		||||
    "ScriptParamValue": 6,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 6000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballPassesEASY": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 1000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballPassesMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 6,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 3000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballPassesHARD": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 6000,
 | 
			
		||||
    "DuringSingleMatch": true
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballStealsEASY": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 1000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballStealsMEDIUM": {
 | 
			
		||||
    "ScriptParamValue": 6,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 3000
 | 
			
		||||
  },
 | 
			
		||||
  "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballStealsHARD": {
 | 
			
		||||
    "ScriptParamValue": 3,
 | 
			
		||||
    "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
 | 
			
		||||
    "SyndicateXP": 6000
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -311,140 +311,6 @@
 | 
			
		||||
  "PrimeVaultAvailabilities": [false, false, false, false, false],
 | 
			
		||||
  "PrimeTokenAvailability": true,
 | 
			
		||||
  "LibraryInfo": { "LastCompletedTargetType": "/Lotus/Types/Game/Library/Targets/Research7Target" },
 | 
			
		||||
  "PVPChallengeInstances": [
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6635562d036ce37f7f98e264" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeGameModeComplete",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1714771501460" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 20 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_ALL",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_WEEKLY"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6635562d036ce37f7f98e263" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeGameModeWins",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1714771501460" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 6 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_ALL",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_WEEKLY"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6635562d036ce37f7f98e265" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeOtherChallengeCompleteANY",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1714771501460" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 10 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_ALL",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_WEEKLY"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6635562d036ce37f7f98e266" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeWeeklyStandardSet",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1714771501460" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 0 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_NONE",
 | 
			
		||||
      "subChallenges": [{ "$oid": "6635562d036ce37f7f98e263" }, { "$oid": "6635562d036ce37f7f98e264" }, { "$oid": "6635562d036ce37f7f98e265" }],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_WEEKLY_ROOT"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6639ca6967c1192987d75fee" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeFlagReturnEASY",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1715063401824" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 1 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_CAPTURETHEFLAG",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_DAILY"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6639ca6967c1192987d75fed" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeMatchCompleteMEDIUM",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1715063401824" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 4 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_CAPTURETHEFLAG",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_DAILY"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6639ca6967c1192987d75ff2" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeMatchCompleteEASY",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1715063401824" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 1 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_DEATHMATCH",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_DAILY"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6639ca6967c1192987d75ff1" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPayback_MEDIUM",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1715063401824" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 3 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_DEATHMATCH",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_DAILY"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6639ca6967c1192987d75fef" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakDominationEASY",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1715063401824" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 1 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_TEAMDEATHMATCH",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_DAILY"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6639ca6967c1192987d75ff0" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsWhileInAirHARD",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1715063401824" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 3 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_TEAMDEATHMATCH",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_DAILY"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6639ca6967c1192987d75ff3" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballCatchesMEDIUM",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1715063401824" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 10 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_SPEEDBALL",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_DAILY"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "_id": { "$oid": "6639ca6967c1192987d75ff4" },
 | 
			
		||||
      "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballInterceptionsEASY",
 | 
			
		||||
      "startDate": { "$date": { "$numberLong": "1715063401824" } },
 | 
			
		||||
      "endDate": { "$date": { "$numberLong": "2000000000000" } },
 | 
			
		||||
      "params": [{ "n": "ScriptParamValue", "v": 3 }],
 | 
			
		||||
      "isGenerated": true,
 | 
			
		||||
      "PVPMode": "PVPMODE_SPEEDBALL",
 | 
			
		||||
      "subChallenges": [],
 | 
			
		||||
      "Category": "PVPChallengeTypeCategory_DAILY"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "PersistentEnemies": [],
 | 
			
		||||
  "PVPAlternativeModes": [],
 | 
			
		||||
  "PVPActiveTournaments": [],
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user