Skip to content

Commit 8fe8020

Browse files
feat: Quintuple Trouble & Back to Basics challenges (#707)
<!-- Thanks for contributing to Peacock! Here's a bit of a template to help make sure everything relevant is covered. --> ## Scope Added two sniper-related challenges from official Season of Patient Zero Requiem. ## Test Plan The challenges run. ## Checklist <!-- Once you create the PR, the checklist will be added below this comment automatically (based on what files you've changed). It's just a few reminders to make sure everything is perfect. You can place an "X" in the boxes to tick them off. When you have completed the checklist, press the "Ready for review" button. --> -------- #### General - [x] I've run Prettier to format any changed files - [x] I've verified that my changes work, and included a test plan -------- #### Escalations - [x] Any new escalations added follow the [escalation guidelines](https://github.com/thepeacockproject/Peacock/blob/master/docs/ESCALATION_GUIDELINES.md)
2 parents ab98947 + 9177d22 commit 8fe8020

2 files changed

Lines changed: 358 additions & 0 deletions

File tree

contractdata/GLOBAL/_CLASSICS_CHALLENGES.json

Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1424,6 +1424,294 @@
14241424
"Locations": null,
14251425
"GameModes": null
14261426
}
1427+
},
1428+
{
1429+
"Id": "9dfb86e2-3421-45bb-b866-26b59e749d33",
1430+
"Name": "UI_CHALLENGES_CLASSIC_BACKTOBASICS_SNIPER_NAME",
1431+
"ImageName": "images/challenges/profile_challenges/classics_backtobasicssniper.jpg",
1432+
"Description": "UI_CHALLENGES_CLASSIC_BACKTOBASICS_SNIPER_DESC",
1433+
"Rewards": {
1434+
"MasteryXP": 0
1435+
},
1436+
"Drops": ["PROP_CONTAINER_SUITCASE_SNIPERCASE_ICA"],
1437+
"IsPlayable": false,
1438+
"IsLocked": false,
1439+
"HideProgression": false,
1440+
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_CLASSIC",
1441+
"Icon": "profile",
1442+
"LocationId": "",
1443+
"ParentLocationId": "",
1444+
"Type": "global",
1445+
"DifficultyLevels": [],
1446+
"OrderIndex": 80301,
1447+
"XpModifier": {},
1448+
"RuntimeType": "Hit",
1449+
"Definition": {
1450+
"Context": {
1451+
"Witnesses": [],
1452+
"Targets": [],
1453+
"RecordingDestroyed": true,
1454+
"LastAccidentTime": 0
1455+
},
1456+
"Scope": "session",
1457+
"States": {
1458+
"Start": {
1459+
"ContractEnd": {
1460+
"Condition": {
1461+
"$and": [
1462+
{
1463+
"$eq": [
1464+
true,
1465+
"$.RecordingDestroyed"
1466+
]
1467+
},
1468+
{
1469+
"$all": {
1470+
"in": "$.Witnesses",
1471+
"?": {
1472+
"$any": {
1473+
"in": "$.Targets",
1474+
"?": {
1475+
"$eq": [
1476+
"$.#",
1477+
"$.##"
1478+
]
1479+
}
1480+
}
1481+
}
1482+
}
1483+
}
1484+
]
1485+
},
1486+
"Transition": "Success"
1487+
},
1488+
"AccidentBodyFound": {
1489+
"$set": ["LastAccidentTime", "$Timestamp"]
1490+
},
1491+
"Witnesses": {
1492+
"Condition": {
1493+
"$any": {
1494+
"in": "$Value",
1495+
"?": {
1496+
"$pushunique": [
1497+
"Witnesses",
1498+
"$.#"
1499+
]
1500+
}
1501+
}
1502+
}
1503+
},
1504+
"Spotted": {
1505+
"Condition": {
1506+
"$any": {
1507+
"in": "$Value",
1508+
"?": {
1509+
"$pushunique": [
1510+
"Witnesses",
1511+
"$.#"
1512+
]
1513+
}
1514+
}
1515+
}
1516+
},
1517+
"ContractStart": [
1518+
{
1519+
"Condition": {
1520+
"$eq": [
1521+
"$Value.IsHitmanSuit",
1522+
false
1523+
]
1524+
},
1525+
"Transition": "Failure"
1526+
}
1527+
],
1528+
"Kill": [
1529+
{
1530+
"Condition": {
1531+
"$and": [
1532+
{
1533+
"$eq": [
1534+
"$Value.IsTarget",
1535+
false
1536+
]
1537+
},
1538+
{
1539+
"$not": {
1540+
"$eq": [
1541+
"$Value.KillContext",
1542+
1
1543+
]
1544+
}
1545+
}
1546+
]
1547+
},
1548+
"Transition": "Failure"
1549+
},
1550+
{
1551+
"Condition": {
1552+
"$and": [
1553+
{
1554+
"$eq": [
1555+
"$Value.IsTarget",
1556+
false
1557+
]
1558+
},
1559+
{
1560+
"$eq": [
1561+
"$Value.KillContext",
1562+
1
1563+
]
1564+
}
1565+
]
1566+
},
1567+
"Actions": {
1568+
"$pushunique": [
1569+
"Targets",
1570+
"$Value.RepositoryId"
1571+
]
1572+
}
1573+
},
1574+
{
1575+
"Condition": {
1576+
"$and": [
1577+
{
1578+
"$eq": [
1579+
"$Value.IsTarget",
1580+
true
1581+
]
1582+
},
1583+
{
1584+
"$not": {
1585+
"$eq": [
1586+
"$Value.KillItemCategory",
1587+
"sniperrifle"
1588+
]
1589+
}
1590+
}
1591+
]
1592+
},
1593+
"Transition": "Failure"
1594+
},
1595+
{
1596+
"Condition": {
1597+
"$eq": ["$Value.IsTarget", true]
1598+
},
1599+
"Actions": {
1600+
"$pushunique": [
1601+
"Targets",
1602+
"$Value.RepositoryId"
1603+
]
1604+
}
1605+
}
1606+
],
1607+
"CrowdNPC_Died": {
1608+
"Transition": "Failure"
1609+
},
1610+
"MurderedBodySeen": [
1611+
{
1612+
"Condition": {
1613+
"$eq": [
1614+
"$Value.IsWitnessTarget",
1615+
true
1616+
]
1617+
},
1618+
"Actions": {
1619+
"$pushunique": [
1620+
"Witnesses",
1621+
"$Value.Witness"
1622+
]
1623+
}
1624+
},
1625+
{
1626+
"Condition": {
1627+
"$and": [
1628+
{
1629+
"$eq": [
1630+
"$Value.IsWitnessTarget",
1631+
false
1632+
]
1633+
},
1634+
{
1635+
"$not": {
1636+
"$eq": [
1637+
"$.LastAccidentTime",
1638+
"$Timestamp"
1639+
]
1640+
}
1641+
}
1642+
]
1643+
},
1644+
"Transition": "Failure"
1645+
}
1646+
],
1647+
"SecuritySystemRecorder": [
1648+
{
1649+
"Actions": {
1650+
"$set": [
1651+
"RecordingDestroyed",
1652+
false
1653+
]
1654+
},
1655+
"Condition": {
1656+
"$eq": ["$Value.event", "spotted"]
1657+
}
1658+
},
1659+
{
1660+
"Actions": {
1661+
"$set": ["RecordingDestroyed", true]
1662+
},
1663+
"Condition": {
1664+
"$or": [
1665+
{
1666+
"$eq": [
1667+
"$Value.event",
1668+
"erased"
1669+
]
1670+
},
1671+
{
1672+
"$eq": [
1673+
"$Value.event",
1674+
"destroyed"
1675+
]
1676+
}
1677+
]
1678+
}
1679+
}
1680+
],
1681+
"Disguise": {
1682+
"Transition": "Failure"
1683+
}
1684+
}
1685+
}
1686+
},
1687+
"Tags": ["story", "classic"],
1688+
"InclusionData": {
1689+
"ContractIds": [
1690+
"00000000-0000-0000-0000-000000000200",
1691+
"00000000-0000-0000-0000-000000000600",
1692+
"00000000-0000-0000-0000-000000000400",
1693+
"db341d9f-58a4-411d-be57-0bc4ed85646b",
1694+
"42bac555-bbb9-429d-a8ce-f1ffdf94211c",
1695+
"0e81a82e-b409-41e9-9e3b-5f82e57f7a12",
1696+
"c65019e5-43a8-4a33-8a2a-84c750a5eeb3",
1697+
"c1d015b4-be08-4e44-808e-ada0f387656f",
1698+
"422519be-ed2e-44df-9dac-18f739d44fd9",
1699+
"0fad48d7-3d0f-4c66-8605-6cbe9c3a46d7",
1700+
"82f55837-e26c-41bf-bc6e-fa97b7981fbc",
1701+
"b2aac100-dfc7-4f85-b9cd-528114436f6c",
1702+
"0d225edf-40cd-4f20-a30f-b62a373801d3",
1703+
"7a03a97d-238c-48bd-bda0-e5f279569cce",
1704+
"095261b5-e15b-4ca1-9bb7-001fb85c5aaa",
1705+
"7d85f2b0-80ca-49be-a2b7-d56f67faf252",
1706+
"755984a8-fb0b-4673-8637-95cfe7d34e0f",
1707+
"ebcd14b2-0786-4ceb-a2a4-e771f60d0125",
1708+
"3d0cbb8c-2a80-442a-896b-fea00e98768c",
1709+
"d42f850f-ca55-4fc9-9766-8c6a2b5c3129"
1710+
],
1711+
"ContractTypes": ["mission"],
1712+
"Locations": null,
1713+
"GameModes": null
1714+
}
14271715
}
14281716
]
14291717
}

