Merge pull request #12857 from timothyteakettle/let-bots-wear-hats
adds deep beepsky lore to the game in the form of hats
This commit is contained in:
@@ -0,0 +1,221 @@
|
||||
//similar to dog_fashion, but for beepsky, who has far more refined fashion tastes
|
||||
/datum/beepsky_fashion
|
||||
var/name //not setting the name and desc makes them go to the default
|
||||
var/desc
|
||||
|
||||
var/icon_file = 'icons/mob/secbot_accessories.dmi' //we sell secbots and secbot accessories
|
||||
var/obj_icon_state
|
||||
var/obj_alpha
|
||||
var/obj_color
|
||||
|
||||
var/list/stun_sounds //sound that replaces the stun attack when set
|
||||
var/ignore_sound = FALSE //whether to ignore sounds entirely or not
|
||||
|
||||
//emotes (don't set them if you want the default value)
|
||||
var/death_emote //what is said when beepsky dies
|
||||
var/capture_one //what is said when cuffing someone
|
||||
var/capture_two //what is said when cuffing someone, directly to the person being cuffed
|
||||
var/infraction //the level of threat detected
|
||||
var/taunt // beepsky pointing at a criminal
|
||||
var/attack_one //text when attacking criminal
|
||||
var/attack_two //text when attacking criminal, but directly to the criminal
|
||||
var/patrol_emote //engaging patrol text
|
||||
var/patrol_fail_emote //failing to engage patrol text
|
||||
var/list/arrest_texts //first is for not-cuffing, second is for cuffing
|
||||
var/arrest_emote //text stating that you're cuffing some criminal C with a threat of level X in location Y
|
||||
|
||||
//for reference, the following words are replaced when processed before speech:
|
||||
//LOCATION = the location passed, if any (this is only used by arrest_emote)
|
||||
//CRIMINAL = the name of the criminal (this is used by everything but patrol_emote and infraction)
|
||||
//BOT = the name of the bot (this can be used on any of the emotes)
|
||||
//THREAT_LEVEL = the level of the threat detected (can be used on arrest_emote and infraction)
|
||||
|
||||
/datum/beepsky_fashion/proc/get_overlay(var/dir)
|
||||
if(icon_file && obj_icon_state)
|
||||
var/image/beepsky_overlay = image(icon_file, obj_icon_state, dir = dir)
|
||||
beepsky_overlay.alpha = obj_alpha
|
||||
beepsky_overlay.color = obj_color
|
||||
return beepsky_overlay
|
||||
|
||||
/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"
|
||||
name = "Archmage Beepsky"
|
||||
desc = "A secbot stolen from the wizard federation."
|
||||
death_emote = "BOT casts EI NATH on themselves!"
|
||||
capture_one = "BOT is casting cable ties on CRIMINAL!"
|
||||
capture_two = "BOT is casting cable ties on you!"
|
||||
infraction = "Magical disturbance of magnitude THREAT_LEVEL detected!"
|
||||
taunt = "BOT points his staff towards CRIMINAL!"
|
||||
attack_one = "BOT casts magic missile on CRIMINAL!"
|
||||
attack_two = "BOT casts magic missile on you!"
|
||||
patrol_emote = "Beginning search for magical disturbances."
|
||||
patrol_fail_emote = "Failure to find magical disturbances. Recallibrating."
|
||||
arrest_emote = "ARREST_TYPE level THREAT_LEVEL magical practitioner CRIMINAL in LOCATION."
|
||||
stun_sounds = list('sound/magic/lightningbolt.ogg',
|
||||
'sound/magic/fireball.ogg',
|
||||
'sound/weapons/zapbang.ogg',
|
||||
'sound/magic/knock.ogg',
|
||||
'sound/magic/fleshtostone.ogg',
|
||||
'sound/effects/magic.ogg',
|
||||
'sound/magic/disintegrate.ogg')
|
||||
|
||||
/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!"
|
||||
taunt = "BOT aims his revolver towards CRIMINAL!"
|
||||
attack_one = "BOT unloads his revolver onto CRIMINAL!"
|
||||
attack_two = "BOT unloads his revolver onto you!"
|
||||
patrol_emote = "Engaging bounty hunting protocols."
|
||||
patrol_fail_emote = "Unable to find any bounties due to error. Rebooting."
|
||||
arrest_emote = "ARREST_TYPE outlaw CRIMINAL with a bounty of THREAT_LEVEL000 in LOCATION."
|
||||
stun_sounds = list('sound/weapons/Gunshot.ogg',
|
||||
'sound/weapons/Gunshot2.ogg',
|
||||
'sound/weapons/Gunshot3.ogg',
|
||||
'sound/weapons/Gunshot4.ogg')
|
||||
|
||||
/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!"
|
||||
taunt = "BOT glares at CRIMINAL."
|
||||
attack_one = "BOT CQCs CRIMINAL!"
|
||||
attack_two = "BOT CQCs you!"
|
||||
patrol_emote = "Beginning search for the bad prosciutto."
|
||||
patrol_fail_emote = "All prosciutto is stale. Rebooting."
|
||||
arrest_texts = list("Frying", "Grilling") //any good secoff knows the difference
|
||||
arrest_emote = "ARREST_TYPE grade THREAT_LEVEL prosciutto CRIMINAL in LOCATION."
|
||||
stun_sounds = list('sound/weapons/cqchit1.ogg',
|
||||
'sound/weapons/cqchit2.ogg')
|
||||
|
||||
/datum/beepsky_fashion/cat
|
||||
obj_icon_state = "cat"
|
||||
name = "OwOfficer Bweepskwee"
|
||||
desc = "A beepsky unit with cat ears. Catgirl science has gone too far."
|
||||
death_emote = "Nya!"
|
||||
capture_one = "BOT is tying CRIMINAL up!!"
|
||||
capture_two = "BOT is tying you up!"
|
||||
infraction = "Wevel THREAT_LEVEL infwactwion awert!!!"
|
||||
taunt = "BOT points at CRIMINAL and nyas!"
|
||||
attack_one = "BOT shoves CRIMINAL onto a table!"
|
||||
attack_two = "BOT shoves you onto a table!"
|
||||
patrol_emote = "Enwgagwing patwol mwodies.."
|
||||
patrol_fail_emote = "Unawbwle two stwawt patwollies. Nya."
|
||||
arrest_texts = list("Dwetwaining", "Awwesting")
|
||||
arrest_emote = "ARREST_TYPE wevel THREAT_LEVEL scwumbwag CRIMINAL in LOCATION. Nya."
|
||||
ignore_sound = TRUE //we instead make the stunned person fire the nya emote
|
||||
|
||||
/datum/beepsky_fashion/cat/stun_attack(var/mob/living/carbon/C) //makes a fake table under you on hit, makes cat people nya when hit
|
||||
if(iscatperson(C))
|
||||
C.emote("nya")
|
||||
var/turf/target_turf = get_turf(C)
|
||||
if(target_turf) //slams you on a fake table
|
||||
playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1)
|
||||
var/obj/effect/overlay_holder = new(target_turf)
|
||||
overlay_holder.name = "Catboy Table"
|
||||
overlay_holder.desc = "Where bad catboys go."
|
||||
var/image/table_overlay = image('icons/obj/smooth_structures/table.dmi', "table")
|
||||
overlay_holder.add_overlay(table_overlay)
|
||||
QDEL_IN(overlay_holder, 10)
|
||||
|
||||
/datum/beepsky_fashion/cake //nothing else. it's just beepsky. with a cake on his head.
|
||||
obj_icon_state = "cake"
|
||||
name = "Cakesky"
|
||||
desc = "It's a secbot, wearing a cake on his head!"
|
||||
|
||||
/datum/beepsky_fashion/captain
|
||||
obj_icon_state = "captain"
|
||||
name = "Captainsky"
|
||||
desc = "The real captain of this station."
|
||||
capture_one = "BOT is lecturing CRIMINAL on why he is the captain!"
|
||||
capture_two = "BOT is lecturing you on why he is the captain!"
|
||||
infraction = "Level THREAT_LEVEL greytider detected."
|
||||
attack_one = "BOT beats CRIMINAL with the chain of command!"
|
||||
attack_two = "BOT beats you with the chain of command!"
|
||||
patrol_emote = "Uselessness protocols engaged."
|
||||
patrol_fail_emote = "Unit has been found as useless. Rebooting."
|
||||
arrest_texts = list("Demoting", "Firing")
|
||||
arrest_emote = "ARREST_TYPE level THREAT_LEVEL lesser crewmember CRIMINAL in LOCATION."
|
||||
stun_sounds = list('sound/weapons/chainhit.ogg')
|
||||
|
||||
/datum/beepsky_fashion/king
|
||||
obj_icon_state = "king"
|
||||
name = "King Beepsky"
|
||||
desc = "He who has ascended to bare the right of king, sits atop the throne."
|
||||
capture_one = "BOT is calling the guards onto CRIMINAL!"
|
||||
capture_two = "BOT is calling the guards onto you!"
|
||||
infraction = "Treason of level THREAT_LEVEL detected!"
|
||||
attack_one = "BOT strikes CRIMINAL with his kingly authority!"
|
||||
attack_two = "BOT strikes you with his kingly authority!"
|
||||
patrol_emote = "Searching for peasants to beat up."
|
||||
patrol_fail_emote = "Peasants are using dark magic. Recallibrating."
|
||||
arrest_texts = list("Knighting", "Executing")
|
||||
arrest_emote = "ARREST_TYPE level THREAT_LEVEL peasant CRIMINAL in LOCATION."
|
||||
stun_sounds = list('sound/weapons/punch1.ogg',
|
||||
'sound/weapons/punch2.ogg',
|
||||
'sound/weapons/punch3.ogg',
|
||||
'sound/weapons/punch4.ogg')
|
||||
|
||||
/datum/beepsky_fashion/pirate
|
||||
obj_icon_state = "pirate"
|
||||
name = "Beepsbeard the Pirate"
|
||||
desc = "Sailor of the seven seas, all sea-faring bots fear the one known as Beepsbeard."
|
||||
capture_one = "BOT is making CRIMINAL walk the plank!"
|
||||
capture_two = "BOT is making you walk the plank!"
|
||||
infraction = "Enemy vessel spotted with threat level THREAT_LEVEL!"
|
||||
attack_one = "BOT strikes CRIMINAL with his cutlass!"
|
||||
attack_two = "BOT strikes you with his cutlass!"
|
||||
patrol_emote = "Searching for enemy vessels to board."
|
||||
patrol_fail_emote = "No way to engage enemy vessels. Rebooting."
|
||||
arrest_texts = list("Boarding", "Sinking")
|
||||
arrest_emote = "ARREST_TYPE level THREAT_LEVEL vessel CRIMINAL in LOCATION."
|
||||
stun_sounds = list('sound/weapons/bladeslice.ogg')
|
||||
|
||||
/datum/beepsky_fashion/engineer
|
||||
obj_icon_state = "engineer"
|
||||
name = "Chief Engineer Beepsky"
|
||||
desc = "He fixes criminals with a wrench to the face."
|
||||
capture_one = "BOT is tying CRIMINAL up!"
|
||||
capture_two = "BOT is tying you up!"
|
||||
infraction = "Structural integrity issue spotted with threat level THREAT_LEVEL"
|
||||
attack_one = "BOT strikes CRIMINAL with his wrench!"
|
||||
attack_two = "BOT strikes you with his wrench!"
|
||||
arrest_texts = list("Fixing", "Repairing")
|
||||
arrest_emote = "ARREST_TYPE level THREAT_LEVEL structural issue in LOCATION"
|
||||
stun_sounds = list('sound/weapons/genhit.ogg')
|
||||
|
||||
/datum/beepsky_fashion/tophat
|
||||
obj_icon_state = "tophat"
|
||||
name = "Fancy Beepsky"
|
||||
desc = "It's a secbot, wearing a top hat! How fancy."
|
||||
|
||||
/datum/beepsky_fashion/fedora
|
||||
obj_icon_state = "fedora"
|
||||
name = "Fedorasky"
|
||||
desc = "It's a secbot, wearing a fedora!"
|
||||
|
||||
/datum/beepsky_fashion/sombrero
|
||||
obj_icon_state = "sombrero"
|
||||
name = "Sombrerosky"
|
||||
desc = "A secbot wearing a sombrero. Truly, a hombre to all."
|
||||
|
||||
/datum/beepsky_fashion/santa
|
||||
obj_icon_state = "santa"
|
||||
name = "Saint Beepsky"
|
||||
desc = "Have you been a level 7 infraction this holiday season?"
|
||||
capture_one = "BOT is tying CRIMINAL up with fairy lights!"
|
||||
capture_two = "BOT is tying you up with fairy lights!"
|
||||
infraction = "Level THREAT_LEVEL threat to holiday cheer spotted!"
|
||||
attack_one = "BOT crushes CRIMINAL with their holiday spirit!"
|
||||
attack_two = "BOT crushes you with their holiday spirit!"
|
||||
arrest_emote = "ARREST_TYPE level THREAT_LEVEL threat to holiday cheer in LOCATION"
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
corgI.color = obj_color
|
||||
return corgI
|
||||
|
||||
|
||||
/datum/dog_fashion/head
|
||||
icon_file = 'icons/mob/corgi_head.dmi'
|
||||
|
||||
@@ -53,7 +52,6 @@
|
||||
name = "Sous chef REAL_NAME"
|
||||
desc = "Your food will be taste-tested. All of it."
|
||||
|
||||
|
||||
/datum/dog_fashion/head/captain
|
||||
name = "Captain REAL_NAME"
|
||||
desc = "Probably better than the last captain."
|
||||
|
||||
Reference in New Issue
Block a user