mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 12:04:48 +01:00
Cancel now cancels the emote, none is an option where applicable
As discussed with @Krausus
This commit is contained in:
@@ -32,6 +32,7 @@ VampyrBytes
|
||||
|
||||
var/canTarget = 0 // 1 if the emote accepts a target
|
||||
var/targetMob = 0 // 0 if target can be any atom, 1 if it has to be a mob,
|
||||
var/mustTarget = 0 // 1 if the emote needs a target to work (won't get None as an option)
|
||||
var/targetText = "at" // what goes inbetween user and target
|
||||
var/takesNumber = 0 // 1 if the emote uses a number parameter
|
||||
|
||||
@@ -124,16 +125,32 @@ VampyrBytes
|
||||
/datum/emote/proc/getTarget(var/mob/user)
|
||||
if(user.sdisabilities & BLIND || user.blinded || user.paralysis)
|
||||
return
|
||||
var/list/targets = list()
|
||||
if(!mustTarget)
|
||||
targets += "None"
|
||||
var/target
|
||||
if(targetMob)
|
||||
return getMobTarget(user)
|
||||
return getAtomTarget(user)
|
||||
|
||||
/datum/emote/proc/getMobTarget(var/mob/user)
|
||||
var/mob/target = input("Select target", "Target Mob") as null|mob in view(getLoc(user))
|
||||
target = getMobTarget(user, targets)
|
||||
else
|
||||
target = getAtomTarget(user, targets)
|
||||
if(!target)
|
||||
return INVALID
|
||||
if(target == "None")
|
||||
return
|
||||
return target
|
||||
|
||||
/datum/emote/proc/getAtomTarget(var/mob/user)
|
||||
var/atom/target = input("Select target", "Target") as null|mob|obj|turf in oview(getLoc(user))
|
||||
/datum/emote/proc/getMobTarget(var/mob/user, var/list/targets)
|
||||
for(var/mob/M in view(getLoc(user)))
|
||||
targets += M
|
||||
var/mob/target = input("Select target", "Target Mob") as null|anything in targets
|
||||
return target
|
||||
|
||||
|
||||
/datum/emote/proc/getAtomTarget(var/mob/user, var/list/targets)
|
||||
for(var/A in oview(getLoc(user)))
|
||||
if(ismob(A) || isobj(A) || isturf(A))
|
||||
targets += A
|
||||
var/atom/target = input("Select target", "Target") as null|anything in targets
|
||||
return target
|
||||
|
||||
// returns the reason the user can't currently do the emote
|
||||
|
||||
@@ -756,6 +756,7 @@
|
||||
selfText = "shake hands"
|
||||
canTarget = 1
|
||||
targetMob = 1
|
||||
mustTarget = 1
|
||||
targetText = "with"
|
||||
restrained = 1
|
||||
|
||||
@@ -768,13 +769,6 @@
|
||||
if(!. && user.r_hand)
|
||||
return "you need your right hand free"
|
||||
|
||||
/datum/emote/handshake/getMobTarget(var/mob/user)
|
||||
var/mob/target = ..()
|
||||
if(target)
|
||||
return target
|
||||
to_chat(user, "You need someone to shake hands with")
|
||||
return INVALID
|
||||
|
||||
/datum/emote/handshake/addTarget(var/mob/user, var/list/params, var/message)
|
||||
var/mob/target = params["target"]
|
||||
if(target.r_hand)
|
||||
@@ -836,6 +830,7 @@
|
||||
mimeSelf = "take a drag from a cigarette and blow"
|
||||
canTarget = 1
|
||||
targetMob = 1
|
||||
mustTarget = 1
|
||||
targetText = ""
|
||||
|
||||
/datum/emote/johnny/available(var/mob/user)
|
||||
@@ -844,7 +839,7 @@
|
||||
|
||||
/datum/emote/johnny/getTarget(var/mob/user)
|
||||
var/mob/target = ..()
|
||||
if(target && target != user)
|
||||
if(target != user)
|
||||
return target
|
||||
to_chat(user, "You need a target that isn't yourself")
|
||||
return INVALID
|
||||
@@ -1144,11 +1139,10 @@
|
||||
if(!. && user.buckled)
|
||||
return "you are buckled to something"
|
||||
|
||||
/datum/emote/salute/getMobTarget(var/mob/user)
|
||||
/datum/emote/salute/getMobTarget(var/mob/user, var/list/targets)
|
||||
var/mob/target = ..()
|
||||
if(target == user)
|
||||
return
|
||||
return target
|
||||
if(target != user)
|
||||
return target
|
||||
|
||||
/datum/emote/scratch
|
||||
name = "scratch"
|
||||
@@ -1342,9 +1336,11 @@
|
||||
if(ishuman(user))
|
||||
return 1
|
||||
|
||||
/datum/emote/slap/getMobTarget(var/mob/user)
|
||||
var/mob/target = input("Select target", "Target Mob") as null|mob in view(1)
|
||||
if(!target)
|
||||
/datum/emote/slap/getMobTarget(var/mob/user, var/list/targets)
|
||||
for(var/mob/M in view(getLoc(user), 1))
|
||||
targets += M
|
||||
var/mob/target = input("Select target", "Target Mob") as null|anything in targets
|
||||
if(target == "None")
|
||||
target = user
|
||||
return target
|
||||
|
||||
|
||||
Reference in New Issue
Block a user