返回提交历史
Modified
src/services/worldStateService.ts
+153
-0
Added
static/fixed_responses/worldState/pvpChallenges.json
+290
-0
Modified
static/fixed_responses/worldState/worldState.json
+0
-134
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
代码差异
3 个文件
+443
-134
@@ -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
};
@@ -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
}
@@ -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": [],