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

Shield Stuff & Unpushable Shields #19840

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

Geevies
Copy link
Contributor

@Geevies Geevies commented Aug 25, 2024

  • Shields (Riot, Buckler, Energy, Tactical, Changeling) now block attacks 100% of the time, until their durability gets reduced to 0.
  • Shields now have durability and armour. Damage taken gets reduced by the shields armor, and then lowers the durability. Durability can be re-added by either repairing the shield, or waiting for it to recharge, if it's an energy shield.
  • Shields now block damage from simple mobs even if the damage is over 15.
2024-08-25.13-15-10.mp4
  • Shields held in your hand now guarantee that you cannot be pushed. Energy and tactical shields only prevent pushing when they're deployed / active.

@BotBOREALIS BotBOREALIS added the Sprites Adds new or changes existing sprites. label Aug 25, 2024
@Geevies
Copy link
Contributor Author

Geevies commented Aug 25, 2024

!review

code/game/objects/items.dm Outdated Show resolved Hide resolved
code/game/objects/items.dm Outdated Show resolved Hide resolved
code/game/objects/items.dm Outdated Show resolved Hide resolved
code/game/objects/items.dm Outdated Show resolved Hide resolved
code/game/objects/items/weapons/shields.dm Outdated Show resolved Hide resolved
code/game/objects/items/weapons/shields.dm Outdated Show resolved Hide resolved
code/game/objects/items/weapons/shields.dm Show resolved Hide resolved
code/game/objects/items/weapons/shields.dm Outdated Show resolved Hide resolved
code/game/objects/items/weapons/shields.dm Outdated Show resolved Hide resolved
code/game/objects/items/weapons/shields.dm Outdated Show resolved Hide resolved
Co-authored-by: Fluffy <65877598 [email protected]>
Signed-off-by: Geeves <[email protected]>
@Geevies Geevies changed the title Unpushable Shields Shield Stuff & Unpushable Shields Aug 27, 2024
@Geevies Geevies mentioned this pull request Aug 27, 2024
@Arrow768
Copy link
Member

Arrow768 commented Sep 7, 2024

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.
Is there something that prevents them from spamming new shields when the old one breaks?

Copy link

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))
Copy link
Contributor

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)))
Copy link
Contributor

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.

  1. Direction - being unpushable from behind would be a bit weird.
  2. 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.

Comment on lines 110 to 112
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])
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Merge Conflict Review Required Sprites Adds new or changes existing sprites.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants