|
|
|
@@ -50,14 +50,14 @@
|
|
|
|
|
|
|
|
|
|
/mob/living/simple_animal/bot/honkbot/proc/sensor_blink()
|
|
|
|
|
icon_state = "honkbot-c"
|
|
|
|
|
addtimer(CALLBACK(src, /atom/.proc/update_icon), 5, TIMER_OVERRIDE|TIMER_UNIQUE)
|
|
|
|
|
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 5, TIMER_OVERRIDE|TIMER_UNIQUE)
|
|
|
|
|
|
|
|
|
|
//honkbots react with sounds.
|
|
|
|
|
/mob/living/simple_animal/bot/honkbot/proc/react_ping()
|
|
|
|
|
playsound(src, 'sound/machines/ping.ogg', 50, TRUE, -1) //the first sound upon creation!
|
|
|
|
|
spam_flag = TRUE
|
|
|
|
|
sensor_blink()
|
|
|
|
|
addtimer(CALLBACK(src, .proc/spam_flag_false), 18) // calibrates before starting the honk
|
|
|
|
|
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), 18) // calibrates before starting the honk
|
|
|
|
|
|
|
|
|
|
/mob/living/simple_animal/bot/honkbot/proc/react_buzz()
|
|
|
|
|
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE, -1)
|
|
|
|
@@ -97,7 +97,7 @@
|
|
|
|
|
/mob/living/simple_animal/bot/honkbot/on_attack_hand(mob/living/carbon/human/H)
|
|
|
|
|
if(H.a_intent == INTENT_HARM)
|
|
|
|
|
retaliate(H)
|
|
|
|
|
addtimer(CALLBACK(src, .proc/react_buzz), 5)
|
|
|
|
|
addtimer(CALLBACK(src, PROC_REF(react_buzz)), 5)
|
|
|
|
|
return ..()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -106,7 +106,7 @@
|
|
|
|
|
return
|
|
|
|
|
if(!W.tool_behaviour == TOOL_SCREWDRIVER && (W.force) && (!target) && (W.damtype != STAMINA) ) // Check for welding tool to fix #2432.
|
|
|
|
|
retaliate(user)
|
|
|
|
|
addtimer(CALLBACK(src, .proc/react_buzz), 5)
|
|
|
|
|
addtimer(CALLBACK(src, PROC_REF(react_buzz)), 5)
|
|
|
|
|
..()
|
|
|
|
|
|
|
|
|
|
/mob/living/simple_animal/bot/honkbot/emag_act(mob/user)
|
|
|
|
@@ -153,21 +153,21 @@
|
|
|
|
|
playsound(src, honksound, 50, TRUE, -1)
|
|
|
|
|
spam_flag = TRUE //prevent spam
|
|
|
|
|
sensor_blink()
|
|
|
|
|
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn)
|
|
|
|
|
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn)
|
|
|
|
|
else if (emagged == 2) //emagged honkbots will spam short and memorable sounds.
|
|
|
|
|
if (!spam_flag)
|
|
|
|
|
playsound(src, "honkbot_e", 50, 0)
|
|
|
|
|
spam_flag = TRUE // prevent spam
|
|
|
|
|
icon_state = "honkbot-e"
|
|
|
|
|
addtimer(CALLBACK(src, /atom/.proc/update_icon), 30, TIMER_OVERRIDE|TIMER_UNIQUE)
|
|
|
|
|
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn)
|
|
|
|
|
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 30, TIMER_OVERRIDE|TIMER_UNIQUE)
|
|
|
|
|
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn)
|
|
|
|
|
|
|
|
|
|
/mob/living/simple_animal/bot/honkbot/proc/honk_attack(mob/living/carbon/C) // horn attack
|
|
|
|
|
if(!spam_flag)
|
|
|
|
|
playsound(loc, honksound, 50, TRUE, -1)
|
|
|
|
|
spam_flag = TRUE // prevent spam
|
|
|
|
|
sensor_blink()
|
|
|
|
|
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntimehorn)
|
|
|
|
|
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntimehorn)
|
|
|
|
|
|
|
|
|
|
/mob/living/simple_animal/bot/honkbot/proc/stun_attack(mob/living/carbon/C) // airhorn stun
|
|
|
|
|
if(!spam_flag)
|
|
|
|
@@ -189,7 +189,7 @@
|
|
|
|
|
target = oldtarget_name
|
|
|
|
|
else // you really don't want to hit an emagged honkbot
|
|
|
|
|
threatlevel = 6 // will never let you go
|
|
|
|
|
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntime)
|
|
|
|
|
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntime)
|
|
|
|
|
|
|
|
|
|
log_combat(src,C,"honked")
|
|
|
|
|
|
|
|
|
@@ -198,7 +198,7 @@
|
|
|
|
|
else
|
|
|
|
|
C.stuttering = 20
|
|
|
|
|
C.DefaultCombatKnockdown(80)
|
|
|
|
|
addtimer(CALLBACK(src, .proc/spam_flag_false), cooldowntime)
|
|
|
|
|
addtimer(CALLBACK(src, PROC_REF(spam_flag_false)), cooldowntime)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/mob/living/simple_animal/bot/honkbot/handle_automated_action()
|
|
|
|
|