mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-16 05:02:18 +00:00
Converts move intents to /decl/move_intent (#8993)
* Converts move intents to /decl/move_intent Adds /decl/move_intent/walk and /decl/move_intent/run. Switches all move intent checks to use the new IS_RUNNING and IS_WALKING macros. Renames and refactors /mob/living/proc/set_m_intent() to /mob/living/proc/set_move_intent(decl/move_intent/intent). Removes the unnecessary /mob/var/m_int and associated code. Updates all move intent setters to use set_move_intent(). * Swaps incorrect config values Swaps incorrect move delays since I got them backwards somehow, oopsies. * Adds suggested ?. operator Compactifies two if statements using the ?. operator instead.
This commit is contained in:
@@ -85,7 +85,7 @@
|
||||
if(armed)
|
||||
if(ishuman(AM))
|
||||
var/mob/living/carbon/H = AM
|
||||
if(H.m_intent == "run")
|
||||
if(IS_RUNNING(H))
|
||||
triggered(H)
|
||||
H.visible_message("<span class='warning'>[H] accidentally steps on [src].</span>", \
|
||||
"<span class='warning'>You accidentally step on [src]</span>")
|
||||
@@ -120,4 +120,4 @@
|
||||
return
|
||||
|
||||
layer = HIDING_LAYER
|
||||
to_chat(usr, "<span class='notice'>You hide [src].</span>")
|
||||
to_chat(usr, "<span class='notice'>You hide [src].</span>")
|
||||
|
||||
@@ -37,10 +37,10 @@
|
||||
. = ..()
|
||||
if(src.nutrition && src.stat != 2)
|
||||
adjust_nutrition(-DEFAULT_HUNGER_FACTOR / 10)
|
||||
if(src.m_intent == "run")
|
||||
if(IS_RUNNING(src))
|
||||
adjust_nutrition(-DEFAULT_HUNGER_FACTOR / 10)
|
||||
|
||||
if((FAT in src.mutations) && src.m_intent == "run" && src.bodytemperature <= 360)
|
||||
if((FAT in src.mutations) && IS_RUNNING(src) && src.bodytemperature <= 360)
|
||||
src.bodytemperature += 2
|
||||
|
||||
// Moving around increases germ_level faster
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
..()
|
||||
if(statpanel("Status"))
|
||||
stat("Intent:", "[a_intent]")
|
||||
stat("Move Mode:", "[m_intent]")
|
||||
stat("Move Mode:", "[move_intent.name]")
|
||||
if(emergency_shuttle)
|
||||
var/eta_status = emergency_shuttle.get_status_panel_eta()
|
||||
if(eta_status)
|
||||
|
||||
@@ -235,17 +235,17 @@
|
||||
if(!S) return
|
||||
|
||||
// Play every 20 steps while walking, for the sneak
|
||||
if(m_intent == "walk" && step_count++ % 20 != 0)
|
||||
if(IS_WALKING(src) && step_count++ % 20 != 0)
|
||||
return
|
||||
|
||||
// Play every other step while running
|
||||
if(m_intent == "run" && step_count++ % 2 != 0)
|
||||
if(IS_RUNNING(src) && step_count++ % 2 != 0)
|
||||
return
|
||||
|
||||
var/volume = config.footstep_volume
|
||||
|
||||
// Reduce volume while walking or barefoot
|
||||
if(!shoes || m_intent == "walk")
|
||||
if(!shoes || IS_WALKING(src))
|
||||
volume *= 0.5
|
||||
else if(shoes)
|
||||
var/obj/item/clothing/shoes/feet = shoes
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
/mob/living/SelfMove(turf/n, direct, movetime)
|
||||
// If on walk intent, don't willingly step into hazardous tiles.
|
||||
// Unless the walker is confused.
|
||||
if(m_intent == "walk" && confused <= 0)
|
||||
if(IS_WALKING(src) && confused <= 0)
|
||||
if(!n.is_safe_to_enter(src))
|
||||
to_chat(src, span("warning", "\The [n] is dangerous to move into."))
|
||||
return FALSE // In case any code wants to know if movement happened.
|
||||
@@ -127,7 +127,7 @@ default behaviour is:
|
||||
now_pushing = 0
|
||||
. = ..()
|
||||
if (!istype(AM, /atom/movable) || AM.anchored)
|
||||
if(confused && prob(50) && m_intent=="run")
|
||||
if(confused && prob(50) && IS_RUNNING(src))
|
||||
Weaken(2)
|
||||
playsound(src, "punch", 25, 1, -1)
|
||||
visible_message("<span class='warning'>[src] [pick("ran", "slammed")] into \the [AM]!</span>")
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
using = new /obj/screen()
|
||||
using.name = "mov_intent"
|
||||
using.icon = ui_style
|
||||
using.icon_state = (m_intent == "run" ? "running" : "walking")
|
||||
using.icon_state = move_intent.hud_icon_state
|
||||
using.screen_loc = ui_movi
|
||||
using.color = ui_color
|
||||
using.alpha = ui_alpha
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
. = 1
|
||||
. *= purge
|
||||
|
||||
if(m_intent == "walk")
|
||||
if(IS_WALKING(src))
|
||||
. *= 1.5
|
||||
|
||||
. += config.animal_delay
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
zone_sel = null
|
||||
|
||||
/mob/Initialize()
|
||||
move_intent = GET_DECL(/decl/move_intent/run) // Sets the initial move_intent.
|
||||
mob_list += src
|
||||
if(stat == DEAD)
|
||||
dead_mob_list += src
|
||||
|
||||
@@ -112,8 +112,13 @@
|
||||
var/intent = null//Living
|
||||
var/shakecamera = 0
|
||||
var/a_intent = I_HELP//Living
|
||||
var/m_int = null//Living
|
||||
var/m_intent = "run"//Living
|
||||
|
||||
var/decl/move_intent/move_intent = null // Living.
|
||||
var/list/move_intents = list(
|
||||
/decl/move_intent/run,
|
||||
/decl/move_intent/walk
|
||||
)
|
||||
|
||||
var/lastKnownIP = null
|
||||
var/obj/buckled = null//Living
|
||||
|
||||
|
||||
@@ -12,13 +12,9 @@
|
||||
. += 5
|
||||
|
||||
// Movespeed delay based on movement mode
|
||||
switch(m_intent)
|
||||
if("run")
|
||||
if(drowsyness > 0)
|
||||
. += 6
|
||||
. += config.run_speed
|
||||
if("walk")
|
||||
. += config.walk_speed
|
||||
if(IS_RUNNING(src) && drowsyness > 0)
|
||||
. += 6
|
||||
. += move_intent.move_delay
|
||||
|
||||
/client/proc/client_dir(input, direction=-1)
|
||||
return turn(input, direction*dir2angle(dir))
|
||||
@@ -260,13 +256,10 @@
|
||||
return // No hands to drive your chair? Tough luck!
|
||||
//drunk wheelchair driving
|
||||
else if(my_mob.confused)
|
||||
switch(my_mob.m_intent)
|
||||
if("run")
|
||||
if(prob(50))
|
||||
direct = turn(direct, pick(90, -90))
|
||||
if("walk")
|
||||
if(prob(25))
|
||||
direct = turn(direct, pick(90, -90))
|
||||
if(IS_RUNNING(my_mob) && prob(50))
|
||||
direct = turn(direct, pick(90, -90))
|
||||
else if(IS_WALKING(my_mob) && prob(25))
|
||||
direct = turn(direct, pick(90, -90))
|
||||
total_delay += 3
|
||||
|
||||
// We are now going to move
|
||||
@@ -275,15 +268,12 @@
|
||||
|
||||
// Confused direction randomization
|
||||
if(my_mob.confused)
|
||||
switch(my_mob.m_intent)
|
||||
if("run")
|
||||
if(prob(75))
|
||||
direct = turn(direct, pick(90, -90))
|
||||
n = get_step(my_mob, direct)
|
||||
if("walk")
|
||||
if(prob(25))
|
||||
direct = turn(direct, pick(90, -90))
|
||||
n = get_step(my_mob, direct)
|
||||
if(IS_RUNNING(my_mob) && prob(75))
|
||||
direct = turn(direct, pick(90, -90))
|
||||
n = get_step(my_mob, direct)
|
||||
else if(IS_WALKING(my_mob) && prob(25))
|
||||
direct = turn(direct, pick(90, -90))
|
||||
n = get_step(my_mob, direct)
|
||||
|
||||
total_delay = DS2NEARESTTICK(total_delay) //Rounded to the next tick in equivalent ds
|
||||
my_mob.setMoveCooldown(total_delay)
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
if (. >= 2)
|
||||
if(prob(1))
|
||||
owner.custom_pain("Your abdomen feels like it's tearing itself apart!",1)
|
||||
owner.m_intent = "walk"
|
||||
owner.hud_used.move_intent.icon_state = "walking"
|
||||
if(!IS_WALKING(owner))
|
||||
owner.set_move_intent(/decl/move_intent/walk)
|
||||
|
||||
/obj/item/organ/internal/intestine/xeno
|
||||
color = "#555555"
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
if (. >= 2)
|
||||
if(prob(1))
|
||||
owner.custom_pain("You feel extremely tired, like you can't move!",1)
|
||||
owner.m_intent = "walk"
|
||||
owner.hud_used.move_intent.icon_state = "walking"
|
||||
if(!IS_WALKING(owner))
|
||||
owner.set_move_intent(/decl/move_intent/walk)
|
||||
|
||||
/obj/item/organ/internal/kidneys/grey
|
||||
icon_state = "kidneys_grey"
|
||||
|
||||
@@ -57,10 +57,14 @@
|
||||
if(aimed.len)
|
||||
trigger_aiming(TARGET_CAN_MOVE)
|
||||
|
||||
/mob/living/proc/set_m_intent(var/intent)
|
||||
if (intent != "walk" && intent != "run")
|
||||
return 0
|
||||
m_intent = intent
|
||||
if(hud_used)
|
||||
if (hud_used.move_intent)
|
||||
hud_used.move_intent.icon_state = intent == "walk" ? "walking" : "running"
|
||||
/mob/living/proc/set_move_intent(decl/move_intent/intent)
|
||||
if(move_intent.type == intent)
|
||||
return
|
||||
|
||||
var/new_intent = GET_DECL(intent)
|
||||
if(isnull(new_intent))
|
||||
return
|
||||
|
||||
move_intent = new_intent
|
||||
if(hud_used?.move_intent)
|
||||
hud_used.move_intent.icon_state = move_intent.hud_icon_state
|
||||
|
||||
Reference in New Issue
Block a user