Files
Polaris/code/modules/projectiles/targeting/targeting_mob.dm

76 lines
1.9 KiB
Plaintext

/mob/living/var/obj/aiming_overlay/aiming
/mob/living/var/list/aimed = list()
/mob/verb/toggle_gun_mode()
set name = "Toggle Gun Mode"
set desc = "Begin or stop aiming."
set category = "IC"
if(isliving(src))
var/mob/living/M = src
if(!M.aiming)
M.aiming = new(src)
M.aiming.toggle_active()
else
to_chat(src, "<span class='warning'>This verb may only be used by living mobs, sorry.</span>")
return
/mob/living/proc/stop_aiming(var/obj/item/thing, var/no_message = 0)
if(!aiming)
aiming = new(src)
if(thing && aiming.aiming_with != thing)
return
aiming.cancel_aiming(no_message)
/mob/living/death(gibbed,deathmessage="seizes up and falls limp...")
if(..())
stop_aiming(no_message=1)
/mob/living/update_canmove()
..()
if(lying)
stop_aiming(no_message=1)
/mob/living/Weaken(amount)
stop_aiming(no_message=1)
..()
/mob/living/Destroy()
if(aiming)
qdel(aiming)
aiming = null
aimed.Cut()
return ..()
/turf/Enter(var/mob/living/mover)
. = ..()
if(istype(mover))
if(mover.aiming && mover.aiming.aiming_at)
mover.aiming.update_aiming()
if(mover.aimed.len)
mover.trigger_aiming(TARGET_CAN_MOVE)
/mob/living/forceMove(var/atom/destination)
. = ..()
if(aiming && aiming.aiming_at)
aiming.update_aiming()
if(aimed.len)
trigger_aiming(TARGET_CAN_MOVE)
/mob/living/proc/set_move_intent(decl/move_intent/intent)
var/new_intent = GET_DECL(intent)
if(isnull(new_intent))
return
if(move_intent != new_intent)
move_intent = new_intent
if(hud_used?.move_intent)
hud_used.move_intent.icon_state = move_intent.hud_icon_state
/mob/living/proc/get_movement_intent_with_flag(var/flag_to_check = MOVEMENT_INTENT_WALKING)
if(!flag_to_check || !length(move_intents))
return
for(var/move_intent_type in move_intents)
var/decl/move_intent/check_intent = GET_DECL(move_intent_type)
if(check_intent.flags & flag_to_check)
return move_intent_type