mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 00:58:26 +01:00
Magic projectile fixes (#45484)
* magic projectile changes * fixes var path * undoes magic changes * magic proj changes * am checkchaange * removes bad refactor * proper am check on mag missile * locker staff fix
This commit is contained in:
@@ -44,11 +44,13 @@
|
||||
|
||||
/mob/living/bullet_act(obj/item/projectile/P, def_zone)
|
||||
var/armor = run_armor_check(def_zone, P.flag, "","",P.armour_penetration)
|
||||
if(!P.nodamage)
|
||||
var/on_hit_state = P.on_hit(src, armor)
|
||||
if(!P.nodamage && on_hit_state != BULLET_ACT_BLOCK)
|
||||
apply_damage(P.damage, P.damage_type, def_zone, armor)
|
||||
apply_effects(P.stun, P.knockdown, P.unconscious, P.irradiate, P.slur, P.stutter, P.eyeblur, P.drowsy, FALSE, P.stamina, P.jitter, P.paralyze, P.immobilize)
|
||||
if(P.dismemberment)
|
||||
check_projectile_dismemberment(P, def_zone)
|
||||
return P.on_hit(src, armor)? BULLET_ACT_HIT : BULLET_ACT_BLOCK
|
||||
return on_hit_state ? BULLET_ACT_HIT : BULLET_ACT_BLOCK
|
||||
|
||||
/mob/living/proc/check_projectile_dismemberment(obj/item/projectile/P, def_zone)
|
||||
return 0
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
else
|
||||
L.log_message("has been shot by [firer] with [src]", LOG_ATTACK, color="orange")
|
||||
|
||||
return L.apply_effects(stun, knockdown, unconscious, irradiate, slur, stutter, eyeblur, drowsy, blocked, stamina, jitter, paralyze, immobilize)
|
||||
return BULLET_ACT_HIT
|
||||
|
||||
/obj/item/projectile/proc/vol_by_damage()
|
||||
if(src.damage)
|
||||
|
||||
@@ -366,7 +366,7 @@
|
||||
if(M.anti_magic_check())
|
||||
M.visible_message("<span class='warning'>[src] vanishes on contact with [target]!</span>")
|
||||
qdel(src)
|
||||
return
|
||||
return BULLET_ACT_BLOCK
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -400,12 +400,11 @@
|
||||
/obj/item/projectile/magic/locker/on_hit(target)
|
||||
if(created)
|
||||
return ..()
|
||||
var/obj/structure/closet/C = new locker_temp_instance(get_turf(src))
|
||||
if(LAZYLEN(contents))
|
||||
for(var/atom/movable/AM in contents)
|
||||
C.insert(AM)
|
||||
C.welded = weld
|
||||
C.update_icon()
|
||||
locker_temp_instance.insert(AM)
|
||||
locker_temp_instance.welded = weld
|
||||
locker_temp_instance.update_icon()
|
||||
created = TRUE
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -15,12 +15,13 @@
|
||||
sound = 'sound/magic/magic_missile.ogg'
|
||||
|
||||
/obj/item/projectile/magic/spell/magic_missile
|
||||
name = "a magic missile"
|
||||
name = "magic missile"
|
||||
icon_state = "magicm"
|
||||
range = 20
|
||||
speed = 5
|
||||
trigger_range = 0
|
||||
linger = TRUE
|
||||
nodamage = FALSE
|
||||
paralyze = 60
|
||||
hitsound = 'sound/magic/mm_hit.ogg'
|
||||
|
||||
@@ -28,6 +29,14 @@
|
||||
trail_lifespan = 5
|
||||
trail_icon_state = "magicmd"
|
||||
|
||||
/obj/item/projectile/magic/spell/magic_missile/on_hit(target)
|
||||
. = ..()
|
||||
if(ismob(target))
|
||||
var/mob/M = target
|
||||
if(M.anti_magic_check())
|
||||
M.visible_message("<span class='warning'>[src] vanishes on contact with [target]!</span>")
|
||||
return BULLET_ACT_BLOCK
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/genetic/mutate
|
||||
name = "Mutate"
|
||||
desc = "This spell causes you to turn into a hulk and gain laser vision for a short while."
|
||||
|
||||
Reference in New Issue
Block a user