From 99a2068dd2977a221f530001f88370a455ae9a66 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 21 Jul 2020 16:26:51 +0100 Subject: [PATCH] its cool and hip --- code/datums/beepsky_fashion.dm | 35 +++++++++++++++++++ .../mob/living/simple_animal/bot/secbot.dm | 29 +++++++++------ 2 files changed, 54 insertions(+), 10 deletions(-) diff --git a/code/datums/beepsky_fashion.dm b/code/datums/beepsky_fashion.dm index 0cc0c91f7d..f8a72890b3 100644 --- a/code/datums/beepsky_fashion.dm +++ b/code/datums/beepsky_fashion.dm @@ -8,6 +8,8 @@ var/obj_alpha var/obj_color + var/stun_sound //sound that replaces the stun attack when set + //emotes var/death_emote var/capture_one @@ -63,6 +65,9 @@ else beepers.attack_two = initial(beepers.attack_two) +/datum/beepsky_fashion/proc/stun_attack(mob/living/carbon/C) //fired when beepsky does a stun attack with the fashion worn, for sounds/overlays/etc + return + //actual fashions from here on out /datum/beepsky_fashion/wizard obj_icon_state = "wizard" @@ -74,3 +79,33 @@ infraction = "Magical disturbance of magnitude THREAT_LEVEL detected!" attack_one = "BOT casts magic missile on CRIMINAL!" attack_two = "BOT casts magic missile on you!" + +/datum/beepsky_fashion/cowboy + obj_icon_state = "cowboy" + name = "Sheriff Beepsky" + desc = "The sheriff of this here station." + capture_one = "BOT is tying CRIMINAL up!" + capture_two = "BOT is tying you up!" + infraction = "Outlaws with a bounty of THREAT_LEVEL000 space dollars detected!" + attack_one = "BOT unloads his revolver onto CRIMINAL!" + attack_two = "BOT unloads his revolver onto you!" + +/datum/beepsky_fashion/chef + obj_icon_state = "chef" + name = "Chef Beepsky" + desc = "Cooking up the finest foods the station has ever seen." + death_emote = "Mamma-mia!" + infraction = "Grade THREAT_LEVEL prosciutto detected!" + attack_one = "BOT slices wildly with a cleaver towards CRIMINAL!" + attack_two = "BOT slices wildly with a cleaver towards you!" + +/datum/beepsky_fashion/cat + obj_icon_state = "cat" + name = "OwOfficer Bweepskwee" + desc = "A beepsky unit with cat ears. Why?" + death_emote = "Nya!" + capture_one = "BOT is tying CRIMINAL up!!" + capture_two = "BOT is tying you up!" + infraction = "Wevel THREAT_LEVEL infwactwion awert!!!" + attack_one = "BOT shoves CRIMINAL onto a table!" + attack_two = "BOT shoves you onto a table!" \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 479ad1ee09..bdaf018333 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -34,6 +34,7 @@ var/arrest_type = FALSE //If true, don't handcuff var/obj/item/clothing/head/bot_hat + var/datum/beepsky_fashion/stored_fashion //emotes (BOT is replaced with bot name, CRIMINAL with criminal name, THREAT_LEVEL with threat level) var/death_emote = "BOT blows apart!" @@ -73,7 +74,7 @@ emote = infraction if("TAUNT") emote = taunt - if("ATTACK_PME") + if("ATTACK_ONE") emote = attack_one if("ATTACK_TWO") emote = attack_two @@ -249,20 +250,22 @@ Auto Patrol: []"}, /mob/living/simple_animal/bot/secbot/proc/update_beepsky_fluff() var/datum/beepsky_fashion/BF = new bot_hat.beepsky_fashion + stored_fashion = BF if(BF) BF.apply(src) /mob/living/simple_animal/bot/secbot/regenerate_icons() ..() if(bot_hat) - var/datum/beepsky_fashion/fashion = new bot_hat.beepsky_fashion - if(!fashion.obj_icon_state) - fashion.obj_icon_state = bot_hat.icon_state - if(!fashion.obj_alpha) - fashion.obj_alpha = bot_hat.alpha - if(!fashion.obj_color) - fashion.obj_color = bot_hat.color - add_overlay(fashion.get_overlay()) + if(!stored_fashion) + stored_fashion = new bot_hat.beepsky_fashion + if(!stored_fashion.obj_icon_state) + stored_fashion.obj_icon_state = bot_hat.icon_state + if(!stored_fashion.obj_alpha) + stored_fashion.obj_alpha = bot_hat.alpha + if(!stored_fashion.obj_color) + stored_fashion.obj_color = bot_hat.color + add_overlay(stored_fashion.get_overlay()) /mob/living/simple_animal/bot/secbot/emag_act(mob/user) . = ..() @@ -323,16 +326,22 @@ Auto Patrol: []"}, /mob/living/simple_animal/bot/secbot/proc/stun_attack(mob/living/carbon/C) var/judgement_criteria = judgement_criteria() - playsound(src, 'sound/weapons/egloves.ogg', 50, TRUE, -1) icon_state = "secbot-c" addtimer(CALLBACK(src, /atom/.proc/update_icon), 2) var/threat = 5 if(ishuman(C)) + if(stored_fashion) + stored_fashion.stun_attack(C) + if(stored_fashion.stun_sound) + playsound(src, stun_sound, 50, TRUE, -1) + else + playsound(src, 'sound/weapons/egloves.ogg', 50, TRUE, -1) C.stuttering = 5 C.DefaultCombatKnockdown(100) var/mob/living/carbon/human/H = C threat = H.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) else + playsound(src, 'sound/weapons/egloves.ogg', 50, TRUE, -1) C.DefaultCombatKnockdown(100) C.stuttering = 5 threat = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons))