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

[CR] Update Modular Turrets and Salvaged Robots to match Mainline style and recipes Fixes #35689 #35752

Merged
merged 25 commits into from
Jan 20, 2020

Conversation

CSHague
Copy link
Contributor

@CSHague CSHague commented Nov 28, 2019

Summary

SUMMARY: Mods "Update Modular Turrets and Salvaged Robots to match mainline style and recipes"

Purpose of change

Originally intended to fix an issue #35689 - Modular Turrets and Salvaged Robots uncraft recipes contain outdated uncraft recipes that prevent the player from accessing newer items that are components for newer recipes. Eventually turned into an update to get Modular Turrets and Salvaged Robots to match Mainline turret style in terms of uncrafting recipes and ammo drops.

Describe the solution.

  • Specifically tried to keep the power sources the same, except for with manhacks which were converted to use small storage batteries. Plutonium batteries not merged from many entries as microreactors can be uncrafted into plutonium cells.

  • Modified the uncraft recipes of broken turrets and robots so they will disassemble into newer components to allow the player to access the Turret Control Unit and other future items :
    Any turret or robot that can fire a ranged weapon was given targeting and gun control modules; AI cores and other robotic modules were added to the recipes trying to match the tiers shown in main: Simple core for manhacks, regular for turrets and guard bots, and advanced cores for medical robots; many loose electronics were removed from the disassembly recipes as the new modules can be uncrafted for the same electronic components and turrets and robots were given new chassis components (spider legs, reverse-jointed legs, android arms, et al) As a result scrap metal and electronics removed as these components clearly represent the body. The body parts I couldn't find a rough analogue for I kept as scrap components.

  • Military Turrets and robots have had their starting_ammunition increased to approximate with the mainline turrets, 1000 for 308, 1600 for 556. Liquid turrets have been given 10L of ammunition equivalent to a plastic jerrycan. Small pillbox turrets were kept with low capacities as they appear to be "civilian models." Grenade launchers were kept at their default capacities.

  • Added DROPS_AMMO to many turrets allowing them to drop the same amount of ammo as turrets in mainline. This would at least give the player access to a wider variety of ammunition over the military and civilian-use spectrum. Tried to match ammunition volume wise with the mainline turrets.

  • Lights were removed from turrets and robots to match mainline turrets. This would be a good spot for another branch to add a craftable spotlight turret.

Describe alternatives you've considered

With the breadth of changes made it's hard to speak for alternatives. Removing the override on the corpses would allow the player to salvage regular turrets but they would lose the functionality of the modular turrets. I guess leaving the Modular Turrets deprecated would be considered a reprieve from what some would consider newer "unfair" turrets.

Testing

Put this branch through its paces. Turrets properly drop their ammo when killed except for liquid turrets which is the source of a duping bug and was subsequently disabled. Craftbuddy uses Batteries as ammo, rendering it impossible to load though it doesn't appear to need the ammo to do anything. Updating the craftbuddy is out of the scope of this branch.

Additional context

Came across this issue a few days ago while watching a streamer and wanted to take a crack at handling it. This is my first fork and since this is just a JSON edit (while large) it seemed doable. Could use some input on the broken cyborg.

I eschewed many of the robotic modules in the broken cyborg recipes, as one would expect the human brain component is responsible for most of that, but I added robotic controls to, as some subsystem must be responsible for forcing the cyborg to do things. If I should add an AI core to it as well, that is fine.

Weights and volumes of monsters to the new components need to be adjusted but I can get that with another branch. The volumes for a lot of things in both mods are way off before even comparing them to mainline turrets.

Tried to match ammo counts to mainline turrets (probably overkill) and keep within some similar size constraints.
Trying to solve the issue of non-dropping ammunition from Modular Turrets. Base_turret was missing DROPS_AMMO flag that mainline turrets have. Perhaps this will solve the issue. Tried to get ammo counts to match mainline turrets as well.
Wily little comma!
Dastardly rogue commas
Validator said to lint, even though I did?
Added various modules minus the gun module, as the auto armor does not use a gun.
Fixed the structure of flags so DROPS_AMMO and immunity flags are again extended so potential changes to base are easier to implement. This would likely be a tidiness issue later. Removed the DROPS_AMMO flag from liquid turrets as they drop inappropriate containers full of liquid. For instance, if ammo count is 10, it drops ten jerrycans full of napalm, however, when placing the turret, it only takes 10 fuel from the jerrycan, making it an infinite napalm loop. Reduced count of "small pillbox" described turrets. Turrets' max ammo when activated is based on the amount in "starting_ammo", so if set to 1, it will only load 1 round. It will ignore the magazine size of the robogun that it uses. Anyway, I upped the amount fuel in the flamer turret to 10000 to represent using an entire jerrycan of napalm as fuel. I'll need to add flags to the robogun_flamer so that it fires more than 1 round at a time like a normal flamethrower.
Robots that intentionally produce light as a function were left alone. Removed lights from most others. Electrical attack robots will still give off light as if they were a shocker.
Presumably its light comes from pilot light.
Already removed luminance from turrets, needed to remove lightstrips from uncraft recipes.
@fluffe9911
Copy link
Contributor

any chance this fixes the issue of the lab entrance turret not going down even if you slide the science card?

@CSHague
Copy link
Contributor Author

CSHague commented Nov 28, 2019

Not that I've tested for it, but I doubt it. This is only a JSON edit. That sounds like something that would need to modify the script that runs the consoles. Probably not checking for the right ids or monstergroups

@Maleclypse
Copy link
Member

Thank you for doing this!

@ZhilkinSerg ZhilkinSerg added [JSON] Changes (can be) made in JSON Crafting / Construction / Recipes Includes: Uncrafting / Disassembling Mods Issues related to mods or modding labels Dec 3, 2019
Copy link
Member

@Maleclypse Maleclypse left a comment

Choose a reason for hiding this comment

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

I think that removing the "power_armor_frame" from autoarmor recipes and and adding an uncraft to autoarmor would finish this out. The Power Armor Frame is effectively a giant tactical backpack for power armor, so I'm not sure what the autoarmor would use it for?

@CSHague
Copy link
Contributor Author

CSHague commented Dec 6, 2019

Description says the autoarmor was intended to just walk your armor for you since its AI makes a poor combatant so the frame was probably just assumed to be used by every player.

@Maleclypse
Copy link
Member

@CSHague can you resolve the conflicts in this PR or do you need some help with it?

@Maleclypse
Copy link
Member

@laveyanfiend Travis is failing a Magiclysm test?

@ZhilkinSerg ZhilkinSerg merged commit 00fbf22 into CleverRaven:master Jan 20, 2020
va5h added a commit to va5h/Cataclysm-DDA that referenced this pull request Jan 20, 2020
@CSHague CSHague deleted the CSHague-Modular-Turret-Update branch February 7, 2020 07:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Crafting / Construction / Recipes Includes: Uncrafting / Disassembling [JSON] Changes (can be) made in JSON Mods Issues related to mods or modding
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants