XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

feat: conclave challenges rotation (#2635)

Re #1192 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/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>

df316e3a
AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
提交于

代码差异

3 个文件 +443 -134
Modified src/services/worldStateService.ts +153 -0
@@ -8,6 +8,7 @@ import syndicateMissions from "@/static/fixed_responses/worldState/syndicateMiss
8 8 import darvoDeals from "@/static/fixed_responses/worldState/darvoDeals.json";
9 9 import invasionNodes from "@/static/fixed_responses/worldState/invasionNodes.json";
10 10 import invasionRewards from "@/static/fixed_responses/worldState/invasionRewards.json";
11 import pvpChallenges from "@/static/fixed_responses/worldState/pvpChallenges.json";
11 12 import { buildConfig } from "@/src/services/buildConfigService";
12 13 import { unixTimesInMs } from "@/src/constants/timeConstants";
13 14 import { config } from "@/src/services/configService";
@@ -21,6 +22,7 @@ import {
21 22 ILiteSortie,
22 23 IPrimeVaultTrader,
23 24 IPrimeVaultTraderOffer,
25 IPVPChallengeInstance,
24 26 ISeasonChallenge,
25 27 ISortie,
26 28 ISortieMission,
@@ -1401,6 +1403,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
1401 1403 DailyDeals: [],
1402 1404 EndlessXpChoices: [],
1403 1405 KnownCalendarSeasons: [],
1406 PVPChallengeInstances: [],
1404 1407 ...staticWorldState,
1405 1408 SyndicateMissions: [...staticWorldState.SyndicateMissions],
1406 1409 InGameMarket: {
@@ -2632,6 +2635,23 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
2632 2635 pushSyndicateMissions(worldState, sdy, rng.randomInt(0, 100_000), "ba6f84724fa48061", "SteelMeridianSyndicate");
2633 2636 }
2634 2637
2638 {
2639 const conclaveDayStart = EPOCH + day * unixTimesInMs.day + 5 * unixTimesInMs.hour + 30 * unixTimesInMs.minute;
2640 const conclaveDayEnd = conclaveDayStart + unixTimesInMs.day;
2641 const conclaveWeekStart = weekStart + 40 * unixTimesInMs.minute - 2 * unixTimesInMs.day;
2642 const conclaveWeekEnd = conclaveWeekStart + unixTimesInMs.week;
2643
2644 pushConclaveWeakly(worldState.PVPChallengeInstances, week);
2645 pushConclaveDailys(worldState.PVPChallengeInstances, day);
2646
2647 if (isBeforeNextExpectedWorldStateRefresh(timeMs, conclaveDayEnd)) {
2648 pushConclaveDailys(worldState.PVPChallengeInstances, day + 1);
2649 }
2650 if (isBeforeNextExpectedWorldStateRefresh(timeMs, conclaveWeekEnd)) {
2651 pushConclaveWeakly(worldState.PVPChallengeInstances, week + 1);
2652 }
2653 }
2654
2635 2655 // Archon Hunt cycling every week
2636 2656 worldState.LiteSorties.push(getLiteSortie(week));
2637 2657 if (isBeforeNextExpectedWorldStateRefresh(timeMs, weekEnd)) {
@@ -3017,3 +3037,136 @@ const updateDailyDeal = async (): Promise<void> => {
3017 3037 export const updateWorldStateCollections = async (): Promise<void> => {
3018 3038 await Promise.all([updateFissures(), updateDailyDeal()]);
3019 3039 };
3040
3041 const pushConclaveDaily = (
3042 activeChallenges: IPVPChallengeInstance[],
3043 PVPMode: string,
3044 pool: {
3045 key: string;
3046 ScriptParamValue: number;
3047 PVPModeAllowed: string[];
3048 SyndicateXP: number;
3049 DuringSingleMatch?: boolean;
3050 }[],
3051 day: number,
3052 id: number
3053 ): void => {
3054 const conclaveDayStart = EPOCH + day * unixTimesInMs.day + 5 * unixTimesInMs.hour + 30 * unixTimesInMs.minute;
3055 const conclaveDayEnd = conclaveDayStart + unixTimesInMs.day;
3056 const challengeId = day * 8 + id;
3057 const rng = new SRng(new SRng(challengeId).randomInt(0, 100_000));
3058 let challenge: {
3059 key: string;
3060 ScriptParamValue: number;
3061 PVPModeAllowed?: string[];
3062 SyndicateXP?: number;
3063 DuringSingleMatch?: boolean;
3064 };
3065 do {
3066 challenge = rng.randomElement(pool)!;
3067 } while (
3068 activeChallenges.some(x => x.challengeTypeRefID == challenge.key) &&
3069 activeChallenges.some(x => x.PVPMode == PVPMode)
3070 );
3071 activeChallenges.push({
3072 _id: {
3073 $oid: "689ec5d985b55902" + challengeId.toString().padStart(8, "0")
3074 },
3075 challengeTypeRefID: challenge.key,
3076 startDate: { $date: { $numberLong: conclaveDayStart.toString() } },
3077 endDate: { $date: { $numberLong: conclaveDayEnd.toString() } },
3078 params: [{ n: "ScriptParamValue", v: challenge.ScriptParamValue }],
3079 isGenerated: true,
3080 PVPMode,
3081 subChallenges: [],
3082 Category: "PVPChallengeTypeCategory_DAILY"
3083 });
3084 };
3085
3086 const pushConclaveDailys = (activeChallenges: IPVPChallengeInstance[], day: number): void => {
3087 const modes = [
3088 "PVPMODE_SPEEDBALL",
3089 "PVPMODE_CAPTURETHEFLAG",
3090 "PVPMODE_DEATHMATCH",
3091 "PVPMODE_TEAMDEATHMATCH"
3092 ] as const;
3093
3094 const challengesMap: Record<
3095 string,
3096 {
3097 key: string;
3098 ScriptParamValue: number;
3099 PVPModeAllowed: string[];
3100 SyndicateXP: number;
3101 DuringSingleMatch?: boolean;
3102 }[]
3103 > = {};
3104
3105 for (const mode of modes) {
3106 challengesMap[mode] = Object.entries(pvpChallenges)
3107 .filter(([_, challenge]) => challenge.PVPModeAllowed.includes(mode))
3108 .map(([key, challenge]) => ({ key, ...challenge }));
3109 }
3110
3111 modes.forEach((mode, index) => {
3112 pushConclaveDaily(activeChallenges, mode, challengesMap[mode], day, index * 2);
3113 pushConclaveDaily(activeChallenges, mode, challengesMap[mode], day, index * 2 + 1);
3114 });
3115 };
3116
3117 const pushConclaveWeakly = (activeChallenges: IPVPChallengeInstance[], week: number): void => {
3118 const weekStart = EPOCH + week * unixTimesInMs.week;
3119 const conclaveWeekStart = weekStart + 40 * unixTimesInMs.minute - 2 * unixTimesInMs.day;
3120 const conclaveWeekEnd = conclaveWeekStart + unixTimesInMs.week;
3121 const conclaveIdStart = ((conclaveWeekStart / 1000) & 0xffffffff).toString(16).padStart(8, "0").padEnd(23, "0");
3122 activeChallenges.push(
3123 {
3124 _id: { $oid: conclaveIdStart + "1" },
3125 challengeTypeRefID: "/Lotus/PVPChallengeTypes/PVPTimedChallengeGameModeWins",
3126 startDate: { $date: { $numberLong: conclaveWeekStart.toString() } },
3127 endDate: { $date: { $numberLong: conclaveWeekEnd.toString() } },
3128 params: [{ n: "ScriptParamValue", v: 6 }],
3129 isGenerated: true,
3130 PVPMode: "PVPMODE_ALL",
3131 subChallenges: [],
3132 Category: "PVPChallengeTypeCategory_WEEKLY"
3133 },
3134 {
3135 _id: { $oid: conclaveIdStart + "2" },
3136 challengeTypeRefID: "/Lotus/PVPChallengeTypes/PVPTimedChallengeGameModeComplete",
3137 startDate: { $date: { $numberLong: conclaveWeekStart.toString() } },
3138 endDate: { $date: { $numberLong: conclaveWeekEnd.toString() } },
3139 params: [{ n: "ScriptParamValue", v: 20 }],
3140 isGenerated: true,
3141 PVPMode: "PVPMODE_ALL",
3142 subChallenges: [],
3143 Category: "PVPChallengeTypeCategory_WEEKLY"
3144 },
3145 {
3146 _id: { $oid: conclaveIdStart + "3" },
3147 challengeTypeRefID: "/Lotus/PVPChallengeTypes/PVPTimedChallengeOtherChallengeCompleteANY",
3148 startDate: { $date: { $numberLong: conclaveWeekStart.toString() } },
3149 endDate: { $date: { $numberLong: conclaveWeekEnd.toString() } },
3150 params: [{ n: "ScriptParamValue", v: 10 }],
3151 isGenerated: true,
3152 PVPMode: "PVPMODE_ALL",
3153 subChallenges: [],
3154 Category: "PVPChallengeTypeCategory_WEEKLY"
3155 },
3156 {
3157 _id: { $oid: conclaveIdStart + "4" },
3158 challengeTypeRefID: "/Lotus/PVPChallengeTypes/PVPTimedChallengeWeeklyStandardSet",
3159 startDate: { $date: { $numberLong: conclaveWeekStart.toString() } },
3160 endDate: { $date: { $numberLong: conclaveWeekEnd.toString() } },
3161 params: [{ n: "ScriptParamValue", v: 0 }],
3162 isGenerated: true,
3163 PVPMode: "PVPMODE_NONE",
3164 subChallenges: [
3165 { $oid: conclaveIdStart + "1" },
3166 { $oid: conclaveIdStart + "2" },
3167 { $oid: conclaveIdStart + "3" }
3168 ],
3169 Category: "PVPChallengeTypeCategory_WEEKLY_ROOT"
3170 }
3171 );
3172 };
Added static/fixed_responses/worldState/pvpChallenges.json +290 -0
@@ -0,0 +1,290 @@
1 {
2 "/Lotus/PVPChallengeTypes/PVPTimedChallengeFlagCaptureEASY": {
3 "ScriptParamValue": 1,
4 "PVPModeAllowed": ["PVPMODE_CAPTURETHEFLAG"],
5 "SyndicateXP": 500
6 },
7 "/Lotus/PVPChallengeTypes/PVPTimedChallengeFlagCaptureMEDIUM": {
8 "ScriptParamValue": 4,
9 "PVPModeAllowed": ["PVPMODE_CAPTURETHEFLAG"],
10 "SyndicateXP": 1500
11 },
12 "/Lotus/PVPChallengeTypes/PVPTimedChallengeFlagReturnEASY": {
13 "ScriptParamValue": 1,
14 "PVPModeAllowed": ["PVPMODE_CAPTURETHEFLAG"],
15 "SyndicateXP": 500
16 },
17 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsComboEASY": {
18 "ScriptParamValue": 1,
19 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
20 "SyndicateXP": 500
21 },
22 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsComboMEDIUM": {
23 "ScriptParamValue": 4,
24 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
25 "SyndicateXP": 1500
26 },
27 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsHeadShotsEASY": {
28 "ScriptParamValue": 1,
29 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
30 "SyndicateXP": 500
31 },
32 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsHeadShotsMEDIUM": {
33 "ScriptParamValue": 4,
34 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
35 "SyndicateXP": 1500
36 },
37 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsMeleeEASY": {
38 "ScriptParamValue": 1,
39 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
40 "SyndicateXP": 500
41 },
42 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsMeleeMEDIUM": {
43 "ScriptParamValue": 4,
44 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
45 "SyndicateXP": 1500
46 },
47 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsMeleeHARD": {
48 "ScriptParamValue": 3,
49 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
50 "SyndicateXP": 3000,
51 "DuringSingleMatch": true
52 },
53 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsMultiMEDIUM": {
54 "ScriptParamValue": 4,
55 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
56 "SyndicateXP": 1500
57 },
58 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPaybackEASY": {
59 "ScriptParamValue": 1,
60 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
61 "SyndicateXP": 500
62 },
63 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPayback_MEDIUM": {
64 "ScriptParamValue": 3,
65 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
66 "SyndicateXP": 1500
67 },
68 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPowerEASY": {
69 "ScriptParamValue": 1,
70 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
71 "SyndicateXP": 500
72 },
73 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPowerMEDIUM": {
74 "ScriptParamValue": 4,
75 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
76 "SyndicateXP": 1500
77 },
78 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPowerHARD": {
79 "ScriptParamValue": 3,
80 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
81 "SyndicateXP": 3000,
82 "DuringSingleMatch": true
83 },
84 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPrimaryEASY": {
85 "ScriptParamValue": 1,
86 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
87 "SyndicateXP": 500
88 },
89 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPrimaryMEDIUM": {
90 "ScriptParamValue": 4,
91 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
92 "SyndicateXP": 1500
93 },
94 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPrimaryHARD": {
95 "ScriptParamValue": 3,
96 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
97 "SyndicateXP": 3000,
98 "DuringSingleMatch": true
99 },
100 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsSecondaryEASY": {
101 "ScriptParamValue": 1,
102 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
103 "SyndicateXP": 500
104 },
105 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsSecondaryMEDIUM": {
106 "ScriptParamValue": 4,
107 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
108 "SyndicateXP": 1500
109 },
110 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsSecondaryHARD": {
111 "ScriptParamValue": 3,
112 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
113 "SyndicateXP": 3000,
114 "DuringSingleMatch": true
115 },
116 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreak_MEDIUM": {
117 "ScriptParamValue": 3,
118 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
119 "SyndicateXP": 1500
120 },
121 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakDominationEASY": {
122 "ScriptParamValue": 1,
123 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
124 "SyndicateXP": 500
125 },
126 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakDomination_MEDIUM": {
127 "ScriptParamValue": 3,
128 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
129 "SyndicateXP": 1500
130 },
131 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakDominationHARD": {
132 "ScriptParamValue": 3,
133 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
134 "SyndicateXP": 3000,
135 "DuringSingleMatch": true
136 },
137 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakStoppedEASY": {
138 "ScriptParamValue": 1,
139 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
140 "SyndicateXP": 500
141 },
142 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakStopped_MEDIUM": {
143 "ScriptParamValue": 3,
144 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
145 "SyndicateXP": 1500
146 },
147 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakHARD": {
148 "ScriptParamValue": 2,
149 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
150 "SyndicateXP": 3000,
151 "DuringSingleMatch": true
152 },
153 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsTargetInAirEASY": {
154 "ScriptParamValue": 1,
155 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
156 "SyndicateXP": 500
157 },
158 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsTargetInAirMEDIUM": {
159 "ScriptParamValue": 4,
160 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
161 "SyndicateXP": 1500
162 },
163 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsTargetInAirHARD": {
164 "ScriptParamValue": 3,
165 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
166 "SyndicateXP": 3000,
167 "DuringSingleMatch": true
168 },
169 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsWhileSlidingEASY": {
170 "ScriptParamValue": 1,
171 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
172 "SyndicateXP": 500
173 },
174 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsWhileSlidingMEDIUM": {
175 "ScriptParamValue": 4,
176 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
177 "SyndicateXP": 1500
178 },
179 "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsWhileSlidingHARD": {
180 "ScriptParamValue": 3,
181 "PVPModeAllowed": ["PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
182 "SyndicateXP": 3000,
183 "DuringSingleMatch": true
184 },
185 "/Lotus/PVPChallengeTypes/PVPTimedChallengeMatchCompleteEASY": {
186 "ScriptParamValue": 1,
187 "PVPModeAllowed": ["PVPMODE_CAPTURETHEFLAG", "PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
188 "SyndicateXP": 500
189 },
190 "/Lotus/PVPChallengeTypes/PVPTimedChallengeMatchCompleteMEDIUM": {
191 "ScriptParamValue": 4,
192 "PVPModeAllowed": ["PVPMODE_CAPTURETHEFLAG", "PVPMODE_DEATHMATCH", "PVPMODE_TEAMDEATHMATCH"],
193 "SyndicateXP": 1500
194 },
195 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballCatchesEASY": {
196 "ScriptParamValue": 3,
197 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
198 "SyndicateXP": 1000
199 },
200 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballCatchesMEDIUM": {
201 "ScriptParamValue": 10,
202 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
203 "SyndicateXP": 3000
204 },
205 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballCatchesHARD": {
206 "ScriptParamValue": 6,
207 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
208 "SyndicateXP": 6000,
209 "DuringSingleMatch": true
210 },
211 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballChecksEASY": {
212 "ScriptParamValue": 3,
213 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
214 "SyndicateXP": 1000
215 },
216 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballChecksMEDIUM": {
217 "ScriptParamValue": 10,
218 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
219 "SyndicateXP": 3000
220 },
221 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballChecksHARD": {
222 "ScriptParamValue": 6,
223 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
224 "SyndicateXP": 6000,
225 "DuringSingleMatch": true
226 },
227 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballGoalsEASY": {
228 "ScriptParamValue": 2,
229 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
230 "SyndicateXP": 1000
231 },
232 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballGoalsMEDIUM": {
233 "ScriptParamValue": 6,
234 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
235 "SyndicateXP": 3000
236 },
237 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballGoalsHARD": {
238 "ScriptParamValue": 4,
239 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
240 "SyndicateXP": 6000,
241 "DuringSingleMatch": true
242 },
243 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballInterceptionsEASY": {
244 "ScriptParamValue": 3,
245 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
246 "SyndicateXP": 1000
247 },
248 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballInterceptionsMEDIUM": {
249 "ScriptParamValue": 6,
250 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
251 "SyndicateXP": 3000
252 },
253 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballInterceptionsHARD": {
254 "ScriptParamValue": 6,
255 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
256 "SyndicateXP": 6000,
257 "DuringSingleMatch": true
258 },
259 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballPassesEASY": {
260 "ScriptParamValue": 3,
261 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
262 "SyndicateXP": 1000
263 },
264 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballPassesMEDIUM": {
265 "ScriptParamValue": 6,
266 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
267 "SyndicateXP": 3000
268 },
269 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballPassesHARD": {
270 "ScriptParamValue": 3,
271 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
272 "SyndicateXP": 6000,
273 "DuringSingleMatch": true
274 },
275 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballStealsEASY": {
276 "ScriptParamValue": 3,
277 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
278 "SyndicateXP": 1000
279 },
280 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballStealsMEDIUM": {
281 "ScriptParamValue": 6,
282 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
283 "SyndicateXP": 3000
284 },
285 "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballStealsHARD": {
286 "ScriptParamValue": 3,
287 "PVPModeAllowed": ["PVPMODE_SPEEDBALL"],
288 "SyndicateXP": 6000
289 }
290 }
Modified static/fixed_responses/worldState/worldState.json +0 -134
@@ -311,140 +311,6 @@
311 311 "PrimeVaultAvailabilities": [false, false, false, false, false],
312 312 "PrimeTokenAvailability": true,
313 313 "LibraryInfo": { "LastCompletedTargetType": "/Lotus/Types/Game/Library/Targets/Research7Target" },
314 "PVPChallengeInstances": [
315 {
316 "_id": { "$oid": "6635562d036ce37f7f98e264" },
317 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeGameModeComplete",
318 "startDate": { "$date": { "$numberLong": "1714771501460" } },
319 "endDate": { "$date": { "$numberLong": "2000000000000" } },
320 "params": [{ "n": "ScriptParamValue", "v": 20 }],
321 "isGenerated": true,
322 "PVPMode": "PVPMODE_ALL",
323 "subChallenges": [],
324 "Category": "PVPChallengeTypeCategory_WEEKLY"
325 },
326 {
327 "_id": { "$oid": "6635562d036ce37f7f98e263" },
328 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeGameModeWins",
329 "startDate": { "$date": { "$numberLong": "1714771501460" } },
330 "endDate": { "$date": { "$numberLong": "2000000000000" } },
331 "params": [{ "n": "ScriptParamValue", "v": 6 }],
332 "isGenerated": true,
333 "PVPMode": "PVPMODE_ALL",
334 "subChallenges": [],
335 "Category": "PVPChallengeTypeCategory_WEEKLY"
336 },
337 {
338 "_id": { "$oid": "6635562d036ce37f7f98e265" },
339 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeOtherChallengeCompleteANY",
340 "startDate": { "$date": { "$numberLong": "1714771501460" } },
341 "endDate": { "$date": { "$numberLong": "2000000000000" } },
342 "params": [{ "n": "ScriptParamValue", "v": 10 }],
343 "isGenerated": true,
344 "PVPMode": "PVPMODE_ALL",
345 "subChallenges": [],
346 "Category": "PVPChallengeTypeCategory_WEEKLY"
347 },
348 {
349 "_id": { "$oid": "6635562d036ce37f7f98e266" },
350 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeWeeklyStandardSet",
351 "startDate": { "$date": { "$numberLong": "1714771501460" } },
352 "endDate": { "$date": { "$numberLong": "2000000000000" } },
353 "params": [{ "n": "ScriptParamValue", "v": 0 }],
354 "isGenerated": true,
355 "PVPMode": "PVPMODE_NONE",
356 "subChallenges": [{ "$oid": "6635562d036ce37f7f98e263" }, { "$oid": "6635562d036ce37f7f98e264" }, { "$oid": "6635562d036ce37f7f98e265" }],
357 "Category": "PVPChallengeTypeCategory_WEEKLY_ROOT"
358 },
359 {
360 "_id": { "$oid": "6639ca6967c1192987d75fee" },
361 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeFlagReturnEASY",
362 "startDate": { "$date": { "$numberLong": "1715063401824" } },
363 "endDate": { "$date": { "$numberLong": "2000000000000" } },
364 "params": [{ "n": "ScriptParamValue", "v": 1 }],
365 "isGenerated": true,
366 "PVPMode": "PVPMODE_CAPTURETHEFLAG",
367 "subChallenges": [],
368 "Category": "PVPChallengeTypeCategory_DAILY"
369 },
370 {
371 "_id": { "$oid": "6639ca6967c1192987d75fed" },
372 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeMatchCompleteMEDIUM",
373 "startDate": { "$date": { "$numberLong": "1715063401824" } },
374 "endDate": { "$date": { "$numberLong": "2000000000000" } },
375 "params": [{ "n": "ScriptParamValue", "v": 4 }],
376 "isGenerated": true,
377 "PVPMode": "PVPMODE_CAPTURETHEFLAG",
378 "subChallenges": [],
379 "Category": "PVPChallengeTypeCategory_DAILY"
380 },
381 {
382 "_id": { "$oid": "6639ca6967c1192987d75ff2" },
383 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeMatchCompleteEASY",
384 "startDate": { "$date": { "$numberLong": "1715063401824" } },
385 "endDate": { "$date": { "$numberLong": "2000000000000" } },
386 "params": [{ "n": "ScriptParamValue", "v": 1 }],
387 "isGenerated": true,
388 "PVPMode": "PVPMODE_DEATHMATCH",
389 "subChallenges": [],
390 "Category": "PVPChallengeTypeCategory_DAILY"
391 },
392 {
393 "_id": { "$oid": "6639ca6967c1192987d75ff1" },
394 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsPayback_MEDIUM",
395 "startDate": { "$date": { "$numberLong": "1715063401824" } },
396 "endDate": { "$date": { "$numberLong": "2000000000000" } },
397 "params": [{ "n": "ScriptParamValue", "v": 3 }],
398 "isGenerated": true,
399 "PVPMode": "PVPMODE_DEATHMATCH",
400 "subChallenges": [],
401 "Category": "PVPChallengeTypeCategory_DAILY"
402 },
403 {
404 "_id": { "$oid": "6639ca6967c1192987d75fef" },
405 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsStreakDominationEASY",
406 "startDate": { "$date": { "$numberLong": "1715063401824" } },
407 "endDate": { "$date": { "$numberLong": "2000000000000" } },
408 "params": [{ "n": "ScriptParamValue", "v": 1 }],
409 "isGenerated": true,
410 "PVPMode": "PVPMODE_TEAMDEATHMATCH",
411 "subChallenges": [],
412 "Category": "PVPChallengeTypeCategory_DAILY"
413 },
414 {
415 "_id": { "$oid": "6639ca6967c1192987d75ff0" },
416 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeKillsWhileInAirHARD",
417 "startDate": { "$date": { "$numberLong": "1715063401824" } },
418 "endDate": { "$date": { "$numberLong": "2000000000000" } },
419 "params": [{ "n": "ScriptParamValue", "v": 3 }],
420 "isGenerated": true,
421 "PVPMode": "PVPMODE_TEAMDEATHMATCH",
422 "subChallenges": [],
423 "Category": "PVPChallengeTypeCategory_DAILY"
424 },
425 {
426 "_id": { "$oid": "6639ca6967c1192987d75ff3" },
427 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballCatchesMEDIUM",
428 "startDate": { "$date": { "$numberLong": "1715063401824" } },
429 "endDate": { "$date": { "$numberLong": "2000000000000" } },
430 "params": [{ "n": "ScriptParamValue", "v": 10 }],
431 "isGenerated": true,
432 "PVPMode": "PVPMODE_SPEEDBALL",
433 "subChallenges": [],
434 "Category": "PVPChallengeTypeCategory_DAILY"
435 },
436 {
437 "_id": { "$oid": "6639ca6967c1192987d75ff4" },
438 "challengeTypeRefID": "/Lotus/PVPChallengeTypes/PVPTimedChallengeSpeedballInterceptionsEASY",
439 "startDate": { "$date": { "$numberLong": "1715063401824" } },
440 "endDate": { "$date": { "$numberLong": "2000000000000" } },
441 "params": [{ "n": "ScriptParamValue", "v": 3 }],
442 "isGenerated": true,
443 "PVPMode": "PVPMODE_SPEEDBALL",
444 "subChallenges": [],
445 "Category": "PVPChallengeTypeCategory_DAILY"
446 }
447 ],
448 314 "PersistentEnemies": [],
449 315 "PVPAlternativeModes": [],
450 316 "PVPActiveTournaments": [],