Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v6 - Exfils overhaul (SPT 3.10.x) #51

Open
wants to merge 183 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
29c99c9
fix: broken exfils with empty stashes
Aug 20, 2024
5476f26
5.3.1
Aug 20, 2024
516d7f6
Merge branch 'master' into next
Aug 20, 2024
c6e40a2
Merge branch 'master' into next
Aug 23, 2024
33143b8
Merge remote-tracking branch 'origin/master' into next
Aug 24, 2024
99ad957
fix: FoundInRaid tweak was not working as intended (#55)
guillaumearm Aug 24, 2024
c722af4
chore: update spt types for 3.10
Nov 30, 2024
bfd2382
feat: update of available ALL_EXFILS and external resources
Nov 30, 2024
fdc6a09
fix: bump sptVersion for 3.10.x
Nov 30, 2024
65f1d09
fix: migration of code for 3.10.x
Nov 30, 2024
f886cc2
fix: disable remporary the fir tweak
Nov 30, 2024
a1184cc
refactor: remove unused getAllStashByIds method
Nov 30, 2024
c9f17f7
refactor: no need to expose prepareGroundZeroHigh function
Nov 30, 2024
9c9fee9
fix: migrate stash configs to work with mongo ids
Nov 30, 2024
ecca977
fix: migrate event-watch to work with the new MatchController
Nov 30, 2024
ca86717
fix: broken spawn points + disable transits
Dec 1, 2024
350bbe0
fix: player scav detection
Dec 1, 2024
eda4790
refactor: introduce syncLocationBase instead of onRaidStarted
Dec 1, 2024
98692ef
fix: broken client because of circle of cultist that cannot be disabled
Dec 1, 2024
3373a8c
fix: proper disable of transits
Dec 1, 2024
dfb9019
fix: end of raid detection with fika
Dec 1, 2024
0dab27c
chore: cleanup
Dec 1, 2024
79eb080
feat(fir): dynamic implementation of the fir tweak
Dec 1, 2024
d88a8ee
fix: disable fir tweak
Dec 1, 2024
1d8c3b3
feat: promote the Narcotic's config to be the default one
Dec 1, 2024
5c26cea
fix(config): integration with Legs trader
Dec 1, 2024
15dba97
fix(config): integration with Priscilu trader
Dec 1, 2024
e52bc4c
style: apply prettier to utils.test.ts
Dec 1, 2024
18b22f8
6.0.0-rc.1
Dec 1, 2024
ec06d7b
docs: get rid of mermaid
Dec 1, 2024
6f857ce
docs: update README
Dec 1, 2024
4e064d1
chore: update lockfile
Dec 1, 2024
fd9bd20
fix: re-enable hideout areas restrictions
Dec 2, 2024
17265de
fix(config-analysis): misleading error message formatting
Dec 2, 2024
7f45de8
chore: re-use isLocationBaseAvailable everytime locationBase is handled
Dec 2, 2024
dbfb201
feat: support of vanilla transits
Dec 3, 2024
cf49284
fix: rewrite FoundInRaid tweak
Dec 3, 2024
2c13371
fix: add missing factory exfils
Dec 4, 2024
6c0121c
6.0.0-rc.2
Dec 4, 2024
cac2340
fix: new factory spawnpoints thanks to GorillaSoup
Dec 4, 2024
9a35f3f
fix!: labs worldevent exfils and train exfils
Dec 5, 2024
95bf8ed
fix(config): change HarryHideout id trader
Dec 5, 2024
3f2f7fb
fix(config): change Artem trader id
Dec 5, 2024
e86e204
fix: main stash should not be available from therapist
Dec 5, 2024
e542c32
fix: add Therapist stash
Dec 5, 2024
4a42723
chore: cleanup outdated comments in default config
Dec 5, 2024
6bbc446
fix(config): more balanced HarryHideout access_via (having available …
Dec 5, 2024
27d4168
fix(config): update traders descriptions + french translation
Dec 5, 2024
ef745c4
fix: use traders location instead of traders description
Dec 5, 2024
8a48901
fix: remove unused vanilla_exfils_requirements in all configs
Dec 5, 2024
1258542
feat: more exfils for laboratory
Dec 5, 2024
276386d
refactor: split PTT-Extracts into several BepInEx patches
Dec 6, 2024
67cdcf4
feat(client): hide locked traders
Dec 6, 2024
4c64e08
refactor: rename PTTExtracts.dll into Trap.PathToTarkov.dll
Dec 6, 2024
0a1b0fe
feat(client): add BepInEx config for showing hidden traders
Dec 6, 2024
c089e37
chore: update types for 3.10.2
Dec 7, 2024
dcec6a4
style: apply prettier on prepare-files.js
Dec 7, 2024
3d3cd78
chore: gather allExtracts.json
Dec 7, 2024
c261a89
refactor: get rid of scav_exfils.json + reorder exfils
Dec 7, 2024
95624c2
fix: broken DevilFlippy config because "E8" extract does not exist an…
Dec 7, 2024
c1b6a56
6.0.0-rc.3
Dec 7, 2024
442d4ed
chore: apply prettier
Dec 7, 2024
0e7fb20
feat!: unify player spawnpoints
Dec 7, 2024
e1a743d
chore: save script extract-legacy-tooltips
Dec 7, 2024
c1d7288
fix(config): typo in Stylobate
Dec 8, 2024
65dede0
chore: add respawn_at field to the default config
Dec 8, 2024
59b9017
fix(analyze): add config warning when conflicting access_via are foun…
Dec 8, 2024
17e44fb
refactor: NarcoticsConfig duplicated offraid positions
Dec 8, 2024
a516835
feat(wip): introduce offraid_positions displayName and exfiltrations_…
Dec 8, 2024
627fffb
chore: fix typo in configs/Default/Tooltips
Dec 10, 2024
ec81044
feat: add Saria next to Peacekeeper in default config
Dec 10, 2024
9d4da44
fix: unsupported vanilla_exfils_requirements (warn instead of errror)
Dec 10, 2024
4abb426
fix(config): allow user to remove all exfils for a given map (when tr…
Dec 10, 2024
1280892
chore: cleanup
Dec 10, 2024
eac591e
feat: exfiltrations tooltips templating
Dec 11, 2024
26509be
chore: cleanup useless dynamic maps compats
Dec 11, 2024
dc8b93c
chore: remove unused default Tooltips
Dec 11, 2024
60cfd2e
fix: Requisitions trader id in DevilFlippy config
Dec 11, 2024
5bb0268
feat(config): add Requisitions trader integration in default config (…
Dec 11, 2024
1446603
feat: add override_tooltips_template for offraid_positions
Dec 11, 2024
5d20645
feat(config): french translations for tooltips
Dec 11, 2024
4a2c9f3
style: apply prettier on ExfilsTooltipsTemplater
Dec 11, 2024
3330e78
chore: cleanup DevilFlippy tooltips + save extract-legacy-tooltips sc…
Dec 11, 2024
3481c79
chore: cleanup LegacyPTTv5 tooltips
Dec 11, 2024
04438d7
chore: cleanup NarcotisConfig tooltips
Dec 11, 2024
d13cd74
chore: cleanup PTTR tooltips
Dec 11, 2024
b74d067
chore: full cleanup of the pttr legacy tooltips
Dec 11, 2024
4f95c23
fix: trim tooltips_template during validation
Dec 11, 2024
c3139f8
chore: rename PTT-BepInEx into PTT-Plugin
Dec 11, 2024
b167e63
fix: vanilla_exfils_requirements is now forbidden by config analysis
Dec 11, 2024
fc16d82
feat: implement debug_exfiltrations_tooltips_locale + refactor
Dec 12, 2024
74740fa
test: add external-resources test for checking eft locales unicity
Dec 12, 2024
b67fd09
refactor: configs test
Dec 12, 2024
16fcc3a
refactor: add debugTooltipsForLocale to ExfilsTooltipsTemplater
Dec 12, 2024
4b714af
style: apply prettier
Dec 12, 2024
16391a0
fix: non-case sensitive ExfilsTooltipsTemplater
Dec 13, 2024
cbc6f50
chore: change exfiltrations_tooltips_template in default config
Dec 13, 2024
bf35905
ci: build-and-lint github workflow on push only
Dec 13, 2024
07f9250
fix: gunsmith id in PTTv4 and PTTR configs
Dec 19, 2024
7cdd8db
chore: update types for spt 3.10.3
Dec 20, 2024
d294814
fix!: breaking change in fix-repeatable-quests (SPT 3.10.3 is needed …
Dec 20, 2024
50151da
chore(client): add some references just in case
Dec 12, 2024
9d67575
fix(client): InitAllExfiltrationPointsPatch updated for 3.10
Dec 12, 2024
540aa65
build(client): remove AllowUnsafeBlocks compilation property
Dec 14, 2024
3acf73d
build(client): comment useless package reference
Dec 14, 2024
f43d8a8
chore: temporary first try with InteractableExfilsAPI
Dec 19, 2024
ea7b417
feat!: multiple transits/offraid_position by exfils
Dec 21, 2024
1c22c4b
feat: validation of transit custom exfil notation
Dec 22, 2024
187eeeb
fix: support of transits in /PathToTarkov/ExfilsTargets route
Dec 22, 2024
c7c9eac
fix: ExfilsTooltipsTemplater should ignore transits
Dec 22, 2024
d76394b
fix: getRaidCache should bind the eventWatcher and not the ptt instance
Dec 22, 2024
aebed33
chore(client): cleanup
Dec 22, 2024
0634907
fix(transits): override spawnpoints with the transit spawnpoint
Dec 22, 2024
e5dd614
refactor: Default config with the new exfiltrations format
Dec 22, 2024
9fcd3da
feat(config): enable_automatic_transits_creation
Dec 22, 2024
bc3d4fd
style: apply prettier on exfils-targets.ts
Dec 22, 2024
eb0a42e
feat(config-analysis): check format of offraid position, spawn points…
Dec 22, 2024
0e37f5d
fix: change the required sptVersion to be at least 3.10.3
Dec 22, 2024
9a2d95f
feat!: unified configs (#61)
guillaumearm Dec 22, 2024
92dfd46
chore: update comment
Dec 22, 2024
8124c91
chore: cleanup unused client code
Dec 22, 2024
15198c8
feat: add gunsmith in tunnel between lighthouse and shoreline
Dec 22, 2024
375803b
fix(transits): bad locationId resolution
Dec 22, 2024
6f208f4
chore(transits): should work even when fika-plugin is not present
Dec 22, 2024
ae34e07
fix(server): bot spawn points erased on transit
Dec 23, 2024
3030062
fix(transits): better implementation
Dec 23, 2024
9bcc8d9
chore: cleanup
Dec 23, 2024
26b1ffc
refactor: rename transitTargetLocationId in transitTargetMapName
Dec 23, 2024
0552a2f
refactor: no more generic customExfilName
Dec 23, 2024
34637a0
refactor: CustomExfilService and ExfilPromptService
Dec 23, 2024
f3ea3c7
refactor(client): same transit procedure with or without fika
Dec 24, 2024
f839ce9
fix(server): try to determine offraid position when ie api is missing
Dec 24, 2024
624d53f
fix: an attempt to transit when playing coop (fika)
Dec 25, 2024
1fd6d99
fix: client crash because unknown exfil targets
Dec 25, 2024
724b542
refactor(server): handle regular extracts
Dec 25, 2024
ab5a552
fix(client): should be able to work without ie_api
Dec 25, 2024
32f2b35
refactor(client): expose static Helpers.Logger
Dec 25, 2024
4923686
refactor(client): CustomExfilServiceFika + better logs
Dec 25, 2024
f7fa6a1
feat: transits and exfils prompt (#62)
guillaumearm Dec 25, 2024
c245ee1
fix(ExfilPromptService): add more defensive code with error handling
Dec 25, 2024
3d45662
fix(config): more money allowed in raid
Dec 25, 2024
69a4a3c
fix(config): locked case and case key are not forbidden in raid
Dec 25, 2024
1c2e61a
6.0.0-rc.4
Dec 25, 2024
1a205b2
chore: update types for spt 3.10.4
Dec 25, 2024
d95de79
chore: bump ptt-plugin to v6.0.0 + change description
Dec 26, 2024
743e487
fix: compat with Kaeno-TraderScrolling
Dec 26, 2024
e377498
fix: Lotus trader id
Dec 26, 2024
88f7b4d
fix(client): broken labs exfils
Dec 27, 2024
8bb942e
fix: Stylobate broken spawnpoint on streets (cause a client crash)
Dec 28, 2024
52fa067
chore(config-analysis): add some missing quotes
Dec 28, 2024
73a1739
fix: Kamchatskaya Arch broken player spawnpoint
Dec 28, 2024
17ef61f
chore: change the default exfil time to be 30s
Dec 28, 2024
5eb2939
fix: no more override_tooltips_template for offraid positions
Dec 28, 2024
d5b2dfd
chore: no more sally or coyote in tooltips
Dec 28, 2024
61ed558
refactor: remove support of "workbench_always_enabled" config field
Dec 28, 2024
b478dea
feat: configurable exfil prompt message
Dec 28, 2024
cca46bb
chore: change default extract/transits prompt template
Dec 28, 2024
935681f
style: apply prettier
Dec 28, 2024
66400c4
feat: add gui sound when interacting with prompt
Dec 28, 2024
ab8dfa1
build: move ie_api
guillaumearm Dec 28, 2024
9fa65c7
fix: InteractableExfilsAPI disable vanilla actions
guillaumearm Dec 29, 2024
3db4ff5
chore: fix comment
guillaumearm Dec 29, 2024
f14992e
refactor: client Settings/Config class
guillaumearm Dec 29, 2024
e39c7c5
chore: add /ConfigurationManagerAttributes class
guillaumearm Dec 30, 2024
8cac441
feat(client): confirmation prompt on exfil/transit
guillaumearm Dec 30, 2024
cc5a241
chore: add warning for the player if IE_API is outdated
guillaumearm Dec 30, 2024
d770d4a
fix(client): hide sandbox/sandbox_high transits according to player l…
guillaumearm Dec 30, 2024
5350ef8
fix(backend): call the endLocalRaid with the original exitName
guillaumearm Jan 1, 2025
f4c5434
fix(client): quests/achievements related to exitName
guillaumearm Jan 1, 2025
c4c0fb5
refactor: IEApiWrapper
guillaumearm Jan 1, 2025
c41deff
chore: update minimum required version of ie api
guillaumearm Jan 1, 2025
05550d0
chore: upgrade dependencies according to spt-server package.json
guillaumearm Jan 1, 2025
662e42e
feat: migrate all json files into jsonc
guillaumearm Jan 1, 2025
2f8c6a7
chore: add some jsonc comment
guillaumearm Jan 1, 2025
f51d31f
chore: install prettier
guillaumearm Jan 1, 2025
e39c78f
chore: apply prettier
guillaumearm Jan 1, 2025
aa4a412
chore: add some jsonc comments
guillaumearm Jan 1, 2025
0c1d7cf
feat: migrate to json5
guillaumearm Jan 1, 2025
2e70a37
fix(client): rename BepInEx config for cancel autoselection
guillaumearm Jan 1, 2025
226a522
refactor(client): change order of attributes
guillaumearm Jan 1, 2025
1cd6665
fix(client): broken Settings.Config
guillaumearm Jan 1, 2025
9d8b2fd
refactor(client): introduce UI.ExfilPrompt
guillaumearm Jan 1, 2025
2789936
feat: add frostbite in the default config
guillaumearm Jan 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/build-and-lint.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Build and Test
on: [push, pull_request, pull_request_target]
on: [push]

jobs:
build:
Expand Down
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,3 @@
/Trap-PathToTarkov*
/mod.zip
/configs/UserConfig.json

/PTT-Extracts/bin
/PTT-Extracts/obj
2 changes: 1 addition & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
/dist/
/src/*.js
/Trap-PathToTarkov-*
/PTT-Extracts/
/PTT-Plugin/
*.md
package-lock.json
118 changes: 59 additions & 59 deletions ALL_EXFILS.md

Large diffs are not rendered by default.

64 changes: 0 additions & 64 deletions PTT-Extracts/License.txt

This file was deleted.

35 changes: 0 additions & 35 deletions PTT-Extracts/PTTExtracts.csproj

This file was deleted.

122 changes: 0 additions & 122 deletions PTT-Extracts/Patch.cs

This file was deleted.

16 changes: 0 additions & 16 deletions PTT-Extracts/Plugin.cs

This file was deleted.

File renamed without changes.
File renamed without changes.
149 changes: 149 additions & 0 deletions PTT-Plugin/Attributes/ConfigurationManagerAttributes.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
/// <summary>
/// Class that specifies how a setting should be displayed inside the ConfigurationManager settings window.
///
/// Usage:
/// This class template has to be copied inside the plugin's project and referenced by its code directly.
/// make a new instance, assign any fields that you want to override, and pass it as a tag for your setting.
///
/// If a field is null (default), it will be ignored and won't change how the setting is displayed.
/// If a field is non-null (you assigned a value to it), it will override default behavior.
/// </summary>
///
/// <example>
/// Here's an example of overriding order of settings and marking one of the settings as advanced:
/// <code>
/// // Override IsAdvanced and Order
/// Config.Bind("X", "1", 1, new ConfigDescription("", null, new ConfigurationManagerAttributes { IsAdvanced = true, Order = 3 }));
/// // Override only Order, IsAdvanced stays as the default value assigned by ConfigManager
/// Config.Bind("X", "2", 2, new ConfigDescription("", null, new ConfigurationManagerAttributes { Order = 1 }));
/// Config.Bind("X", "3", 3, new ConfigDescription("", null, new ConfigurationManagerAttributes { Order = 2 }));
/// </code>
/// </example>
///
/// <remarks>
/// You can read more and see examples in the readme at https://github.com/BepInEx/BepInEx.ConfigurationManager
/// You can optionally remove fields that you won't use from this class, it's the same as leaving them null.
/// </remarks>
#pragma warning disable 0169, 0414, 0649
internal sealed class ConfigurationManagerAttributes
{
/// <summary>
/// Should the setting be shown as a percentage (only use with value range settings).
/// </summary>
public bool? ShowRangeAsPercent;

/// <summary>
/// Custom setting editor (OnGUI code that replaces the default editor provided by ConfigurationManager).
/// See below for a deeper explanation. Using a custom drawer will cause many of the other fields to do nothing.
/// </summary>
public System.Action<BepInEx.Configuration.ConfigEntryBase> CustomDrawer;

/// <summary>
/// Custom setting editor that allows polling keyboard input with the Input (or UnityInput) class.
/// Use either CustomDrawer or CustomHotkeyDrawer, using both at the same time leads to undefined behaviour.
/// </summary>
public CustomHotkeyDrawerFunc CustomHotkeyDrawer;

/// <summary>
/// Custom setting draw action that allows polling keyboard input with the Input class.
/// Note: Make sure to focus on your UI control when you are accepting input so user doesn't type in the search box or in another setting (best to do this on every frame).
/// If you don't draw any selectable UI controls You can use `GUIUtility.keyboardControl = -1;` on every frame to make sure that nothing is selected.
/// </summary>
/// <example>
/// CustomHotkeyDrawer = (ConfigEntryBase setting, ref bool isEditing) =>
/// {
/// if (isEditing)
/// {
/// // Make sure nothing else is selected since we aren't focusing on a text box with GUI.FocusControl.
/// GUIUtility.keyboardControl = -1;
///
/// // Use Input.GetKeyDown and others here, remember to set isEditing to false after you're done!
/// // It's best to check Input.anyKeyDown and set isEditing to false immediately if it's true,
/// // so that the input doesn't have a chance to propagate to the game itself.
///
/// if (GUILayout.Button("Stop"))
/// isEditing = false;
/// }
/// else
/// {
/// if (GUILayout.Button("Start"))
/// isEditing = true;
/// }
///
/// // This will only be true when isEditing is true and you hold any key
/// GUILayout.Label("Any key pressed: " + Input.anyKey);
/// }
/// </example>
/// <param name="setting">
/// Setting currently being set (if available).
/// </param>
/// <param name="isCurrentlyAcceptingInput">
/// Set this ref parameter to true when you want the current setting drawer to receive Input events.
/// The value will persist after being set, use it to see if the current instance is being edited.
/// Remember to set it to false after you are done!
/// </param>
public delegate void CustomHotkeyDrawerFunc(BepInEx.Configuration.ConfigEntryBase setting, ref bool isCurrentlyAcceptingInput);

/// <summary>
/// Show this setting in the settings screen at all? If false, don't show.
/// </summary>
public bool? Browsable;

/// <summary>
/// Category the setting is under. Null to be directly under the plugin.
/// </summary>
public string Category;

/// <summary>
/// If set, a "Default" button will be shown next to the setting to allow resetting to default.
/// </summary>
public object DefaultValue;

/// <summary>
/// Force the "Reset" button to not be displayed, even if a valid DefaultValue is available.
/// </summary>
public bool? HideDefaultButton;

/// <summary>
/// Force the setting name to not be displayed. Should only be used with a <see cref="CustomDrawer"/> to get more space.
/// Can be used together with <see cref="HideDefaultButton"/> to gain even more space.
/// </summary>
public bool? HideSettingName;

/// <summary>
/// Optional description shown when hovering over the setting.
/// Not recommended, provide the description when creating the setting instead.
/// </summary>
public string Description;

/// <summary>
/// Name of the setting.
/// </summary>
public string DispName;

/// <summary>
/// Order of the setting on the settings list relative to other settings in a category.
/// 0 by default, higher number is higher on the list.
/// </summary>
public int? Order;

/// <summary>
/// Only show the value, don't allow editing it.
/// </summary>
public bool? ReadOnly;

/// <summary>
/// If true, don't show the setting by default. User has to turn on showing advanced settings or search for it.
/// </summary>
public bool? IsAdvanced;

/// <summary>
/// Custom converter from setting type to string for the built-in editor textboxes.
/// </summary>
public System.Func<object, string> ObjToStr;

/// <summary>
/// Custom converter from string to setting type for the built-in editor textboxes.
/// </summary>
public System.Func<string, object> StrToObj;
}
Loading
Loading