contractdata/SNIPER/_SALTY_CHALLENGES.json

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -668,6 +668,76 @@
668668
"ContractIds": ["00e57709-e049-44c9-a2c3-7655e19884fb"]
669669
}
670670
},
671+
{
672+
"Id": "66fe5dfa-2014-4f5d-9bb9-460078ed893d",
673+
"Name": "UI_CHALLENGES_SEAGULL_5_MULTI_KILLS_NAME",
674+
"ImageName": "images/challenges/salty/seagull_5_multi_kills.jpg",
675+
"Description": "UI_CHALLENGES_SEAGULL_5_MULTI_KILLS_DESC",
676+
"Rewards": {
677+
"MasteryXP": 0
678+
},
679+
"Drops": ["FIREARMS_SNIPER_DRUZHINA_34_ICA"],
680+
"IsPlayable": true,
681+
"IsLocked": false,
682+
"HideProgression": true,
683+
"CategoryName": "UI_MENU_PAGE_PROFILE_CHALLENGES_CATEGORY_SIGNATUREKILL",
684+
"Icon": "challenge_category_assassination",
685+
"LocationId": "LOCATION_PARENT_SALTY",
686+
"ParentLocationId": "LOCATION_PARENT_SALTY",
687+
"Type": "contract",
688+
"DifficultyLevels": [],
689+
"OrderIndex": 10000,
690+
"XpModifier": {},
691+
"RuntimeType": "Hit",
692+
"Definition": {
693+
"Constants": {
694+
"Goal": 5
695+
},
696+
"Context": {
697+
"Count": 0
698+
},
699+
"ContextListeners": {
700+
"Count": {
701+
"type": "challengecounter",
702+
"count": "$.Count",
703+
"total": "$.Goal"
704+
}
705+
},
706+
"Scope": "session",
707+
"States": {
708+
"Start": {
709+
"MultiKillTargets": {
710+
"Condition": {
711+
"$gt": ["$Value.KillCount", 1]
712+
},
713+
"Transition": "Check"
714+
}
715+
},
716+
"Check": {
717+
"-": [
718+
{
719+
"Actions": {
720+
"$inc": "Count"
721+
}
722+
},
723+
{
724+
"Condition": {
725+
"$eq": ["$.Count", "$.Goal"]
726+
},
727+
"Transition": "Success"
728+
},
729+
{
730+
"Transition": "Start"
731+
}
732+
]
733+
}
734+
}
735+
},
736+
"Tags": ["story", "assassination"],
737+
"InclusionData": {
738+
"ContractIds": ["00e57709-e049-44c9-a2c3-7655e19884fb"]
739+
}
740+
},
671741
{
672742
"Id": "83462fc1-7cbd-46c9-8897-506e6d27194b",
673743
"Name": "UI_CHALLENGES_SEAGULL_NO_LOOSE_ENDS_NAME",

0 commit comments

Comments
 (0)