* Add multi-version mastery files
* Add pro1 unlocks to legacy allunlockables
* Add 47's suit to scpc all unlockables
* Add and remove various configs
* Remove some useless promises
* Fix scpc hub
* Fix issue with user profile saving
* Fix scpc issues for hub
* Add singleplayer/multiplayer sniper
* A great many things
- Add multi-version mastery
- Improve sniper mastery support
- Improve general H2016 support
* Fix some warnings
* Fix pro1 mastery on destination screens
* Remove entP from createInventory, lock/unlock pro1 accordingly
* Remove JSDoc entP parameter from createInventory
* Remove difficultyunlocks from safehouse pages
* Add versioned user profiles
* Prettier run
* Remove false point from user profiles docs
* Add comment about profile versioning to types
* Fix default profile links
* Remove remaining lowercase
* Fix sniper showing XP as XP
* Add game versions to the unlockable map
* Update getMasteryForUnlockable call in planning
* Fix missing locations when updating profiles
* Update versions to v7
* Fix ICA Facility destination mastery
* Fix sniper challenge unlockables showing in inventory
* Sniper Scoring (#273)
* Initial sniper scoring
* Fix linting errors
* Update require table
* Calculate and display final sniper score on end screen
* Bump SMP version to v5.7.0
* Update since version for scoring
* Fix create inventory call for sniper scoring
* Support sniper unlockables in the inventory
* Update versions to v7
* Reflect changes to createInventory in scoreHandler
* Get unlockable name in completion data
* It was not okay.
* Thanks webstorm
* Add support for /profiles/page/GetMasteryCompletionDataForUnlockable
* Support sniper play next
* Remove sniper gamemodes template from overrides
* Remove debug prints from scoring event handler
* Fix challenge multiplier
* Exclude sniper unlockables from stashpoint
* Start fixing up the missionEnd response for sniper
* Update misleading comment
* Use existing global challenge to check for SA on sniper contracts
* Re-add removed global challenges
* Proper support for the mission end screen on sniper contracts
* Remove redundant label
---------
Signed-off-by: Anthony Fuller <24512050+AnthonyFuller@users.noreply.github.com>
Co-authored-by: Govert de Gans <grappigegovert@hotmail.com>
* Add co-op sniper scoring defs
* Update MasteryUnlockable template
* Bump SMP version to v5.9.3
* Re-add deepmerge
* Fix SMP checksum
* Fix linting errors caused by merge
* Fix score handler imports
* Move load flags
* Remove unnecessary game version arg
* Whoopsies
Co-authored-by: Reece Dunham <me@rdil.rocks>
Signed-off-by: Anthony Fuller <24512050+AnthonyFuller@users.noreply.github.com>
---------
Signed-off-by: Anthony Fuller <24512050+AnthonyFuller@users.noreply.github.com>
Co-authored-by: Govert de Gans <grappigegovert@hotmail.com>
Co-authored-by: Reece Dunham <me@rdil.rocks>
* fix confusing comments
* new behavior to fetch contracts from official
* Reorder and organize flags with tags
* Fix contract filter being undefined
* Put mission manifest in memory instead of disk
* return undefined when not finding a contract
These are being moved out of core to reduce bundle size, translation maintainability, and just because they weren't played that much.
Signed-off-by: Reece Dunham <me@rdil.rocks>
* Add arcade support, remove use of deprecated function
* Fix retrieval of escalation group id in planning
* Add arcade contracts
* remove incorrectly acquired arcade challenges
* Fix locations for arcade levels
* Add arcade challenges
* run prettier
* fix nullibility issue in h1
* The Icon is not an elusive target
* sort eta and et contracts by location
* Reset arcade contract on fail
* show arcade challenges in career page
* fix arcade challenges filtering for destinations
* run prettier
* Don't fail arcade on exit menu with no objectives completed
* Handle secondary objectives on arcade fail
* Make a ContractSession know its Id
* fix global arcade challenges
* Add arcade contracts to the level picker
* Update Peacock require tables with ETA
* Add escalationTypes array
* Get ETA locations at startup
* remove unused arrays
---------
Co-authored-by: moonysolari <changyiding@126.com>
* Rewrite the escalation service to use group contracts (#28)
* Fix build and type errors
Signed-off-by: Reece Dunham <me@rdil.rocks>
* Improve Escalation Functionality with Contract Groups (#160)
* Fix Sinbad escalation and add group definition
* Add group contracts and fix InGroup IDs where needed
* Run prettier
* Add missing group definitions
* Fixed id issues with sinbad
* Fix missionsInLocation.ts
* Added groupdefinitions (#198)
Added localization and missing groupdefinitions for Peacock custom escalations
* Fix incorrect escalation contract ids
* Remove missing escalations
* Add Ataro group definition
* Add 7DS entrances
* Restore no2016 functionality, add xmas to no2016 list
* Add missing deluxe escalation entrance
* Fix linting
* Added h3 escalations (#204)
* Added h3 escalations
Added all remaining escalations from h3 maps
* Prettier
yeehaw
---------
Co-authored-by: Anthony Fuller <24512050+AnthonyFuller@users.noreply.github.com>
* Fix escalation completion
* Fix smilax level 1
* Fix escalation challenges not completing
* Get groups when resolving contracts
* track escalation challenge completion
* fix mission end page for escalation challenges
* Update GameChangerProperties
* Update EvergreenGameChangerProperties
* Add new GameChangerProperties
* Fix aborting on invalid escalation group
* remove dupe yellow rabbit suit
* Fixed DGS having no challenges on career page
* run prettier
* Update Proloff Level 2
* Update escalation hub tile to work with group contracts
* Move escalations and elusives to subfolders
* Add 7DS campaign
* Fix escalation level picker
* Fix escalations being incorrectly marked as completed
* Remove completed status when editing escalation level progress
* Add new H3 escalations to level picker
* Add Season tag to elusives for future use
* Add Season tag to typedefs
* Respect Season tag when sending elusives
* Add Legacy Escalations
* Remove milfoil for now, add escalations to missions
* Move xmas escalation
* Fix Snowdrop not showing in 2016
* Add missing entitlements to escalations
* Fix play next level in 2016, remove use of deprecated function
* Move remaining Peacock escalations
* Swap out featured Peacock escalation
---------
Signed-off-by: Reece Dunham <me@rdil.rocks>
Co-authored-by: moonysolari <118079569+moonysolari@users.noreply.github.com>
Co-authored-by: Kaki <66200818+Kakiking@users.noreply.github.com>
Co-authored-by: moonysolari <changyiding@126.com>
Co-authored-by: riisikumi <54016129+riisikumi@users.noreply.github.com>
Co-authored-by: AnthonyFuller <24512050+AnthonyFuller@users.noreply.github.com>
* 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>
* feat: Initial support for mastery progression
* chore: Fix typo
* feat: Award users challenge drops immediately after completion. Also builds the inventory on startup with those drops
* feat: Award mastery unlockables to user as soon as they are available
* feat: Added flag to toggle mastery progression
* fix: Address linting issues
* feat: Handle loadout lock for Miami and Hokkaido
* fix: Looking for LimitedSlots on parent location, to include all contracts on the location
* Update components/flags.ts
Co-authored-by: Reece Dunham <me@rdil.rocks>
Signed-off-by: J0k3r-1 <128742169+J0k3r-1@users.noreply.github.com>
* refactor: Look at location LimitedLoadout to prevent unecessary unlockable lookups
* refactor: Add a different Map for mapping Level and Location to an unlockable id
* fix: Prevent evergreen gear unlockables to be awarded to the user inventory w/t proper mastery level
Evergreen level unlockables for gear are treated the same as packages, and include the actual unlockable item within their properties, so similar logic to packages was needed to address those correctly
* refactor: Use gameVersion from contractSession on grantLocationMasteryXp
* fix: Fix typo
* feat: Add progression service to handle XP and Drop award (#1)
* refactor: Cleanup unused imports
* refactor: Added some improvments over feedback
* fix: Fix wrong evergreen check flag condition
* feat: Added challenge drops to missionEnd screen + minor fixes
* refactor: Removed writeUserData from challengeService
The progressionService already stores the data, so theres no need to call it again here
* fix: Prevent evergreenmastery unlock types from being awarded to the inventory
* chore: Amend the explanation for getLocationMasteryDrops on evergreen type unlock
* Update components/menus/planning.ts
Co-authored-by: moonysolari <118079569+moonysolari@users.noreply.github.com>
Signed-off-by: J0k3r-1 <128742169+J0k3r-1@users.noreply.github.com>
* refactor: Award evergreenmastery but filter on inventory grant, like createInventory
* refactor: Refactor challenge drop usage as they have been refactored from Unlockable[] to string[]
* fix: Add mastery requirement for locked loadouts on Miami and Hokkaido + Add interface for sourcechallenge
* chore: Remove console.log
* fix: fixed H1 hokkaido not starting
---------
Signed-off-by: J0k3r-1 <128742169+J0k3r-1@users.noreply.github.com>
Co-authored-by: Reece Dunham <me@rdil.rocks>
Co-authored-by: moonysolari <118079569+moonysolari@users.noreply.github.com>
* Add location templates for older game versions
* Fix challenge data extraction script for h1
* Add challenge location templates
* unfinished game version support
* Fix challenge data extraction script for H2
* Conform function calls to new signature
* Add a game version for all maps
* Improve comments
* Try to add difficulty support
* fix type error
* fix GetActiveChallengesAndProgression difficulty
* Add difficulty for GetChallengeTreeFor
* Fix up difficulty in other places
* Add challenges data jsons for all three games
* Add H2 global TC challenges
* Fix H1 challenge typeheader
* Fix Type fields in SavedChallenge
* Fix imports
* Delete backup file
* Reduce hard-coding of difficulty number
* Support versioned global challenges
* remove H2GlobalChallenges
* Add missing global Challenges
* Make versions a global variable
* run prettier
* Use Drop Ids instead of unlockables
---------
Co-authored-by: Reece Dunham <me@rdil.rocks>
* Added Vitest and configuration to support unit tests
Added Vite plugin to fix performance issue with JSON files
Added mock for configSwizzleManager to support the Vite plugin
* Added custom ESLint rule to enforce proper module paths
* Fixed issue where restarting Peacock would require to first go offline again
* Added proper player progression
* Fixed most issues with the mission end screen
* Added final tweaks to scoring
* Update global challenges
* Added near-complete support for Freelancer
Added support for unlocking shortcuts
Cleaned up a bunch of magic values in relation to XP and levels
---------
Co-authored-by: moonysolari <changyiding@126.com>
* Refactor: use function for lookupContractPublicId
* Trending and Mostplayed now display stuff
* Add call to contract-preserving backend
* Actually download contract data from official
* add getRemoteService function
* implement "contract search" tile
* Change variable naming
* Run prettier
* Change naming to hitmaps
* officialSearchContract -> contractsModeRouting.ts
* Fix imports
* Fix "Contract undefined not found!" warnings
* Implement support for /GetContractOpportunities
* Add OpportunityData to MissionManifestMetadata
* Resolved a ts-expect-error by providing types
* Fix requiem unlockables pistol
* Adjust max player level