From bfb5fea278b99a9148f7c81dc1634b44a2b900ae Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 24 Nov 2024 20:35:50 +0100 Subject: [PATCH] Nerfs fish infusion slipperiness and make them slightly more susceptible to fire and heat. (#88065) --- code/__DEFINES/mobs.dm | 2 ++ code/datums/status_effects/debuffs/fire_stacks.dm | 2 +- .../machinery/dna_infuser/organ_sets/fish_organs.dm | 9 +++++++-- code/game/turfs/open/_open.dm | 10 +++++++--- .../projectiles/projectile/special/temperature.dm | 7 +++++++ 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index ac5d51cdc99..a1496d2e138 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -378,6 +378,8 @@ #define SLIPPERY_TURF (1<<5) /// For mobs who are slippery, this requires the mob holding it to be lying down. #define SLIPPERY_WHEN_LYING_DOWN (1<<6) +///Like sliding, but it's short, it doesn't knockdown, it doesn't stun, it just staggers a bit. +#define WEAK_SLIDE (1<<7) #define MAX_CHICKENS 50 diff --git a/code/datums/status_effects/debuffs/fire_stacks.dm b/code/datums/status_effects/debuffs/fire_stacks.dm index 8a629dc14ef..648f09f31e9 100644 --- a/code/datums/status_effects/debuffs/fire_stacks.dm +++ b/code/datums/status_effects/debuffs/fire_stacks.dm @@ -339,7 +339,7 @@ /datum/status_effect/fire_handler/wet_stacks/proc/become_slippery() SIGNAL_HANDLER - slipperiness = owner.AddComponent(/datum/component/slippery, 5 SECONDS, lube_flags = SLIPPERY_WHEN_LYING_DOWN) + slipperiness = owner.AddComponent(/datum/component/slippery, 5 SECONDS, lube_flags = SLIPPERY_WHEN_LYING_DOWN|NO_SLIP_WHEN_WALKING|WEAK_SLIDE) ADD_TRAIT(owner, TRAIT_NO_SLIP_WATER, TRAIT_STATUS_EFFECT(id)) /datum/status_effect/fire_handler/wet_stacks/proc/no_longer_slippery() diff --git a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm index 67fe3a41f71..7dda9ba1563 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm @@ -8,8 +8,8 @@ id = "organ_set_bonus_fish" tick_interval = 1 SECONDS organs_needed = 3 - bonus_activate_text = span_notice("Fish DNA is deeply infused with you! While wet, you crawl faster, are slippery, and cannot slip, and it takes longer to dry out. \ - You're also more resistant to high pressure, better at fishing, but less resilient when dry, especially against burns.") + bonus_activate_text = span_notice("Fish DNA is deeply infused with you! While wet, you crawl faster, are slippery, cannot slip, and it takes longer to dry out. \ + You're also resistant to high pressure, better at fishing, but less resilient when dry, especially against burns.") bonus_deactivate_text = span_notice("You no longer feel as fishy. The moisture around your body begins to dissipate faster...") bonus_traits = list( TRAIT_RESISTHIGHPRESSURE, @@ -34,6 +34,9 @@ if(ishuman(owner)) var/mob/living/carbon/human/human = owner + //Fish is slightly weaker to being cooked. oh oh. + human.physiology.burn_mod *= 1.15 + human.physiology.heat_mod *= 1.15 human.physiology.damage_resistance += 8 //base 8% damage resistance, much wow. if(!HAS_TRAIT(owner, TRAIT_IS_WET)) apply_debuff() @@ -61,6 +64,8 @@ owner.clear_mood_event("fish_organs_bonus") if(ishuman(owner)) var/mob/living/carbon/human/human = owner + human.physiology.burn_mod /= 1.15 + human.physiology.heat_mod /= 1.15 human.physiology.damage_resistance -= 8 if(HAS_TRAIT(owner, TRAIT_IS_WET) && istype(owner.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL), /obj/item/organ/tail/fish)) remove_speed_buff() diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index c2b9963c5ed..06d71c37a15 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -354,13 +354,15 @@ if(lube & SLIDE_ICE) // Ice slides only go 1 tile, this is so you will slip across ice until you reach a non-slip tile slide_distance = 1 - else if(HAS_TRAIT(slipper, TRAIT_CURSED)) + else if(HAS_TRAIT(slipper, TRAIT_CURSED) && !(lube & WEAK_SLIDE)) // When cursed, all slips send you flying lube |= SLIDE slide_distance = rand(5, 9) else if(HAS_TRAIT(slipper, TRAIT_NO_SLIP_SLIDE)) // Stops sliding slide_distance = 0 + else if(lube & WEAK_SLIDE) + slide_distance = rand(1, 2) var/obj/buckled_obj if(slipper.buckled) @@ -390,10 +392,12 @@ // They need to be kept upright to maintain the combo effect (So don't knockdown) slipper.Immobilize(1 SECONDS) slipper.incapacitate(1 SECONDS) + else if(lube & WEAK_SLIDE) + slipper.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH, 10 SECONDS) + slipper.stop_pulling() else slipper.Knockdown(knockdown_amount) slipper.Paralyze(paralyze_amount) - slipper.stop_pulling() if(buckled_obj) buckled_obj.unbuckle_mob(slipper) @@ -403,7 +407,7 @@ if(slide_distance) var/turf/target = get_ranged_target_turf(slipper, olddir, slide_distance) - if(lube & SLIDE) + if(lube & (SLIDE|WEAK_SLIDE)) slipper.AddComponent(/datum/component/force_move, target, TRUE) else if(lube & SLIDE_ICE) slipper.AddComponent(/datum/component/force_move, target, FALSE)//spinning would be bad for ice, fucks up the next dir diff --git a/code/modules/projectiles/projectile/special/temperature.dm b/code/modules/projectiles/projectile/special/temperature.dm index 43d7968b9ae..ce95ff585e0 100644 --- a/code/modules/projectiles/projectile/special/temperature.dm +++ b/code/modules/projectiles/projectile/special/temperature.dm @@ -36,6 +36,13 @@ icon_state = "lava" temperature = 100 // Raise the body temp by 100 points +/obj/projectile/temp/hot/on_hit(atom/target, blocked = FALSE, pierce_hit) + . = ..() + + if(isliving(target)) + var/mob/living/living_target = target + living_target.adjust_wet_stacks(-10) + /obj/projectile/temp/cryo name = "cryo beam" range = 9