1st batch of emotes + tweaks

This commit is contained in:
VampyrBytes
2016-05-10 03:19:00 +01:00
parent a642606d18
commit bcfe01b038
3 changed files with 205 additions and 5 deletions
+5 -1
View File
@@ -29,7 +29,7 @@ VampyrBytes
var/spanClass = "notice"
var/baseLevel = 1
var/baseSet = 0
var/allowParent = 0 // 1 if you want the parent available as well as this one
/datum/emote/New()
@@ -107,6 +107,10 @@ VampyrBytes
return "you are unconscious"
if(restrained && user.restrained())
return "you are restrained"
if(isbrain(user))
var/mob/living/carbon/brain/brain = user
if(!(brain.container && istype(brain.container, /obj/item/device/mmi)))
return "you need to be in an mmi to do this"
// return 1 if this emote can be used by this type of user
/datum/emote/proc/available(var/mob/user)
+5 -4
View File
@@ -13,7 +13,7 @@
commands = new/list()
for(var/e in emotes)
var/datum/emote/emote = e
if(emote.baseLevel)
if(emote.baseLevel || emote.allowParent)
var/datum/emote/found = searchTree(emote)
if(found)
for(var/command in found.commands)
@@ -33,7 +33,6 @@
return 1
var/datum/emote/emote
//testing("[command]")
if(command == "me")
emote = customEmote(message, audible)
if(!emote)
@@ -69,8 +68,10 @@
var/list/subtypes = subtypesof(emote.type)
var/datum/emote/found
for(var/t in subtypes)
var/datum/emote/em = new t // not keen on this, but it's this or loop through the emotes list and the
found = searchTree(em) // thought of a nested for loop in a recursive proc makes me want to *cry - VB
var/datum/emote/em = new t
if(em.allowParent)
continue
found = searchTree(em, 1)
if(found)
return (found)
if(emote.available(owner))
+195
View File
@@ -5,6 +5,201 @@ are set in New(), this means that the emote will pick up all the commands from t
above it. If you don't want this, make the call to ..() then use commands = new /list()
*************************************************************************************/
/datum/emote/airguitar
name = "airguitar"
desc = "Play an air guitar"
text = "is strumming the air and headbanging like a safari chimp."
selfText = "are strumming the air and headbanging like a safari chimp."
restrained = 1
/datum/emote/airguitar/New()
..()
commands += "airguitar"
/datum/emote/airguitar/available(var/mob/user)
if(ishuman(user))
return 1
if(isrobot(user))
return 1
/datum/emote/alarm
name = "alarm"
desc = "Sound an alarm"
text = "sounds an alarm"
selfText = "sound an alarm"
audible = 1
/datum/emote/alarm/New()
..()
commands += "alarm"
/datum/emote/alarm/available(var/mob/user)
if(isbrain(user))
return 1
/datum/emote/alarm/createBlindMessage(var/mob/user, var/messaage)
return "You hear an alarm"
/datum/emote/alert
name = "alert"
desc = "Sound an alert"
text = "lets out a distressed noise"
selfText = "let out a distressed noise)"
audible = 1
/datum/emote/alert/New()
..()
commands += "alert"
/datum/emote/alert/available(var/mob/user)
if(isbrain(user))
return 1
/datum/emote/alert/createBlindMessage(var/mob/user, var/message)
return "you hear an alert"
/datum/emote/beep
name = "beep"
desc = "let out a beep"
text = "beeps"
selfText = "beep"
audible = 1
/datum/emote/beep/New()
..()
commands += "beep"
commands += "beeps"
/datum/emote/beep/available(var/mob/user)
if(isbrain(user))
return 1
/datum/emote/beep/createBlindMessage(var/mob/user, var/message)
return "You hear a beep"
/datum/emote/beep/targetted
cooldown = 1
sound = 'sound/machines/twobeep.ogg'
canTarget = 1
targetMob = 1
/datum/emote/beep/targetted/available(var/mob/user)
if(issilicon(user))
return 1
if(isbot(user))
return 1
if(user.get_species() == "Machine")
return 1
/datum/emote/blink
name = "blink"
desc = "blink"
text = "blinks"
selfText = "blink"
/datum/emote/blink/New()
..()
commands += "blink"
commands += "blinks"
/datum/emote/blink/available(var/mob/user)
if(ishuman(user))
return 1
if(isbrain(user))
return 1
/datum/emote/blink/rapid
name = "rapid blink"
desc = "blink rapidly"
allowParent = 1
/datum/emote/blink/rapid/New()
..()
commands = new/list()
commands += "blink_r"
commands += "blinks_r"
/datum/emote/blink/rapid/available(var/mob/user)
if(ishuman(user))
return
/datum/emote/blink/rapid/createMessage(var/mob/user, var/number)
var/message = ..()
message += " rapidly"
return message
/datum/emote/blush
name = "blush"
desc = "blush"
text = "blushes"
selfText = "blush"
/datum/emote/blush/New()
..()
commands += "blush"
commands += "blushes"
/datum/emote/blush/available(var/mob/user)
if(ishuman(user))
return 1
/datum/emote/boop
name = "boop"
desc = "boop"
text = "boops"
selfText = "boop"
/datum/emote/boop/New()
..()
commands += "boop"
commands += "boops"
/datum/emote/boop/available(var/mob/user)
if(isbrain(user))
return 1
/datum/emote/bounce
name = "bounce"
desc = "bounce"
text = "bounces in place"
selfText = "bounce in place"
/datum/emote/bounce/New()
..()
commands += "bounce"
commands += "bounces"
/datum/emote/bounce/available(var/mob/user)
if(isslime(user))
return 1
/datum/emote/bow
name = "bow"
desc = "bow"
text = "bows"
selfText = "bow"
canTarget = 1
targetMob = 1
targetText = "to"
/datum/emote/bow/New()
..()
commands += "bow"
commands += "bows"
/datum/emote/bow/available(var/mob/user)
if(isrobot(user))
return 1
if(ishuman(user))
return 1
/datum/emote/bow/prevented(var/mob/user)
. = ..()
if(!. && user.buckled)
return "you are buckled to something"
/datum/emote/scream
name = "scream"
text = "screams!"