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

Xeno fix for event #2823

Merged
merged 14 commits into from
May 20, 2024
4 changes: 4 additions & 0 deletions code/modules/mob/living/carbon/alien/alien.dm
Original file line number Diff line number Diff line change
Expand Up @@ -180,3 +180,7 @@
/mob/living/carbon/alien/on_standing_up()
. = ..()
update_icons()

/mob/living/carbon/alien/examine(mob/user)
. = ..()
. += "It's a strange creature."
FalloutFalcon marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ Doesn't work on other aliens/AI.*/

/obj/effect/proc_holder/alien/sneak/fire(mob/living/carbon/alien/humanoid/user)
if(!active)
user.alpha = 25
user.alpha = 75
FalloutFalcon marked this conversation as resolved.
Show resolved Hide resolved
user.sneaking = TRUE
active = TRUE
to_chat(user, "<span class='noticealien'>You blend into the shadows...</span>")
Expand Down
6 changes: 2 additions & 4 deletions code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,7 @@
return

else //Maybe uses plasma in the future, although that wouldn't make any sense...
leaping = 1
weather_immunities += "lava"
leaping = TRUE
update_icons()
throw_at(leap_target, MAX_ALIEN_LEAP_DIST, 2, src, FALSE, TRUE, callback = CALLBACK(src, PROC_REF(leap_end)))

Expand All @@ -115,7 +114,6 @@
* the icons of the hunter.
*/
/mob/living/carbon/alien/humanoid/hunter/proc/leap_end()
leaping = 0
LAZYREMOVE(weather_immunities, "lava")
leaping = FALSE
update_icons()

2 changes: 1 addition & 1 deletion code/modules/mob/living/carbon/examine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
var/t_has = p_have()
var/t_is = p_are()

. = list("<span class='info'>This is [icon2html(src, user)] \a <EM>[src]</EM>!>")
. = list("<span class='info'>This is [icon2html(src, user)] \a <EM>[src]</EM>!")
var/list/obscured = check_obscured_slots()

if (handcuffed)
Expand Down
48 changes: 24 additions & 24 deletions code/modules/mob/living/carbon/human/human_defense.dm
Original file line number Diff line number Diff line change
Expand Up @@ -284,30 +284,30 @@
return TRUE
apply_damage(damage, BRUTE, affecting, armor_block)

if(M.a_intent == INTENT_DISARM) //Always drop item in hand on first go. If no item exists, try to shove them back. If you share the tile with the target, slam them directly into the ground to stun them and slightly damage them.
var/obj/item/I = get_active_held_item()
if(I && dropItemToGround(I))
playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1)
visible_message("<span class='danger'>[M] disarms [src]!</span>", \
"<span class='userdanger'>[M] disarms you!</span>", "<span class='hear'>You hear aggressive shuffling!</span>", null, M)
to_chat(M, "<span class='danger'>You disarm [src]!</span>")
else if(get_dist(src, M) != 0)
playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1)
var/shovetarget = get_edge_target_turf(M, get_dir(M, get_step_away(src, M)))
Knockdown(0.3 SECONDS)
throw_at(shovetarget, 4, 2, M, force = MOVE_FORCE_OVERPOWERING)
log_combat(M, src, "shoved")
visible_message("<span class='danger'>[M] tackles [src] down!</span>", \
"<span class='userdanger'>[M] shoves you with great force!</span>", "<span class='hear'>You hear aggressive shuffling followed by a loud thud!</span>", null, M)
to_chat(M, "<span class='danger'>You shove [src] with great force!</span>")
else
Paralyze(3 SECONDS)
adjustBruteLoss(5)
playsound(loc, 'sound/weapons/punch3.ogg', 25, TRUE, -1)
visible_message("<span class='danger'>[M] slams [src] into the floor!</span>", \
"<span class='userdanger'>[M] slams you into the ground!</span>", "<span class='hear'>You hear something slam loudly onto the floor!</span>", null, M)
to_chat(M, "<span class='danger'>You slam [src] into the floor beneath you!</span>")
log_combat(M, src, "slammed into the ground")
if(M.a_intent == INTENT_DISARM) //Always drop item in hand on first go. If no item exists, try to shove them back. If you share the tile with the target, slam them directly into the ground to stun them and slightly damage them.
var/obj/item/I = get_active_held_item()
if(I && dropItemToGround(I))
playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1)
visible_message("<span class='danger'>[M] disarms [src]!</span>", \
"<span class='userdanger'>[M] disarms you!</span>", "<span class='hear'>You hear aggressive shuffling!</span>", null, M)
to_chat(M, "<span class='danger'>You disarm [src]!</span>")
else if(get_dist(src, M) != 0)
playsound(loc, 'sound/weapons/pierce.ogg', 25, TRUE, -1)
var/shovetarget = get_edge_target_turf(M, get_dir(M, get_step_away(src, M)))
Knockdown(0.1 SECONDS)
throw_at(shovetarget, 4, 2, M, force = MOVE_FORCE_OVERPOWERING)
log_combat(M, src, "shoved")
visible_message("<span class='danger'>[M] tackles [src] down!</span>", \
"<span class='userdanger'>[M] shoves you with great force!</span>", "<span class='hear'>You hear aggressive shuffling followed by a loud thud!</span>", null, M)
to_chat(M, "<span class='danger'>You shove [src] with great force!</span>")
else
Paralyze(0.5 SECONDS)
adjustBruteLoss(5)
playsound(loc, 'sound/weapons/punch3.ogg', 25, TRUE, -1)
visible_message("<span class='danger'>[M] slams [src] into the floor!</span>", \
"<span class='userdanger'>[M] slams you into the ground!</span>", "<span class='hear'>You hear something slam loudly onto the floor!</span>", null, M)
to_chat(M, "<span class='danger'>You slam [src] into the floor beneath you!</span>")
log_combat(M, src, "slammed into the ground")

/mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L)

Expand Down
2 changes: 1 addition & 1 deletion code/modules/spells/spell.dm
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
smoke.start()


/obj/effect/proc_holder/spell/proc/cast(list/targets,mob/user = usr)
/obj/effect/proc_holder/spell/proc/cast(list/targets, mob/user = usr)
return

/obj/effect/proc_holder/spell/proc/view_or_range(distance = world.view, center=usr, type="view")
Expand Down
46 changes: 17 additions & 29 deletions code/modules/spells/spell_types/wizard.dm
Original file line number Diff line number Diff line change
Expand Up @@ -247,41 +247,29 @@

action_icon_state = "repulse"

/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets,mob/user = usr, stun_amt = 5)
/obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/hit_turfs, mob/user = usr, stun_amt = 5)
var/list/thrownatoms = list()
var/atom/throwtarget
var/distfromcaster
playMagSound()
for(var/atom/movable/hit_target as anything in targets) //Done this way so things don't get thrown all around hilariously.
thrownatoms += hit_target

for(var/am in thrownatoms)
var/atom/movable/AM = am
for(var/turf/T in hit_turfs)
for(var/atom/movable/hit_target in T.contents)
thrownatoms += hit_target

for(var/thrown_atom in thrownatoms)
if(!ismovable(thrown_atom))
continue
var/atom/movable/AM = thrown_atom
if(AM == user || AM.anchored)
continue

if(ismob(AM))
var/mob/M = AM
if(M.anti_magic_check(anti_magic_check, FALSE))
continue

throwtarget = get_edge_target_turf(user, get_dir(user, get_step_away(AM, user)))
distfromcaster = get_dist(user, AM)
if(distfromcaster == 0)
if(isliving(AM))
var/mob/living/M = AM
M.Paralyze(40)
M.adjustBruteLoss(5)
shake_camera(AM, 2, 1)
to_chat(M, "<span class='userdanger'>You're slammed into the floor by [user]!</span>")
else
new sparkle_path(get_turf(AM), get_dir(user, AM)) //created sparkles will disappear on their own
if(isliving(AM))
var/mob/living/M = AM
shake_camera(AM, 2, 1)
M.Paralyze(stun_amt)
to_chat(M, "<span class='userdanger'>You're thrown back by [user]!</span>")
AM.safe_throw_at(throwtarget, ((clamp((maxthrow - (clamp(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1,user, force = repulse_force)//So stuff gets tossed around at the same time.
var/atom/throwtarget = get_edge_target_turf(user, get_dir(user, get_step_away(AM, user)))
new sparkle_path(get_turf(AM), get_dir(user, AM)) //created sparkles will disappear on their own
if(isliving(AM))
var/mob/living/M = AM
shake_camera(AM, 2, 1)
M.Paralyze(stun_amt)
to_chat(M, "<span class='userdanger'>You're thrown back by [user]!</span>")
AM.safe_throw_at(throwtarget, ((clamp((maxthrow - (clamp(distfromcaster - 2, 0, distfromcaster))), 3, maxthrow))), 1,user, force = repulse_force)//So stuff gets tossed around at the same time.

/obj/effect/proc_holder/spell/aoe_turf/repulse/xeno //i fixed conflicts only to find out that this is in the WIZARD file instead of the xeno file?!
name = "Tail Sweep"
Expand Down
Loading