Cataclysm-DDA icon indicating copy to clipboard operation
Cataclysm-DDA copied to clipboard

Smoker zombie rework/nerf

Open Daved27hundred opened this issue 1 year ago • 13 comments
trafficstars

Summary

Balance "Turns smoker zombies' cloud of smoke into a triggered attack instead of a constant one"

Purpose of change

I like smoker zombies, but I'm not a fan of how their main attack works. While the smoke field they produce makes for an interesting enemy that hides both itself and the horde around it, as well as choking anyone without proper equipment if they get too close, the fact that it's a constant cloud of smoke with little to no opening makes them less of an encounter that needs to be approached with caution and more an annoyance that makes you roll your eyes when you see it. Especially if you meet one indoors where it's hotboxed the entire room.

Describe the solution

I've decided to change how the smoker and zombies that behave similarly to it function - The smoke field they constantly produce around themselves is much smaller now, and they were given a new special attack when they see an enemy. ~~This special attack causes them to spit out a smoke cloud similar to the one they do currently for 7 seconds.~~ Attempting to do this, I found that monsters aren't able to emit fields like the player is, so I have to compromise. The smokers now emit a larger burst of smoke on a cooldown of 35 whenever they see the player. This will make the smoker more manageable without ruining it's main gimmick, by giving players an opening to attack it either by waiting for it's attack to dissipate - or attacking it from stealth or range before it can start smoking. This might also have the effect of not alerting players to their presence prematurely, which is a fun thought to me.

Balance aside I was also hoping this would give the impression the smoker goes "dormant" to preserve biomass, only expelling smoke in large quantities when it's chasing something.

Describe alternatives you've considered

If I can't make the cloud a steady stream, I could just make it belch out a spontaneous cloud every couple of seconds.

Testing

It works, tested it over the course of a couple days.

Additional context

none

Daved27hundred avatar Apr 15 '24 03:04 Daved27hundred

okay "rusty" might have been an understatement let me clean this up image

Daved27hundred avatar Apr 15 '24 03:04 Daved27hundred

Spell checker encountered unrecognized words in the in-game text added in this pull request. See below for details.

Click to expand
  • Inside the chest is some unfamiliar organ, a frankenstien of nearby tissues and black veins
  • Inside the chest is some unfamiliar organ, a frankenstien of nearby tissues and black veins.

This alert is automatically generated. You can simply disregard if this is inaccurate, or (optionally) you can also add the new words to tools/spell_checker/dictionary.txt so they will not trigger an alert next time.

Hints for adding a new word to the dictionary
  • If the word is normally in all lowercase, such as the noun word or the verb does, add it in its lower-case form; if the word is a proper noun, such as the surname George, add it in its initial-caps form; if the word is an acronym or has special letter case, such as the acronym CDDA or the unit mW, add it by preserving the case of all the letters. A word in the dictionary will also match its initial-caps form (if the word is in all lowercase) and all-uppercase form, so a word should be added to the dictionary in its normal letter case even if used in a different letter case in a sentence.
  • For a word to be added to the dictionary, it should either be a real, properly-spelled modern American English word, a foreign loan word (including romanized foreign names), or a foreign or made-up word that is used consistently and commonly enough in the game. Intentional misspelling (including eye dialect) of a word should not be added unless it has become a common terminology in the game, because while someone may have a legitimate use for it, another person may spell it that way accidentally.

github-actions[bot] avatar Apr 15 '24 03:04 github-actions[bot]

Smokers are like the one zombie you can't just snipe (without explosives), I don't think taking away their concealment is reasonable. We need more zeds you can't deal with at range not less.

I do like turning the attack into a heftier on-demand smoke cloud, but I wouldn't reduce their constant emission to the level where they are consistently visible outside of extreme wind.

Venera3 avatar Apr 15 '24 03:04 Venera3

What about making the smoke from smoker zombies harmless? I think current smoke being equivalent to smoke from fire is the major issue of the smoker zombies.

AnotherSeawhite avatar Apr 15 '24 07:04 AnotherSeawhite

Make it an evolution thing. Smoker zombies being the hulk-evo of this new one

carlarctg avatar Apr 15 '24 16:04 carlarctg

Smokers are like the one zombie you can't just snipe (without explosives), I don't think taking away their concealment is reasonable. We need more zeds you can't deal with at range not less.

