[0.10.6] Gun Bonsai -- everything-compatible weapon upgrading

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
Starman the Blaziken
Posts: 282
Joined: Thu Mar 07, 2019 9:40 pm
Graphics Processor: ATI/AMD (Modern GZDoom)
Location: United States, MI

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by Starman the Blaziken »

mamaluigisbagel wrote:Just discovered that from what I can tell, this mod does not work with FreeDoom. The HUD will still appear, but the weapons will not gain xp for killing enemies.
Are you sure? Because I fired the latest version of this and the HUD up in FreeDoom P2 just to see if that is the case and I get EXP from doing damage to enemies.
User avatar
mamaluigisbagel
Posts: 523
Joined: Wed Jul 09, 2014 7:25 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 11
Graphics Processor: nVidia with Vulkan support

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by mamaluigisbagel »

Yup, just tried without any other mods and I still can't get xp, in Phase 1 or 2. Maybe its a gzdoom dev build thing?
User avatar
openroadracer
Posts: 496
Joined: Mon Sep 23, 2019 1:03 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 7 Professional 64-bit SP1
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Location: Doomworld Forums

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by openroadracer »

I just thought about something, and maybe this will end up being difficult to work with; but in Dr_Cosmobyte's War Rooster, there are certain weapons that just straight up REPLACE other weapons in the player's arsenal. Specifically, the Stoner 63 replaces the M16, the China Lake replaces the M79 Thumper, and the M202 FLASH replaces the RPG-7.

Does Gun Bonsai have anything in it to recognize when one weapon in the player's armory has been directly overwritten with a new one, such that the player can maintain continuity of upgrades?
User avatar
ToxicFrog
Posts: 229
Joined: Thu Oct 05, 2017 10:09 am
Preferred Pronouns: She/Her
Operating System Version (Optional): NixOS

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by ToxicFrog »

openroadracer wrote:I just thought about something, and maybe this will end up being difficult to work with; but in Dr_Cosmobyte's War Rooster, there are certain weapons that just straight up REPLACE other weapons in the player's arsenal. Specifically, the Stoner 63 replaces the M16, the China Lake replaces the M79 Thumper, and the M202 FLASH replaces the RPG-7.

