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

Mech suits' effective coverage is inadequate for what they are due to the way code for rideable creatures works #36409

Closed
Amoebka opened this issue Dec 24, 2019 · 8 comments

Comments

@Amoebka
Copy link
Contributor

Amoebka commented Dec 24, 2019

Describe the bug

Mech suits are coded in a way ridable horses are, which leads to a number of serious bugs.

First, the mech and the player riding it are considered separate entities. Enemies have the option to attack either the mech or the player, not the player inside the mech. A player inside the mech can be hurt and killed while the mech sustains zero damage.

Second, mechs don't actually offer any protection to the player because of that. The armor values specified in JSON are applied only to the mech itself, not the player inside it. Even the weakest zombie can hurt a player inside the combat mech (25 bash, 45 cut) if they choose to hit him/her instead of the mech (if they hit the mech they do no damage as expected).

Steps To Reproduce

Steps to reproduce the behavior:

  1. Debug in a mech suit, a military ID card and a regular zombie.
  2. Get in the goddamn robot.
  3. Skip turn and observe that the zombie sometimes attacks the mech (doing no damage to armor) and sometimes the player (doing full damage completely ignoring the mech).

Expected behavior

Player and the mech they are piloting should be considered a single target, not two separate things. Mech's armor should be applied to all damage taken.

Versions and configuration

  • OS: win10
  • Game Version: 0.D-10626-gb9b3dc2
  • Graphics version: tiles
  • Mods loaded: none

Edit

As it turns out, mech suits do offer some protection to the pilot. However, the code only considers relative sizes of rider and mount, not accounting for whether or not the rider is on top of or inside the mount.
This leads to combat mechs having coverage of literally 50%, which is both implausible and makes them absolute garbage gameplay-wise.

@Fris0uman
Copy link
Contributor

So basically we're missing a flag to monster that say that they protect characters that ride them.

@anothersimulacrum
Copy link
Member

anothersimulacrum commented Dec 24, 2019

No, we aren't. #33329
Also, mech already have a chance to be hit instead of their riders (based on size), I don't think anything here is an actual issue.

@Amoebka
Copy link
Contributor Author

Amoebka commented Dec 24, 2019

The issue here is that the current code doesn't in fact differentiate between regular animal mounts like horses that the player simply rides on top of and mech suits that are intentionally designed to protect the pilot inside them. The linked flag was added for mod use and is not used by mechs in vanilla.

@anothersimulacrum
Copy link
Member

Yes, because the mechs in vanilla are not all encompassing armored suits, they're closer to exoskeletons.

@Fris0uman
Copy link
Contributor

Your exemple was the protection thing and we have that already. So what's wrong? Some text messages that say "pet" instead of mech ? The flavor around mech/rides could be more jsonized

@Amoebka
Copy link
Contributor Author

Amoebka commented Dec 24, 2019

Exoskeleton is still something you fit inside of which implies better protection than just sitting on top of something. They currently effectively have 50% coverage, what kind of combat armor is that. If protecting the pilot wasn't a design goal (which in itself is insane for a billion dollar battlefield suit) why does it have armor at all.
Gameplay-wise having high protection with low coverage makes armor basically unusable, unfitting for a super-rare dungeon reward.

@Amoebka Amoebka changed the title Mech suits behave all kinds of wrong due to being coded as mounts Mech suits' effective coverage is inadequate for what they are due to the way code for rideable creatures works Dec 24, 2019
@Ker-Nes
Copy link
Contributor

Ker-Nes commented Dec 24, 2019

Maybe if it's assumed that it's supposed to be worn alongside actual armor, with the exoskeleton just being there to improve mobility and weight coverage?

But then again, at that point we might just be dealing with power armor, and they both should be implemented in the same manner.

@kevingranade
Copy link
Member

This is working as intended, you're disagreeing with design decisions we've made around how these exoskeletons work, and you haven't presented any compelling reason to consider changing how we're handling it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants