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

(Done)Adds riot control turrets and makes them more common than lethal types. Removes roadblock robots. #35821

Closed
wants to merge 23 commits into from

Conversation

I-am-Erk
Copy link
Member

@I-am-Erk I-am-Erk commented Dec 2, 2019

Summary

SUMMARY: Content "Adds riot control turrets, removes roadblock robots"

Purpose of change

From a lore perspective, it's hard to imagine police forces having access to countless CROWS turrets to scatter everywhere as lethal crowd control. From a gameplay perspective, turrets are a ways from being fun to deal with currently. There are plans to improve this with better turret AI, but these are a ways from implementation.

Describe the solution

Creates a riot control turret that uses 40mm sponge rounds. All police roadblocks spawn these, and some military as well.

Removes chicken walkers and beagle minitanks from military roadblocks and from any spawn lists (edit to clarify, they are still specifically called up in some labs and in the necropolis). These need some re-evaluation overall and might be moved to aftershock, or severely nerfed. Whatever the case, they belong in outposts and bunkers and reinforced hardpoints, not just meandering around the road headshotting new players.

As a nice side effect this restores some of the ammunition balance, you now can't get thousands of rifle rounds from a roadblock.

Incidentally I realized that inactive turret sizes were still much too small so I fixed them.

Describe alternatives you've considered

Initially I put beanbag rounds on all the military blockades as well, but it was pointed out that these blocks probably appeared later in the cataclysm when lethal force was becoming the mode-du-jour, so a few deadly turrets out there aren't bad.

Testing

All json changes have been tested. The new turrets are still dangerous and potentially fatal, but you have quite a long time to run before they wipe you out.
image

Compile and spawning in c++ tested by anothersimulacrum.

Additional context

For future consideration, I would like the ability to specify targeting on monster special attacks. That way these turrets could preferentially hit arms and legs, only rarely hitting torsos and heads. This would make them even better at stunning and wounding players but not killing them outright.

I would also like these riot turrets to have tear gas canisters that they occasionally fire out - in a perfect world, when more than a threshold number of targets are visible. For now, sponge rounds are fine.

@I-am-Erk I-am-Erk added Game: Balance Balancing of (existing) in-game features. Monsters Monsters both friendly and unfriendly. Spawn Creatures, items, vehicles, locations appearing on map labels Dec 2, 2019
@Maddremor
Copy link
Contributor

Could tear gas canisters be a plausible munition for some variety?

Copy link
Member

@ymber ymber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unless I'm missing some real world use of systems like this I think we shouldn't add riot control turrets. In all cases I can see of turrets and robots spawning in places they shouldn't it would be fine to remove them without replacement. I'd support moving the chicken walker and tank drone to aftershock. The tank drone could be reworked into something like the Gladiator UGV but given that none of these or similar UGVs are actually in regular use I think keeping it explicitly scifi and moving it to a mod is the right option.

data/json/items/corpses/inactive_bots.json Outdated Show resolved Hide resolved
data/json/items/corpses/inactive_bots.json Outdated Show resolved Hide resolved
data/json/monsters/turrets.json Show resolved Hide resolved
Copy link
Member

@anothersimulacrum anothersimulacrum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works as advertised - the turrets spawn correctly, cops have more beanbag bots than police.
Compiles fine.

@I-am-Erk I-am-Erk marked this pull request as ready for review December 2, 2019 23:31
Copy link
Member

@tenmillimaster tenmillimaster left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think a stationary turret has much potential for LE/MIL applications.

A mobile platform is likely to be more successful, something that was just outfitted and programmed with the less lethal weaponry. It could just behave like a turret, standing guard around a particular area.

What ymber linked to, a small vehicle with a pepperball gun would be decent.

Rather than using 40mm baton rounds in an array of M203's like that of the Talon bots, I think an FN303 style gun, capable of launching impact batons, is good. Later expansion to firing CS or OC balls could be examined. It's a bit of a cross between the baton round implementation here and the pepperball gun bot linked earlier, in that the FN303 could do both.

data/json/items/gun/40mm.json Outdated Show resolved Hide resolved
data/json/items/gun/40mm.json Show resolved Hide resolved
@Night-Pryanik
Copy link
Contributor

Removes chicken walkers and beagle minitanks from military roadblocks and from any spawn lists.

Don't we have a convention either to necessarily use item/monster/whatever or to remove them for good? Not stockpile unused stuff for "possible later use"?

@kevingranade
Copy link
Member

The catch here is shutting off spawning but leaving the definition in place to avoid breaking saves.

@thethunderhawk
Copy link

@Amoebka it seems like the current proposed solution to the “turret ammo problem” is to make the lethal turrets much more dangerous. I would expect to see lethal turrets gaining some NV ability before they’d have their ammo capacity reduced, since autonomous turrets should realistically have big ammo reserves.

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Dec 3, 2019

The solution to the turret ammo problem is to give them a birthday and have them spend a certain amount of ammo based on monster density in the area prior to appearing.

Having them be much less common does in fact help with the problem though. They're still an overlarge bounty but not one appearing several times per large city.

@I-am-Erk I-am-Erk changed the title Adds riot control turrets and makes them more common than lethal types. Removes roadblock robots. (WIP)Adds riot control turrets and makes them more common than lethal types. Removes roadblock robots. Dec 4, 2019
@Kodiologist
Copy link
Contributor

Kodiologist commented Dec 5, 2019

Overall, this is definitely a change for the better. Anything that reduces the incidence of a full-HP player dying from one attack by a monster that's 40 squares away is an improvement.

But I would caution against removing the big ammo supplies that turrets represent without some replacement. Melee is vastly less effective than it was before the introduction of the stamina system and the severe effects of windedness (#35303 (comment)), bows and thrown weapons take forever to kill zombies with minimal armor (the last time I checked), and the mighty pneumatic assault rifle, like a crossbow, can't be reloaded in combat. So without lots of ammo for a real gun, killing large groups of zombies without taking suicidal risks is a slow and tedious process of hit-and-run. I dunno, I guess it makes sense for running over zombies in a car to be the preferred technique, but unfortunately you can't really do this against the gigantic hordes of zombie scientists and zombie security in labs. Or maybe the way the game is headed, the intention will be that you always run from large groups, not fight them, which works okay in cities but certainly precludes looting a lab.

Perhaps roadblocks should provide like 200 bullets instead of several thousand. Or, perhaps there should be ammo stashes of reasonable size in places you'd expect them to be, like gun stores and gun nuts' basements, rather than the handful of bullets you can usually find in these places. Gun stores in particular presumably haven't already been looted when you find them all locked up.

@crazykiddeath
Copy link
Contributor

Overall, this is definitely a change for the better. Anything that reduces the incidence of a full-HP player dying from one attack by a monster that's 40 squares away is an improvement.

But I would caution against removing the big ammo supplies that turrets represent without some replacement. Melee is vastly less effective than it was before the introduction of the stamina system and the severe effects of windedness (#35303 (comment)), bows and thrown weapons take forever to kill zombies with minimal armor (the last time I checked), and the mighty pneumatic assault rifle, like a crossbow, can't be reloaded in combat. So without lots of ammo for a real gun, killing large groups of zombies without taking suicidal risks is a slow and tedious process of hit-and-run. I dunno, I guess it makes sense for running over zombies in a car to be the preferred technique, but unfortunately you can't really do this against the gigantic hordes of zombie scientists and zombie security in labs. Or maybe the way the game is headed, the intention will be that you always run from large groups, not fight them, which works okay in cities but certainly precludes looting a lab.

Perhaps roadblocks should provide like 200 bullets instead of several thousand. Or, perhaps there should be ammo stashes of reasonable size in places you'd expect them to be, like gun stores and gun nuts' basements, rather than the handful of bullets you can usually find in these places. Gun stores in particular presumably haven't already been looted when you find them all locked up.

It depends on what you define as a large group I guess but with the right traits, high combat skills and well thought out gear, killing 30+ zombies (including evolved types) is entirely possible.

@Kodiologist
Copy link
Contributor

Kodiologist commented Dec 5, 2019

I agree, I'm just saying it's tedious, at least without guns, a vehicle, explosives, a handy puddle of lava or wildfire or hole in the floor, etc. You can even do it with melee alone if you're careful enough.

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Dec 5, 2019

A single turret kill for thousands of rounds of ammunition is not a good solution to the ammunition problem. If this just re-unmasks the larger issue, that is fine.

@thethunderhawk
Copy link

thethunderhawk commented Dec 6, 2019

@I-am-Erk. Problem with the “birthday” implementation is that it sort of shines a light on larger fundamental issues with turrets. A turret that fires should be attracting a shitload of zeds, and the way the pulping mechanics work just a couple zombies should be more than enough to take down a turret given enough time. It seems like unless we invent some lore justification all the turrets should have long since been overrun and destroyed, and they should be surrounded by bodies and active zeds.

IMO you could give the turrets much less ammo and explain the roadblocks as being maintenanced, replenished with ammo, and cleared of corpses by a patrol of Old Guard military engineers operating in the region. Really though, turrets are more challenging for the lore than I might have thought before considering all this.

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Dec 6, 2019

Honestly, I don't think it's an issue at all if turrets in populated areas are often found depleted and overrun. It still adds to the lore and feel of the game, and turrets on the surface level streets as a random encounter aren't particularly fair nor fun. Then when you occasionally find a turret that wasn't overrun for some reason, it's interesting and poses both a surprise challenge and a potential treasure.

@I-am-Erk I-am-Erk changed the title (WIP)Adds riot control turrets and makes them more common than lethal types. Removes roadblock robots. Adds riot control turrets and makes them more common than lethal types. Removes roadblock robots. Dec 6, 2019
@thethunderhawk
Copy link

@I-am-Erk so is the long term plan to make that happen? Replace most roadblocks with destroyed variants, etc?

@I-am-Erk
Copy link
Member Author

I-am-Erk commented Dec 7, 2019

If many turrets started the game with barely any ammo left just algorithmically, the issue would solve itself, which is preferable

@thethunderhawk
Copy link

thethunderhawk commented Dec 7, 2019

Problem there is, two years into the cataclysm exploring new areas you’ll still find zeds swarming turrets that long since should have been completely torn apart. Unless you designed it so turrets whose “birthday” would result in spawning with no ammo instead spawn already destroyed.

Also, a turret that supposedly had hundreds of rounds of ammo, that is supposed to have fired most or all of them, should be surrounded by spent shell casings and zombie corpses. (Or actually zombie gear, since turrets can’t pulp zeds)

@Amoebka
Copy link
Contributor

Amoebka commented Dec 8, 2019

High caliber bullets (i.e. the ones turrets shoot) can mangle corpses beyond the point at which they can resurrect (this is already in the game).
So it's possible for a turret in a secluded location to kill and "pulp" all zombies in the area before it runs out of ammo. Theoretically, such a turret could still be found operational 2 years into the Cataclysm,

@thethunderhawk
Copy link

thethunderhawk commented Dec 9, 2019

@Amoebka .50 cal rounds can do enough damage to pulp a zed, but for 5.56 that’s pretty rare. Test it yourself, spawn a 5.56 turret and a few zeds, wait around, see if the turret can damage them enough to prevent them eventually killing it.

I agree though tweaking the pulping mechanics so a turret could keep a group of zombies down would be a good solution.

src/map_extras.cpp Outdated Show resolved Hide resolved
src/map_extras.cpp Outdated Show resolved Hide resolved
@I-am-Erk I-am-Erk changed the title Adds riot control turrets and makes them more common than lethal types. Removes roadblock robots. (Done)Adds riot control turrets and makes them more common than lethal types. Removes roadblock robots. Dec 13, 2019
Copy link
Member

@ymber ymber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get #35865 in before this so this only needs updating once before merge?

Generally good, just needs some changes for consistency.

@@ -269,6 +269,28 @@
"skill2": "computer"
}
},
{
"id": "bot_turret_riot",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"id": "bot_turret_riot",
"id": "bot_talon_m203",

Consistent IDs for our UGVs makes it easier to know exactly what they are by ID only.

@@ -180,5 +180,28 @@
"clip_size": 3,
"modes": [ [ "DEFAULT", "single", 1, "NPC_AVOID" ], [ "MULTI", "multi", 3, [ "NPC_AVOID", "SIMULTANEOUS" ] ] ],
"proportional": { "weight": 1.5, "volume": 1.8, "price": 2 }
},
{
"id": "pseudo_m203",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"id": "pseudo_m203",
"id": "m203_array",

This isn't really a pseudo item.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't it? It's just a bunch of m203's strapped onto the bot, not an actual gun.

"durability": 10,
"reload": 400,
"modes": [ [ "DEFAULT", "semi-auto", 1, "NPC_AVOID" ] ],
"clip_size": 16,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"clip_size": 16,
"clip_size": 6,

@@ -225,5 +225,55 @@
"death_drops": { },
"death_function": [ "BROKEN" ],
"flags": [ "SEES", "NOHEAD", "ELECTRONIC", "IMMOBILE", "NO_BREATHE", "DROPS_AMMO" ]
},
{
"id": "mon_turret_riot",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"id": "mon_turret_riot",
"id": "mon_talon_m203",

Consistent monster IDs for UGVs. This should go in defense_bot.json too because we're likely to have moving ones at some point.

[ [ "targeting_module", 1 ] ],
[ [ "identification_module", 1 ] ],
[ [ "sensor_module", 1 ] ],
[ [ "m203", 16 ] ],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should give one of the M203 array items instead of individual M203s.

@kevingranade
Copy link
Member

Squashed and merged as dbb1105

@I-am-Erk I-am-Erk deleted the less-lethal-turrets branch August 3, 2020 19:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Game: Balance Balancing of (existing) in-game features. Monsters Monsters both friendly and unfriendly. Spawn Creatures, items, vehicles, locations appearing on map
Projects
None yet
Development

Successfully merging this pull request may close these issues.