mirror of
https://github.com/thepeacockproject/Peacock
synced 2025-03-14 12:54:28 +01:00
Add Elusive Target challenges on H3 (#192)
* 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:
parent
1d8cb6d128
commit
7f74ac7380
components
contractdata
BANGKOK
BERLIN
CHONGQING
COLORADO
DARTMOOR
DUBAI
GLOBAL
HAWKESBAY
HOKKAIDO
MARRAKESH
MENDOZA
MIAMI
PARIS
SANTAFORTUNA
SAPIENZA
SGAIL
WHITTLETON
packaging
@ -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"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
1179
contractdata/GLOBAL/_ELUSIVES_CHALLENGES.json
Normal file
1179
contractdata/GLOBAL/_ELUSIVES_CHALLENGES.json
Normal file
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"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
730
packaging/extractElusivesChallengeData.mjs
Normal file
730
packaging/extractElusivesChallengeData.mjs
Normal file
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user