diff --git a/NOTES b/NOTES index b7be752..1b3e74e 100644 --- a/NOTES +++ b/NOTES @@ -23,6 +23,18 @@ Three possible operating modes: - feature: automatic respec on level up, clearing all upgrades and resetting level to 0 - feature: automatic level up on map clear + - how do we configure this? levels per map, maps per level, both? + - maps per level + - are levels flat or catch-up + +- automatically generate UPGRADES.md using console commands + +- weapon: Familiarization, scales damage based on levels cleared (ever, or since you got the upgrade?) +- player: Ammo Crate, refills ammo up to 40/70/90/100% between maps +- player: Medical Supplies & Repair Kit, as above but for health and armour, probably 50/100/150/200 +- weapon: some sort of upgrade that resets on level change and gets stronger per kill or something? +- per kill scaling of stuff in general? + - HE shots do lots of self-damage when used with weapons like the shotgun/SSG - Juggler should work with fancy weapon switch animations (Hellrider, Project Brutality, etc) - Bandolier incompatible with Dehacked Defence and with Trailblazer @@ -30,21 +42,26 @@ Three possible operating modes: - Balance: thunderbolt is probably still too powerful - Balance: dark harvest and leech health/armour should probably only increase the cap when leveled and increase the amount much more rarely - Minelayer upgrade? Dead enemies turn into mines, or you drop mines sometimes. Upgrade for Explosive Death maybe? Appears only if you have ExD and Minelayer? +- submunitions are still completely OP ### 0.11.x? -- split laevis into its own mod -- Beam hitscan upgrade -- currently WIP, rename Hypervelocity -- Singularity on-kill upgrade, spawns a black hole that sucks enemies (but not the player) towards it - ### Soon -- Make melee detection more permissive, but only trigger melee upgrades when the player is in melee +- Juggler should work with fancy weapon switch animations (Hellrider, Project Brutality, etc) +- Balance: thunderbolt is probably still too powerful - Spread Fire projectile upgrade, projectile shots spawn multiple reduced-damage projectiles - upgrade that spawns extra projectiles every N shots +- Beam hitscan upgrade -- currently WIP, rename Hypervelocity +- Singularity on-kill upgrade, spawns a black hole that sucks enemies (but not the player) towards it ### Ideas +### doomthing445 + +- night vision upgrade that adjusts sector light levels +- projectile/impact aoe effect that does something other than damage + ### AvzinTW An upgrade that causes projectiles to bounce off you, as an alternative to the ECM upgrade collection. diff --git a/gun-bonsai/CHANGELOG.md b/gun-bonsai/CHANGELOG.md index 92ed3a8..67c2f97 100644 --- a/gun-bonsai/CHANGELOG.md +++ b/gun-bonsai/CHANGELOG.md @@ -6,6 +6,7 @@ options screen and fix them. - New: - Screen flash colour on level up can be customized + - AutoAutoSave support - Balance: - `Infernal Kiln`: - softcap at 10 seconds, +5/level diff --git a/gun-bonsai/CVARINFO b/gun-bonsai/CVARINFO index 2987866..e80e8c3 100644 --- a/gun-bonsai/CVARINFO +++ b/gun-bonsai/CVARINFO @@ -77,6 +77,12 @@ server bool bonsai_use_builtin_actors = true; // Whether weapons that don't use ammo count as "wimpy". server bool bonsai_ammoless_weapons_are_wimpy = true; +// AutoAutoSave integration +// Need to be server, not user, because AAS integration works by injecting a +// token object into the game, and if users have different settings for this +// it will desync. +server bool bonsai_autosave_after_level = true; + // LEGENDOOM INTEGRATION // // How many times a gun needs to level up before it gets a new Legendoom effect. diff --git a/gun-bonsai/LANGUAGE.en-options b/gun-bonsai/LANGUAGE.en-options index 07daf93..89e23a5 100644 --- a/gun-bonsai/LANGUAGE.en-options +++ b/gun-bonsai/LANGUAGE.en-options @@ -8,6 +8,7 @@ TFLV_OPT_HEADER_COMPATIBILITY = "Compatibility Settings"; TFLV_OPT_HEADER_XP_SOURCE = "XP Source Settings"; TFLV_OPT_HEADER_XP_BALANCE = "XP Balance Settings"; TFLV_OPT_HEADER_LEGENDOOM = "LegenDoom Integration"; +TFLV_OPT_HEADER_AUTOAUTOSAVE = "AutoAutoSave Integration"; // Strings for option names and tooltips @@ -84,6 +85,11 @@ TFLV_OPT_TT_BONUS_LD_EFFECT_SLOTS = "How many extra effect slots legendary guns TFLV_OPT_NAME_IGNORE_GUN_RARITY = "Ignore original gun rarity for new effects"; TFLV_OPT_TT_IGNORE_GUN_RARITY = "Whether weapons can learn LD effects that are rarer than the one they spawned with."; +// Mod integrations +TFLV_OPT_AUTOAUTOSAVE_NOTE = "These options require \c[WHITE]AutoAutoSave\c- installed."; +TFLV_OPT_NAME_AUTOSAVE_AFTER_LEVEL = "Autosave after level-up"; +TFLV_OPT_TT_AUTOSAVE_AFTER_LEVEL = "Autosave after choosing your upgrades for a level-up (i.e. as soon as the level-up menu closes)."; + // Strings for the various option enums // HUD orientation settings diff --git a/gun-bonsai/MENUDEF b/gun-bonsai/MENUDEF index 95dc7f4..67f559e 100644 --- a/gun-bonsai/MENUDEF +++ b/gun-bonsai/MENUDEF @@ -82,6 +82,13 @@ OptionMenu "GunBonsaiOptions" Slider "$TFLV_OPT_NAME_LEVEL_COST_MUL_FOR_WIMPY", "bonsai_level_cost_mul_for_wimpy", 0.1, 5.0, 0.1, 1 TFLV_Tooltip "$TFLV_OPT_TT_LEVEL_COST_MUL" + StaticText "" + StaticText "$TFLV_OPT_HEADER_AUTOAUTOSAVE_INTEGRATION", GOLD + StaticText "$TFLV_OPT_AUTOAUTOSAVE_NOTE" + + Option "$TFLV_OPT_NAME_AUTOSAVE_AFTER_LEVEL", "bonsai_autosave_after_level", "OnOff" + TFLV_Tooltip "$TFLV_OPT_TT_AUTOSAVE_AFTER_LEVEL" + StaticText "" StaticText "$TFLV_OPT_HEADER_LEGENDOOM", GRAY diff --git a/gun-bonsai/ca.ancilla.bonsai/PerPlayerStats.zs b/gun-bonsai/ca.ancilla.bonsai/PerPlayerStats.zs index 244c426..232cb0d 100644 --- a/gun-bonsai/ca.ancilla.bonsai/PerPlayerStats.zs +++ b/gun-bonsai/ca.ancilla.bonsai/PerPlayerStats.zs @@ -447,5 +447,9 @@ class ::PerPlayerStats : Object play { prevScore = owner.score; } } + + void Autosave() { + owner.Spawn("aas_instant_bonsai_token", owner.pos); + } } diff --git a/gun-bonsai/ca.ancilla.bonsai/PlayerUpgradeGiver.zs b/gun-bonsai/ca.ancilla.bonsai/PlayerUpgradeGiver.zs index 6196989..e017b47 100644 --- a/gun-bonsai/ca.ancilla.bonsai/PlayerUpgradeGiver.zs +++ b/gun-bonsai/ca.ancilla.bonsai/PlayerUpgradeGiver.zs @@ -18,6 +18,7 @@ class ::PlayerUpgradeGiver : ::UpgradeGiver { } else { stats.FinishLevelUp(::Upgrade::BaseUpgrade(new(candidates[index].GetClassName()))); } + if (bonsai_autosave_after_level) { stats.Autosave(); } Destroy(); } diff --git a/gun-bonsai/ca.ancilla.bonsai/WeaponUpgradeGiver.zs b/gun-bonsai/ca.ancilla.bonsai/WeaponUpgradeGiver.zs index 8203029..cda9984 100644 --- a/gun-bonsai/ca.ancilla.bonsai/WeaponUpgradeGiver.zs +++ b/gun-bonsai/ca.ancilla.bonsai/WeaponUpgradeGiver.zs @@ -14,6 +14,7 @@ class ::WeaponUpgradeGiver : ::UpgradeGiver { void InstallUpgrade(int index) { if (index < 0) { wielded.RejectLevelUp(); + if (bonsai_autosave_after_level) { wielded.stats.Autosave(); } Destroy(); return; } else if (candidates.size() == 0) { wielded.FinishLevelUp(null); @@ -23,6 +24,7 @@ class ::WeaponUpgradeGiver : ::UpgradeGiver { if (--nrof) { PostBeginPlay(); } else { + if (bonsai_autosave_after_level) { wielded.stats.Autosave(); } Destroy(); } } diff --git a/gun-bonsai/ca.ancilla.bonsai/util.zs b/gun-bonsai/ca.ancilla.bonsai/util.zs index 6fc371d..3aafcc8 100644 --- a/gun-bonsai/ca.ancilla.bonsai/util.zs +++ b/gun-bonsai/ca.ancilla.bonsai/util.zs @@ -27,3 +27,11 @@ class ::Util : Object { return found.size(); } } + +class aas_instant_bonsai_token : Actor { + States { + Spawn: + TNT1 A 0; + Stop; + } +}