Does Gun Bonsai have anything in it to recognize when one weapon in the player's armory has been directly overwritten with a new one, such that the player can maintain continuity of upgrades?
Not at present, but that's something I'm actively working on: the ability to tell it that certain weapons are equivalent to others and should share upgrades with them even if they're not the same underlying type. It should be usable both for stuff like Ashes Afterglow's weapon upgrades (where it's notionally the same gun but implemented as a completely different class) and stuff like War Rooster where they're different weapons but the new one completely obsoletes the old.

It'll have to be configured on a per-mod basis and will take a bit longer to build than some of the other features, though.
User avatar
Brohnesorge
Posts: 495
Joined: Sat Oct 08, 2016 9:10 am
Preferred Pronouns: He/Him
Operating System Version (Optional): Win10
Graphics Processor: nVidia with Vulkan support

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by Brohnesorge »

Do Rails count as projectiles or hitscans? I have a rail weapon that keeps offering me projectile only upgrades.

EDIT: I also can't seem to get Fire Mastery to show up. I don't know if this is a bug or if I'm just extremely unlucky. I have 2 stacks of Burning Terror and 2 stacks of Flame Inscription or whatever its called, so I should have the conditions met, right?
User avatar
ToxicFrog
Posts: 229
Joined: Thu Oct 05, 2017 10:09 am
Preferred Pronouns: She/Her
Operating System Version (Optional): NixOS

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by ToxicFrog »

Brohnesorge wrote:Do Rails count as projectiles or hitscans? I have a rail weapon that keeps offering me projectile only upgrades.

EDIT: I also can't seem to get Fire Mastery to show up. I don't know if this is a bug or if I'm just extremely unlucky. I have 2 stacks of Burning Terror and 2 stacks of Flame Inscription or whatever its called, so I should have the conditions met, right?
Rails should count as hitscans, but as noted the hitscan/projectile autodetection is kind of flaky and it's entirely possible that if the weapon uses, say, rails for damage but spawns some projectiles for VFX or something, it'll detect it as a projectile weapon (or not be able to decide and just offer upgrades for both). What weapon is it?

Aaaand that's a bug -- the fire masteries will never show up even if you meet the prerequisites. That'll be fixed in the next release.
DarkkOne
Posts: 274
Joined: Mon Jun 06, 2016 11:26 pm
Preferred Pronouns: No Preference
Operating System Version (Optional): Widnows 11
Graphics Processor: nVidia with Vulkan support

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by DarkkOne »

Just thought that I should mention that this synergizes REALLY well with viewtopic.php?f=43&t=66059
In particular, choosing elements to match the elements of each weapon.

But it also left me thinking - Ice? I realized it's a pretty common element. Heck, Hexen just straight up has Frost Shards as a standard weapon. It'd make a lot of sense if Ice-themed upgrades were available.

For ideas: Chill, slowing enemies, Shatter, causing enemies to shoot a lot of projectiles out when killed kinda like the munitions ones but linear and non-explosive, Frostbite being a sort of inverted fire where the DoT increases the lower the enemy's health, but also wears off quickly and maybe can't be stacked, just refreshed, and Encase, which can freeze an enemy below a certain percentage of health that will distract enemies, so that some attack it instead of you until it's finished off. Kinda see Shatter and Encase as the masteries, though obviously up to you, barring what can actually be programmed and fits your design (if any of this even does).

Also, would it be possible to know what *type* of damage a weapon does (for example, if the weapon naturally does Fire or Ice damage, etc) and make only the elements on its primary and secondary fire available for upgrades (or if there's only one element, no other element until the first one's mastery'd, and if no elements then just as it is now). Maybe not necessarily as the default behaviour (though I think it'd make really good default behaviour) but as an option?

I like the whole "locking you into an element" thing, and I think it'd make a lot of sense if naturally elemental weapons were essentially already pre-locked into their element.
User avatar
mamaluigisbagel
Posts: 523
Joined: Wed Jul 09, 2014 7:25 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 11
Graphics Processor: nVidia with Vulkan support

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by mamaluigisbagel »

Apparently when using scavenge lead, my brother is ALWAYS getting plasma ammo, making the game a complete joke? I'm not sure if its just good luck or an error in the code.

I also like the idea of locking into an element. Kinda further emphasizes certain weapons being useful for certain situations.
DarkkOne
Posts: 274
Joined: Mon Jun 06, 2016 11:26 pm
Preferred Pronouns: No Preference
Operating System Version (Optional): Widnows 11
Graphics Processor: nVidia with Vulkan support

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by DarkkOne »

mamaluigisbagel wrote:Apparently when using scavenge lead, my brother is ALWAYS getting plasma ammo, making the game a complete joke? I'm not sure if its just good luck or an error in the code.

I also like the idea of locking into an element. Kinda further emphasizes certain weapons being useful for certain situations.
What weapons does he have? It specifically only gives you ammo for weapons you're carrying, so if you're playing a mod where you can drop weapons, and he's only carrying weapons that can use cells...
User avatar
mamaluigisbagel
Posts: 523
Joined: Wed Jul 09, 2014 7:25 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 11
Graphics Processor: nVidia with Vulkan support

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by mamaluigisbagel »

He's playing Final Doomer + with the TNT set, and he had every weapon except the BFG replacement. It was the Plasma Rifle weapon (that he had on top of all of the other weapons) that used cells.
DarkkOne
Posts: 274
Joined: Mon Jun 06, 2016 11:26 pm
Preferred Pronouns: No Preference
Operating System Version (Optional): Widnows 11
Graphics Processor: nVidia with Vulkan support

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by DarkkOne »

So... I'm not sure exactly what's going on, but Acid will do a bunch of 1-2 ticks, and then like... a 1300 tick of damage. This is on an enemy with 3000 life.

I'm playing Heretic with Hexarcana 3.0, and the upgrades I've purchased are in this screenshot.
https://imgur.com/1t6udMT
User avatar
ToxicFrog
Posts: 229
Joined: Thu Oct 05, 2017 10:09 am
Preferred Pronouns: She/Her
Operating System Version (Optional): NixOS

Re: [0.8.4] Gun Bonsai -- everything-compatible weapon upgra

Post by ToxicFrog »

DarkkOne wrote:Just thought that I should mention that this synergizes REALLY well with viewtopic.php?f=43&t=66059
In particular, choosing elements to match the elements of each weapon.

But it also left me thinking - Ice? I realized it's a pretty common element. Heck, Hexen just straight up has Frost Shards as a standard weapon. It'd make a lot of sense if Ice-themed upgrades were available.

For ideas: Chill, slowing enemies, Shatter, causing enemies to shoot a lot of projectiles out when killed kinda like the munitions ones but linear and non-explosive, Frostbite being a sort of inverted fire where the DoT increases the lower the enemy's health, but also wears off quickly and maybe can't be stacked, just refreshed, and Encase, which can freeze an enemy below a certain percentage of health that will distract enemies, so that some attack it instead of you until it's finished off. Kinda see Shatter and Encase as the masteries, though obviously up to you, barring what can actually be programmed and fits your design (if any of this even does).
I actually considered Ice; I wanted one for each of the four classical elements and Ice would have arguably been more natural fit for water than Acid is. In the end I decided against it; slowing enemies turns out to be hard to do reliably, freezing them in place is already covered by the lightning tree, and Encase's "kill enemies below a certain hp level" feature is already in the Acid tree as part of Embrittlement. Also, what you describe for Frostbite is exactly how the Acid effect works. :)

I do like the aesthetic of ice more than acid, though, so I'm going to keep rotating that in my mind and if can come up with a good way to implement it that's sufficiently differentiated from the existing trees...who knows?
Also, would it be possible to know what *type* of damage a weapon does (for example, if the weapon naturally does Fire or Ice damage, etc) and make only the elements on its primary and secondary fire available for upgrades (or if there's only one element, no other element until the first one's mastery'd, and if no elements then just as it is now). Maybe not necessarily as the default behaviour (though I think it'd make really good default behaviour) but as an option?

I like the whole "locking you into an element" thing, and I think it'd make a lot of sense if naturally elemental weapons were essentially already pre-locked into their element.
Not in the general case, sadly -- DamageType is generally attached to the puff or the projectile, not the weapon, and there's also no guarantee that the damage type used matches up with what I "expect" -- like, a lightning weapon could plausibly use any of Electricity, Lightning, Shock, Zap, etc as the damage type.

That said, 0.9 is going to include a feature where you can write automatically loaded per-mod configurations; it wouldn't be hard to have one that restricts what elements are available on what weapons given knowledge of that mod's elemental affinities.
mamaluigisbagel wrote:Apparently when using scavenge lead, my brother is ALWAYS getting plasma ammo, making the game a complete joke? I'm not sure if its just good luck or an error in the code.

I also like the idea of locking into an element. Kinda further emphasizes certain weapons being useful for certain situations.
Always getting plasma ammo is weird. I know Scavenge Lead is working properly in general, and looking at FD+, the TNT weapons use a variety of ammo types and it should be dropping all of them. Testing it out locally, it seems to be working fine; I'm actually having trouble keeping my maser fed because shells and bullets are more common, but I've seen every ammo type.

As for element lock-in to encourage specialization, that's already in in a different way -- you can't have more than two elements on a weapon, and once you pick the first element you will only get that element until you choose a mastery for it (which means a minimum of five levels of that element before you can pick a second one).
DarkkOne wrote:So... I'm not sure exactly what's going on, but Acid will do a bunch of 1-2 ticks, and then like... a 1300 tick of damage. This is on an enemy with 3000 life.

I'm playing Heretic with Hexarcana 3.0, and the upgrades I've purchased are in this screenshot.
https://imgur.com/1t6udMT
Embrittlement has a feature (documented in the manual but not in-game, because I couldn't come up with a way to phrase it that would fit) where enemies with enough acid stacks die instantly once their health is low. The threshold increases with amount of acid and levels in both Concentrated Acid and Embrittlement. However, if it's working properly, you'd need over 700 acid stacks on that enemy for instakill to kick in when it still has 1300hp, based on your upgrade levels, which would require you to be routinely landing hits for, idk, 300-400+ damage? More if it's a slower weapon? Maybe that's an easier threshold to reach than I expect; I'll turn on element stack debugging and have another look at it.
User avatar
ToxicFrog
Posts: 229
Joined: Thu Oct 05, 2017 10:09 am
Preferred Pronouns: She/Her
Operating System Version (Optional): NixOS

Release: 0.8.5

Post by ToxicFrog »

0.8.5 released! Download here. Fire got a bit of a nerf, but on the plus side, you can now find all four fire upgrades in the game rather than just two of them.
User avatar
openroadracer
Posts: 496
Joined: Mon Sep 23, 2019 1:03 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 7 Professional 64-bit SP1
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Location: Doomworld Forums

Re: [0.8.5] Gun Bonsai -- everything-compatible weapon upgra

Post by openroadracer »

Question: Would it be possible to make the mod read the fire rate of weapons, so that it then decides whether Poison or Acid would be more appropriate on it? This way, you would be more likely to be able to put Poison upgrades on weapons that have high fire rate, while more likely to get Acid upgrades on weapons that rely on heavy hits.

Reason why I suggest only basing it on fire rate is because of your documented description that scatter weapons apply Acid stacks per the sum damage of all pellets that hit, not the per pellet damage.

EDIT: Also, while I'm here, would it be possible to make it where, if you're running this with Treasure Tech, all of the upgrades you put on the Fists also apply to the Shoulder Ram and Ground Pound?
User avatar
ToxicFrog
Posts: 229
Joined: Thu Oct 05, 2017 10:09 am
Preferred Pronouns: She/Her
Operating System Version (Optional): NixOS

Re: [0.8.5] Gun Bonsai -- everything-compatible weapon upgra

Post by ToxicFrog »

openroadracer wrote:Question: Would it be possible to make the mod read the fire rate of weapons, so that it then decides whether Poison or Acid would be more appropriate on it? This way, you would be more likely to be able to put Poison upgrades on weapons that have high fire rate, while more likely to get Acid upgrades on weapons that rely on heavy hits.

Reason why I suggest only basing it on fire rate is because of your documented description that scatter weapons apply Acid stacks per the sum damage of all pellets that hit, not the per pellet damage.
Unfortunately the rate of fire is defined by the actor's fire state definition. As far as I know the state API isn't sophisticated enough to get that information out of it, and even if it supported queries like "how long, in tics, is this particular state", the Fire state is just the entry point and the actual pathway it takes to get from "first shot leaves the barrel" to "second shot" can be extremely convoluted -- take a look at Legendoom's weapon definitions for an example of how complex this can get. :(

There's a bunch of stuff I'd like to be able to read and/or modify like rate of fire, accuracy, melee range, etc that I just can't without breaking the mod's general-purpose compatibility.

And yeah, scatter weapons are kind of unusual in that they tend to be good with both poison (because they land lots of individual hits) and acid (because the total damage from all the hits at once is usually high).

Return to “Gameplay Mods”