diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm index 7b0d3afa98b..62a6daea16f 100644 --- a/code/ZAS/Airflow.dm +++ b/code/ZAS/Airflow.dm @@ -2,17 +2,18 @@ Contains helper procs for airflow, handled in /connection_group. */ - mob/var/tmp/last_airflow_stun = 0 mob/proc/airflow_stun() if(stat == 2) return 0 if(last_airflow_stun > world.time - vsc.airflow_stun_cooldown) return 0 + if(!(status_flags & CANSTUN) && !(status_flags & CANWEAKEN)) - src << "\blue You stay upright as the air rushes past you." + src << "You stay upright as the air rushes past you." return 0 - if(weakened <= 0) src << "\red The sudden rush of air knocks you over!" - weakened = max(weakened,5) + if(!lying) + src << "The sudden rush of air knocks you over!" + Weaken(5) last_airflow_stun = world.time mob/living/silicon/airflow_stun() @@ -22,16 +23,9 @@ mob/living/carbon/metroid/airflow_stun() return mob/living/carbon/human/airflow_stun() - if(last_airflow_stun > world.time - vsc.airflow_stun_cooldown) return 0 - if(buckled) return 0 if(shoes) if(shoes.flags & NOSLIP) return 0 - if(!(status_flags & CANSTUN) && !(status_flags & CANWEAKEN)) - src << "\blue You stay upright as the air rushes past you." - return 0 - if(weakened <= 0) src << "\red The sudden rush of air knocks you over!" - weakened = max(weakened,rand(1,5)) - last_airflow_stun = world.time + ..() atom/movable/proc/check_airflow_movable(n) @@ -84,10 +78,8 @@ obj/item/check_airflow_movable(n) if(istype(src, /mob/living/carbon/human)) if(src:buckled) return - if(src:shoes) - if(istype(src:shoes, /obj/item/clothing/shoes/magboots)) - if(src:shoes:magpulse) - return + if(src:shoes && src:shoes.flags & NOSLIP) + return src << "\red You are sucked away by airflow!" var/airflow_falloff = 9 - sqrt((x - airflow_dest.x) ** 2 + (y - airflow_dest.y) ** 2) if(airflow_falloff < 1) @@ -207,7 +199,8 @@ mob/airflow_hit(atom/A) for(var/mob/M in hearers(src)) M.show_message("\red \The [src] slams into \a [A]!",1,"\red You hear a loud slam!",2) playsound(src.loc, "smash.ogg", 25, 1, -1) - weakened = max(weakened, (istype(A,/obj/item) ? A:w_class : rand(1,5))) //Heheheh + var/weak_amt = istype(A,/obj/item) ? A:w_class : rand(1,5) //Heheheh + Weaken(weak_amt) . = ..() obj/airflow_hit(atom/A) @@ -239,10 +232,10 @@ mob/living/carbon/human/airflow_hit(atom/A) apply_damage(b_loss/3, BRUTE, "groin", blocked, 0, "Airflow") if(airflow_speed > 10) - paralysis += round(airflow_speed * vsc.airflow_stun) - stunned = max(stunned,paralysis + 3) + Paralyse(round(airflow_speed * vsc.airflow_stun)) + Stun(paralysis + 3) else - stunned += round(airflow_speed * vsc.airflow_stun/2) + Stun(round(airflow_speed * vsc.airflow_stun/2)) . = ..() zone/proc/movables() diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 00e39993321..d64857d0042 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -24,6 +24,7 @@ return 0 M.buckled = src + M.facing_dir = null M.set_dir(dir) M.update_canmove() buckled_mob = M diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index a53ceff7cbd..6d50066a748 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -138,8 +138,8 @@ density = 1 icon_state = "up" else - buckled_mob.pixel_y = 0 - buckled_mob.old_y = 0 + M.pixel_y = 0 + M.old_y = 0 density = 0 icon_state = "down" diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 850a4147dd6..db14807a067 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1180,7 +1180,9 @@ mob/proc/yank_out_object() usr << "You are now facing [dir2text(facing_dir)]." /mob/proc/set_face_dir(var/newdir) - if(newdir) + if(newdir == facing_dir) + facing_dir = null + else if(newdir) set_dir(newdir) facing_dir = newdir else if(facing_dir) @@ -1200,20 +1202,16 @@ mob/proc/yank_out_object() /mob/verb/northfaceperm() set hidden = 1 - facing_dir = null set_face_dir(NORTH) /mob/verb/southfaceperm() set hidden = 1 - facing_dir = null set_face_dir(SOUTH) /mob/verb/eastfaceperm() set hidden = 1 - facing_dir = null set_face_dir(EAST) /mob/verb/westfaceperm() set hidden = 1 - facing_dir = null set_face_dir(WEST) diff --git a/interface/skin.dmf b/interface/skin.dmf index 7ba4d107881..d0680547312 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -249,6 +249,23 @@ macro "hotkeymode" name = "SOUTH+REP" command = ".south" is-disabled = false + elem + name = "ALT+WEST" + command = "westfaceperm" + is-disabled = false + is-disabled = false + elem + name = "ALT+NORTH" + command = "northfaceperm" + is-disabled = false + elem + name = "ALT+EAST" + command = "eastfaceperm" + is-disabled = false + elem + name = "ALT+SOUTH" + command = "southfaceperm" + is-disabled = false elem name = "INSERT" command = "a-intent right" @@ -1828,7 +1845,7 @@ window "infowindow" elem "info" type = INFO pos = 0,0 - size = 636x451 + size = 638x477 anchor1 = 0,0 anchor2 = 100,100 font-family = ""