diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 58233fee56a..78996dd74f4 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -1090,3 +1090,24 @@ if(ishostile(owner)) var/mob/living/simple_animal/hostile/simple_owner = owner simple_owner.ranged_cooldown_time /= 2.5 + +/datum/status_effect/freezing_blast + id = "freezing_blast" + alert_type = /atom/movable/screen/alert/status_effect/freezing_blast + duration = 5 SECONDS + status_type = STATUS_EFFECT_REPLACE + +/atom/movable/screen/alert/status_effect/freezing_blast + name = "Freezing Blast" + desc = "You've been struck by a freezing blast! Your body moves more slowly!" + icon_state = "frozen" + +/datum/status_effect/freezing_blast/on_apply() + owner.add_movespeed_modifier(/datum/movespeed_modifier/freezing_blast, update = TRUE) + return ..() + +/datum/status_effect/freezing_blast/on_remove() + owner.remove_movespeed_modifier(/datum/movespeed_modifier/freezing_blast, update = TRUE) + +/datum/movespeed_modifier/freezing_blast + multiplicative_slowdown = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index d80b88a52d4..e491c492910 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -40,11 +40,18 @@ /obj/projectile/temp/basilisk name = "freezing blast" icon_state = "ice_2" - damage = 0 + damage = 10 damage_type = BURN - nodamage = TRUE + nodamage = FALSE flag = ENERGY temperature = -50 // Cools you down! per hit! + var/slowdown = TRUE //Determines if the projectile applies a slowdown status effect on carbons or not + +/obj/projectile/temp/basilisk/on_hit(atom/target, blocked = 0) + . = ..() + if(iscarbon(target) && slowdown) + var/mob/living/carbon/carbon_target = target + carbon_target.apply_status_effect(/datum/status_effect/freezing_blast) /obj/projectile/temp/basilisk/heated name = "energy blast" @@ -53,6 +60,7 @@ damage_type = BRUTE nodamage = FALSE temperature = 0 + slowdown = FALSE /mob/living/simple_animal/hostile/asteroid/basilisk/GiveTarget(new_target) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm index 7eaa16b1bce..5bca26e150e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm @@ -53,6 +53,7 @@ speed = 4 nodamage = FALSE temperature = -75 + slowdown = FALSE /mob/living/simple_animal/hostile/asteroid/ice_demon/OpenFire() ranged_cooldown = world.time + ranged_cooldown_time