I do like turning the attack into a heftier on-demand smoke cloud, but I wouldn't reduce their constant emission to the level where they are consistently visible outside of extreme wind.

Probably reduce their cloud of visibility then, just enough to hide the zombie but not enough to fill an entire screen with smoke. I feel like the current smoke generation sometimes also benefit the player, because it hides you from a zerg or prevent enemies from seeing from inside.

Nebnis avatar Apr 15 '24 16:04 Nebnis

I do like turning the attack into a heftier on-demand smoke cloud, but I wouldn't reduce their constant emission to the level where they are consistently visible outside of extreme wind.

I think I'll do this. I'll start with a qty value of 8 and test that, see if it needs to be increased or not

Daved27hundred avatar Apr 15 '24 17:04 Daved27hundred

Iin #71717 I discovered that gas-emitting enemies were creating a lot of lag. It sounds like the solution you have here is going to result in fewer overall field tiles per smoke zombie, which might help a lot if something similar is done to the nuckalavee and hound of tindalos.

In the linked issue, I was noticing more lag on poison gas than on regular smoke, but ymmv.

worm-girl avatar Apr 16 '24 22:04 worm-girl

What about making the smoke from smoker zombies harmless? I think current smoke being equivalent to smoke from fire is the major issue of the smoker zombies.

Apart from me thinking that would make them a trivial enemy, since smoke inhalation is the bigger drawback to their smoke field than vision blocking, I'm not sure how to create a new smoke type from scratch.

Make it an evolution thing. Smoker zombies being the hulk-evo of this new one

I think that would defeat the purpose of what I'm doing...I do have some smoker evolution ideas though. Those aren't coming until a later PR.

I discovered that gas-emitting enemies were creating a lot of lag. It sounds like the solution you have here is going to result in fewer overall field tiles per smoke zombie, which might help a lot if something similar is done to the nuckalavee and hound of tindalos.

I looked and it seems the emit they use has a quantity of 24, like the smoker, which is a lot per second. I'll think about it.

Daved27hundred avatar Apr 17 '24 01:04 Daved27hundred

I feel like you wouldn't need much passive emission to screw with guns as long as line of sight is broken every 2-3 seconds.

worm-girl avatar Apr 17 '24 02:04 worm-girl

Just for the record, you don't need to care about the performance impact for JSON work - if there's an optimization to be made it should be made in code, not plastered over with restricting the design space. It also sends you down some very misleading routes since if you're not using an actual profiler the Mark One Eyeball™ is not that helpful.

Venera3 avatar Apr 17 '24 03:04 Venera3

I've hit a roadblock - The attack works, but since it's a spell it only produces smoke when casted rather than for the duration.

I tried editing the spell to cast an effect that created the smoke field, but apparently monsters are unable to use proper emitters. I tested the spell on the player and it worked fine, but the zombie just couldn't use it.

I don't have any ideas of how else to approach this - any ideas?

Daved27hundred avatar Apr 20 '24 16:04 Daved27hundred

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not bump or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

github-actions[bot] avatar May 23 '24 06:05 github-actions[bot]

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not bump or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

github-actions[bot] avatar Jun 30 '24 23:06 github-actions[bot]

In the docs it says only a small subset of enchantment values can be applied to monsters. I checked the code, and it may only apply an enchantment to monsters if it has one of those values. Try adding { "value": "ARMOR_HEAT", "add": 1 } and see if it works. If it does, then the code needs a change.

zachary-kaelan avatar Jul 03 '24 14:07 zachary-kaelan

In the docs it says only a small subset of enchantment values can be applied to monsters. I checked the code, and it may only apply an enchantment to monsters if it has one of those values. Try adding { "value": "ARMOR_HEAT", "add": 1 } and see if it works. If it does, then the code needs a change.

what should I be able to see, if adding that line works?

Daved27hundred avatar Jul 04 '24 18:07 Daved27hundred

what should I be able to see, if adding that line works?

The monster should be able to apply the field to itself. Hypothetically.

zachary-kaelan avatar Jul 04 '24 23:07 zachary-kaelan

@Daved27hundred care to resolve conflicts?

Night-Pryanik avatar Oct 05 '24 09:10 Night-Pryanik

Closing as stale. If you wish to continue working on this, ping me to reopen.

Night-Pryanik avatar Dec 09 '24 06:12 Night-Pryanik