-
Notifications
You must be signed in to change notification settings - Fork 518
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
Shield Stuff & Unpushable Shields #19840
base: master
Are you sure you want to change the base?
Conversation
!review |
Co-authored-by: Fluffy <65877598 [email protected]> Signed-off-by: Geeves <[email protected]>
I am unsure about a person becoming unpushable when they equip a shield. It might be better to limit it to them being only unpushable when pushed from the front. I have also some concerns about changelings. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
wearer.update_inv_r_hand() | ||
wearer.update_inv_l_hand() | ||
for(var/trait in equipped_traits) | ||
REMOVE_TRAIT(wearer, trait, ref(src)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
probably need macro ref here
return | ||
|
||
if(!(tmob.status_flags & CANPUSH)) | ||
if(!(tmob.status_flags & CANPUSH) || (tmob.a_intent != I_HELP && HAS_TRAIT(tmob, TRAIT_UNPUSHABLE))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The trait should probably have limitations.
- Direction - being unpushable from behind would be a bit weird.
- Size - being unpushable by gigantic mobs would be very silly. A mech should still be able to move you, for instance, so should maybe a Ta or something really strong like a G2.
var/datum/component/armor/armor_datum = GetComponent(/datum/component/armor) | ||
var/list/damage_args = armor_datum.apply_damage_modifications(damage, damage_source?.damage_type() || DAMAGE_BRUTE, damage_source?.damage_flags() || 0, user, damage_source?.armor_penetration || 0, TRUE) | ||
handle_damage(user, damage_args[1]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shields should probably do the same thing barricades do where projectiles have a % chance to pass through them depending on current health (from 0% up to maybe 50 to 75%) which is more fair than a consistent 100%.
I'm also not convinced that a shield with no bullet armour should eat bullets. If a shield doesn't have enough armour to lower the damage below a certain value, it shouldn't eat the damage at all, or at the very least it should be MUCH stronger for the purposes of breaking the shield. My proposition is making all of these depend on damage type.
- Blunt non-sharp non-edge weapons should be really good at breaking shields.
- Edge damage should probably not do that much - not a good idea to bring a knife to a shield fight.
- Burn weapons should be about as effective if not more than blunt weapons.
- Projectiles and piercing weapons should be able to go THROUGH shields with the aforementioned % chance depending on current shield durability.
2024-08-25.13-15-10.mp4