diff --git a/code/datums/quirks/negative_quirks/limper.dm b/code/datums/quirks/negative_quirks/limper.dm new file mode 100644 index 00000000000..e272bd2c712 --- /dev/null +++ b/code/datums/quirks/negative_quirks/limper.dm @@ -0,0 +1,30 @@ +/datum/quirk/item_quirk/limper + name = "Limper" + desc = "You have a pronounced limp when you walk. This will slow you down considerably. Good thing you brought your cane." + icon = FA_ICON_PERSON_CANE + gain_text = span_danger("Your leg feels a bit weak.") + lose_text = span_notice("Your legs feel normal again.") + medical_record_text = "Patient appears to suffer from a weakness in the leg." + value = -6 + hardcore_value = 3 + quirk_flags = QUIRK_HUMAN_ONLY + + mail_goodies = list( + /obj/item/cane, + /obj/item/cane/crutch, + /obj/item/cane/white, + ) + +/datum/quirk/item_quirk/limper/add_unique(client/client_source) + give_item_to_holder(new /obj/item/cane(get_turf(quirk_holder)), list( + LOCATION_HANDS, + LOCATION_BACKPACK, + )) + return + +/datum/quirk/item_quirk/limper/add(client/client_source) + quirk_holder.apply_status_effect(/datum/status_effect/limp/quirk) + +/datum/quirk/item_quirk/limper/remove(client/client_source) + quirk_holder.remove_status_effect(/datum/status_effect/limp/quirk) + diff --git a/code/datums/status_effects/wound_effects.dm b/code/datums/status_effects/wound_effects.dm index 5e81b2c4816..5ea0be0b256 100644 --- a/code/datums/status_effects/wound_effects.dm +++ b/code/datums/status_effects/wound_effects.dm @@ -142,6 +142,31 @@ carbon_mob.remove_status_effect(src) return +//Quirk variant of limping. Will always be applied as long as you have a leg to stand on. +/datum/status_effect/limp/quirk + id = "limp_quirk" + alert_type = null + +/datum/status_effect/limp/quirk/update_limp(datum/source) + var/mob/living/carbon/carbon_mob = owner + left = carbon_mob.get_bodypart(BODY_ZONE_L_LEG) + right = carbon_mob.get_bodypart(BODY_ZONE_R_LEG) + + slowdown_left = 0 + slowdown_right = 0 + limp_chance_left = 0 + limp_chance_right = 0 + + + if(left) + slowdown_left = 7 //Same as compound fracture + limp_chance_left = 70 + + else if(right) + slowdown_right = 7 + limp_chance_right = 70 + + ///////////////////////// //////// WOUNDS ///////// ///////////////////////// diff --git a/tgstation.dme b/tgstation.dme index 738b35d13ae..e2ec6e08463 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1950,6 +1950,7 @@ #include "code\datums\quirks\negative_quirks\indebted.dm" #include "code\datums\quirks\negative_quirks\insanity.dm" #include "code\datums\quirks\negative_quirks\light_drinker.dm" +#include "code\datums\quirks\negative_quirks\limper.dm" #include "code\datums\quirks\negative_quirks\monophobia.dm" #include "code\datums\quirks\negative_quirks\mute.dm" #include "code\datums\quirks\negative_quirks\narcolepsy.dm"