1
mirror of https://github.com/thepeacockproject/Peacock synced 2025-03-14 12:54:28 +01:00

Add Elusive Target challenges on H3 ()

* Only change elusive contract types at getforplay

* Update the angel of death json

* Add ET challenges for all locations

* Correctly get elusives challenges in contracts

* Add CHALLENGES_ELUSIVE_TARGET_MIAMI

* Add global elusives challenges

* Remove " - Year 2" texts

* Correct strings in the Brothers challenges

* Latest ET challenge extraction script

* Add flag to toggle elusives saving

* make elusive target challenges game version aware

* remove extra BLOODYMARY challenges

* Fix The Blackmailer strings

* Remove duplicate global challenges definitions

* Filter out elusive challenges for location page

* update info on et tab on career-challenges page

* Allow elusives to be restarted in H2/3, add flag for H2016

---------

Co-authored-by: Anthony Fuller <24512050+AnthonyFuller@users.noreply.github.com>
This commit is contained in:
moonysolari 2023-04-13 18:49:31 -04:00 committed by GitHub
parent 1d8cb6d128
commit 7f74ac7380
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 15004 additions and 26 deletions

@ -25,6 +25,7 @@ import { log, LogLevel } from "../loggingInterop"
import { getConfig } from "../configSwizzleManager"
import type { GameChanger, RequestWithJwt } from "../types/types"
import { randomUUID } from "crypto"
import { getFlag } from "../flags"
const legacyContractRouter = Router()
@ -53,6 +54,13 @@ legacyContractRouter.post(
res.status(400).send("no such contract")
return
}
if (
contractData.Metadata.Type === "elusive" &&
getFlag("legacyElusivesEnableSaving")
) {
log(LogLevel.DEBUG, "Changing elusive mission...")
contractData.Metadata.Type = "mission"
}
if (!contractData.Data.GameChangers) {
contractData.Data.GameChangers = []

@ -73,6 +73,8 @@ export enum ChallengeFilterType {
Contract = "Contract",
/** Only used for the CAREER -> CHALLENGES page */
Contracts = "Contracts",
/** Only used for the location page */
ParentLocation = "ParentLocation",
}
export type ChallengeFilterOptions =
@ -91,6 +93,9 @@ export type ChallengeFilterOptions =
contractIds: string[]
locationId: string
}
| {
type: ChallengeFilterType.ParentLocation
}
/**
* Checks if the metadata of a contract matches the definition in the InclusionData of a challenge.
@ -178,11 +183,16 @@ function isChallengeInContract(
)
}
// Is this for the current contract?
// Is this for the current contract or contract type?
const isForContract = (challenge.InclusionData?.ContractIds || []).includes(
contractId,
)
// As of v6.1.0, this is only used for ET challenges.
const isForContractType = (
challenge.InclusionData?.ContractTypes || []
).includes(controller.resolveContract(contractId).Metadata.Type)
// Is this a location-wide challenge?
// "location" is more widely used, but "parentlocation" is used in Ambrose and Berlin, as well as some "Discover XX" challenges.
const isForLocation =
@ -196,7 +206,11 @@ function isChallengeInContract(
challenge.LocationId === locationId ||
challenge.LocationId === challenge.ParentLocationId
return isForContract || (isForLocation && isCurrentLocation)
return (
isForContract ||
isForContractType ||
(isForLocation && isCurrentLocation)
)
}
export function filterChallenge(
@ -225,6 +239,11 @@ export function filterChallenge(
),
)
}
case ChallengeFilterType.ParentLocation: {
// Challenges are already organized by location
// So we only need to filter out the elusive target challenges
return !challenge.Tags.includes("elusive")
}
}
}

@ -232,6 +232,15 @@ export abstract class ChallengeRegistry {
gameGroups.get("GLOBAL_CLASSIC_CHALLENGES")?.get(groupId),
)
}
if (
groupId === "elusive" &&
location !== "GLOBAL_ELUSIVES_CHALLENGES"
) {
return mergeSavedChallengeGroups(
gameGroups.get(location)?.get(groupId),
gameGroups.get("GLOBAL_ELUSIVES_CHALLENGES")?.get(groupId),
)
}
return gameGroups.get(location)?.get(groupId)
}
@ -257,6 +266,17 @@ export abstract class ChallengeRegistry {
[]),
])
}
if (
groupId === "elusive" &&
location !== "GLOBAL_ELUSIVES_CHALLENGES"
) {
return new Set([
...(gameChalGC.get(location)?.get(groupId) ?? []),
...(gameChalGC
.get("GLOBAL_ELUSIVES_CHALLENGES")
?.get(groupId) ?? []),
])
}
return gameChalGC.get(location)?.get(groupId)
}
@ -917,7 +937,7 @@ export class ChallengeService extends ChallengeRegistry {
const forLocation = this.getGroupedChallengeLists(
{
type: ChallengeFilterType.None,
type: ChallengeFilterType.ParentLocation,
},
locationParentId,
gameVersion,

@ -109,6 +109,8 @@ contractRoutingRouter.post(
contractData.Data.EnableSaving = false
}
// Edit elusive contract data HERE
const contractSesh = {
Contract: contractData,
ContractSessionId: `${process.hrtime

@ -657,14 +657,7 @@ export class Controller {
)
if (registryJson) {
const dereferenced: MissionManifest = fastClone(registryJson)
if (registryJson.Metadata.Type === "elusive") {
dereferenced.Metadata.Type = "mission"
return dereferenced
}
return dereferenced
return fastClone(registryJson)
}
const openCtJson = this.contracts.has(id)

@ -109,6 +109,10 @@ const defaultFlags: Flags = {
desc: "When set to true, all Freelancer unlocks will always be available.",
default: false,
},
legacyElusivesEnableSaving: {
desc: 'When set to true, playing elusive target missions in Hitman 2016 will share the same restarting/replanning/saving rules with normal missions, but the "Elusive Target [Location]" challenges will not be completable. These challenges will only be completable when this option is set to false.',
default: false,
},
mapDiscoveryState: {
desc: 'Decides what to do with the discovery state of the maps. REVEALED will reset all map locations to discovered, CLOUDED will reset all maps to undiscovered, and KEEP will keep your current discovery state. Note that these actions will take effect every time you connect to Peacock. Your progress of the "Discover [Location]" challenges will not be affected by this option.',
default: "KEEP",

@ -217,18 +217,18 @@ menuDataRouter.get("/Hub", (req: RequestWithJwt, res) => {
req.gameVersion,
true,
)
const career = {
// TODO: Add data on elusive challenges. They are not shown on the Career->Challenges page. What the client does with this information is unclear. They are not supported by Peacock as of v5.6.2.
ELUSIVES_UNSUPPORTED:
req.gameVersion === "h3"
? {
const career =
req.gameVersion === "h3"
? {}
: {
// TODO: Add data on elusive challenges. They are only shown on the Career->Challenges page for H1 and H2. They are not supported by Peacock as of v6.0.0.
ELUSIVES_UNSUPPORTED: {
Children: [],
Name: "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
Location:
locations.parents["LOCATION_PARENT_ICA_FACILITY"],
}
: {},
}
},
}
for (const parent in locations.parents) {
career[parent] = {

@ -90,7 +90,7 @@ export class MenuSystemDatabase {
)
}
if (gameVersion === "h3" || gameVersion === "h1") {
if (["h3", "h1"].includes(gameVersion)) {
configs.push("menusystem/pages/hub/hub_page.json")
}
@ -107,6 +107,18 @@ export class MenuSystemDatabase {
configs.push(
"menusystem/pages/hub/dashboard/category_escalation/result.json",
)
// The following is to allow restart/replan/save/load on elusive contracts
// alongside removing the warning when starting one in H2/3 - AF
configs.push(
"menusystem/pages/pause/pausemenu/restart.json",
)
configs.push("menusystem/pages/pause/pausemenu/replan.json")
configs.push("menusystem/pages/pause/pausemenu/save.json")
configs.push("menusystem/pages/pause/pausemenu/load.json")
configs.push(
"menusystem/pages/planning/actions/actions_contextbutton_play.json",
)
}
if (gameVersion === "h2") {
@ -177,6 +189,284 @@ export class MenuSystemDatabase {
}
case "/pages/multiplayer/content/lobbyslim.json":
return getConfig("LobbySlimTemplate", false)
case "/pages/pause/pausemenu/restart.json":
return {
$if: {
$condition: {
$or: [
{
$and: [
"$not $eq({$currentcontractcontext}.ContractType,arcade)",
"$not $eq({$currentcontractcontext}.ContractType,evergreen)",
],
},
"$isallowedtorestart",
],
},
$then: {
$include: {
$path: "menusystem/pages/pause/pausemenu/restartnoconditions.json",
},
},
},
}
case "/pages/pause/pausemenu/replan.json":
return {
$if: {
$condition: {
$and: [
"$not $eq({$currentcontractcontext}.ContractLocation,LOCATION_ICA_FACILITY)",
"$not $eq({$currentcontractcontext}.ContractType,tutorial)",
"$not $eq({$currentcontractcontext}.ContractType,vsrace)",
"$not $eq({$currentcontractcontext}.ContractType,evergreen)",
],
},
$then: {
$if: {
$condition: {
$or: [
"$not $eq({$currentcontractcontext}.ContractType,arcade)",
"$isallowedtorestart",
],
},
$then: {
view: "menu3.basic.ListElementSmall",
pressable:
"$not $isnull {$currentcontractcontext}.Contract",
selectable:
"$not $isnull {$currentcontractcontext}.Contract",
data: {
showningame: "$isingame",
title: "$loc UI_MENU_PAGE_PAUSE_REPLAN",
icon: "planning",
},
actions: {
accept: {
"$if $eq ({$currentcontractcontext}.ContractType,placeholder)":
{
$then: {
$datacontext: {
in: "$.",
datavalues: {
AutoStart:
false,
},
do: {
$include: {
$path: "menusystem/pages/pause/pausemenu/replanplaceholder.json",
},
},
},
},
$else: {
"replan-level": {},
},
},
},
},
},
},
},
},
}
case "/pages/pause/pausemenu/save.json":
return {
$if: {
$condition: {
$and: [
"$not $eq({$currentcontractcontext}.ContractType,arcade)",
"$not $eq({$currentcontractcontext}.ContractType,evergreen)",
"$not $eq({$currentcontractcontext}.ContractType,sniper)",
"$not $eq({$currentcontractcontext}.ContractType,vsrace)",
],
},
$then: {
$datacontext: {
in: "$.",
datavalues: {
CanSave: "$cansave",
},
do: {
view: "menu3.basic.ListElementSmall",
selectable: "$.CanSave",
pressable: "$.CanSave",
data: {
showningame: "$isingame",
title: "$loc UI_MENU_PAGE_PAUSE_SAVE",
icon: {
"$if $.CanSave": {
$then: "save",
$else: "savedisabled",
},
},
greyelement: "$not $.CanSave",
},
actions: {
"$if $.CanSave": {
$then: {
accept: {
link: {
page: "savepage",
args: {
url: "save",
args: {
saveorload:
"save",
},
saveorload:
"save",
},
},
},
},
},
},
},
},
},
},
}
case "/pages/pause/pausemenu/load.json":
return {
$if: {
$condition: {
$and: [
"$not $eq({$currentcontractcontext}.ContractType,arcade)",
"$not $eq({$currentcontractcontext}.ContractType,evergreen)",
"$not $eq({$currentcontractcontext}.ContractType,sniper)",
"$not $eq({$currentcontractcontext}.ContractType,vsrace)",
],
},
$then: {
view: "menu3.basic.ListElementSmall",
data: {
showningame: "$isingame",
title: "$loc UI_MENU_PAGE_PAUSE_LOAD_GAME",
icon: "load",
},
actions: {
accept: {
link: {
page: "loadpage",
args: {
url: "load",
args: {
saveorload: "load",
},
saveorload: "load",
mainmenu: false,
reloadonchange: true,
},
},
},
},
},
},
}
// Following exists in the files of H3, but not H2. No need to put it in the diff. - AF
case "/pages/pause/pausemenu/restartnoconditions.json":
return {
view: "menu3.basic.ListElementSmall",
data: {
showningame: "$isingame",
title: {
"$if $eq ({$currentcontractcontext}.ContractType,vsrace)":
{
$then: "$loc UI_MENU_LOBBY_REMATCH",
$else: "$loc UI_MENU_PAGE_PAUSE_RESTART",
},
},
icon: "replay",
},
actions: {
accept: {
"$if $eq ({$currentcontractcontext}.ContractType,placeholder)":
{
$then: {
$datacontext: {
in: "$.",
datavalues: {
AutoStart: true,
},
do: {
$include: {
$path: "menusystem/pages/pause/pausemenu/replanplaceholder.json",
},
},
},
},
$else: {
"restart-level": {},
},
},
},
},
}
case "/pages/planning/actions/actions_contextbutton_play.json":
return {
$mergeobjects: [
{
accept: {
"$switch $.Contract.Metadata.Type": [
{
case: "arcade",
return: {
"show-modal": {
config: {
view: "menu3.modal.ModalDialogGeneric",
buttons: [
"$loc UI_DIALOG_CONFIRM",
{
label: "$loc UI_DIALOG_CANCEL",
type: "cancel",
},
],
data: {
title: "$loc UI_CONTRACT_HEADER_ARCADE",
information: [
{
description:
"$loc UI_MENU_PAGE_PLANNING_ARCADE_PLAY_WARNING",
},
],
},
},
onbutton: [
{
"start-contract": {
contract:
"$.Contract",
difficulty:
"$.@parent.CurrentDifficulty",
objectives:
"$.@parent.Objectives",
},
},
],
},
},
},
{
default: {
"start-contract": {
contract: "$.Contract",
difficulty:
"$.@parent.CurrentDifficulty",
objectives:
"$.@parent.Objectives",
},
},
},
],
},
},
{
$include: {
$path: "menusystem/pages/planning/actions/actions_contextbutton_common.json",
},
},
],
}
default:
return undefined
}

@ -266,11 +266,6 @@ export async function planningView(
req.gameVersion,
)
if (userCentric.Contract.Metadata.Type === "elusive") {
// change the type until we figure out why they become unplayable
userCentric.Contract.Metadata.Type = "mission"
}
const sniperLoadouts = createSniperLoadouts(
req.jwt.unique_name,
req.gameVersion,
@ -407,7 +402,7 @@ export async function planningView(
: null,
data: {
Contract: contractData,
ElusiveContractState: "",
ElusiveContractState: "not_completed",
UserCentric: userCentric,
IsFirstInGroup: escalation
? controller.escalationMappings[escalationGroupId]["1"] ===

@ -5538,6 +5538,968 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "2f57c52c-cd9e-4193-9060-aa4c496ce30e",
"Name": "UI_CHALLENGES_ET_BRASSMONKEY_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_brassmonkey_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_BRASSMONKEY_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_BANGKOK",
"ParentLocationId": "LOCATION_PARENT_BANGKOK",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["b0bed170-8652-4188-8b9a-92caf9f97e5b"]
}
},
{
"Id": "3151f909-0a87-4e71-81f6-02b52405a8f1",
"Name": "UI_CHALLENGES_ET_BRASSMONKEY_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_brassmonkey_M_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_BRASSMONKEY_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_BANGKOK",
"ParentLocationId": "LOCATION_PARENT_BANGKOK",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": [
"$Value.RepositoryId",
"7387e648-ad6b-408d-a0ee-3b3943767e78"
]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["b0bed170-8652-4188-8b9a-92caf9f97e5b"]
}
},
{
"Id": "c2275eac-daad-429d-88ef-453eeaab33b6",
"Name": "UI_CHALLENGES_ET_BRASSMONKEY_F_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_brassmonkey_F_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_BRASSMONKEY_F_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_BANGKOK",
"ParentLocationId": "LOCATION_PARENT_BANGKOK",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": [
"$Value.RepositoryId",
"978ad630-8d31-4416-8976-8ed1009a4dbd"
]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["b0bed170-8652-4188-8b9a-92caf9f97e5b"]
}
},
{
"Id": "12937274-4d85-477d-b20d-fddb408a1015",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_BANGKOK_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_bangkok.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_BANGKOK_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": ["TOKEN_OUTFIT_HERO_BANGKOKSUITANDGLOVES"],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_BANGKOK",
"ParentLocationId": "LOCATION_PARENT_BANGKOK",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
},
{
"Id": "1661ba81-60eb-4973-9a2e-e17b62483cfc",
"Name": "UI_CHALLENGES_ET_MARTINI_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_martini_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_MARTINI_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_BANGKOK",
"ParentLocationId": "LOCATION_PARENT_BANGKOK",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["b0b8995c-7b3f-4fa6-91a2-be4bc8edc046"]
}
},
{
"Id": "9262f862-0960-4ade-8491-eecb522d80e2",
"Name": "UI_CHALLENGES_ET_MARTINI_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_martini_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_MARTINI_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_BANGKOK",
"ParentLocationId": "LOCATION_PARENT_BANGKOK",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["b0b8995c-7b3f-4fa6-91a2-be4bc8edc046"]
}
},
{
"Id": "12937274-4d85-477d-b20d-fddb408a1015",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_BANGKOK_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_bangkok.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_BANGKOK_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": ["TOKEN_OUTFIT_HERO_BANGKOKSUITANDGLOVES"],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_BANGKOK",
"ParentLocationId": "LOCATION_PARENT_BANGKOK",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
},
{
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Description": "UI_CHALLENGES_ET_BLOODYMARY_TARGETDOWN_DESC",
"DifficultyLevels": [],
"Drops": [],
"HideProgression": false,
"Icon": "elusive",
"Id": "9b6e65c2-22cd-4637-8ab1-e48e07acdedc",
"ImageName": "images/challenges/elusive_target/et_bloodymary_targetdown.jpg",
"InclusionData": {
"ContractIds": ["87f8293a-29cd-4cb1-ade7-dd6bb056d38e"]
},
"IsLocked": false,
"IsPlayable": false,
"LocationId": "LOCATION_BANGKOK",
"Name": "UI_CHALLENGES_ET_BLOODYMARY_TARGETDOWN_NAME",
"OrderIndex": 10000,
"ParentLocationId": "LOCATION_PARENT_BANGKOK",
"Rewards": {
"MasteryXP": 2000
},
"RuntimeType": "Hit",
"Tags": ["story", "medium", "elusive"],
"Type": "contract",
"XpModifier": {}
},
{
"Id": "265ff025-9e07-4224-b6db-675e44bd62b5",
"Name": "UI_CHALLENGES_ET_BLOODYMARY_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_bloodymary_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_BLOODYMARY_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_BANGKOK",
"ParentLocationId": "LOCATION_PARENT_BANGKOK",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["87f8293a-29cd-4cb1-ade7-dd6bb056d38e"]
}
}
]
}
]
}

@ -4071,6 +4071,284 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "00d2fefd-6bdb-4450-81bd-45a4bb3c3887",
"Name": "UI_CHALLENGES_ET_RADLER_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_radler_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_RADLER_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_EDGY_FOX",
"ParentLocationId": "LOCATION_PARENT_EDGY",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["3f0b8f19-d5d4-4611-ac8f-480f81c18f54"]
}
},
{
"Id": "c2ae25d2-e4d0-4125-928d-44632ff2f7d1",
"Name": "UI_CHALLENGES_ET_RADLER_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_radler_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_RADLER_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_EDGY_FOX",
"ParentLocationId": "LOCATION_PARENT_EDGY",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["3f0b8f19-d5d4-4611-ac8f-480f81c18f54"]
}
}
]
}
]
}

@ -4328,6 +4328,284 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "c823eaa7-aaec-42e5-a160-7b7d7b3c719e",
"Name": "UI_CHALLENGES_ET_REDSNAPPER_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_redsnapper_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_REDSNAPPER_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_WET_RAT",
"ParentLocationId": "LOCATION_PARENT_WET",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["6fad7901-279f-45df-ab8d-087a3cb06dcc"]
}
},
{
"Id": "cfd77118-ee34-49b0-b2e6-0fcbb69948f6",
"Name": "UI_CHALLENGES_ET_REDSNAPPER_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_redsnapper_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_REDSNAPPER_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_WET_RAT",
"ParentLocationId": "LOCATION_PARENT_WET",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["6fad7901-279f-45df-ab8d-087a3cb06dcc"]
}
}
]
}
]
}

@ -4907,6 +4907,653 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "bade239d-1102-4ddf-9dfa-c848c007bf3e",
"Name": "UI_CHALLENGES_ET_BUSHWACKER_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_bushwacker_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_BUSHWACKER_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_COLORADO",
"ParentLocationId": "LOCATION_PARENT_COLORADO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["550c4d75-ca87-4be7-a18e-caf30e6c8136"]
}
},
{
"Id": "d8f8a8fb-4b3c-4e2a-ac20-2d864a449ebe",
"Name": "UI_CHALLENGES_ET_BUSHWACKER_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_bushwacker_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_BUSHWACKER_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_COLORADO",
"ParentLocationId": "LOCATION_PARENT_COLORADO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["550c4d75-ca87-4be7-a18e-caf30e6c8136"]
}
},
{
"Id": "efd539cf-7b0e-4940-b8dd-a7407deea12f",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_COLORADO_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_colorado.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_COLORADO_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": ["TOKEN_OUTFIT_HERO_COLORADOSUIT_ALTERNATIVE"],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_COLORADO",
"ParentLocationId": "LOCATION_PARENT_COLORADO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
},
{
"Id": "3d2e38c4-a96c-43cb-bec1-d775e28f3fd2",
"Name": "UI_CHALLENGES_ET_FLIRTINI_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_flirtini_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_FLIRTINI_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_COLORADO",
"ParentLocationId": "LOCATION_PARENT_COLORADO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["655c5a57-69d1-48b6-a14b-2ae396c16174"]
}
},
{
"Id": "96377c1f-e2e4-4008-bf9f-ced0e9a016e9",
"Name": "UI_CHALLENGES_ET_FLIRTINI_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_flirtini_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_FLIRTINI_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_COLORADO",
"ParentLocationId": "LOCATION_PARENT_COLORADO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["655c5a57-69d1-48b6-a14b-2ae396c16174"]
}
},
{
"Id": "efd539cf-7b0e-4940-b8dd-a7407deea12f",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_COLORADO_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_colorado.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_COLORADO_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": ["TOKEN_OUTFIT_HERO_COLORADOSUIT_ALTERNATIVE"],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_COLORADO",
"ParentLocationId": "LOCATION_PARENT_COLORADO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
}
]
}
]
}

@ -5565,6 +5565,623 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "009da118-9bbd-4378-a3af-7eb6f65467e0",
"Name": "UI_CHALLENGES_ET_BRAMBLE_RETRIEVEPAINTING_NAME",
"ImageName": "images/challenges/elusive_target/et_bramble_retrievedpainting.jpg",
"Description": "UI_CHALLENGES_ET_BRAMBLE_RETRIEVEPAINTING_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_ANCESTRAL_BULLDOG",
"ParentLocationId": "LOCATION_PARENT_ANCESTRAL",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Constants": {
"Target": "49853af0-d50b-4959-a446-15429b1f4530"
},
"Scope": "session",
"States": {
"Start": {
"ItemPickedUp": {
"Condition": {
"$eq": [
"$.Target",
"$Value.RepositoryId"
]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["92951377-419d-4c31-aa21-2a3f03ef82d0"]
}
},
{
"Id": "5c9ebf15-0f66-4a3c-8117-b0515b81f6f1",
"Name": "UI_CHALLENGES_ET_BRAMBLE_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_bramble_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_BRAMBLE_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_ANCESTRAL_BULLDOG",
"ParentLocationId": "LOCATION_PARENT_ANCESTRAL",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["92951377-419d-4c31-aa21-2a3f03ef82d0"]
}
},
{
"Id": "aed4cac6-0f11-4e74-9a7c-90748b3c7384",
"Name": "UI_CHALLENGES_ET_BRAMBLE_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_bramble_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_BRAMBLE_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_ANCESTRAL_BULLDOG",
"ParentLocationId": "LOCATION_PARENT_ANCESTRAL",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["92951377-419d-4c31-aa21-2a3f03ef82d0"]
}
},
{
"Id": "4dfe894f-a690-4d7e-bcf7-778fe8cf0647",
"Name": "UI_CHALLENGES_ET_VESPER_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_vesper_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_VESPER_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_ANCESTRAL_BULLDOG",
"ParentLocationId": "LOCATION_PARENT_ANCESTRAL",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["1fcaff1b-7fa3-4b9f-a586-9c7a1689b48d"]
}
},
{
"Id": "e33b5539-b15e-4652-be2b-f154f12336fd",
"Name": "UI_CHALLENGES_ET_VESPER_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_vesper_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_VESPER_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_ANCESTRAL_BULLDOG",
"ParentLocationId": "LOCATION_PARENT_ANCESTRAL",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Constants": {
"RequiredTargetCount": 2
},
"Context": {
"KilledTargetCount": 0
},
"ContextListeners": {
"KilledTargetCount": {
"type": "challengecounter",
"count": "$.KilledTargetCount",
"total": "$.RequiredTargetCount"
}
},
"Scope": "session",
"States": {
"Start": {
"Kill": [
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$inc": "KilledTargetCount"
}
},
{
"Condition": {
"$eq": [
"$.KilledTargetCount",
"$.RequiredTargetCount"
]
},
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["1fcaff1b-7fa3-4b9f-a586-9c7a1689b48d"]
}
}
]
}
]
}

@ -4117,6 +4117,284 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "05efca7c-7184-4792-8d40-fb1d0912ab68",
"Name": "UI_CHALLENGES_ET_GIBSON_SILENT_ASSASSIN_TITLE",
"ImageName": "images/challenges/elusive_target/et_gibson_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_GIBSON_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_GOLDEN_GECKO",
"ParentLocationId": "LOCATION_PARENT_GOLDEN",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["b2c0251e-1803-4e12-b860-b9fa6ce5c004"]
}
},
{
"Id": "3beb74aa-45f7-4b70-bbf0-75045f6c525a",
"Name": "UI_CHALLENGES_ET_GIBSON_TARGETDOWN_TITLE",
"ImageName": "images/challenges/elusive_target/et_gibson_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_GIBSON_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_GOLDEN_GECKO",
"ParentLocationId": "LOCATION_PARENT_GOLDEN",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["b2c0251e-1803-4e12-b860-b9fa6ce5c004"]
}
}
]
}
]
}

File diff suppressed because it is too large Load Diff

@ -2906,6 +2906,334 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "17b976c4-9807-4515-9946-b840313f52dd",
"Name": "UI_CHALLENGES_ET_ADONIS_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_adonis_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_ADONIS_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NEWZEALAND",
"ParentLocationId": "LOCATION_PARENT_NEWZEALAND",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["44fd7474-d7be-4d3d-b944-6c1cf6ca09d1"]
}
},
{
"Id": "92e1d006-e274-4880-a275-14f8bd4bb9bd",
"Name": "UI_CHALLENGES_ET_ADONIS_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_adonis_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_ADONIS_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NEWZEALAND",
"ParentLocationId": "LOCATION_PARENT_NEWZEALAND",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["44fd7474-d7be-4d3d-b944-6c1cf6ca09d1"]
}
},
{
"Id": "48c13797-d937-4808-8625-720b94ce9e66",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_NEWZEALAND_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_sheep.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_NEWZEALAND_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NEWZEALAND",
"ParentLocationId": "LOCATION_PARENT_NEWZEALAND",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive", "medium"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
}
]
}
]
}

@ -6333,6 +6333,738 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "b4e7ba05-21e4-4c2a-94da-66604339e9d3",
"Name": "UI_CHALLENGES_ET_MOSCOWMULE_TARGETDOWN_B_NAME",
"ImageName": "images/challenges/elusive_target/et_moscowmule_targetdown_a.jpg",
"Description": "UI_CHALLENGES_ET_MOSCOWMULE_TARGETDOWN_B_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_HOKKAIDO",
"ParentLocationId": "LOCATION_PARENT_HOKKAIDO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": [
"$Value.RepositoryId",
"f4eb50bc-1a58-4487-a568-de5ffe19b7ff"
]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["1c0377f3-6e32-4563-8baf-9677cdb3bb60"]
}
},
{
"Id": "c2b053f3-8bc6-4f93-be5b-53f8bbb1d92e",
"Name": "UI_CHALLENGES_ET_MOSCOWMULE_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_moscowmule_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_MOSCOWMULE_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_HOKKAIDO",
"ParentLocationId": "LOCATION_PARENT_HOKKAIDO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["1c0377f3-6e32-4563-8baf-9677cdb3bb60"]
}
},
{
"Id": "f5a95cfe-94cb-4049-b07d-90f1f7a3e559",
"Name": "UI_CHALLENGES_ET_MOSCOWMULE_TARGETDOWN_A_NAME",
"ImageName": "images/challenges/elusive_target/et_moscowmule_targetdown_b.jpg",
"Description": "UI_CHALLENGES_ET_MOSCOWMULE_TARGETDOWN_A_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_HOKKAIDO",
"ParentLocationId": "LOCATION_PARENT_HOKKAIDO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": [
"$Value.RepositoryId",
"88836cf0-852e-4244-9aa3-90174467b5b1"
]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["1c0377f3-6e32-4563-8baf-9677cdb3bb60"]
}
},
{
"Id": "ef3d5783-d838-48a3-90ee-0e8afbd76877",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_HOKKAIDO_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_hokkaido.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_HOKKAIDO_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": ["TOKEN_OUTFIT_HERO_HOKKAIDOSUIT_ET_ALTERNATIVE"],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_HOKKAIDO",
"ParentLocationId": "LOCATION_PARENT_HOKKAIDO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
},
{
"Id": "14377ce4-e97f-4686-afcd-f9aca53786be",
"Name": "UI_CHALLENGES_ET_DIRTYOCTOPUS_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_dirtyoctopus_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_DIRTYOCTOPUS_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_HOKKAIDO",
"ParentLocationId": "LOCATION_PARENT_HOKKAIDO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["deace35f-ab6d-44c9-b1a6-98757e854f74"]
}
},
{
"Id": "c14a4341-925c-4d55-9744-244c8926da89",
"Name": "UI_CHALLENGES_ET_DIRTYOCTOPUS_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_dirtyoctopus_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_DIRTYOCTOPUS_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_HOKKAIDO",
"ParentLocationId": "LOCATION_PARENT_HOKKAIDO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Scope": "session",
"Context": {
"KilledActors": [],
"Targets": []
},
"States": {
"Start": {
"TargetPicked": [
{
"Actions": {
"$pushunique": [
"Targets",
"$Value.RepositoryId"
]
},
"Transition": "TargetPicked"
}
]
},
"TargetPicked": {
"Kill": [
{
"Actions": {
"$pushunique": [
"KilledActors",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$all": {
"in": "$.Targets",
"?": {
"$any": {
"in": "$.KilledActors",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
},
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["deace35f-ab6d-44c9-b1a6-98757e854f74"]
}
},
{
"Id": "ef3d5783-d838-48a3-90ee-0e8afbd76877",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_HOKKAIDO_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_hokkaido.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_HOKKAIDO_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": ["TOKEN_OUTFIT_HERO_HOKKAIDOSUIT_ET_ALTERNATIVE"],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_HOKKAIDO",
"ParentLocationId": "LOCATION_PARENT_HOKKAIDO",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
}
]
}
]
}

@ -17,6 +17,23 @@
"Bricks": [
"assembly:/_pro/scenes/missions/marrakesh/mission_marrakesh_hottoddy.brick"
],
"VR": [
{
"Quality": "base",
"Bricks": [
"assembly:/_pro/Scenes/Bricks/vr_setup.brick",
"assembly:/_PRO/Scenes/missions/marrakesh/vr_overrides_spider.brick",
"assembly:/_PRO/scenes/missions/marrakesh/vr_overrides_ps4perf.brick"
]
},
{
"Quality": "better",
"Bricks": [
"assembly:/_pro/Scenes/Bricks/vr_setup.brick",
"assembly:/_PRO/Scenes/missions/marrakesh/vr_overrides_spider.brick"
]
}
],
"GameChangers": []
},
"Metadata": {
@ -25,6 +42,7 @@
"Description": "UI_CONTRACT_HOTTODDY_DESC",
"BriefingVideo": "briefing_hottoddy",
"DebriefingVideo": "debriefing_hottoddy",
"CodeName_Hint": "HotToddy",
"Location": "LOCATION_MARRAKECH",
"ScenePath": "assembly:/_pro/scenes/missions/marrakesh/_scene_spider.entity",
"TileImage": "images/contracts/elusive/037_HotToddy/Title.jpg",

File diff suppressed because it is too large Load Diff

@ -5166,6 +5166,553 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "637d874b-8f8e-4403-bee4-82162ef8e5e1",
"Name": "UI_CHALLENGES_ET_JOCKEYCLUB_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_jockeyclub_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_JOCKEYCLUB_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_ELEGANT_LLAMA",
"ParentLocationId": "LOCATION_PARENT_ELEGANT",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["d030216e-a8d6-4446-a1f6-2fc1a2461464"]
}
},
{
"Id": "e0a38da8-8a67-46eb-aa21-b5b47ded7a0f",
"Name": "UI_CHALLENGES_ET_JOCKEYCLUB_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_jockeyclub_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_JOCKEYCLUB_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_ELEGANT_LLAMA",
"ParentLocationId": "LOCATION_PARENT_ELEGANT",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["d030216e-a8d6-4446-a1f6-2fc1a2461464"]
}
},
{
"Id": "852b89f2-9563-44f6-ba5b-e9e50fa7fd5e",
"Name": "Challenges_ET_Clerico_006",
"ImageName": "images/challenges/elusive_target/et_clerico_targetdown.jpg",
"Description": "Challenges_ET_Clerico_005",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_ELEGANT_LLAMA",
"ParentLocationId": "LOCATION_PARENT_ELEGANT",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["9a36cc55-bfc4-4f8b-99d2-c65cf4de365d"]
}
},
{
"Id": "eae0d377-d006-4490-b48a-901b5649cedc",
"Name": "Challenges_ET_Clerico_008",
"ImageName": "images/challenges/elusive_target/et_clerico_silentassassin.jpg",
"Description": "Challenges_ET_Clerico_007",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_ELEGANT_LLAMA",
"ParentLocationId": "LOCATION_PARENT_ELEGANT",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["9a36cc55-bfc4-4f8b-99d2-c65cf4de365d"]
}
}
]
}
]
}

@ -6291,6 +6291,603 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Description": "UI_CHALLENGES_ET_SAMBUCA_TARGETDOWN_DESC",
"DifficultyLevels": [],
"Drops": [],
"HideProgression": false,
"Icon": "elusive",
"Id": "d64736bf-2796-4365-b23e-e14303dde23b",
"ImageName": "images/challenges/elusive_target/et_sambuca_targetdown.jpg",
"InclusionData": {
"ContractIds": ["06a58b66-56f4-45c3-ba1b-d03998212289"]
},
"IsLocked": false,
"IsPlayable": false,
"LocationId": "LOCATION_MIAMI",
"Name": "UI_CHALLENGES_ET_SAMBUCA_TARGETDOWN_NAME",
"OrderIndex": 10000,
"ParentLocationId": "LOCATION_PARENT_MIAMI",
"Rewards": {
"MasteryXP": 2000
},
"RuntimeType": "Hit",
"Tags": ["story", "medium", "elusive"],
"Type": "contract",
"XpModifier": {}
},
{
"Id": "4e525882-fd1d-40bb-b721-4d43c35150c9",
"Name": "UI_CHALLENGES_ET_SAMBUCA_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_sambuca_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_SAMBUCA_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_MIAMI",
"ParentLocationId": "LOCATION_PARENT_MIAMI",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["06a58b66-56f4-45c3-ba1b-d03998212289"]
}
},
{
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Description": "UI_CHALLENGES_ET_SAMBUCA2_TARGETDOWN_DESC",
"DifficultyLevels": [],
"Drops": [],
"HideProgression": false,
"Icon": "elusive",
"Id": "cf799051-47ee-46fa-b957-6989533fc4e8",
"ImageName": "images/challenges/elusive_target/et_sambuca2_targetdown.jpg",
"InclusionData": {
"ContractIds": ["ecf353e8-3dd8-4958-b255-f963926aea51"]
},
"IsLocked": false,
"IsPlayable": false,
"LocationId": "LOCATION_MIAMI",
"Name": "UI_CHALLENGES_ET_SAMBUCA2_TARGETDOWN_NAME",
"OrderIndex": 10000,
"ParentLocationId": "LOCATION_PARENT_MIAMI",
"Rewards": {
"MasteryXP": 2000
},
"RuntimeType": "Hit",
"Tags": ["story", "medium", "elusive"],
"Type": "contract",
"XpModifier": {}
},
{
"Id": "a10c02c8-86b1-4565-b691-3142e8a27cd6",
"Name": "UI_CHALLENGES_ET_SAMBUCA2_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_sambuca2_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_SAMBUCA2_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_MIAMI",
"ParentLocationId": "LOCATION_PARENT_MIAMI",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["ecf353e8-3dd8-4958-b255-f963926aea51"]
}
},
{
"Id": "85162cf4-0929-4541-9247-08a8c8a717b1",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_MIAMI_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_miami.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_MIAMI_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_MIAMI",
"ParentLocationId": "LOCATION_PARENT_MIAMI",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
}
]
}
]
}

File diff suppressed because it is too large Load Diff

@ -6052,6 +6052,334 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "140f1084-a489-4356-b49c-e555ade4cd5a",
"Name": "UI_CHALLENGES_ET_HIGHBALL_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_highball_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_HIGHBALL_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_COLOMBIA",
"ParentLocationId": "LOCATION_PARENT_COLOMBIA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["654685ab-d52d-49cb-815d-f98ee00454d3"]
}
},
{
"Id": "6becf34c-96ce-43ba-9977-e1302daec74c",
"Name": "UI_CHALLENGES_ET_HIGHBALL_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_highball_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_HIGHBALL_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_COLOMBIA",
"ParentLocationId": "LOCATION_PARENT_COLOMBIA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["654685ab-d52d-49cb-815d-f98ee00454d3"]
}
},
{
"Id": "bbe16ff6-77df-4b9e-811e-29fa86e5fd44",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_COLUMBIA_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_hippo.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_COLUMBIA_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": ["TOKEN_OUTFIT_HIPPO_ELUSIVE_SUIT"],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_COLOMBIA",
"ParentLocationId": "LOCATION_PARENT_COLOMBIA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
}
]
}
]
}

File diff suppressed because it is too large Load Diff

@ -4022,6 +4022,653 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "10e2a267-433e-4f80-b624-11c76833f9bf",
"Name": "UI_CHALLENGES_ET_GOLDENDOUBLET_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_goldendoublet_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_GOLDENDOUBLET_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NORTHSEA",
"ParentLocationId": "LOCATION_PARENT_NORTHSEA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["263eca3d-d25d-40ce-ba0a-48a221cd0b9e"]
}
},
{
"Id": "6860fed5-96af-4658-8637-ae958e71b040",
"Name": "UI_CHALLENGES_ET_GOLDENDOUBLET_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_goldendoublet_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_GOLDENDOUBLET_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NORTHSEA",
"ParentLocationId": "LOCATION_PARENT_NORTHSEA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["263eca3d-d25d-40ce-ba0a-48a221cd0b9e"]
}
},
{
"Id": "ba8cd104-b198-41e3-acba-f560f396dd97",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_NORTHSEA_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_magpie.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_NORTHSEA_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": ["TOKEN_OUTFIT_MAGPIE_ELUSIVE_SUIT"],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NORTHSEA",
"ParentLocationId": "LOCATION_PARENT_NORTHSEA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
},
{
"Id": "67240666-0c1f-4ebf-979f-399bb70ab8f6",
"Name": "UI_CHALLENGES_ET_SKITTLEBOMB_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_skittlebomb_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_SKITTLEBOMB_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NORTHSEA",
"ParentLocationId": "LOCATION_PARENT_NORTHSEA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["cbc86bed-51ce-4699-89d4-0ded8f200cbc"]
}
},
{
"Id": "cc4e642f-4257-4a72-9f0a-84d040124f79",
"Name": "UI_CHALLENGES_ET_SKITTLEBOMB_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_skittlebomb_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_SKITTLEBOMB_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NORTHSEA",
"ParentLocationId": "LOCATION_PARENT_NORTHSEA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["cbc86bed-51ce-4699-89d4-0ded8f200cbc"]
}
},
{
"Id": "ba8cd104-b198-41e3-acba-f560f396dd97",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_NORTHSEA_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_magpie.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_NORTHSEA_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": ["TOKEN_OUTFIT_MAGPIE_ELUSIVE_SUIT"],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NORTHSEA",
"ParentLocationId": "LOCATION_PARENT_NORTHSEA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
}
]
}
]
}

@ -6477,6 +6477,334 @@
}
}
]
},
{
"Name": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Image": "images/challenges/categories/elusive/tile.jpg",
"Icon": "elusive",
"CategoryId": "elusive",
"Description": "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
"Challenges": [
{
"Id": "01932f19-54d4-4437-a62c-07e828ae7ead",
"Name": "UI_CHALLENGES_ET_ALABAMASLAMMER_TARGETDOWN_NAME",
"ImageName": "images/challenges/elusive_target/et_alabamaslammer_targetdown.jpg",
"Description": "UI_CHALLENGES_ET_ALABAMASLAMMER_TARGETDOWN_DESC",
"Rewards": {
"MasteryXP": 2000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NORTHAMERICA",
"ParentLocationId": "LOCATION_PARENT_NORTHAMERICA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"Kill": {
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Transition": "Success"
}
}
}
},
"Tags": ["story", "medium", "elusive"],
"InclusionData": {
"ContractIds": ["9f5b8d74-1f70-49ea-94e2-21d2de3e5cf3"]
}
},
{
"Id": "632fd3a1-47ca-4681-941e-1e58628b46b5",
"Name": "UI_CHALLENGES_ET_ALABAMASLAMMER_SILENT_ASSASSIN_NAME",
"ImageName": "images/challenges/elusive_target/et_alabamaslammer_silentassassin.jpg",
"Description": "UI_CHALLENGES_ET_ALABAMASLAMMER_SILENT_ASSASSIN_DESC",
"Rewards": {
"MasteryXP": 4000
},
"Drops": [],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NORTHAMERICA",
"ParentLocationId": "LOCATION_PARENT_NORTHAMERICA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {
"Witnesses": [],
"KilledTargets": [],
"RecordingDestroyed": true,
"LastAccidentTime": 0
},
"Scope": "session",
"States": {
"Start": {
"ContractEnd": {
"Condition": {
"$and": [
{
"$eq": [
true,
"$.RecordingDestroyed"
]
},
{
"$all": {
"in": "$.Witnesses",
"?": {
"$any": {
"in": "$.KilledTargets",
"?": {
"$eq": [
"$.#",
"$.##"
]
}
}
}
}
}
]
},
"Transition": "Success"
},
"AccidentBodyFound": {
"$set": ["LastAccidentTime", "$Timestamp"]
},
"Witnesses": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Spotted": {
"Condition": {
"$any": {
"in": "$Value",
"?": {
"$pushunique": [
"Witnesses",
"$.#"
]
}
}
}
},
"Kill": [
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$not": {
"$eq": [
"$Value.KillContext",
1
]
}
}
]
},
"Transition": "Failure"
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsTarget",
false
]
},
{
"$eq": [
"$Value.KillContext",
1
]
}
]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
},
{
"Condition": {
"$eq": ["$Value.IsTarget", true]
},
"Actions": {
"$pushunique": [
"KilledTargets",
"$Value.RepositoryId"
]
}
}
],
"CrowdNPC_Died": {
"Transition": "Failure"
},
"MurderedBodySeen": [
{
"Condition": {
"$eq": [
"$Value.IsWitnessTarget",
true
]
},
"Actions": {
"$pushunique": [
"Witnesses",
"$Value.Witness"
]
}
},
{
"Condition": {
"$and": [
{
"$eq": [
"$Value.IsWitnessTarget",
false
]
},
{
"$not": {
"$eq": [
"$.LastAccidentTime",
"$Timestamp"
]
}
}
]
},
"Transition": "Failure"
}
],
"SecuritySystemRecorder": [
{
"Actions": {
"$set": [
"RecordingDestroyed",
false
]
},
"Condition": {
"$eq": ["$Value.event", "spotted"]
}
},
{
"Actions": {
"$set": ["RecordingDestroyed", true]
},
"Condition": {
"$or": [
{
"$eq": [
"$Value.event",
"erased"
]
},
{
"$eq": [
"$Value.event",
"destroyed"
]
}
]
}
}
]
}
}
},
"Tags": ["story", "hard", "elusive"],
"InclusionData": {
"ContractIds": ["9f5b8d74-1f70-49ea-94e2-21d2de3e5cf3"]
}
},
{
"Id": "a2b3c3c6-148d-4543-a689-177edf391576",
"Name": "UI_CHALLENGES_ELUSIVE_TARGET_NORTHAMERICA_NAME",
"ImageName": "images/challenges/profile_challenges/elusive_target_skunk.jpg",
"Description": "UI_CHALLENGES_ELUSIVE_TARGET_NORTHAMERICA_DESC",
"Rewards": {
"MasteryXP": 0
},
"Drops": ["TOKEN_OUTFIT_NORTHAMERICA_ELUSIVE_SUIT"],
"IsPlayable": false,
"IsLocked": false,
"HideProgression": false,
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
"Icon": "elusive",
"LocationId": "LOCATION_NORTHAMERICA",
"ParentLocationId": "LOCATION_PARENT_NORTHAMERICA",
"Type": "contract",
"DifficultyLevels": [],
"OrderIndex": 10000,
"XpModifier": {},
"RuntimeType": "Hit",
"Definition": {
"Context": {},
"Scope": "session",
"States": {
"Start": {
"ContractStart": {
"Condition": {
"$eq": [
"$Value.ContractType",
"elusive"
]
},
"Transition": "State_ValidContract"
}
},
"State_ValidContract": {
"ContractEnd": [
{
"Transition": "Success"
}
]
}
}
},
"Tags": ["story", "elusive"],
"InclusionData": {
"ContractTypes": ["elusive"]
}
}
]
}
]
}

@ -0,0 +1,730 @@
/*
* The Peacock Project - a HITMAN server replacement.
* Copyright (C) 2021-2023 The Peacock Project Team
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import { writeFile } from "fs/promises"
import pc from "picocolors"
import { Command, Option, runExit } from "clipanion"
import axios from "axios"
import jsonfile from "jsonfile"
import fs from "fs"
import path from "path"
import { randomUUID } from "crypto"
function makeTargetDown(id, codename, parent, sub) {
return {
CategoryName: "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
Definition: {
Context: {},
Scope: "session",
States: {
Start: {
Kill: {
Condition: {
$eq: ["$Value.IsTarget", true],
},
Transition: "Success",
},
},
},
},
Description: `UI_CHALLENGES_ET_${codename.toUpperCase()}_TARGETDOWN_DESC`,
DifficultyLevels: [],
Drops: [],
HideProgression: false,
Icon: "elusive",
Id: randomUUID(),
ImageName: `images/challenges/elusive_target/et_${codename}_targetdown.jpg`,
InclusionData: {
ContractIds: [id],
},
IsLocked: false,
IsPlayable: false,
LocationId: sub,
Name: `UI_CHALLENGES_ET_${codename.toUpperCase()}_TARGETDOWN_NAME`,
OrderIndex: 10000,
ParentLocationId: parent,
Rewards: {
MasteryXP: 2000,
},
RuntimeType: "Hit",
Tags: ["story", "medium", "elusive"],
Type: "contract",
XpModifier: {},
}
}
function makeSA(id, codename, parent, sub) {
return {
Id: randomUUID(),
Name: `UI_CHALLENGES_ET_${codename.toUpperCase()}_SILENT_ASSASSIN_NAME`,
ImageName: `images/challenges/elusive_target/et_${codename}_silentassassin.jpg`,
Description: `UI_CHALLENGES_ET_${codename.toUpperCase()}_SILENT_ASSASSIN_DESC`,
Rewards: {
MasteryXP: 4000,
},
Drops: [],
Definition: {
Context: {
Witnesses: [],
KilledTargets: [],
RecordingDestroyed: true,
LastAccidentTime: 0,
},
Scope: "session",
States: {
Start: {
ContractEnd: {
Condition: {
$and: [
{
$eq: [true, "$.RecordingDestroyed"],
},
{
$all: {
in: "$.Witnesses",
"?": {
$any: {
in: "$.KilledTargets",
"?": {
$eq: ["$.#", "$.##"],
},
},
},
},
},
],
},
Transition: "Success",
},
AccidentBodyFound: {
$set: ["LastAccidentTime", "$Timestamp"],
},
Witnesses: {
Condition: {
$any: {
in: "$Value",
"?": {
$pushunique: ["Witnesses", "$.#"],
},
},
},
},
Spotted: {
Condition: {
$any: {
in: "$Value",
"?": {
$pushunique: ["Witnesses", "$.#"],
},
},
},
},
Kill: [
{
Condition: {
$and: [
{
$eq: ["$Value.IsTarget", false],
},
{
$not: {
$eq: ["$Value.KillContext", 1],
},
},
],
},
Transition: "Failure",
},
{
Condition: {
$and: [
{
$eq: ["$Value.IsTarget", false],
},
{
$eq: ["$Value.KillContext", 1],
},
],
},
Actions: {
$pushunique: [
"KilledTargets",
"$Value.RepositoryId",
],
},
},
{
Condition: {
$eq: ["$Value.IsTarget", true],
},
Actions: {
$pushunique: [
"KilledTargets",
"$Value.RepositoryId",
],
},
},
],
CrowdNPC_Died: {
Transition: "Failure",
},
MurderedBodySeen: [
{
Condition: {
$eq: ["$Value.IsWitnessTarget", true],
},
Actions: {
$pushunique: ["Witnesses", "$Value.Witness"],
},
},
{
Condition: {
$and: [
{
$eq: ["$Value.IsWitnessTarget", false],
},
{
$not: {
$eq: [
"$.LastAccidentTime",
"$Timestamp",
],
},
},
],
},
Transition: "Failure",
},
],
SecuritySystemRecorder: [
{
Actions: {
$set: ["RecordingDestroyed", false],
},
Condition: {
$eq: ["$Value.event", "spotted"],
},
},
{
Actions: {
$set: ["RecordingDestroyed", true],
},
Condition: {
$or: [
{
$eq: ["$Value.event", "erased"],
},
{
$eq: ["$Value.event", "destroyed"],
},
],
},
},
],
},
},
},
IsPlayable: false,
IsLocked: false,
HideProgression: false,
CategoryName: "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
Icon: "elusive",
LocationId: sub,
ParentLocationId: parent,
Type: "contract",
DifficultyLevels: [],
OrderIndex: 10000,
XpModifier: {},
RuntimeType: "Hit",
Tags: ["story", "hard", "elusive"],
InclusionData: {
ContractIds: [id],
},
}
}
const year2Lookup = {
"b0bed170-8652-4188-8b9a-92caf9f97e5b":
"507b8b04-8b93-4420-84d1-c0c3a5ce56c3",
"550c4d75-ca87-4be7-a18e-caf30e6c8136":
"8043a9b9-8ba6-453d-83f8-aa507c5a1c08",
"1c0377f3-6e32-4563-8baf-9677cdb3bb60":
"d036c429-96c1-4305-800c-979cc90cf603",
"0d938ef9-05c7-4eb8-89cc-ae79b73c6992":
"81e01a84-7c7f-4967-a4e6-a5450c5cf274",
"8813e0a4-08ac-494f-a847-687a2da3582f":
"7ec7dbdb-ea38-4ae1-84a4-82ce5966c198",
"158b600a-6448-45d3-907f-77351b9656ee":
"043585fa-455f-481c-aa0a-8d31d063b93a",
"b555d6a4-8b4d-4e1e-b6bd-ebd135ad1e01":
"8045afb9-2b97-4c5d-a1c2-cf4d40edf734",
"263eca3d-d25d-40ce-ba0a-48a221cd0b9e":
"5f62f7ce-23b6-435b-87ba-aef567ed9d60",
}
const notInH3 = [
// PARIS
"13680605-83ed-4b8c-a44d-30cc5b4fb17a",
"a9d93d2a-c541-49ab-8ba1-9e345cf7e806",
"16d78245-5392-413c-b3db-989d6685c32a",
"92a87b10-a230-4986-bb35-06f16e84b11f",
"5dc115d3-e5d4-4023-a11a-27c6f7194bea",
"0fea5e55-9aec-41ef-9e5b-4e5e5f536f82",
// COASTAL TOWN
"ff188c8b-e1eb-4c59-af75-6b6fe3da5955",
"0fd17346-bcb4-4bcc-acc3-5e1b6b184ef4",
"8f13ea71-b207-4955-9eb8-ede757f3baa6",
"0dc242ce-084e-4f6d-980f-e65885cd6955",
// MARRAKESH
"ad549098-eb3d-4132-8ef8-fe77c6afbbaa",
"c3c7126e-32cd-4502-b5ce-90b5ae436806",
"3716b654-a42c-45df-9db9-61795a6a3e46",
// BANGKOK
"87f8293a-29cd-4cb1-ade7-dd6bb056d38e",
// MIAMI
"06a58b66-56f4-45c3-ba1b-d03998212289",
"ecf353e8-3dd8-4958-b255-f963926aea51",
]
const contractIds = {
LOCATION_PARENT_PARIS: [
"8813e0a4-08ac-494f-a847-687a2da3582f",
"158b600a-6448-45d3-907f-77351b9656ee",
"2b928d67-c244-4601-bafb-7af664fb17bb",
"13680605-83ed-4b8c-a44d-30cc5b4fb17a",
"a9d93d2a-c541-49ab-8ba1-9e345cf7e806",
"16d78245-5392-413c-b3db-989d6685c32a",
"92a87b10-a230-4986-bb35-06f16e84b11f",
"5dc115d3-e5d4-4023-a11a-27c6f7194bea",
"0fea5e55-9aec-41ef-9e5b-4e5e5f536f82",
],
LOCATION_PARENT_COASTALTOWN: [
"ff188c8b-e1eb-4c59-af75-6b6fe3da5955",
"0fd17346-bcb4-4bcc-acc3-5e1b6b184ef4",
"8f13ea71-b207-4955-9eb8-ede757f3baa6",
"0dc242ce-084e-4f6d-980f-e65885cd6955",
"e87217e3-4809-4855-80d5-74bed66be58d",
"b555d6a4-8b4d-4e1e-b6bd-ebd135ad1e01",
"8462b2e5-4d34-4300-896f-fe1dc98fa877",
],
LOCATION_PARENT_MARRAKECH: [
"ad549098-eb3d-4132-8ef8-fe77c6afbbaa",
"c3c7126e-32cd-4502-b5ce-90b5ae436806",
"3716b654-a42c-45df-9db9-61795a6a3e46",
"2e2c3f33-92ad-412f-a351-b7267697ff70",
"0d938ef9-05c7-4eb8-89cc-ae79b73c6992",
],
LOCATION_PARENT_BANGKOK: [
"b0bed170-8652-4188-8b9a-92caf9f97e5b",
"b0b8995c-7b3f-4fa6-91a2-be4bc8edc046",
"87f8293a-29cd-4cb1-ade7-dd6bb056d38e",
],
LOCATION_PARENT_COLORADO: [
"550c4d75-ca87-4be7-a18e-caf30e6c8136",
"655c5a57-69d1-48b6-a14b-2ae396c16174",
],
LOCATION_PARENT_HOKKAIDO: [
"1c0377f3-6e32-4563-8baf-9677cdb3bb60",
"deace35f-ab6d-44c9-b1a6-98757e854f74",
],
LOCATION_PARENT_NEWZEALAND: ["44fd7474-d7be-4d3d-b944-6c1cf6ca09d1"],
LOCATION_PARENT_MIAMI: [
"06a58b66-56f4-45c3-ba1b-d03998212289",
"ecf353e8-3dd8-4958-b255-f963926aea51",
],
LOCATION_PARENT_COLOMBIA: ["654685ab-d52d-49cb-815d-f98ee00454d3"],
LOCATION_PARENT_NORTHAMERICA: ["9f5b8d74-1f70-49ea-94e2-21d2de3e5cf3"],
LOCATION_PARENT_NORTHSEA: [
"263eca3d-d25d-40ce-ba0a-48a221cd0b9e",
"cbc86bed-51ce-4699-89d4-0ded8f200cbc",
],
LOCATION_PARENT_GOLDEN: ["b2c0251e-1803-4e12-b860-b9fa6ce5c004"],
LOCATION_PARENT_ANCESTRAL: [
"92951377-419d-4c31-aa21-2a3f03ef82d0",
"1fcaff1b-7fa3-4b9f-a586-9c7a1689b48d",
],
LOCATION_PARENT_EDGY: ["3f0b8f19-d5d4-4611-ac8f-480f81c18f54"],
LOCATION_PARENT_WET: ["6fad7901-279f-45df-ab8d-087a3cb06dcc"],
LOCATION_PARENT_ELEGANT: [
"d030216e-a8d6-4446-a1f6-2fc1a2461464",
"9a36cc55-bfc4-4f8b-99d2-c65cf4de365d",
],
}
const contractDataPath = "./contractdata"
/**
* @param {import("axios").AxiosInstance} axiosClient
* @param {string} contractId
* @returns {Promise<*>}
*/
async function fetchContractCAndPFromIOI(axiosClient, contractId) {
if (notInH3.includes(contractId)) {
return []
}
// if the contract id is in the lookup table, use the lookup value instead
contractId = year2Lookup[contractId] ?? contractId
console.log(`${pc.blue`Fetching contract`} ${contractId}...`)
const { data } = await axiosClient.post(
"/authentication/api/userchannel/ChallengesService/GetActiveChallengesAndProgression",
{
contractId,
difficultyLevel: 2,
},
)
return data
}
/**
* @param {import("axios").AxiosInstance} axiosClient
* @param {string} locationId
* @returns {Promise<*>}
*/
async function fetchContract(axiosClient, contractId) {
if (notInH3.includes(contractId)) {
return []
}
contractId = year2Lookup[contractId] ?? contractId
console.log(`Fetching contract planning ${contractId}...`)
const resp = await axiosClient.get(
`/profiles/page/Planning?contractid=${contractId}&resetescalation=false&forcecurrentcontract=false`,
{},
)
return resp.data.data.ChallengeData.Children
}
/**
* @param {string} locationParent
* @param {string} jwt
* @param {string} apiUrl
* @returns {Promise<string>}
*/
async function extract(locationParent, jwt, apiUrl) {
const httpClient = axios.create({
baseURL: `https://${apiUrl}/`,
headers: {
"User-Agent": "G2 Http/1.0 (Windows NT 10.0; DX12/1; d3d12/1)",
"Content-Type": "application/json",
Accept: "application/json, text/*, image/*, application/json",
Version: "8.9.0",
Authorization: `bearer ${jwt}`,
},
})
console.log(
`Fetching destination ${locationParent} from ${pc.underline(
apiUrl,
)}...`,
)
const missionIds = contractIds[locationParent]
const planningsData = await Promise.all(
missionIds.map(async (id) => {
return await fetchContract(httpClient, id)
}),
)
const missions = await Promise.all(
missionIds.map(async (id) => {
return await fetchContractCAndPFromIOI(httpClient, id)
}),
)
let challengeObjects = []
const group = {
Name: "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_ELUSIVE",
Image: "images/challenges/categories/elusive/tile.jpg",
Icon: "elusive",
CategoryId: "elusive",
Description: "UI_MENU_PAGE_CHALLENGE_CATEGORY_DESCRIPTION_ELUSIVE",
Challenges: challengeObjects,
}
/**
* @type {SavedChallengeGroup[]}
*/
const idToRuntimeExtras = {}
// read runtime files
for (const singleChallengesProgResult of missions) {
for (const challenge of singleChallengesProgResult) {
const {
Type,
Definition,
InclusionData,
Tags,
XpModifier,
Id,
GroupId,
} = challenge.Challenge
idToRuntimeExtras[Id] = {
XpModifier: XpModifier || {},
RuntimeType: Type,
Definition,
Tags,
GroupId,
InclusionData,
}
}
}
//list of list of challenges
const ETchals = planningsData.map(
(single) =>
single.find((g) => g.CategoryId === "elusive")?.SwitchData.Data
.Challenges ?? [],
)
for (let i = 0; i < ETchals.length; i++) {
const groupChallenges = ETchals[i]
if (groupChallenges.length === 0) {
const contractId = missionIds[i]
const metadata = await findMetadataByContractId(contractId)
const codename = metadata.CodeName_Hint.toLowerCase()
const sub = metadata.Location
challengeObjects.push(
makeTargetDown(contractId, codename, locationParent, sub),
)
challengeObjects.push(
makeSA(contractId, codename, locationParent, sub),
)
}
for (let fullPlanningChallenge of groupChallenges) {
const shortName = fullPlanningChallenge.Name.replace(
"UI_CHALLENGES_",
"",
)
if (fullPlanningChallenge.Type !== "global") {
console.log(
` - ${shortName} ${pc.yellow("is not global (skipping)")}`,
)
continue
} else {
console.log(
` - Adding ${pc.blue(shortName)} to ${pc.magenta(
group.CategoryId,
)}`,
)
}
fullPlanningChallenge.Drops = fullPlanningChallenge.Drops.map(
(e) => e.Id,
)
fullPlanningChallenge = {
...fullPlanningChallenge,
...idToRuntimeExtras[fullPlanningChallenge.Id],
}
fullPlanningChallenge.InclusionData ??= {}
const compare = year2Lookup[missionIds[i]] ?? missionIds[i]
if (fullPlanningChallenge.GroupId === compare) {
const contractId = missionIds[i]
if (
!(
fullPlanningChallenge.InclusionData?.ContractIds || []
).includes(contractId)
) {
fullPlanningChallenge.InclusionData.ContractIds ??= []
fullPlanningChallenge.InclusionData.ContractIds.push(
contractId,
)
}
} else {
if (
!(
fullPlanningChallenge.InclusionData?.ContractTypes || []
).includes("elusive")
) {
fullPlanningChallenge.InclusionData.ContractTypes ??= []
fullPlanningChallenge.InclusionData.ContractTypes.push(
"elusive",
)
}
}
fullPlanningChallenge.CompletionData = undefined
fullPlanningChallenge.Completed = undefined
fullPlanningChallenge.ChallengeProgress = undefined
fullPlanningChallenge.UserCentricContract = undefined
delete fullPlanningChallenge.GroupId
challengeObjects.push(fullPlanningChallenge)
}
}
const uniqueObjects = challengeObjects.filter((object, index) => {
const lastIndex = challengeObjects.findIndex(
(otherObject, otherIndex) =>
otherIndex < index && otherObject.Id === object.Id,
)
return lastIndex === -1
})
challengeObjects = uniqueObjects
console.log(`Compiled ${pc.green(challengeObjects.length)} challenges`)
return group
}
class ExtractChallengeDataCommand extends Command {
outFile = Option.String("--out-file", "result.json")
jwt = Option.String("--jwt", { required: true })
locationParent = Option.String("--location-parent", { required: true })
// https://youtrack.jetbrains.com/issue/WEB-56917
// noinspection JSCheckFunctionSignatures
apiUrl = Option.String("--api-url", "hm3-service.hitman.io")
static usage = Command.Usage({
category: `Challenges`,
description: `Extracts challenge data into the Peacock challenge format.`,
details: ``,
examples: [
[
`Basic usage`,
`$0 --location-parent LOCATION_PARENT_PARIS --jwt someJsonWebToken`,
],
[
`With API URL`,
`$0 --location-parent LOCATION_PARENT_PARIS --jwt someJsonWebToken --api-url pc2-service.hitman.io`,
],
],
})
async execute() {
if (this.locationParent === "ALL") {
for (const location in contractIds) {
const etGroup = await extract(location, this.jwt, this.apiUrl)
appendGroupToChallenge(location, etGroup)
}
} else {
const data = JSON.stringify(
{
meta: {
Location: this.locationParent,
},
groups: [
await extract(
this.locationParent,
this.jwt,
this.apiUrl,
),
],
},
undefined,
4,
)
await writeFile(this.outFile, data)
}
}
}
// https://youtrack.jetbrains.com/issue/WEB-56917
// noinspection JSCheckFunctionSignatures
await runExit(
{
binaryName: "extractChallengeData.mjs",
},
ExtractChallengeDataCommand,
)
function findMetadataWithId(metadata, id) {
if (metadata && metadata.Id === id) {
return metadata
}
for (const key in metadata) {
const value = metadata[key]
if (typeof value === "object") {
const result = findMetadataWithId(value, id)
if (result) {
return result
}
}
}
return null
}
async function findMetadataByContractId(contractId) {
const files = await fs.promises.readdir(contractDataPath, {
withFileTypes: true,
})
const metadata = {}
for (const file of files) {
if (file.isDirectory()) {
const subfiles = await fs.promises.readdir(
path.join(contractDataPath, file.name),
{ withFileTypes: true },
)
for (const subfile of subfiles) {
if (subfile.isFile() && subfile.name.endsWith(".json")) {
const filepath = path.join(
contractDataPath,
file.name,
subfile.name,
)
try {
const data = await jsonfile.readFile(filepath)
const foundMetadata = findMetadataWithId(
data.Metadata,
contractId,
)
if (foundMetadata) {
return foundMetadata
}
} catch (error) {
console.error(
`Error reading file ${filepath}: ${error}`,
)
}
}
}
}
}
return metadata
}
function appendGroupToChallenge(parent, group) {
const folderPath = "./contractdata"
const subFolders = fs
.readdirSync(folderPath, { withFileTypes: true })
.filter((dirent) => dirent.isDirectory())
.map((dirent) => dirent.name)
for (const subFolder of subFolders) {
const filePath = path.join(
folderPath,
subFolder,
`_${subFolder}_CHALLENGES.json`,
)
if (fs.existsSync(filePath)) {
const fileContent = fs.readFileSync(filePath, "utf-8")
const challenge = JSON.parse(fileContent)
if (challenge.meta.Location === parent) {
challenge.groups.push(group)
fs.writeFileSync(filePath, JSON.stringify(challenge, null, 2))
}
}
}
}