Mass replace

This commit is contained in:
Tigercat2000
2016-07-07 19:34:02 -07:00
parent dc408f090d
commit 71e5344a98
870 changed files with 7679 additions and 7679 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
/mob/dead/observer/Login()
..()
if (ghostimage)
if(ghostimage)
ghostimage.icon_state = src.icon_state
updateghostimages()
+1 -1
View File
@@ -1,5 +1,5 @@
/mob/dead/observer/Logout()
if (client)
if(client)
client.images -= ghost_darkness_images
..()
spawn(0)
+16 -16
View File
@@ -49,7 +49,7 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi
T = get_turf(body) //Where is the body located?
attack_log = body.attack_log //preserve our attack logs by copying them to our ghost
if (ishuman(body))
if(ishuman(body))
var/mob/living/carbon/human/H = body
icon = H.stand_icon
overlays = H.overlays_standing
@@ -94,7 +94,7 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi
var/mob/M = following
M.following_mobs -= src
following = null
if (ghostimage)
if(ghostimage)
ghost_darkness_images -= ghostimage
qdel(ghostimage)
ghostimage = null
@@ -201,7 +201,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/Stat()
..()
statpanel("Status")
if (client.statpanel == "Status")
if(client.statpanel == "Status")
show_stat_station_time()
if(ticker)
if(ticker.mode)
@@ -425,7 +425,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(istype(usr, /mob/dead/observer)) //Make sure they're an observer!
if (!target)//Make sure we actually have a target
if(!target)//Make sure we actually have a target
return
else
var/mob/M = getmobs()[target] //Destination mob
@@ -468,7 +468,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(!istype(usr, /mob/dead/observer)) return
// Shamelessly copied from the Gas Analyzers
if (!( istype(usr.loc, /turf) ))
if(!( istype(usr.loc, /turf) ))
return
var/datum/gas_mixture/environment = usr.loc.return_air()
@@ -525,8 +525,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
//this is called when a ghost is drag clicked to something.
/mob/dead/observer/MouseDrop(atom/over)
if(!usr || !over) return
if (isobserver(usr) && usr.client && usr.client.holder)
if (usr.client.holder.cmd_ghost_drag(src,over))
if(isobserver(usr) && usr.client && usr.client.holder)
if(usr.client.holder.cmd_ghost_drag(src,over))
return
return ..()
@@ -554,17 +554,17 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return
..()
if (href_list["track"])
if(href_list["track"])
var/atom/target = locate(href_list["track"])
if(target)
ManualFollow(target)
if (href_list["follow"])
if(href_list["follow"])
var/atom/target = locate(href_list["follow"])
if(target)
ManualFollow(target)
if (href_list["jump"])
if(href_list["jump"])
var/mob/target = locate(href_list["jump"])
var/mob/A = usr;
to_chat(A, "Teleporting to [target]...")
@@ -613,27 +613,27 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
updateghostsight()
/mob/dead/observer/proc/updateghostsight()
if (!seedarkness)
if(!seedarkness)
see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
else
see_invisible = SEE_INVISIBLE_OBSERVER
if (!ghostvision)
if(!ghostvision)
see_invisible = SEE_INVISIBLE_LIVING;
updateghostimages()
/proc/updateallghostimages()
for (var/mob/dead/observer/O in player_list)
for(var/mob/dead/observer/O in player_list)
O.updateghostimages()
/mob/dead/observer/proc/updateghostimages()
if (!client)
if(!client)
return
if (seedarkness || !ghostvision)
if(seedarkness || !ghostvision)
client.images -= ghost_darkness_images
else
//add images for the 60inv things ghosts can normally see when darkness is enabled so they can see them now
client.images |= ghost_darkness_images
if (ghostimage)
if(ghostimage)
client.images -= ghostimage //remove ourself
/mob/proc/can_admin_interact()
+3 -3
View File
@@ -1,17 +1,17 @@
/mob/dead/observer/say(var/message)
message = sanitize(copytext(message, 1, MAX_MESSAGE_LEN))
if (!message)
if(!message)
return
log_say("Ghost/[src.key] : [message]")
if (src.client)
if(src.client)
if(src.client.prefs.muted & MUTE_DEADCHAT)
to_chat(src, "\red You cannot talk in deadchat (muted).")
return
if (src.client.handle_spam_prevention(message,MUTE_DEADCHAT))
if(src.client.handle_spam_prevention(message,MUTE_DEADCHAT))
return
. = src.say_dead(message)
+7 -7
View File
@@ -35,16 +35,16 @@
return
if (message)
if(message)
log_emote("[name]/[key] : [message]")
//Hearing gasp and such every five seconds is not good emotes were not global for a reason.
// Maybe some people are okay with that.
for(var/mob/M in player_list)
if (!M.client)
if(!M.client)
continue //skip monkeys and leavers
if (istype(M, /mob/new_player))
if(istype(M, /mob/new_player))
continue
if(findtext(message," snores.")) //Because we have so many sleeping people.
break
@@ -53,10 +53,10 @@
// Type 1 (Visual) emotes are sent to anyone in view of the item
if (m_type & 1)
if(m_type & 1)
var/list/can_see = get_mobs_in_view(1,src) //Allows silicon & mmi mobs carried around to see the emotes of the person carrying them around.
can_see |= viewers(src,null)
for (var/mob/O in can_see)
for(var/mob/O in can_see)
if(O.status_flags & PASSEMOTES)
@@ -70,8 +70,8 @@
// Type 2 (Audible) emotes are sent to anyone in hear range
// of the *LOCATION* -- this is important for pAIs to be heard
else if (m_type & 2)
for (var/mob/O in get_mobs_in_view(7,src))
else if(m_type & 2)
for(var/mob/O in get_mobs_in_view(7,src))
if(O.status_flags & PASSEMOTES)
+13 -13
View File
@@ -11,13 +11,13 @@
//make sure the air can transmit speech - hearer's side
var/turf/T = get_turf(src)
if ((T) && (!(istype(src, /mob/dead/observer)))) //Ghosts can hear even in vacuum.
if((T) && (!(istype(src, /mob/dead/observer)))) //Ghosts can hear even in vacuum.
var/datum/gas_mixture/environment = T.return_air()
var/pressure = (environment)? environment.return_pressure() : 0
if(pressure < SOUND_MINIMUM_PRESSURE && get_dist(speaker, src) > 1)
return
if (pressure < ONE_ATMOSPHERE*0.4) //sound distortion pressure, to help clue people in that the air is thin, even if it isn't a vacuum yet
if(pressure < ONE_ATMOSPHERE*0.4) //sound distortion pressure, to help clue people in that the air is thin, even if it isn't a vacuum yet
italics = 1
sound_vol *= 0.5 //muffle the sound a bit, so it's like we're actually talking through contact
@@ -26,8 +26,8 @@
return
//non-verbal languages are garbled if you can't see the speaker. Yes, this includes if they are inside a closet.
if (language && (language.flags & NONVERBAL))
if (!speaker || (src.sdisabilities & BLIND || src.blinded) || !(speaker in view(src)))
if(language && (language.flags & NONVERBAL))
if(!speaker || (src.sdisabilities & BLIND || src.blinded) || !(speaker in view(src)))
message = stars(message)
if(!(language && (language.flags & INNATE))) // skip understanding checks for INNATE languages
@@ -73,7 +73,7 @@
to_chat(src, "<span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [track][language.format_message(message, verb)]</span>")
else
to_chat(src, "<span class='game say'><span class='name'>[speaker_name]</span>[alt_name] [track][verb], <span class='message'><span class='body'>\"[message]\"</span></span></span>")
if (speech_sound && (get_dist(speaker, src) <= world.view && src.z == speaker.z))
if(speech_sound && (get_dist(speaker, src) <= world.view && src.z == speaker.z))
var/turf/source = speaker? get_turf(speaker) : get_turf(src)
src.playsound_local(source, speech_sound, sound_vol, 1)
@@ -92,8 +92,8 @@
follow_target = speaker
//non-verbal languages are garbled if you can't see the speaker. Yes, this includes if they are inside a closet.
if (language && (language.flags & NONVERBAL))
if (!speaker || (src.sdisabilities & BLIND || src.blinded) || !(speaker in view(src)))
if(language && (language.flags & NONVERBAL))
if(!speaker || (src.sdisabilities & BLIND || src.blinded) || !(speaker in view(src)))
message = stars(message)
if(!(language && (language.flags & INNATE))) // skip understanding checks for INNATE languages
@@ -128,7 +128,7 @@
var/jobname // the mob's "job"
var/mob/living/carbon/human/impersonating //The crewmember being impersonated, if any.
if (ishuman(speaker))
if(ishuman(speaker))
var/mob/living/carbon/human/H = speaker
var/obj/item/weapon/card/id/id = H.wear_id
@@ -143,15 +143,15 @@
else
jobname = H.get_assignment()
else if (iscarbon(speaker)) // Nonhuman carbon mob
else if(iscarbon(speaker)) // Nonhuman carbon mob
jobname = "No ID"
else if (isAI(speaker))
else if(isAI(speaker))
jobname = "AI"
else if (isrobot(speaker))
else if(isrobot(speaker))
jobname = "Cyborg"
else if (ispAI(speaker))
else if(ispAI(speaker))
jobname = "Personal AI"
else if (isAutoAnnouncer(speaker))
else if(isAutoAnnouncer(speaker))
var/mob/living/automatedannouncer/AA = speaker
jobname = AA.role
else
+6 -6
View File
@@ -500,24 +500,24 @@
if(!speaker.binarycheck())
return
if (!message)
if(!message)
return
var/message_start = "<i><span class='game say'>[name], <span class='name'>[speaker.name]</span>"
var/message_body = "<span class='message'>[speaker.say_quote(message)], \"[message]\"</span></span></i>"
for (var/mob/M in dead_mob_list)
for(var/mob/M in dead_mob_list)
if(!istype(M,/mob/new_player) && !istype(M,/mob/living/carbon/brain))
var/message_start_dead = "<i><span class='game say'>[name], <span class='name'>[speaker.name] ([ghost_follow_link(speaker, ghost=M)])</span>"
M.show_message("[message_start_dead] [message_body]", 2)
for (var/mob/living/S in living_mob_list)
for(var/mob/living/S in living_mob_list)
if(drone_only && !istype(S,/mob/living/silicon/robot/drone))
continue
else if(istype(S , /mob/living/silicon/ai))
message_start = "<i><span class='game say'>[name], <a href='byond://?src=\ref[S];track=\ref[speaker]'><span class='name'>[speaker.name]</span></a>"
else if (!S.binarycheck())
else if(!S.binarycheck())
continue
S.show_message("[message_start] [message_body]", 2)
@@ -525,13 +525,13 @@
var/list/listening = hearers(1, src)
listening -= src
for (var/mob/living/M in listening)
for(var/mob/living/M in listening)
if(istype(M, /mob/living/silicon) || M.binarycheck())
continue
M.show_message("<i><span class='game say'><span class='name'>synthesised voice</span> <span class='message'>beeps, \"beep beep beep\"</span></span></i>",2)
//robot binary xmitter component power usage
if (isrobot(speaker))
if(isrobot(speaker))
var/mob/living/silicon/robot/R = speaker
var/datum/robot_component/C = R.components["comms"]
R.use_power(C.energy_consumption)
@@ -118,11 +118,11 @@
/mob/living/carbon/alien/handle_mutations_and_radiation()
// Aliens love radiation nom nom nom
if (radiation)
if (radiation > 100)
if(radiation)
if(radiation > 100)
radiation = 100
if (radiation < 0)
if(radiation < 0)
radiation = 0
switch(radiation)
@@ -228,8 +228,8 @@ Proc: AddInfectionImages()
Des: Gives the client of the alien an image on each infected mob.
----------------------------------------*/
/mob/living/carbon/alien/proc/AddInfectionImages()
if (client)
for (var/mob/living/C in mob_list)
if(client)
for(var/mob/living/C in mob_list)
if(C.status_flags & XENO_HOST)
var/obj/item/organ/internal/body_egg/alien_embryo/A = C.get_int_organ(/obj/item/organ/internal/body_egg/alien_embryo)
if(A)
@@ -243,7 +243,7 @@ Proc: RemoveInfectionImages()
Des: Removes all infected images from the alien.
----------------------------------------*/
/mob/living/carbon/alien/proc/RemoveInfectionImages()
if (client)
if(client)
for(var/image/I in client.images)
if(dd_hasprefix_case(I.icon_state, "infected"))
qdel(I)
@@ -6,17 +6,17 @@ As such, they can either help or harm other aliens. Help works like the human he
In all, this is a lot like the monkey code. /N
*/
/mob/living/carbon/alien/attack_alien(mob/living/carbon/alien/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (istype(loc, /turf) && istype(loc.loc, /area/start))
if(istype(loc, /turf) && istype(loc.loc, /area/start))
to_chat(M, "No attacking people at spawn, you jackass.")
return
switch(M.a_intent)
if (I_HELP)
if(I_HELP)
sleeping = max(0,sleeping-5)
resting = 0
AdjustParalysis(-3)
@@ -24,12 +24,12 @@ In all, this is a lot like the monkey code. /N
AdjustWeakened(-3)
visible_message("<span class='notice'>[M.name] nuzzles [src] trying to wake it up!</span>")
if (I_GRAB)
if(I_GRAB)
src.grabbedby(M)
return 1
else
if (health > 0)
if(health > 0)
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
var/damage = 1
visible_message("<span class='danger'>[M.name] bites [src]!</span>", \
@@ -57,7 +57,7 @@ In all, this is a lot like the monkey code. /N
help_shake_act(M)
if(I_GRAB)
src.grabbedby(M)
if (I_HARM, I_DISARM)
if(I_HARM, I_DISARM)
return 1
return 0
@@ -57,10 +57,10 @@ Doesn't work on other aliens/AI.*/
if(isalien(M))
var/amount = input("Amount:", "Transfer Plasma to [M]") as num
if (amount)
if(amount)
amount = abs(round(amount))
if(powerc(amount))
if (get_dist(src,M) <= 1)
if(get_dist(src,M) <= 1)
M.adjustPlasma(amount)
adjustPlasma(-amount)
to_chat(M, "<span class='noticealien'>[src] has transfered [amount] plasma to you.</span>")
@@ -18,8 +18,8 @@
/mob/living/carbon/alien/humanoid/hunter/handle_regular_hud_updates()
..() //-Yvarov
if (healths)
if (stat != 2)
if(healths)
if(stat != 2)
switch(health)
if(125 to INFINITY)
healths.icon_state = "health0"
@@ -49,8 +49,8 @@
/mob/living/carbon/alien/humanoid/sentinel/handle_regular_hud_updates()
..() //-Yvarov
if (healths)
if (stat != 2)
if(healths)
if(stat != 2)
switch(health)
if(150 to INFINITY)
healths.icon_state = "health0"
@@ -1,6 +1,6 @@
/mob/living/carbon/alien/humanoid/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
if(findtext(act, "-", 1, null))
var/t1 = findtext(act, "-", 1, null)
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
@@ -18,23 +18,23 @@
if(num)
message = "<B>\The [src]</B> signs [num]."
m_type = 1
if ("burp")
if (!muzzled)
if("burp")
if(!muzzled)
message = "<B>\The [src]</B> burps."
m_type = 2
if ("deathgasp")
if("deathgasp")
message = "<B>\The [src]</B> lets out a waning guttural screech, green blood bubbling from its maw..."
m_type = 2
if("scratch")
if (!src.restrained())
if(!src.restrained())
message = "<B>\The [src]</B> scratches."
m_type = 1
if("whimper")
if (!muzzled)
if(!muzzled)
message = "<B>\The [src]</B> whimpers."
m_type = 2
if("roar")
if (!muzzled)
if(!muzzled)
message = "<B>\The [src]</B> roars."
m_type = 2
if("hiss")
@@ -54,7 +54,7 @@
message = "<B>\The [src]</B> drools."
m_type = 1
if("scretch")
if (!muzzled)
if(!muzzled)
message = "<B>\The [src]</B> scretches."
m_type = 2
if("choke")
@@ -79,18 +79,18 @@
message = "<B>\The [src]</B> twitches violently."
m_type = 1
if("dance")
if (!src.restrained())
if(!src.restrained())
message = "<B>\The [src]</B> dances around happily."
m_type = 1
if("roll")
if (!src.restrained())
if(!src.restrained())
message = "<B>\The [src]</B> rolls."
m_type = 1
if("shake")
message = "<B>\The [src]</B> shakes its head."
m_type = 1
if("gnarl")
if (!muzzled)
if(!muzzled)
message = "<B>\The [src]</B> gnarls and shows its teeth.."
m_type = 2
if("jump")
@@ -100,7 +100,7 @@
Paralyse(2)
message = "<B>\The [src]</B> collapses!"
m_type = 2
if ("flip")
if("flip")
m_type = 1
message = "<B>\The [src]</B> does a flip!"
src.SpinAnimation(5,1)
@@ -108,8 +108,8 @@
to_chat(src, "burp, flip, deathgasp, choke, collapse, dance, drool, gasp, shiver, gnarl, jump, moan, nod, roar, roll, scratch,\nscretch, shake, sign-#, sit, sulk, sway, tail, twitch, whimper")
if(!stat)
if (act == "roar")
if(act == "roar")
playsound(src.loc, 'sound/voice/hiss5.ogg', 40, 1, 1)
if (act == "deathgasp")
if(act == "deathgasp")
playsound(src.loc, 'sound/voice/hiss6.ogg', 80, 1, 1)
..(act, m_type, message)
@@ -56,8 +56,8 @@
..() //-Yvarov
if (src.healths)
if (src.stat != 2)
if(src.healths)
if(src.stat != 2)
switch(health)
if(250 to INFINITY)
src.healths.icon_state = "health0"
@@ -29,22 +29,22 @@
//This is fine, works the same as a human
/mob/living/carbon/alien/humanoid/Bump(atom/movable/AM as mob|obj, yes)
spawn( 0 )
if ((!( yes ) || now_pushing))
if((!( yes ) || now_pushing))
return
now_pushing = 0
..()
if (!istype(AM, /atom/movable))
if(!istype(AM, /atom/movable))
return
if (ismob(AM))
if(ismob(AM))
var/mob/tmob = AM
tmob.LAssailant = src
if (!now_pushing)
if(!now_pushing)
now_pushing = 1
if (!AM.anchored)
if(!AM.anchored)
var/t = get_dir(src, AM)
if (istype(AM, /obj/structure/window/full))
if(istype(AM, /obj/structure/window/full))
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
return
@@ -55,13 +55,13 @@
/mob/living/carbon/alien/humanoid/movement_delay()
var/tally = 0
if (istype(src, /mob/living/carbon/alien/humanoid/queen))
if(istype(src, /mob/living/carbon/alien/humanoid/queen))
tally += 4
if (istype(src, /mob/living/carbon/alien/humanoid/drone))
if(istype(src, /mob/living/carbon/alien/humanoid/drone))
tally += 0
if (istype(src, /mob/living/carbon/alien/humanoid/sentinel))
if(istype(src, /mob/living/carbon/alien/humanoid/sentinel))
tally += 0
if (istype(src, /mob/living/carbon/alien/humanoid/hunter))
if(istype(src, /mob/living/carbon/alien/humanoid/hunter))
tally = -2 // hunters go supersuperfast
return (tally + move_delay_add + config.alien_delay)
@@ -85,13 +85,13 @@
var/b_loss = null
var/f_loss = null
switch (severity)
if (1.0)
switch(severity)
if(1.0)
gib()
return
if (2.0)
if (!shielded)
if(2.0)
if(!shielded)
b_loss += 60
f_loss += 60
@@ -101,7 +101,7 @@
if(3.0)
b_loss += 30
if (prob(50) && !shielded)
if(prob(50) && !shielded)
Paralyse(1)
ear_damage += 15
ear_deaf += 60
@@ -112,13 +112,13 @@
updatehealth()
/mob/living/carbon/alien/humanoid/attack_slime(mob/living/carbon/slime/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if(M.Victim) return // can't attack while eating!
if (stat > -100)
if(stat > -100)
M.do_attack_animation(src)
visible_message("<span class='danger'>The [M.name] glomps [src]!</span>", \
@@ -153,7 +153,7 @@
"<span class='userdanger'>The [M.name] has shocked [src]!</span>")
Weaken(power)
if (stuttering < power)
if(stuttering < power)
stuttering = power
Stun(power)
@@ -161,7 +161,7 @@
s.set_up(5, 1, src)
s.start()
if (prob(stunprob) && M.powerlevel >= 8)
if(prob(stunprob) && M.powerlevel >= 8)
adjustFireLoss(M.powerlevel * rand(6,10))
@@ -183,11 +183,11 @@
updatehealth()
/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (istype(loc, /turf) && istype(loc.loc, /area/start))
if(istype(loc, /turf) && istype(loc.loc, /area/start))
to_chat(M, "No attacking people at spawn, you jackass.")
return
@@ -196,17 +196,17 @@
switch(M.a_intent)
if (I_HELP)
if(I_HELP)
help_shake_act(M)
if (I_GRAB)
if(I_GRAB)
grabbedby(M)
if (I_HARM)
if(I_HARM)
M.do_attack_animation(src)
var/damage = rand(1, 9)
if (prob(90))
if (HULK in M.mutations)//HULK SMASH
if(prob(90))
if(HULK in M.mutations)//HULK SMASH
damage = 15
spawn(0)
Paralyse(1)
@@ -216,7 +216,7 @@
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[M] has punched [src]!</span>", \
"<span class='userdanger'>[M] has punched [src]!</span>")
if ((stat != DEAD) && (damage > 9||prob(5)))//Regular humans have a very small chance of weakening an alien.
if((stat != DEAD) && (damage > 9||prob(5)))//Regular humans have a very small chance of weakening an alien.
Paralyse(2)
visible_message("<span class='danger'>[M] has weakened [src]!</span>", \
"<span class='userdanger'>[M] has weakened [src]!</span>", \
@@ -227,15 +227,15 @@
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has attempted to punch [src]!</span>")
if (I_DISARM)
if (!lying)
if (prob(5))//Very small chance to push an alien down.
if(I_DISARM)
if(!lying)
if(prob(5))//Very small chance to push an alien down.
Paralyse(2)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
visible_message("<span class='danger'>[M] has pushed down [src]!</span>", \
"<span class='userdanger'>[M] has pushed down [src]!</span>")
else
if (prob(50))
if(prob(50))
drop_item()
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
visible_message("<span class='danger'>[M] has disarmed [src]!</span>", \
@@ -251,11 +251,11 @@ In all, this is a lot like the monkey code. /N
*/
/mob/living/carbon/alien/humanoid/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (istype(loc, /turf) && istype(loc.loc, /area/start))
if(istype(loc, /turf) && istype(loc.loc, /area/start))
to_chat(M, "No attacking people at spawn, you jackass.")
return
@@ -263,7 +263,7 @@ In all, this is a lot like the monkey code. /N
switch(M.a_intent)
if (I_HELP)
if(I_HELP)
sleeping = max(0,sleeping-5)
resting = 0
AdjustParalysis(-3)
@@ -272,7 +272,7 @@ In all, this is a lot like the monkey code. /N
visible_message("<span class='notice'>[M.name] nuzzles [src] trying to wake it up!</span>")
else
if (health > 0)
if(health > 0)
M.do_attack_animation(src)
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
var/damage = rand(1, 3)
@@ -294,7 +294,7 @@ In all, this is a lot like the monkey code. /N
else
if (health > 0)
if(health > 0)
L.do_attack_animation(src)
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
var/damage = rand(1, 3)
@@ -310,7 +310,7 @@ In all, this is a lot like the monkey code. /N
/mob/living/carbon/alien/humanoid/restrained()
if (handcuffed)
if(handcuffed)
return 1
return 0
@@ -15,24 +15,24 @@
/mob/living/carbon/alien/humanoid/handle_disabilities()
if (disabilities & EPILEPSY)
if ((prob(1) && paralysis < 10))
if(disabilities & EPILEPSY)
if((prob(1) && paralysis < 10))
to_chat(src, "<span class='danger'>You have a seizure!</span>")
Paralyse(10)
if (disabilities & COUGHING)
if ((prob(5) && paralysis <= 1))
if(disabilities & COUGHING)
if((prob(5) && paralysis <= 1))
drop_item()
spawn( 0 )
emote("cough")
return
if (disabilities & TOURETTES)
if ((prob(10) && paralysis <= 1))
if(disabilities & TOURETTES)
if((prob(10) && paralysis <= 1))
Stun(10)
spawn( 0 )
emote("twitch")
return
if (disabilities & NERVOUS)
if (prob(10))
if(disabilities & NERVOUS)
if(prob(10))
stuttering = max(10, stuttering)
/mob/living/carbon/alien/humanoid/proc/adjust_body_temperature(current, loc_temp, boost)
@@ -34,8 +34,8 @@
/mob/living/carbon/alien/humanoid/queen/handle_regular_hud_updates()
..() //-Yvarov
if (healths)
if (stat != DEAD)
if(healths)
if(stat != DEAD)
switch(health)
if(250 to INFINITY)
healths.icon_state = "health0"
@@ -56,7 +56,7 @@
/mob/living/carbon/alien/humanoid/regenerate_icons()
..()
if (notransform) return
if(notransform) return
update_inv_head(0,0)
update_inv_wear_suit(0,0)
@@ -103,7 +103,7 @@
t_suit = "armor"
standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[t_suit]blood")
if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
if(istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
unEquip(handcuffed)
drop_r_hand()
drop_l_hand()
@@ -115,7 +115,7 @@
/mob/living/carbon/alien/humanoid/update_inv_head(var/update_icons=1)
if (head)
if(head)
var/t_state = head.item_state
if(!t_state) t_state = head.icon_state
var/image/standing = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "[t_state]")
@@ -1,6 +1,6 @@
/mob/living/carbon/alien/larva/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
if(findtext(act, "-", 1, null))
var/t1 = findtext(act, "-", 1, null)
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
@@ -10,41 +10,41 @@
var/muzzled = is_muzzled()
act = lowertext(act)
switch(act)
if ("me")
if("me")
if(silent)
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
if(src.client)
if(client.prefs.muted & MUTE_IC)
to_chat(src, "\red You cannot send IC messages (muted).")
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
if(src.client.handle_spam_prevention(message,MUTE_IC))
return
if (stat)
if(stat)
return
if(!(message))
return
return custom_emote(m_type, message)
if ("custom")
if("custom")
return custom_emote(m_type, message)
if("sign")
if (!src.restrained())
if(!src.restrained())
message = text("<B>The alien</B> signs[].", (text2num(param) ? text(" the number []", text2num(param)) : null))
m_type = 1
if ("burp")
if (!muzzled)
if("burp")
if(!muzzled)
message = "<B>[src]</B> burps."
m_type = 2
if("scratch")
if (!src.restrained())
if(!src.restrained())
message = "<B>The [src.name]</B> scratches."
m_type = 1
if("whimper")
if (!muzzled)
if(!muzzled)
message = "<B>The [src.name]</B> whimpers."
m_type = 2
// if("roar")
// if (!muzzled)
// if(!muzzled)
// message = "<B>The [src.name]</B> roars." Commenting out since larva shouldn't roar /N
// m_type = 2
if("tail")
@@ -60,7 +60,7 @@
message = "<B>The [src.name]</B> drools."
m_type = 1
if("scretch")
if (!muzzled)
if(!muzzled)
message = "<B>The [src.name]</B> scretches."
m_type = 2
if("choke")
@@ -85,18 +85,18 @@
message = "<B>The [src.name]</B> twitches violently."
m_type = 1
if("dance")
if (!src.restrained())
if(!src.restrained())
message = "<B>The [src.name]</B> dances around happily."
m_type = 1
if("roll")
if (!src.restrained())
if(!src.restrained())
message = "<B>The [src.name]</B> rolls."
m_type = 1
if("shake")
message = "<B>The [src.name]</B> shakes its head."
m_type = 1
if("gnarl")
if (!muzzled)
if(!muzzled)
message = "<B>The [src.name]</B> gnarls and shows its teeth.."
m_type = 2
if("jump")
@@ -113,9 +113,9 @@
to_chat(src, "burp, choke, collapse, dance, drool, gasp, shiver, gnarl, jump, moan, nod, roll, scratch,\nscretch, shake, sign-#, sulk, sway, tail, twitch, whimper")
else
to_chat(src, text("Invalid Emote: []", act))
if ((message && src.stat == 0))
if((message && src.stat == 0))
log_emote("[name]/[key] : [message]")
if (m_type & 1)
if(m_type & 1)
for(var/mob/O in viewers(src, null))
O.show_message(message, m_type)
//Foreach goto(703)
@@ -31,7 +31,7 @@
/mob/living/carbon/alien/larva/Bump(atom/movable/AM as mob|obj, yes)
spawn( 0 )
if ((!( yes ) || now_pushing))
if((!( yes ) || now_pushing))
return
now_pushing = 1
if(ismob(AM))
@@ -48,11 +48,11 @@
now_pushing = 0
..()
if (!( istype(AM, /atom/movable) ))
if(!( istype(AM, /atom/movable) ))
return
if (!( now_pushing ))
if(!( now_pushing ))
now_pushing = 1
if (!( AM.anchored ))
if(!( AM.anchored ))
var/t = get_dir(src, AM)
step(AM, t)
now_pushing = null
@@ -76,12 +76,12 @@
var/b_loss = null
var/f_loss = null
switch (severity)
if (1.0)
switch(severity)
if(1.0)
gib()
return
if (2.0)
if(2.0)
b_loss += 60
@@ -92,7 +92,7 @@
if(3.0)
b_loss += 30
if (prob(50))
if(prob(50))
Paralyse(1)
ear_damage += 15
ear_deaf += 60
@@ -123,14 +123,14 @@
/mob/living/carbon/alien/larva/attack_slime(mob/living/carbon/slime/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if(M.Victim)
return // can't attack while eating!
if (stat != DEAD)
if(stat != DEAD)
M.do_attack_animation(src)
visible_message("<span class='danger'>The [M.name] glomps [src]!</span>", \
"<span class='userdanger'>The [M.name] glomps [src]!</span>")
@@ -148,11 +148,11 @@
return
/mob/living/carbon/alien/larva/attack_hand(mob/living/carbon/human/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (istype(loc, /turf) && istype(loc.loc, /area/start))
if(istype(loc, /turf) && istype(loc.loc, /area/start))
to_chat(M, "No attacking people at spawn, you jackass.")
return
@@ -160,17 +160,17 @@
switch(M.a_intent)
if (I_HELP)
if(I_HELP)
help_shake_act(M)
if (I_GRAB)
if(I_GRAB)
grabbedby(M)
else
M.do_attack_animation(src)
var/damage = rand(1, 9)
if (prob(90))
if (HULK in M.mutations)
if(prob(90))
if(HULK in M.mutations)
damage += 5
spawn(0)
Paralyse(1)
@@ -180,7 +180,7 @@
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[M] has kicked [src]!</span>", \
"<span class='userdanger'>[M] has kicked [src]!</span>")
if ((stat != DEAD) && (damage > 4.9))
if((stat != DEAD) && (damage > 4.9))
Paralyse(rand(5,10))
visible_message("<span class='danger'>[M] has weakened [src]!</span>", \
"<span class='userdanger'>[M] has weakened [src]!</span>", \
@@ -194,11 +194,11 @@
return
/mob/living/carbon/alien/larva/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (istype(loc, /turf) && istype(loc.loc, /area/start))
if(istype(loc, /turf) && istype(loc.loc, /area/start))
to_chat(M, "No attacking people at spawn, you jackass.")
return
@@ -206,7 +206,7 @@
switch(M.a_intent)
if (I_HELP)
if(I_HELP)
sleeping = max(0,sleeping-5)
resting = 0
AdjustParalysis(-3)
@@ -215,7 +215,7 @@
visible_message("<span class='notice'>[M.name] nuzzles [src] trying to wake it up!</span>")
else
if (health > 0)
if(health > 0)
M.do_attack_animation(src)
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
var/damage = 1
@@ -7,17 +7,17 @@
if(stat != CONSCIOUS)
return
if (layer != TURF_LAYER+0.2)
if(layer != TURF_LAYER+0.2)
layer = TURF_LAYER+0.2
to_chat(src, text("<span class='noticealien'>You are now hiding.</span>"))
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
if((O.client && !( O.blinded )))
to_chat(O, text("<B>[] scurries to the ground!</B>", src))
else
layer = MOB_LAYER
to_chat(src, text("\green You have stopped hiding."))
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
if((O.client && !( O.blinded )))
to_chat(O, text("[] slowly peaks up from the ground...", src))
/mob/living/carbon/alien/larva/verb/evolve()
@@ -12,11 +12,11 @@
if(stat == DEAD)
icon_state = "larva[state]_dead"
else if (handcuffed || legcuffed) //This should be an overlay. Who made this an icon_state?
else if(handcuffed || legcuffed) //This should be an overlay. Who made this an icon_state?
icon_state = "larva[state]_cuff"
else if(stat == UNCONSCIOUS || lying || resting)
icon_state = "larva[state]_sleep"
else if (stunned)
else if(stunned)
icon_state = "larva[state]_stun"
else
icon_state = "larva[state]"
@@ -52,7 +52,7 @@ var/const/MAX_ACTIVE_TIME = 400
to_chat(user, "<span class='boldannounce'>[src] is not moving.</span>")
if(CONSCIOUS)
to_chat(user, "<span class='boldannounce'>[src] seems to be active!</span>")
if (sterile)
if(sterile)
to_chat(user, "<span class='boldannounce'>It looks like the proboscis has been removed.</span>")
/obj/item/clothing/mask/facehugger/attackby(obj/item/O,mob/m, params)
@@ -148,7 +148,7 @@ var/const/MAX_ACTIVE_TIME = 400
target.equip_to_slot(src, slot_wear_mask,,0)
if(!sterile)
M.Paralyse(MAX_IMPREGNATION_TIME/6) //something like 25 ticks = 20 seconds with the default settings
else if (iscorgi(M))
else if(iscorgi(M))
var/mob/living/simple_animal/pet/corgi/C = M
loc = C
C.facehugger = src
@@ -23,29 +23,29 @@
return ..()
say_understands(var/other)//Goddamn is this hackish, but this say code is so odd
if (istype(other, /mob/living/silicon/ai))
if(istype(other, /mob/living/silicon/ai))
if(!(container && istype(container, /obj/item/device/mmi)))
return 0
else
return 1
if (istype(other, /mob/living/silicon/decoy))
if(istype(other, /mob/living/silicon/decoy))
if(!(container && istype(container, /obj/item/device/mmi)))
return 0
else
return 1
if (istype(other, /mob/living/silicon/pai))
if(istype(other, /mob/living/silicon/pai))
if(!(container && istype(container, /obj/item/device/mmi)))
return 0
else
return 1
if (istype(other, /mob/living/silicon/robot))
if(istype(other, /mob/living/silicon/robot))
if(!(container && istype(container, /obj/item/device/mmi)))
return 0
else
return 1
if (istype(other, /mob/living/carbon/human))
if(istype(other, /mob/living/carbon/human))
return 1
if (istype(other, /mob/living/carbon/slime))
if(istype(other, /mob/living/carbon/slime))
return 1
return ..()
+10 -10
View File
@@ -2,7 +2,7 @@
if(!(container && istype(container, /obj/item/device/mmi)))//No MMI, no emotes
return
if (findtext(act, "-", 1, null))
if(findtext(act, "-", 1, null))
var/t1 = findtext(act, "-", 1, null)
act = copytext(act, 1, t1)
@@ -14,37 +14,37 @@
act = lowertext(act)
switch(act)
if ("alarm")
if("alarm")
to_chat(src, "You sound an alarm.")
message = "<B>\The [src]</B> sounds an alarm."
m_type = 2
if ("alert")
if("alert")
to_chat(src, "You let out a distressed noise.")
message = "<B>\The [src]</B> lets out a distressed noise."
m_type = 2
if ("notice")
if("notice")
to_chat(src, "You play a loud tone.")
message = "<B>\The [src]</B> plays a loud tone."
m_type = 2
if ("flash")
if("flash")
message = "The lights on <B>\the [src]</B> flash quickly."
m_type = 1
if ("blink")
if("blink")
message = "<B>\The [src]</B> blinks."
m_type = 1
if ("whistle")
if("whistle")
to_chat(src, "You whistle.")
message = "<B>\The [src]</B> whistles."
m_type = 2
if ("beep")
if("beep")
to_chat(src, "You beep.")
message = "<B>\The [src]</B> beeps."
m_type = 2
if ("boop")
if("boop")
to_chat(src, "You boop.")
message = "<B>\The [src]</B> boops."
m_type = 2
if ("help")
if("help")
to_chat(src, "alarm, alert, notice, flash,blink, whistle, beep, boop")
if(message && !stat)
+2 -2
View File
@@ -65,13 +65,13 @@
/mob/living/carbon/brain/handle_vision()
..()
if (stat == 2 || (XRAY in src.mutations))
if(stat == 2 || (XRAY in src.mutations))
sight |= SEE_TURFS
sight |= SEE_MOBS
sight |= SEE_OBJS
see_in_dark = 8
see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (stat != 2)
else if(stat != 2)
sight &= ~SEE_TURFS
sight &= ~SEE_MOBS
sight &= ~SEE_OBJS
@@ -64,7 +64,7 @@
if(!C || brainmob.key || 0 == searching) return //handle logouts that happen whilst the alert is waiting for a response, and responses issued after a brain has been located.
if(response == "Yes")
transfer_personality(C.mob)
else if (response == "Never for this round")
else if(response == "Never for this round")
C.prefs.be_special -= ROLE_POSIBRAIN
// This should not ever happen, but let's be safe
@@ -99,7 +99,7 @@
src.brainmob.mind.assigned_role = "Positronic Brain"
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
for(var/mob/M in viewers(T))
M.show_message("\blue The positronic brain chimes quietly.")
icon_state = "posibrain-occupied"
@@ -110,7 +110,7 @@
icon_state = "posibrain"
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
for(var/mob/M in viewers(T))
M.show_message("\blue The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?")
/obj/item/device/mmi/posibrain/Topic(href,href_list)
@@ -193,7 +193,7 @@
volunteer(O)
else
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
for(var/mob/M in viewers(T))
M.show_message("\blue The positronic brain pings softly.")
/obj/item/device/mmi/posibrain/ipc
+4 -4
View File
@@ -1,6 +1,6 @@
//TODO: Convert this over for languages.
/mob/living/carbon/brain/say(var/message, var/datum/language/speaking = null)
if (silent)
if(silent)
return
if(!(container && istype(container, /obj/item/device/mmi)))
@@ -24,9 +24,9 @@
if("headset")
var/radio_worked = 0 // If any of the radios our brainmob could use functioned, this is set true so that we don't use any others
// I'm doing it this way so that if the mecha radio fails for some reason, a radio MMI still has the built-in fallback
if (container && istype(container,/obj/item/device/mmi))
if(container && istype(container,/obj/item/device/mmi))
var/obj/item/device/mmi/c = container
if (!radio_worked && c.mecha)
if(!radio_worked && c.mecha)
var/obj/mecha/metalgear = c.mecha
if(metalgear.radio)
radio_worked = metalgear.radio.talk_into(src, message, message_mode, verb, speaking)
@@ -36,7 +36,7 @@
if(R.radio)
radio_worked = R.radio.talk_into(src, message, message_mode, verb, speaking)
return radio_worked
if ("whisper")
if("whisper")
whisper_say(message, speaking, alt_name)
return 1
else return 0
+31 -31
View File
@@ -25,7 +25,7 @@
return ..()
/mob/living/carbon/blob_act()
if (stat == DEAD)
if(stat == DEAD)
return
else
show_message("<span class='userdanger'>The blob attacks!</span>")
@@ -65,7 +65,7 @@
if(istype(src, /mob/living/carbon/human))
var/mob/living/carbon/human/H = src
var/obj/item/organ/external/organ = H.get_organ("chest")
if (istype(organ))
if(istype(organ))
if(organ.take_damage(d, 0))
H.UpdateDamageIcon()
@@ -119,7 +119,7 @@
if(stun)
adjustToxLoss(-3)
T = get_step(T, dir)
if (is_blocked_turf(T))
if(is_blocked_turf(T))
break
return 1
@@ -168,7 +168,7 @@
if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5))
Stun(3)
Weaken(3)
if (shock_damage > 200)
if(shock_damage > 200)
src.visible_message(
"<span class='danger'>[src] was arc flashed by the [source]!</span>", \
"<span class='userdanger'>The [source] arc flashes and electrocutes you!</span>", \
@@ -213,7 +213,7 @@
swap_hand()
/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M)
if (src.health >= config.health_threshold_crit)
if(src.health >= config.health_threshold_crit)
if(src == M && istype(src, /mob/living/carbon/human))
var/mob/living/carbon/human/H = src
src.visible_message( \
@@ -261,11 +261,11 @@
"<span class='notice'>You shake [src], but they are unresponsive. Probably suffering from SSD.</span>")
if(lying) // /vg/: For hugs. This is how update_icon figgers it out, anyway. - N3X15
var/t_him = "it"
if (src.gender == MALE)
if(src.gender == MALE)
t_him = "him"
else if (src.gender == FEMALE)
else if(src.gender == FEMALE)
t_him = "her"
if (istype(src,/mob/living/carbon/human) && src:w_uniform)
if(istype(src,/mob/living/carbon/human) && src:w_uniform)
var/mob/living/carbon/human/H = src
H.w_uniform.add_fingerprint(M)
src.sleeping = max(0,src.sleeping-5)
@@ -498,7 +498,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
//Throwing stuff
/mob/living/carbon/proc/toggle_throw_mode()
if (in_throw_mode)
if(in_throw_mode)
throw_mode_off()
else
throw_mode_on()
@@ -565,7 +565,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
return 1
/mob/living/carbon/restrained()
if (handcuffed)
if(handcuffed)
return 1
return
@@ -890,51 +890,51 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
wear_mask)
/mob/living/carbon/proc/uncuff()
if (handcuffed)
if(handcuffed)
var/obj/item/weapon/W = handcuffed
handcuffed = null
if (buckled && buckled.buckle_requires_restraints)
if(buckled && buckled.buckle_requires_restraints)
buckled.unbuckle_mob()
update_handcuffed()
if (client)
if(client)
client.screen -= W
if (W)
if(W)
W.loc = loc
W.dropped(src)
if (W)
if(W)
W.layer = initial(W.layer)
W.plane = initial(W.plane)
if (legcuffed)
if(legcuffed)
var/obj/item/weapon/W = legcuffed
legcuffed = null
update_inv_legcuffed()
if (client)
if(client)
client.screen -= W
if (W)
if(W)
W.loc = loc
W.dropped(src)
if (W)
if(W)
W.layer = initial(W.layer)
W.plane = initial(W.plane)
/mob/living/carbon/proc/slip(var/description, var/stun, var/weaken, var/tilesSlipped, var/walkSafely, var/slipAny)
if (flying || buckled || (walkSafely && m_intent == "walk"))
if(flying || buckled || (walkSafely && m_intent == "walk"))
return
if ((lying) && (!(tilesSlipped)))
if((lying) && (!(tilesSlipped)))
return
if (!(slipAny))
if (istype(src, /mob/living/carbon/human))
if(!(slipAny))
if(istype(src, /mob/living/carbon/human))
var/mob/living/carbon/human/H = src
if ((isobj(H.shoes) && H.shoes.flags & NOSLIP) || H.species.bodyflags & FEET_NOSLIP)
if((isobj(H.shoes) && H.shoes.flags & NOSLIP) || H.species.bodyflags & FEET_NOSLIP)
return
if (tilesSlipped)
if(tilesSlipped)
for(var/t = 0, t<=tilesSlipped, t++)
spawn (t) step(src, src.dir)
stop_pulling()
to_chat(src, "<span class='notice'>You slipped on the [description]!</span>")
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
if (stun)
if(stun)
Stun(stun)
Weaken(weaken)
return 1
@@ -966,15 +966,15 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
if(istype(toEat, /obj/item/weapon/reagent_containers/food/pill))
to_chat(src, "<span class='notify'>You [toEat.apply_method] [toEat].</span>")
else
if (fullness <= 50)
if(fullness <= 50)
to_chat(src, "<span class='warning'>You hungrily chew out a piece of [toEat] and gobble it!</span>")
else if (fullness > 50 && fullness <= 150)
else if(fullness > 50 && fullness <= 150)
to_chat(src, "<span class='notice'>You hungrily begin to eat [toEat].</span>")
else if (fullness > 150 && fullness <= 350)
else if(fullness > 150 && fullness <= 350)
to_chat(src, "<span class='notice'>You take a bite of [toEat].</span>")
else if (fullness > 350 && fullness <= 550)
else if(fullness > 350 && fullness <= 550)
to_chat(src, "<span class='notice'>You unwillingly chew a bit of [toEat].</span>")
else if (fullness > (550 * (1 + overeatduration / 2000))) // The more you eat - the more you can eat
else if(fullness > (550 * (1 + overeatduration / 2000))) // The more you eat - the more you can eat
to_chat(src, "<span class='warning'>You cannot force any more of [toEat] to go down your throat.</span>")
return 0
return 1
+178 -178
View File
@@ -1,10 +1,10 @@
/mob/living/carbon/human/emote(var/act,var/m_type=1,var/message = null,var/force)
if (stat == DEAD)
if(stat == DEAD)
return // No screaming bodies
var/param = null
if (findtext(act, "-", 1, null))
if(findtext(act, "-", 1, null))
var/t1 = findtext(act, "-", 1, null)
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
@@ -14,8 +14,8 @@
muzzled = 1
//var/m_type = 1
for (var/obj/item/weapon/implant/I in src)
if (I.implanted)
for(var/obj/item/weapon/implant/I in src)
if(I.implanted)
I.trigger(act, src)
var/miming = 0
@@ -29,12 +29,12 @@
switch(act)
//Cooldown-inducing emotes
if("ping", "pings", "buzz", "buzzes", "beep", "beeps", "yes", "no", "buzz2")
if (species.name == "Machine") //Only Machines can beep, ping, and buzz, yes, no, and make a silly sad trombone noise.
if(species.name == "Machine") //Only Machines can beep, ping, and buzz, yes, no, and make a silly sad trombone noise.
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm
else //Everyone else fails, skip the emote attempt
return
if("drone","drones","hum","hums","rumble","rumbles")
if (species.name == "Drask") //Only Drask can make whale noises
if(species.name == "Drask") //Only Drask can make whale noises
on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm
else
return
@@ -72,14 +72,14 @@
if("ping", "pings")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> pings at [param]."
else
message = "<B>[src]</B> pings."
@@ -94,14 +94,14 @@
if("buzz", "buzzes")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> buzzes at [param]."
else
message = "<B>[src]</B> buzzes."
@@ -111,14 +111,14 @@
if("beep", "beeps")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> beeps at [param]."
else
message = "<B>[src]</B> beeps."
@@ -128,14 +128,14 @@
if("drone", "drones", "hum", "hums", "rumble", "rumbles")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> drones at [param]."
else
message = "<B>[src]</B> rumbles."
@@ -145,14 +145,14 @@
if("squish", "squishes")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> squishes at [param]."
else
message = "<B>[src]</B> squishes."
@@ -162,14 +162,14 @@
if("yes")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> emits an affirmative blip at [param]."
else
message = "<B>[src]</B> emits an affirmative blip."
@@ -179,14 +179,14 @@
if("no")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> emits a negative blip at [param]."
else
message = "<B>[src]</B> emits a negative blip."
@@ -217,99 +217,99 @@
return
m_type = 1
if ("airguitar")
if (!src.restrained())
if("airguitar")
if(!src.restrained())
message = "<B>[src]</B> is strumming the air and headbanging like a safari chimp."
m_type = 1
if ("blink", "blinks")
if("blink", "blinks")
message = "<B>[src]</B> blinks."
m_type = 1
if ("blink_r", "blinks_r")
if("blink_r", "blinks_r")
message = "<B>[src]</B> blinks rapidly."
m_type = 1
if ("bow", "bows")
if (!src.buckled)
if("bow", "bows")
if(!src.buckled)
var/M = null
if (param)
for (var/mob/A in view(null, null))
if (param == A.name)
if(param)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if (!M)
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> bows to [param]."
else
message = "<B>[src]</B> bows."
m_type = 1
if ("salute", "salutes")
if (!src.buckled)
if("salute", "salutes")
if(!src.buckled)
var/M = null
if (param)
for (var/mob/A in view(null, null))
if (param == A.name)
if(param)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if (!M)
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> salutes to [param]."
else
message = "<B>[src]</b> salutes."
m_type = 1
if ("choke", "chokes")
if("choke", "chokes")
if(miming)
message = "<B>[src]</B> clutches \his throat desperately!"
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> chokes!"
m_type = 2
else
message = "<B>[src]</B> makes a strong noise."
m_type = 2
if ("burp", "burps")
if("burp", "burps")
if(miming)
message = "<B>[src]</B> opens their mouth rather obnoxiously."
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> burps."
m_type = 2
else
message = "<B>[src]</B> makes a peculiar noise."
m_type = 2
if ("clap", "claps")
if (!src.restrained())
if("clap", "claps")
if(!src.restrained())
message = "<B>[src]</B> claps."
m_type = 2
if(miming)
m_type = 1
if ("flap", "flaps")
if (!src.restrained())
if("flap", "flaps")
if(!src.restrained())
message = "<B>[src]</B> flaps \his wings."
m_type = 2
if(miming)
m_type = 1
if ("flip", "flips")
if("flip", "flips")
m_type = 1
if (!src.restrained())
if(!src.restrained())
var/M = null
if (param)
for (var/mob/A in view(1, null))
if (param == A.name)
if(param)
for(var/mob/A in view(1, null))
if(param == A.name)
M = A
break
if (M == src)
if(M == src)
M = null
if(M)
@@ -339,227 +339,227 @@
message = "<B>[src]</B> does a flip!"
SpinAnimation(5,1)
if ("aflap", "aflaps")
if (!src.restrained())
if("aflap", "aflaps")
if(!src.restrained())
message = "<B>[src]</B> flaps \his wings ANGRILY!"
m_type = 2
if(miming)
m_type = 1
if ("drool", "drools")
if("drool", "drools")
message = "<B>[src]</B> drools."
m_type = 1
if ("eyebrow")
if("eyebrow")
message = "<B>[src]</B> raises an eyebrow."
m_type = 1
if ("chuckle", "chuckles")
if("chuckle", "chuckles")
if(miming)
message = "<B>[src]</B> appears to chuckle."
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> chuckles."
m_type = 2
else
message = "<B>[src]</B> makes a noise."
m_type = 2
if ("twitch", "twitches")
if("twitch", "twitches")
message = "<B>[src]</B> twitches violently."
m_type = 1
if ("twitch_s", "twitches_s")
if("twitch_s", "twitches_s")
message = "<B>[src]</B> twitches."
m_type = 1
if ("faint", "faints")
if("faint", "faints")
message = "<B>[src]</B> faints."
if(src.sleeping)
return //Can't faint while asleep
src.sleeping += 1
m_type = 1
if ("cough", "coughs")
if("cough", "coughs")
if(miming)
message = "<B>[src]</B> appears to cough!"
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> coughs!"
m_type = 2
else
message = "<B>[src]</B> makes a strong noise."
m_type = 2
if ("frown", "frowns")
if("frown", "frowns")
message = "<B>[src]</B> frowns."
m_type = 1
if ("nod", "nods")
if("nod", "nods")
message = "<B>[src]</B> nods."
m_type = 1
if ("blush", "blushes")
if("blush", "blushes")
message = "<B>[src]</B> blushes."
m_type = 1
if ("wave", "waves")
if("wave", "waves")
message = "<B>[src]</B> waves."
m_type = 1
if ("quiver", "quivers")
if("quiver", "quivers")
message = "<B>[src]</B> quivers."
m_type = 1
if ("gasp", "gasps")
if("gasp", "gasps")
if(miming)
message = "<B>[src]</B> appears to be gasping!"
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> gasps!"
m_type = 2
else
message = "<B>[src]</B> makes a weak noise."
m_type = 2
if ("deathgasp", "deathgasps")
if("deathgasp", "deathgasps")
message = "<B>[src]</B> [species.death_message]"
m_type = 1
if ("giggle", "giggles")
if("giggle", "giggles")
if(miming)
message = "<B>[src]</B> giggles silently!"
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> giggles."
m_type = 2
else
message = "<B>[src]</B> makes a noise."
m_type = 2
if ("glare", "glares")
if("glare", "glares")
var/M = null
if (param)
for (var/mob/A in view(null, null))
if (param == A.name)
if(param)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if (!M)
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> glares at [param]."
else
message = "<B>[src]</B> glares."
m_type = 1
if ("stare", "stares")
if("stare", "stares")
var/M = null
if (param)
for (var/mob/A in view(null, null))
if (param == A.name)
if(param)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if (!M)
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> stares at [param]."
else
message = "<B>[src]</B> stares."
m_type = 1
if ("look", "looks")
if("look", "looks")
var/M = null
if (param)
for (var/mob/A in view(null, null))
if (param == A.name)
if(param)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if (!M)
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> looks at [param]."
else
message = "<B>[src]</B> looks."
m_type = 1
if ("grin", "grins")
if("grin", "grins")
message = "<B>[src]</B> grins."
m_type = 1
if ("cry", "cries")
if("cry", "cries")
if(miming)
message = "<B>[src]</B> cries."
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> cries."
m_type = 2
else
message = "<B>[src]</B> makes a weak noise. \He frowns."
m_type = 2
if ("sigh", "sighs")
if("sigh", "sighs")
if(miming)
message = "<B>[src]</B> sighs."
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> sighs."
m_type = 2
else
message = "<B>[src]</B> makes a weak noise."
m_type = 2
if ("laugh", "laughs")
if("laugh", "laughs")
if(miming)
message = "<B>[src]</B> acts out a laugh."
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> laughs."
m_type = 2
else
message = "<B>[src]</B> makes a noise."
m_type = 2
if ("mumble", "mumbles")
if("mumble", "mumbles")
message = "<B>[src]</B> mumbles!"
m_type = 2
if(miming)
m_type = 1
if ("grumble", "grumbles")
if("grumble", "grumbles")
if(miming)
message = "<B>[src]</B> grumbles!"
m_type = 1
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> grumbles!"
m_type = 2
else
message = "<B>[src]</B> makes a noise."
m_type = 2
if ("groan", "groans")
if("groan", "groans")
if(miming)
message = "<B>[src]</B> appears to groan!"
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> groans!"
m_type = 2
else
message = "<B>[src]</B> makes a loud noise."
m_type = 2
if ("moan", "moans")
if("moan", "moans")
if(miming)
message = "<B>[src]</B> appears to moan!"
m_type = 1
@@ -567,11 +567,11 @@
message = "<B>[src]</B> moans!"
m_type = 2
if ("johnny")
if("johnny")
var/M
if (param)
if(param)
M = param
if (!M)
if(!M)
param = null
else
if(miming)
@@ -581,23 +581,23 @@
message = "<B>[src]</B> says, \"[M], please. They had a family.\" [src.name] takes a drag from a cigarette and blows their name out in smoke."
m_type = 2
if ("point", "points")
if (!src.restrained())
if("point", "points")
if(!src.restrained())
var/atom/M = null
if (param)
for (var/atom/A as mob|obj|turf in view())
if (param == A.name)
if(param)
for(var/atom/A as mob|obj|turf in view())
if(param == A.name)
M = A
break
if (!M)
if(!M)
message = "<B>[src]</B> points."
else
pointed(M)
m_type = 1
if ("raise", "raises")
if (!src.restrained())
if("raise", "raises")
if(!src.restrained())
message = "<B>[src]</B> raises a hand."
m_type = 1
@@ -605,92 +605,92 @@
message = "<B>[src]</B> shakes \his head."
m_type = 1
if ("shrug", "shrugs")
if("shrug", "shrugs")
message = "<B>[src]</B> shrugs."
m_type = 1
if ("signal", "signals")
if (!src.restrained())
if("signal", "signals")
if(!src.restrained())
var/t1 = round(text2num(param))
if (isnum(t1))
if (t1 <= 5 && (!src.r_hand || !src.l_hand))
if(isnum(t1))
if(t1 <= 5 && (!src.r_hand || !src.l_hand))
message = "<B>[src]</B> raises [t1] finger\s."
else if (t1 <= 10 && (!src.r_hand && !src.l_hand))
else if(t1 <= 10 && (!src.r_hand && !src.l_hand))
message = "<B>[src]</B> raises [t1] finger\s."
m_type = 1
if ("smile", "smiles")
if("smile", "smiles")
message = "<B>[src]</B> smiles."
m_type = 1
if ("shiver", "shivers")
if("shiver", "shivers")
message = "<B>[src]</B> shivers."
m_type = 2
if(miming)
m_type = 1
if ("pale", "pales")
if("pale", "pales")
message = "<B>[src]</B> goes pale for a second."
m_type = 1
if ("tremble", "trembles")
if("tremble", "trembles")
message = "<B>[src]</B> trembles."
m_type = 1
if ("sneeze", "sneezes")
if (miming)
if("sneeze", "sneezes")
if(miming)
message = "<B>[src]</B> sneezes."
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> sneezes."
m_type = 2
else
message = "<B>[src]</B> makes a strange noise."
m_type = 2
if ("sniff", "sniffs")
if("sniff", "sniffs")
message = "<B>[src]</B> sniffs."
m_type = 2
if(miming)
m_type = 1
if ("snore", "snores")
if (miming)
if("snore", "snores")
if(miming)
message = "<B>[src]</B> sleeps soundly."
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> snores."
m_type = 2
else
message = "<B>[src]</B> makes a noise."
m_type = 2
if ("whimper", "whimpers")
if (miming)
if("whimper", "whimpers")
if(miming)
message = "<B>[src]</B> appears hurt."
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> whimpers."
m_type = 2
else
message = "<B>[src]</B> makes a weak noise."
m_type = 2
if ("wink", "winks")
if("wink", "winks")
message = "<B>[src]</B> winks."
m_type = 1
if ("yawn", "yawns")
if (!muzzled)
if("yawn", "yawns")
if(!muzzled)
message = "<B>[src]</B> yawns."
m_type = 2
if(miming)
m_type = 1
if ("collapse", "collapses")
if("collapse", "collapses")
Paralyse(2)
message = "<B>[src]</B> collapses!"
m_type = 2
@@ -699,63 +699,63 @@
if("hug", "hugs")
m_type = 1
if (!src.restrained())
if(!src.restrained())
var/M = null
if (param)
for (var/mob/A in view(1, null))
if (param == A.name)
if(param)
for(var/mob/A in view(1, null))
if(param == A.name)
M = A
break
if (M == src)
if(M == src)
M = null
if (M)
if(M)
message = "<B>[src]</B> hugs [M]."
else
message = "<B>[src]</B> hugs \himself."
if ("handshake")
if("handshake")
m_type = 1
if (!src.restrained() && !src.r_hand)
if(!src.restrained() && !src.r_hand)
var/mob/M = null
if (param)
for (var/mob/A in view(1, null))
if (param == A.name)
if(param)
for(var/mob/A in view(1, null))
if(param == A.name)
M = A
break
if (M == src)
if(M == src)
M = null
if (M)
if (M.canmove && !M.r_hand && !M.restrained())
if(M)
if(M.canmove && !M.r_hand && !M.restrained())
message = "<B>[src]</B> shakes hands with [M]."
else
message = "<B>[src]</B> holds out \his hand to [M]."
if("dap", "daps")
m_type = 1
if (!src.restrained())
if(!src.restrained())
var/M = null
if (param)
for (var/mob/A in view(1, null))
if (param == A.name)
if(param)
for(var/mob/A in view(1, null))
if(param == A.name)
M = A
break
if (M)
if(M)
message = "<B>[src]</B> gives daps to [M]."
else
message = "<B>[src]</B> sadly can't find anybody to give daps to, and daps \himself. Shameful."
if("slap", "slaps")
m_type = 1
if (!src.restrained())
if(!src.restrained())
var/M = null
if (param)
for (var/mob/A in view(1, null))
if (param == A.name)
if(param)
for(var/mob/A in view(1, null))
if(param == A.name)
M = A
break
if (M)
if(M)
message = "\red <B>[src]</B> slaps [M] across the face. Ouch!"
playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
else
@@ -763,12 +763,12 @@
playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
src.adjustFireLoss(4)
if ("scream", "screams")
if (miming)
if("scream", "screams")
if(miming)
message = "<B>[src]</B> acts out a scream!"
m_type = 1
else
if (!muzzled)
if(!muzzled)
message = "<B>[src]</B> [species.scream_verb]!"
m_type = 2
if(gender == FEMALE)
@@ -781,7 +781,7 @@
m_type = 2
if ("snap", "snaps")
if("snap", "snaps")
if(prob(95))
m_type = 2
var/mob/living/carbon/human/H = src
@@ -794,7 +794,7 @@
if(R && (!(R.status & ORGAN_DESTROYED)) && (!(R.status & ORGAN_SPLINTED)) && (!(R.status & ORGAN_BROKEN)))
right_hand_good = 1
if (!left_hand_good && !right_hand_good)
if(!left_hand_good && !right_hand_good)
to_chat(usr, "You need at least one hand in good working order to snap your fingers.")
return
@@ -829,15 +829,15 @@
// Process toxic farts first.
if(TOXIC_FARTS in mutations)
for(var/mob/M in range(location,aoe_range))
if (M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
if(M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
continue
// Now, we don't have this:
//new /obj/effects/fart_cloud(T,L)
if (M == src)
if(M == src)
continue
M.reagents.add_reagent("jenkem", 1)
if ("help")
if("help")
var/emotelist = "aflap(s), airguitar, blink(s), blink(s)_r, blush(es), bow(s)-(none)/mob, burp(s), choke(s), chuckle(s), clap(s), collapse(s), cough(s),cry, cries, custom, dap(s)(none)/mob," \
+ " deathgasp(s), drool(s), eyebrow,fart(s), faint(s), flap(s), flip(s), frown(s), gasp(s), giggle(s), glare(s)-(none)/mob, grin(s), groan(s), grumble(s), handshake-mob, hug(s)-(none)/mob," \
+ " glare(s)-(none)/mob, grin(s), johnny, laugh(s), look(s)-(none)/mob, moan(s), mumble(s), nod(s), pale(s), point(s)-atom, quiver(s), raise(s), salute(s)-(none)/mob, scream(s), shake(s)," \
+13 -13
View File
@@ -58,14 +58,14 @@
var/displayed_species = get_species()
for(var/obj/item/clothing/C in src) //Disguise checks
if (C == src.head || C == src.wear_suit || C == src.wear_mask || C == src.w_uniform || C == src.belt || C == src.back)
if(C == src.head || C == src.wear_suit || C == src.wear_mask || C == src.w_uniform || C == src.belt || C == src.back)
if(C.species_disguise)
displayed_species = C.species_disguise
if (skipjumpsuit && skipface || (displayed_species in nospecies)) //either obscured or on the nospecies list
if(skipjumpsuit && skipface || (displayed_species in nospecies)) //either obscured or on the nospecies list
msg += "!\n" //omit the species when examining
else if (displayed_species == "Slime People") //snowflakey because Slime People are defined as a plural
else if(displayed_species == "Slime People") //snowflakey because Slime People are defined as a plural
msg += ", a slime person!\n"
else if (displayed_species == "Unathi") //DAMN YOU, VOWELS
else if(displayed_species == "Unathi") //DAMN YOU, VOWELS
msg += ", a unathi!\n"
else
msg += ", \a [lowertext(displayed_species)]!\n"
@@ -157,7 +157,7 @@
msg += "<span class='warning'>[t_He] [t_is] wearing [bicon(shoes)] [shoes.gender==PLURAL?"some":"a"] [shoes.blood_color != "#030303" ? "blood-stained":"oil-stained"] [shoes.name] on [t_his] feet!</span>\n"
else
msg += "[t_He] [t_is] wearing [bicon(shoes)] \a [shoes] on [t_his] feet.\n"
else if (blood_DNA)
else if(blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] [feet_blood_color != "#030303" ? "blood-stained":"oil-stained"] feet!</span>\n"
@@ -221,7 +221,7 @@
var/distance = get_dist(user,src)
if(istype(user, /mob/dead/observer) || user.stat == 2) // ghosts can see anything
distance = 1
if (src.stat)
if(src.stat)
msg += "<span class='warning'>[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep.</span>\n"
if((stat == 2 || src.health <= config.health_threshold_crit) && distance <= 3)
msg += "<span class='warning'>[t_He] does not appear to be breathing.</span>\n"
@@ -462,9 +462,9 @@
perpname = name
if(perpname)
for (var/datum/data/record/E in data_core.general)
for(var/datum/data/record/E in data_core.general)
if(E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security)
for(var/datum/data/record/R in data_core.security)
if(R.fields["id"] == E.fields["id"])
criminal = R.fields["criminal"]
@@ -484,10 +484,10 @@
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.general)
if (R.fields["id"] == E.fields["id"])
for(var/datum/data/record/E in data_core.general)
if(E.fields["name"] == perpname)
for(var/datum/data/record/R in data_core.general)
if(R.fields["id"] == E.fields["id"])
medical = R.fields["p_stat"]
msg += "<span class = 'deptradio'>Physical status:</span> <a href='?src=\ref[src];medical=1'>\[[medical]\]</a>\n"
@@ -497,7 +497,7 @@
if(print_flavor_text()) msg += "[print_flavor_text()]\n"
msg += "*---------*</span>"
if (pose)
if(pose)
if( findtext(pose,".",lentext(pose)) == 0 && findtext(pose,"!",lentext(pose)) == 0 && findtext(pose,"?",lentext(pose)) == 0 )
pose = addtext(pose,".") //Makes sure all emotes end with a period.
msg += "\n[t_He] is [pose]"
+83 -83
View File
@@ -489,11 +489,11 @@
M.powerlevel = 0
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
if((O.client && !( O.blinded )))
O.show_message(text("\red <B>The [M.name] has shocked []!</B>", src), 1)
Weaken(power)
if (stuttering < power)
if(stuttering < power)
stuttering = power
Stun(power)
@@ -501,7 +501,7 @@
s.set_up(5, 1, src)
s.start()
if (prob(stunprob) && M.powerlevel >= 8)
if(prob(stunprob) && M.powerlevel >= 8)
adjustFireLoss(M.powerlevel * rand(6,10))
@@ -511,9 +511,9 @@
/mob/living/carbon/human/restrained()
if (handcuffed)
if(handcuffed)
return 1
if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
if(istype(wear_suit, /obj/item/clothing/suit/straight_jacket))
return 1
return 0
@@ -634,8 +634,8 @@
// Get rank from ID, ID inside PDA, PDA, ID in wallet, etc.
/mob/living/carbon/human/proc/get_authentification_rank(var/if_no_id = "No id", var/if_no_job = "No job")
var/obj/item/device/pda/pda = wear_id
if (istype(pda))
if (pda.id)
if(istype(pda))
if(pda.id)
return pda.id.rank
else
return pda.ownrank
@@ -651,16 +651,16 @@
/mob/living/carbon/human/proc/get_assignment(var/if_no_id = "No id", var/if_no_job = "No job")
var/obj/item/device/pda/pda = wear_id
var/obj/item/weapon/card/id/id = wear_id
if (istype(pda))
if (pda.id && istype(pda.id, /obj/item/weapon/card/id))
if(istype(pda))
if(pda.id && istype(pda.id, /obj/item/weapon/card/id))
. = pda.id.assignment
else
. = pda.ownjob
else if (istype(id))
else if(istype(id))
. = id.assignment
else
return if_no_id
if (!.)
if(!.)
. = if_no_job
return
@@ -669,12 +669,12 @@
/mob/living/carbon/human/proc/get_authentification_name(var/if_no_id = "Unknown")
var/obj/item/device/pda/pda = wear_id
var/obj/item/weapon/card/id/id = wear_id
if (istype(pda))
if (pda.id)
if(istype(pda))
if(pda.id)
. = pda.id.registered_name
else
. = pda.owner
else if (istype(id))
else if(istype(id))
. = id.registered_name
else
return if_no_id
@@ -715,9 +715,9 @@
/mob/living/carbon/human/proc/get_idcard()
var/obj/item/weapon/card/id/id = wear_id
var/obj/item/device/pda/pda = wear_id
if (istype(pda) && pda.id)
if(istype(pda) && pda.id)
id = pda.id
if (istype(id))
if(istype(id))
return id
//Removed the horrible safety parameter. It was only being used by ninja code anyways.
@@ -828,7 +828,7 @@
U.accessories -= A
update_inv_w_uniform()
if (href_list["criminal"])
if(href_list["criminal"])
if(hasHUD(usr,"security"))
var/modified = 0
@@ -843,10 +843,10 @@
perpname = name
if(perpname)
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security)
if (R.fields["id"] == E.fields["id"])
for(var/datum/data/record/E in data_core.general)
if(E.fields["name"] == perpname)
for(var/datum/data/record/R in data_core.security)
if(R.fields["id"] == E.fields["id"])
var/setcriminal = input(usr, "Specify a new criminal status for this person.", "Security HUD", R.fields["criminal"]) in list("None", "*Arrest*", "Incarcerated", "Parolled", "Released", "Cancel")
@@ -866,7 +866,7 @@
if(!modified)
to_chat(usr, "\red Unable to locate a data core entry for this person.")
if (href_list["secrecord"])
if(href_list["secrecord"])
if(hasHUD(usr,"security"))
var/perpname = "wot"
var/read = 0
@@ -879,10 +879,10 @@
perpname = tempPda.owner
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security)
if (R.fields["id"] == E.fields["id"])
for(var/datum/data/record/E in data_core.general)
if(E.fields["name"] == perpname)
for(var/datum/data/record/R in data_core.security)
if(R.fields["id"] == E.fields["id"])
if(hasHUD(usr,"security"))
to_chat(usr, "<b>Name:</b> [R.fields["name"]] <b>Criminal Status:</b> [R.fields["criminal"]]")
to_chat(usr, "<b>Minor Crimes:</b> [R.fields["mi_crim"]]")
@@ -896,7 +896,7 @@
if(!read)
to_chat(usr, "\red Unable to locate a data core entry for this person.")
if (href_list["secrecordComment"])
if(href_list["secrecordComment"])
if(hasHUD(usr,"security"))
var/perpname = "wot"
var/read = 0
@@ -909,24 +909,24 @@
perpname = tempPda.owner
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security)
if (R.fields["id"] == E.fields["id"])
for(var/datum/data/record/E in data_core.general)
if(E.fields["name"] == perpname)
for(var/datum/data/record/R in data_core.security)
if(R.fields["id"] == E.fields["id"])
if(hasHUD(usr,"security"))
read = 1
var/counter = 1
while(R.fields[text("com_[]", counter)])
to_chat(usr, text("[]", R.fields[text("com_[]", counter)]))
counter++
if (counter == 1)
if(counter == 1)
to_chat(usr, "No comment found")
to_chat(usr, "<a href='?src=\ref[src];secrecordadd=`'>\[Add comment\]</a>")
if(!read)
to_chat(usr, "\red Unable to locate a data core entry for this person.")
if (href_list["secrecordadd"])
if(href_list["secrecordadd"])
if(hasHUD(usr,"security"))
var/perpname = "wot"
if(wear_id)
@@ -937,13 +937,13 @@
perpname = tempPda.owner
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.security)
if (R.fields["id"] == E.fields["id"])
for(var/datum/data/record/E in data_core.general)
if(E.fields["name"] == perpname)
for(var/datum/data/record/R in data_core.security)
if(R.fields["id"] == E.fields["id"])
if(hasHUD(usr,"security"))
var/t1 = sanitize(copytext(input("Add Comment:", "Sec. records", null, null) as message,1,MAX_MESSAGE_LEN))
if ( !(t1) || usr.stat || usr.restrained() || !(hasHUD(usr,"security")) )
if( !(t1) || usr.stat || usr.restrained() || !(hasHUD(usr,"security")) )
return
var/counter = 1
while(R.fields[text("com_[]", counter)])
@@ -958,7 +958,7 @@
var/mob/living/silicon/ai/U = usr
R.fields[text("com_[counter]")] = text("Made by [U.name] (artificial intelligence) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [game_year]<BR>[t1]")
if (href_list["medical"])
if(href_list["medical"])
if(hasHUD(usr,"medical"))
var/perpname = "wot"
var/modified = 0
@@ -972,10 +972,10 @@
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.general)
if (R.fields["id"] == E.fields["id"])
for(var/datum/data/record/E in data_core.general)
if(E.fields["name"] == perpname)
for(var/datum/data/record/R in data_core.general)
if(R.fields["id"] == E.fields["id"])
var/setmedical = input(usr, "Specify a new medical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("*SSD*", "*Deceased*", "Physically Unfit", "Active", "Disabled", "Cancel")
if(hasHUD(usr,"medical"))
@@ -996,7 +996,7 @@
if(!modified)
to_chat(usr, "\red Unable to locate a data core entry for this person.")
if (href_list["medrecord"])
if(href_list["medrecord"])
if(hasHUD(usr,"medical"))
var/perpname = "wot"
var/read = 0
@@ -1009,10 +1009,10 @@
perpname = tempPda.owner
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.medical)
if (R.fields["id"] == E.fields["id"])
for(var/datum/data/record/E in data_core.general)
if(E.fields["name"] == perpname)
for(var/datum/data/record/R in data_core.medical)
if(R.fields["id"] == E.fields["id"])
if(hasHUD(usr,"medical"))
to_chat(usr, "<b>Name:</b> [R.fields["name"]] <b>Blood Type:</b> [R.fields["b_type"]]")
to_chat(usr, "<b>DNA:</b> [R.fields["b_dna"]]")
@@ -1027,7 +1027,7 @@
if(!read)
to_chat(usr, "\red Unable to locate a data core entry for this person.")
if (href_list["medrecordComment"])
if(href_list["medrecordComment"])
if(hasHUD(usr,"medical"))
var/perpname = "wot"
var/read = 0
@@ -1040,24 +1040,24 @@
perpname = tempPda.owner
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.medical)
if (R.fields["id"] == E.fields["id"])
for(var/datum/data/record/E in data_core.general)
if(E.fields["name"] == perpname)
for(var/datum/data/record/R in data_core.medical)
if(R.fields["id"] == E.fields["id"])
if(hasHUD(usr,"medical"))
read = 1
var/counter = 1
while(R.fields[text("com_[]", counter)])
to_chat(usr, text("[]", R.fields[text("com_[]", counter)]))
counter++
if (counter == 1)
if(counter == 1)
to_chat(usr, "No comment found")
to_chat(usr, "<a href='?src=\ref[src];medrecordadd=`'>\[Add comment\]</a>")
if(!read)
to_chat(usr, "\red Unable to locate a data core entry for this person.")
if (href_list["medrecordadd"])
if(href_list["medrecordadd"])
if(hasHUD(usr,"medical"))
var/perpname = "wot"
if(wear_id)
@@ -1068,13 +1068,13 @@
perpname = tempPda.owner
else
perpname = src.name
for (var/datum/data/record/E in data_core.general)
if (E.fields["name"] == perpname)
for (var/datum/data/record/R in data_core.medical)
if (R.fields["id"] == E.fields["id"])
for(var/datum/data/record/E in data_core.general)
if(E.fields["name"] == perpname)
for(var/datum/data/record/R in data_core.medical)
if(R.fields["id"] == E.fields["id"])
if(hasHUD(usr,"medical"))
var/t1 = sanitize(copytext(input("Add Comment:", "Med. records", null, null) as message,1,MAX_MESSAGE_LEN))
if ( !(t1) || usr.stat || usr.restrained() || !(hasHUD(usr,"medical")) )
if( !(t1) || usr.stat || usr.restrained() || !(hasHUD(usr,"medical")) )
return
var/counter = 1
while(R.fields[text("com_[]", counter)])
@@ -1086,11 +1086,11 @@
var/mob/living/silicon/robot/U = usr
R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.modtype] [U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [game_year]<BR>[t1]")
if (href_list["lookitem"])
if(href_list["lookitem"])
var/obj/item/I = locate(href_list["lookitem"])
src.examinate(I)
if (href_list["lookmob"])
if(href_list["lookmob"])
var/mob/M = locate(href_list["lookmob"])
src.examinate(M)
. = ..()
@@ -1195,7 +1195,7 @@
if(!affecting)
. = 0
fail_msg = "They are missing that limb."
else if (affecting.status & ORGAN_ROBOT)
else if(affecting.status & ORGAN_ROBOT)
. = 0
fail_msg = "That limb is robotic."
else
@@ -1324,7 +1324,7 @@
mutations.Remove(HUSK)
if(!client || !key) //Don't boot out anyone already in the mob.
for (var/obj/item/organ/internal/brain/H in world)
for(var/obj/item/organ/internal/brain/H in world)
if(H.brainmob)
if(H.brainmob.real_name == src.real_name)
if(H.brainmob.mind)
@@ -1359,30 +1359,30 @@
var/germs = 0
var/tdamage = 0
var/ticks = 0
while (germs < 2501 && ticks < 100000 && round(damage/10)*20)
while(germs < 2501 && ticks < 100000 && round(damage/10)*20)
diary << "VIRUS TESTING: [ticks] : germs [germs] tdamage [tdamage] prob [round(damage/10)*20]"
ticks++
if (prob(round(damage/10)*20))
if(prob(round(damage/10)*20))
germs++
if (germs == 100)
if(germs == 100)
to_chat(world, "Reached stage 1 in [ticks] ticks")
if (germs > 100)
if (prob(10))
if(germs > 100)
if(prob(10))
damage++
germs++
if (germs == 1000)
if(germs == 1000)
to_chat(world, "Reached stage 2 in [ticks] ticks")
if (germs > 1000)
if(germs > 1000)
damage++
germs++
if (germs == 2500)
if(germs == 2500)
to_chat(world, "Reached stage 3 in [ticks] ticks")
to_chat(world, "Mob took [tdamage] tox damage")
*/
//returns 1 if made bloody, returns 0 otherwise
/mob/living/carbon/human/add_blood(mob/living/carbon/human/M as mob)
if (!..())
if(!..())
return 0
//if this blood isn't already in the list, add it
if(blood_DNA[M.dna.unique_enzymes])
@@ -1620,32 +1620,32 @@
set name = "Write in blood"
set desc = "Use blood on your hands to write a short message on the floor or a wall, murder mystery style."
if (usr != src)
if(usr != src)
return 0 //something is terribly wrong
if (!bloody_hands)
if(!bloody_hands)
verbs -= /mob/living/carbon/human/proc/bloody_doodle
if (src.gloves)
if(src.gloves)
to_chat(src, "<span class='warning'>Your [src.gloves] are getting in the way.</span>")
return
var/turf/simulated/T = src.loc
if (!istype(T)) //to prevent doodling out of mechs and lockers
if(!istype(T)) //to prevent doodling out of mechs and lockers
to_chat(src, "<span class='warning'>You cannot reach the floor.</span>")
return
var/direction = input(src,"Which way?","Tile selection") as anything in list("Here","North","South","East","West")
if (direction != "Here")
if(direction != "Here")
T = get_step(T,text2dir(direction))
if (!istype(T))
if(!istype(T))
to_chat(src, "<span class='warning'>You cannot doodle there.</span>")
return
var/num_doodles = 0
for (var/obj/effect/decal/cleanable/blood/writing/W in T)
for(var/obj/effect/decal/cleanable/blood/writing/W in T)
num_doodles++
if (num_doodles > 4)
if(num_doodles > 4)
to_chat(src, "<span class='warning'>There is no space to write on!</span>")
return
@@ -1653,11 +1653,11 @@
var/message = stripped_input(src,"Write a message. It cannot be longer than [max_length] characters.","Blood writing", "")
if (message)
if(message)
var/used_blood_amount = round(length(message) / 30, 1)
bloody_hands = max(0, bloody_hands - used_blood_amount) //use up some blood
if (length(message) > max_length)
if(length(message) > max_length)
message += "-"
to_chat(src, "<span class='warning'>You ran out of blood to write with!</span>")
@@ -1,5 +1,5 @@
/mob/living/carbon/human/attack_hand(mob/living/carbon/human/M as mob)
if (istype(loc, /turf) && istype(loc.loc, /area/start))
if(istype(loc, /turf) && istype(loc.loc, /area/start))
to_chat(M, "No attacking people at spawn, you jackass.")
return
@@ -10,7 +10,7 @@
var/mob/living/carbon/human/H = M
if(istype(H))
var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
if (H.hand)
if(H.hand)
temp = H.organs_by_name["l_hand"]
if(!temp || !temp.is_usable())
to_chat(H, "\red You can't use your hand.")
@@ -185,7 +185,7 @@
w_uniform.add_fingerprint(M)
var/obj/item/organ/external/affecting = get_organ(ran_zone(M.zone_sel.selecting))
var/randn = rand(1, 100)
if (randn <= 25)
if(randn <= 25)
apply_effect(2, WEAKEN, run_armor_check(affecting, "melee"))
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
visible_message("\red <B>[M] has pushed [src]!</B>")
@@ -103,7 +103,7 @@
if(species && species.brute_mod)
amount = amount*species.brute_mod
if (organ_name in organs_by_name)
if(organ_name in organs_by_name)
var/obj/item/organ/external/O = get_organ(organ_name)
if(amount > 0)
@@ -117,7 +117,7 @@
if(species && species.burn_mod)
amount = amount*species.burn_mod
if (organ_name in organs_by_name)
if(organ_name in organs_by_name)
var/obj/item/organ/external/O = get_organ(organ_name)
if(amount > 0)
@@ -383,7 +383,7 @@ This function restores all organs.
var/list/attack_bubble_recipients = list()
var/mob/living/user
for(var/mob/O in viewers(user, src))
if (O.client && !(O.blinded))
if(O.client && !(O.blinded))
attack_bubble_recipients.Add(O.client)
spawn(0)
var/image/dmgIcon = image('icons/effects/hit_blips.dmi', src, "dmg[rand(1,2)]",MOB_LAYER+1)
@@ -41,7 +41,7 @@ emp_act
return
//Shrapnel
if (P.damage_type == BRUTE)
if(P.damage_type == BRUTE)
var/armor = getarmor_organ(organ, "bullet")
if((P.embed && prob(20 + max(P.damage - armor, -10))))
var/obj/item/weapon/shard/shrapnel/SP = new()
@@ -91,7 +91,7 @@ emp_act
//this proc returns the Siemens coefficient of electrical resistivity for a particular external organ.
/mob/living/carbon/human/proc/get_siemens_coefficient_organ(var/obj/item/organ/external/def_zone)
if (!def_zone)
if(!def_zone)
return 1.0
var/siemens_coefficient = 1.0
@@ -236,7 +236,7 @@ emp_act
var/armor = run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened hit to your [hit_area].", armour_penetration = I.armour_penetration)
var/weapon_sharp = is_sharp(I)
var/weapon_edge = has_edge(I)
if ((weapon_sharp || weapon_edge) && prob(getarmor(user.zone_sel.selecting, "melee")))
if((weapon_sharp || weapon_edge) && prob(getarmor(user.zone_sel.selecting, "melee")))
weapon_sharp = 0
weapon_edge = 0
@@ -299,9 +299,9 @@ emp_act
forcesay(hit_appends) //forcesay checks stat already
/* //Melee weapon embedded object code. Commented out, as most people on the forums seem to find this annoying and think it does not contribute to general gameplay. - Dave
if (I.damtype == BRUTE && !I.is_robot_module())
if(I.damtype == BRUTE && !I.is_robot_module())
var/damage = I.force
if (armor)
if(armor)
damage /= armor+1
//blunt objects should really not be embedding in things unless a huge amount of force is involved
@@ -340,7 +340,7 @@ emp_act
*/
O.throwing = 0 //it hit, so stop moving
if ((O.thrower != src) && check_shields(throw_damage, "[O]"))
if((O.thrower != src) && check_shields(throw_damage, "[O]"))
return
var/obj/item/organ/external/affecting = get_organ(zone)
@@ -368,10 +368,10 @@ emp_act
//thrown weapon embedded object code.
if(dtype == BRUTE && istype(O,/obj/item))
var/obj/item/I = O
if (!I.is_robot_module())
if(!I.is_robot_module())
var/sharp = is_sharp(I)
var/damage = throw_damage
if (armor)
if(armor)
damage /= armor+1
//blunt objects should really not be embedding in things unless a huge amount of force is involved
@@ -406,7 +406,7 @@ emp_act
/mob/living/carbon/human/proc/bloody_hands(var/mob/living/source, var/amount = 2)
if (gloves)
if(gloves)
gloves.add_blood(source)
gloves:transfer_blood = amount
gloves:bloody_hands_mob = source
@@ -24,7 +24,7 @@
tally += (health_deficiency / 25)
var/hungry = (500 - nutrition)/5 // So overeat would be 100 and default level would be 80
if (hungry >= 70)
if(hungry >= 70)
tally += hungry/50
if(wear_suit)
@@ -46,7 +46,7 @@
if(FAT in src.mutations)
tally += 1.5
if (bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT)
if(bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT)
tally += (BODYTEMP_COLD_DAMAGE_LIMIT - bodytemperature) / COLD_SLOWDOWN_FACTOR
tally += 2*stance_damage //damaged/missing feet or legs is slow
@@ -42,45 +42,45 @@
E.process()
number_wounds += E.number_wounds
if (!lying && world.time - l_move_time < 15)
if(!lying && world.time - l_move_time < 15)
//Moving around with fractured ribs won't do you any good
if (E.is_broken() && E.internal_organs && E.internal_organs.len && prob(15))
if(E.is_broken() && E.internal_organs && E.internal_organs.len && prob(15))
var/obj/item/organ/internal/I = pick(E.internal_organs)
custom_pain("You feel broken bones moving in your [E.name]!", 1)
I.take_damage(rand(3,5))
//Moving makes open wounds get infected much faster
if (E.wounds.len)
if(E.wounds.len)
for(var/datum/wound/W in E.wounds)
if (W.infection_check())
if(W.infection_check())
W.germ_level += 1
/mob/living/carbon/human/proc/handle_stance()
// Don't need to process any of this if they aren't standing anyways
// unless their stance is damaged, and we want to check if they should stay down
if (!stance_damage && (lying || resting) && (life_tick % 4) == 0)
if(!stance_damage && (lying || resting) && (life_tick % 4) == 0)
return
stance_damage = 0
// Buckled to a bed/chair. Stance damage is forced to 0 since they're sitting on something solid
if (istype(buckled, /obj/structure/stool/bed))
if(istype(buckled, /obj/structure/stool/bed))
return
for(var/limb_tag in list("l_leg","r_leg","l_foot","r_foot"))
var/obj/item/organ/external/E = organs_by_name[limb_tag]
if(!E || (E.status & (ORGAN_DESTROYED|ORGAN_DEAD)) || E.is_malfunctioning())
stance_damage += 2 // let it fail even if just foot&leg. Also malfunctioning happens sporadically so it should impact more when it procs
else if (E.is_broken() || !E.is_usable())
else if(E.is_broken() || !E.is_usable())
stance_damage += 1
// Canes and crutches help you stand (if the latter is ever added)
// One cane mitigates a broken leg+foot, or a missing foot.
// Two canes are needed for a lost leg. If you are missing both legs, canes aren't gonna help you.
if (l_hand && istype(l_hand, /obj/item/weapon/cane))
if(l_hand && istype(l_hand, /obj/item/weapon/cane))
stance_damage -= 2
if (r_hand && istype(r_hand, /obj/item/weapon/cane))
if(r_hand && istype(r_hand, /obj/item/weapon/cane))
stance_damage -= 2
if(stance_damage < 0)
@@ -100,7 +100,7 @@
if(!l_hand && !r_hand)
return
for (var/obj/item/organ/external/E in organs)
for(var/obj/item/organ/external/E in organs)
if(!E || !E.can_grasp || (E.status & ORGAN_SPLINTED))
continue
@@ -163,7 +163,7 @@ I use this to standardize shadowling dethrall code
-- Crazylemon
*/
/mob/living/carbon/human/proc/named_organ_parent(var/organ_name)
if (!get_int_organ(organ_name))
if(!get_int_organ(organ_name))
return null
var/obj/item/organ/internal/O = get_int_organ(organ_name)
return O.parent_organ
@@ -460,7 +460,7 @@
var/global/list/available_recipes
if(!available_recipes)
available_recipes = list()
for (var/type in subtypesof(/datum/recipe))
for(var/type in subtypesof(/datum/recipe))
var/datum/recipe/recipe = new type
if(recipe.result) // Ignore recipe subtypes that lack a result
available_recipes += recipe
@@ -39,10 +39,10 @@
/mob/living/carbon/human/proc/equip_in_one_of_slots(obj/item/W, list/slots, del_on_fail = 1)
for (var/slot in slots)
if (equip_to_slot_if_possible(W, slots[slot], del_on_fail = 0))
for(var/slot in slots)
if(equip_to_slot_if_possible(W, slots[slot], del_on_fail = 0))
return slot
if (del_on_fail)
if(del_on_fail)
qdel(W)
return null
@@ -150,7 +150,7 @@
else if(I == r_ear)
r_ear = null
update_inv_ears()
else if (I == l_ear)
else if(I == l_ear)
l_ear = null
update_inv_ears()
else if(I == shoes)
+24 -24
View File
@@ -78,8 +78,8 @@
/mob/living/carbon/human/handle_disabilities()
if (disabilities & EPILEPSY)
if ((prob(1) && paralysis < 1))
if(disabilities & EPILEPSY)
if((prob(1) && paralysis < 1))
visible_message("<span class='danger'>[src] starts having a seizure!</span>","<span class='alert'>You have a seizure!</span>")
Paralyse(10)
Jitter(1000)
@@ -89,13 +89,13 @@
if(prob(1) && hallucination < 1)
hallucination += 20
if (disabilities & COUGHING)
if ((prob(5) && paralysis <= 1))
if(disabilities & COUGHING)
if((prob(5) && paralysis <= 1))
drop_item()
emote("cough")
if (disabilities & TOURETTES)
if(disabilities & TOURETTES)
speech_problem_flag = 1
if ((prob(10) && paralysis <= 1))
if((prob(10) && paralysis <= 1))
Stun(10)
switch(rand(1, 3))
if(1)
@@ -108,12 +108,12 @@
animate(src, pixel_x = pixel_x + x_offset, pixel_y = pixel_y + y_offset, time = 1)
animate(pixel_x = initial(pixel_x) , pixel_y = initial(pixel_y), time = 1)
if (disabilities & NERVOUS)
if(disabilities & NERVOUS)
speech_problem_flag = 1
if (prob(10))
if(prob(10))
stuttering = max(10, stuttering)
if (getBrainLoss() >= 60 && stat != 2)
if(getBrainLoss() >= 60 && stat != 2)
speech_problem_flag = 1
if(prob(3))
var/list/s1 = list("IM A PONY NEEEEEEIIIIIIIIIGH",
@@ -195,7 +195,7 @@
gib()
if(!(species.flags & RADIMMUNE))
if (radiation)
if(radiation)
if(get_int_organ(/obj/item/organ/internal/nucleation/resonant_crystal))
var/rads = radiation/25
@@ -206,14 +206,14 @@
to_chat(src, "<span class='notice'>You feel relaxed.</span>")
return
if (radiation > 100)
if(radiation > 100)
radiation = 100
Weaken(10)
if(!lying)
to_chat(src, "<span class='alert'>You feel weak.</span>")
emote("collapse")
if (radiation < 0)
if(radiation < 0)
radiation = 0
else
@@ -708,10 +708,10 @@
update_inv_wear_suit()
// nutrition decrease
if (nutrition > 0 && stat != 2)
if(nutrition > 0 && stat != 2)
nutrition = max (0, nutrition - HUNGER_FACTOR)
if (nutrition > 450)
if(nutrition > 450)
if(overeatduration < 800) //capped so people don't take forever to unfat
overeatduration++
@@ -722,10 +722,10 @@
else
overeatduration -= 2
if (drowsyness)
if(drowsyness)
drowsyness--
eye_blurry = max(2, eye_blurry)
if (prob(5))
if(prob(5))
sleeping += 1
Paralyse(5)
@@ -771,7 +771,7 @@
alcohol_strength *= 5
if(alcohol_strength >= slur_start) //slurring
if (!slurring) slurring = 1
if(!slurring) slurring = 1
slurring = drunk
if(alcohol_strength >= brawl_start) //the drunken martial art
if(!istype(martial_art, /datum/martial_art/drunk_brawling))
@@ -781,7 +781,7 @@
if(istype(martial_art, /datum/martial_art/drunk_brawling))
martial_art.remove(src)
if(alcohol_strength >= confused_start && prob(33)) //confused walking
if (!confused) confused = 1
if(!confused) confused = 1
confused = max(confused+(3/sober_str),0)
if(alcohol_strength >= blur_start) //blurry eyes
eye_blurry = max(eye_blurry, 10/sober_str)
@@ -793,7 +793,7 @@
if(alcohol_strength >= pass_out)
Paralyse(5 / sober_str)
drowsyness = max(drowsyness, 30/sober_str)
if (L)
if(L)
L.take_damage(0.1, 1)
adjustToxLoss(0.1)
else //stuff only for synthetics
@@ -966,7 +966,7 @@
/mob/living/carbon/human/handle_random_events()
// Puke if toxloss is too high
if(!stat)
if (getToxLoss() >= 45 && nutrition > 20)
if(getToxLoss() >= 45 && nutrition > 20)
lastpuke ++
if(lastpuke >= 25) // about 25 second delay I guess
Stun(5)
@@ -976,7 +976,7 @@
playsound(loc, 'sound/effects/splat.ogg', 50, 1)
var/turf/location = loc
if (istype(location, /turf/simulated))
if(istype(location, /turf/simulated))
location.add_vomit_floor(src, 1)
nutrition -= 20
@@ -1031,17 +1031,17 @@
if(shock_stage >=60)
if(shock_stage == 60) custom_emote(1,"falls limp.")
if (prob(2))
if(prob(2))
to_chat(src, "<font color='red'><b>"+pick("The pain is excrutiating!", "Please, just end the pain!", "Your whole body is going numb!"))
Weaken(20)
if(shock_stage >= 80)
if (prob(5))
if(prob(5))
to_chat(src, "<font color='red'><b>"+pick("The pain is excrutiating!", "Please, just end the pain!", "Your whole body is going numb!"))
Weaken(20)
if(shock_stage >= 120)
if (prob(2))
if(prob(2))
to_chat(src, "<font color='red'><b>"+pick("You black out!", "You feel like you could die any moment now.", "You're about to lose consciousness."))
Paralyse(5)
+7 -7
View File
@@ -47,21 +47,21 @@
return 1
//These only pertain to common. Languages are handled by mob/say_understands()
if (!speaking)
if (istype(other, /mob/living/simple_animal/diona))
if(!speaking)
if(istype(other, /mob/living/simple_animal/diona))
if(other.languages.len >= 2) //They've sucked down some blood and can speak common now.
return 1
if (istype(other, /mob/living/silicon))
if(istype(other, /mob/living/silicon))
return 1
if (istype(other, /mob/living/simple_animal/bot))
if(istype(other, /mob/living/simple_animal/bot))
return 1
if (istype(other, /mob/living/carbon/brain))
if(istype(other, /mob/living/carbon/brain))
return 1
if (istype(other, /mob/living/carbon/slime))
if(istype(other, /mob/living/carbon/slime))
return 1
//This is already covered by mob/say_understands()
//if (istype(other, /mob/living/simple_animal))
//if(istype(other, /mob/living/simple_animal))
// if((other.universal_speak && !speaking) || src.universal_speak || src.universal_understand)
// return 1
// return 0
@@ -125,7 +125,7 @@
H.equip_or_collect(new/obj/item/weapon/tank/plasma/plasmaman(H), tank_slot) // Bigger plasma tank from Raggy.
to_chat(H, "<span class='notice'>You are now running on plasma internals from the [H.s_store] in your [tank_slot_name]. You must breathe plasma in order to survive, and are extremely flammable.</span>")
H.internal = H.get_item_by_slot(tank_slot)
if (H.internals)
if(H.internals)
H.internals.icon_state = "internal1"
// Plasmamen are so fucking different that they need their own proc.
@@ -33,5 +33,5 @@
if(light_amount > 2) //if there's enough light, start dying
H.take_overall_damage(1,1)
else if (light_amount < 2) //heal in the dark
else if(light_amount < 2) //heal in the dark
H.heal_overall_damage(1,1)
@@ -393,7 +393,7 @@
return
/datum/species/proc/remove_abilities(var/mob/living/carbon/human/H)
for (var/proc/ability in species_abilities)
for(var/proc/ability in species_abilities)
H.verbs -= ability
return
@@ -364,7 +364,7 @@
H.equip_or_collect(new /obj/item/weapon/tank/emergency_oxygen/vox(H), slot_l_hand)
to_chat(H, "<span class='notice'>You are now running on nitrogen internals from the [H.l_hand] in your hand. Your species finds oxygen toxic, so you must breathe nitrogen only.</span>")
H.internal = H.l_hand
if (H.internals)
if(H.internals)
H.internals.icon_state = "internal1"
/datum/species/vox/handle_post_spawn(var/mob/living/carbon/human/H)
@@ -637,10 +637,10 @@ var/global/list/damage_icon_parts = list()
for( var/obj/item/thing in list(r_store, l_store, wear_id, wear_pda, belt) ) //
if(thing) //
unEquip(thing) //
if (client) //
if(client) //
client.screen -= thing //
//
if (thing) //
if(thing) //
thing.loc = loc //
thing.dropped(src) //
thing.layer = initial(thing.layer)
@@ -1290,7 +1290,7 @@ var/global/list/damage_icon_parts = list()
/mob/living/carbon/human/proc/generate_head_icon()
//gender no longer matters for the mouth, although there should probably be seperate base head icons.
// var/g = "m"
// if (gender == FEMALE) g = "f"
// if(gender == FEMALE) g = "f"
var/obj/item/organ/external/head/H = get_organ("head")
//base icons
var/icon/face_lying = new /icon('icons/mob/human_face.dmi',"bald_l")
+1 -1
View File
@@ -448,7 +448,7 @@
/mob/living/carbon/handle_hud_icons_health()
if(healths)
if (stat != DEAD)
if(stat != DEAD)
switch(health)
if(100 to INFINITY)
healths.icon_state = "health0"
+1 -1
View File
@@ -23,7 +23,7 @@
if(istype(src,/mob/living/carbon/human))
var/mob/living/carbon/human/M = src
for(var/obj/item/organ/external/organ in M.organs)
if (!organ)
if(!organ)
continue
else if(organ.status & ORGAN_BROKEN || organ.open)
src.traumatic_shock += 15
+10 -10
View File
@@ -1,5 +1,5 @@
/mob/living/carbon/slime/emote(var/act, var/m_type=1, var/message = null)
if (findtext(act, "-", 1, null))
if(findtext(act, "-", 1, null))
var/t1 = findtext(act, "-", 1, null)
//param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
@@ -9,16 +9,16 @@
act = lowertext(act)
switch(act) //Alphabetical please
if ("me")
if("me")
if(silent)
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
if(src.client)
if(client.prefs.muted & MUTE_IC)
to_chat(src, "\red You cannot send IC messages (muted).")
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
if(src.client.handle_spam_prevention(message,MUTE_IC))
return
if (stat)
if(stat)
return
if(!(message))
return
@@ -27,7 +27,7 @@
message = "<B>The [src.name]</B> bounces in place."
m_type = 1
if ("custom")
if("custom")
return custom_emote(m_type, message)
if("jiggle")
@@ -58,13 +58,13 @@
message = "<B>The [src.name]</B> vibrates!"
m_type = 1
if ("help") //This is an exception
if("help") //This is an exception
to_chat(src, "Help for slime emotes. You can use these emotes with say \"*emote\":\n\nbounce, custom, jiggle, light, moan, shiver, sway, twitch, vibrate")
else
to_chat(src, "\blue Unusable emote '[act]'. Say *help for a list.")
if ((message && src.stat == 0))
if (m_type & 1)
if((message && src.stat == 0))
if(m_type & 1)
for(var/mob/O in viewers(src, null))
O.show_message(message, m_type)
//Foreach goto(703)
@@ -2,12 +2,12 @@
to_chat(user, "<span class='info'>*---------*</span>")
..(user)
var/msg = "<span class='info'>"
if (src.stat == DEAD)
if(src.stat == DEAD)
msg += "<span class='deadsay'>It is limp and unresponsive.</span>\n"
else
if (src.getBruteLoss())
if(src.getBruteLoss())
msg += "<span class='warning'>"
if (src.getBruteLoss() < 40)
if(src.getBruteLoss() < 40)
msg += "It has some punctures in its flesh!"
else
msg += "<B>It has severe punctures and tears in its flesh!</B>"
+93 -93
View File
@@ -9,7 +9,7 @@
if(..())
handle_nutrition()
handle_targets()
if (!ckey)
if(!ckey)
handle_speech_and_mood()
/mob/living/carbon/slime/proc/AIprocess() // the master AI process
@@ -17,9 +17,9 @@
if(AIproc || stat == DEAD || client) return
var/hungry = 0
if (nutrition < get_starve_nutrition())
if(nutrition < get_starve_nutrition())
hungry = 2
else if (nutrition < get_grow_nutrition() && prob(25) || nutrition < get_hunger_nutrition())
else if(nutrition < get_grow_nutrition() && prob(25) || nutrition < get_hunger_nutrition())
hungry = 1
AIproc = 1
@@ -183,19 +183,19 @@
adjustCloneLoss(-1)
adjustBruteLoss(-1)
if (src.stat == DEAD)
if(src.stat == DEAD)
src.lying = 1
src.blinded = 1
else
if (src.paralysis || src.stunned || src.weakened || (status_flags && FAKEDEATH)) //Stunned etc.
if (src.stunned > 0)
if(src.paralysis || src.stunned || src.weakened || (status_flags && FAKEDEATH)) //Stunned etc.
if(src.stunned > 0)
AdjustStunned(-1)
src.stat = 0
if (src.weakened > 0)
if(src.weakened > 0)
AdjustWeakened(-1)
src.lying = 0
src.stat = 0
if (src.paralysis > 0)
if(src.paralysis > 0)
AdjustParalysis(-1)
src.blinded = 0
src.lying = 0
@@ -205,34 +205,34 @@
src.lying = 0
src.stat = 0
if (src.stuttering) src.stuttering = 0
if(src.stuttering) src.stuttering = 0
if (src.eye_blind)
if(src.eye_blind)
src.eye_blind = 0
src.blinded = 1
if (src.ear_deaf > 0) src.ear_deaf = 0
if (src.ear_damage < 25)
if(src.ear_deaf > 0) src.ear_deaf = 0
if(src.ear_damage < 25)
src.ear_damage = 0
src.density = !( src.lying )
if (src.sdisabilities & BLIND)
if(src.sdisabilities & BLIND)
src.blinded = 1
if (src.sdisabilities & DEAF)
if(src.sdisabilities & DEAF)
src.ear_deaf = 1
if (src.eye_blurry > 0)
if(src.eye_blurry > 0)
src.eye_blurry = 0
if (src.druggy > 0)
if(src.druggy > 0)
src.druggy = 0
return 1
/mob/living/carbon/slime/proc/handle_nutrition()
if (prob(15))
if(prob(15))
nutrition -= 1 + is_adult
if(nutrition <= 0)
@@ -240,7 +240,7 @@
if(prob(75))
adjustToxLoss(rand(0,5))
else if (nutrition >= get_grow_nutrition() && amount_grown < 10)
else if(nutrition >= get_grow_nutrition() && amount_grown < 10)
nutrition -= 20
amount_grown++
@@ -278,7 +278,7 @@
if(Target)
--target_patience
if (target_patience <= 0 || SStun || Discipline || attacked) // Tired of chasing or something draws out attention
if(target_patience <= 0 || SStun || Discipline || attacked) // Tired of chasing or something draws out attention
target_patience = 0
Target = null
@@ -286,9 +286,9 @@
var/hungry = 0 // determines if the slime is hungry
if (nutrition < get_starve_nutrition())
if(nutrition < get_starve_nutrition())
hungry = 2
else if (nutrition < get_grow_nutrition() && prob(25) || nutrition < get_hunger_nutrition())
else if(nutrition < get_grow_nutrition() && prob(25) || nutrition < get_hunger_nutrition())
hungry = 1
if(hungry == 2 && !client) // if a slime is starving, it starts losing its friends
@@ -340,26 +340,26 @@
Target = C
break
if (Target)
if(Target)
target_patience = rand(5,7)
if (is_adult)
if(is_adult)
target_patience += 3
if(!Target) // If we have no target, we are wandering or following orders
if (Leader)
if (holding_still)
if(Leader)
if(holding_still)
holding_still = max(holding_still - 1, 0)
else if(canmove && isturf(loc))
step_to(src, Leader)
else if(hungry)
if (holding_still)
if(holding_still)
holding_still = max(holding_still - hungry, 0)
else if(canmove && isturf(loc) && prob(50))
step(src, pick(cardinal))
else
if (holding_still)
if(holding_still)
holding_still = max(holding_still - 1, 0)
else if(canmove && isturf(loc) && prob(33))
step(src, pick(cardinal))
@@ -370,85 +370,85 @@
/mob/living/carbon/slime/proc/handle_speech_and_mood()
//Mood starts here
var/newmood = ""
if (rabid || attacked) newmood = "angry"
else if (Target) newmood = "mischevous"
if(rabid || attacked) newmood = "angry"
else if(Target) newmood = "mischevous"
if (!newmood)
if (Discipline && prob(25))
if(!newmood)
if(Discipline && prob(25))
newmood = "pout"
else if (prob(1))
else if(prob(1))
newmood = pick("sad", ":3", "pout")
if ((mood == "sad" || mood == ":3" || mood == "pout") && !newmood)
if (prob(75)) newmood = mood
if((mood == "sad" || mood == ":3" || mood == "pout") && !newmood)
if(prob(75)) newmood = mood
if (newmood != mood) // This is so we don't redraw them every time
if(newmood != mood) // This is so we don't redraw them every time
mood = newmood
regenerate_icons()
//Speech understanding starts here
var/to_say
if (speech_buffer.len > 0)
if(speech_buffer.len > 0)
var/who = speech_buffer[1] // Who said it?
var/phrase = speech_buffer[2] // What did they say?
if ((findtext(phrase, num2text(number)) || findtext(phrase, "slimes"))) // Talking to us
if (findtext(phrase, "hello") || findtext(phrase, "hi"))
if((findtext(phrase, num2text(number)) || findtext(phrase, "slimes"))) // Talking to us
if(findtext(phrase, "hello") || findtext(phrase, "hi"))
to_say = pick("Hello...", "Hi...")
else if (findtext(phrase, "follow"))
if (Leader)
if (Leader == who) // Already following him
else if(findtext(phrase, "follow"))
if(Leader)
if(Leader == who) // Already following him
to_say = pick("Yes...", "Lead...", "Following...")
else if (Friends[who] > Friends[Leader]) // VIVA
else if(Friends[who] > Friends[Leader]) // VIVA
Leader = who
to_say = "Yes... I follow [who]..."
else
to_say = "No... I follow [Leader]..."
else
if (Friends[who] > 2)
if(Friends[who] > 2)
Leader = who
to_say = "I follow..."
else // Not friendly enough
to_say = pick("No...", "I won't follow...")
else if (findtext(phrase, "stop"))
if (Victim) // We are asked to stop feeding
if (Friends[who] > 4)
else if(findtext(phrase, "stop"))
if(Victim) // We are asked to stop feeding
if(Friends[who] > 4)
Victim = null
Target = null
if (Friends[who] < 7)
if(Friends[who] < 7)
--Friends[who]
to_say = "Grrr..." // I'm angry but I do it
else
to_say = "Fine..."
else if (Target) // We are asked to stop chasing
if (Friends[who] > 3)
else if(Target) // We are asked to stop chasing
if(Friends[who] > 3)
Target = null
if (Friends[who] < 6)
if(Friends[who] < 6)
--Friends[who]
to_say = "Grrr..." // I'm angry but I do it
else
to_say = "Fine..."
else if (Leader) // We are asked to stop following
if (Leader == who)
else if(Leader) // We are asked to stop following
if(Leader == who)
to_say = "Yes... I'll stay..."
Leader = null
else
if (Friends[who] > Friends[Leader])
if(Friends[who] > Friends[Leader])
Leader = null
to_say = "Yes... I'll stop..."
else
to_say = "No... I'll keep following..."
else if (findtext(phrase, "stay"))
if (Leader)
if (Leader == who)
else if(findtext(phrase, "stay"))
if(Leader)
if(Leader == who)
holding_still = Friends[who] * 10
to_say = "Yes... Staying..."
else if (Friends[who] > Friends[Leader])
else if(Friends[who] > Friends[Leader])
holding_still = (Friends[who] - Friends[Leader]) * 10
to_say = "Yes... Staying..."
else
to_say = "No... I'll keep following..."
else
if (Friends[who] > 2)
if(Friends[who] > 2)
holding_still = Friends[who] * 10
to_say = "Yes... Staying..."
else
@@ -456,7 +456,7 @@
speech_buffer = list()
//Speech starts here
if (to_say)
if(to_say)
say (to_say)
else if(prob(1))
emote(pick("bounce","sway","light","vibrate","jiggle"))
@@ -465,83 +465,83 @@
var/slimes_near = -1 // Don't count myself
var/dead_slimes = 0
var/friends_near = list()
for (var/mob/living/carbon/M in view(7,src))
if (isslime(M))
for(var/mob/living/carbon/M in view(7,src))
if(isslime(M))
++slimes_near
if (M.stat == DEAD)
if(M.stat == DEAD)
++dead_slimes
if (M in Friends)
if(M in Friends)
t += 20
friends_near += M
if (nutrition < get_hunger_nutrition()) t += 10
if (nutrition < get_starve_nutrition()) t += 10
if (prob(2) && prob(t))
if(nutrition < get_hunger_nutrition()) t += 10
if(nutrition < get_starve_nutrition()) t += 10
if(prob(2) && prob(t))
var/phrases = list()
if (Target) phrases += "[Target]... looks tasty..."
if (nutrition < get_starve_nutrition())
if(Target) phrases += "[Target]... looks tasty..."
if(nutrition < get_starve_nutrition())
phrases += "So... hungry..."
phrases += "Very... hungry..."
phrases += "Need... food..."
phrases += "Must... eat..."
else if (nutrition < get_hunger_nutrition())
else if(nutrition < get_hunger_nutrition())
phrases += "Hungry..."
phrases += "Where is the food?"
phrases += "I want to eat..."
phrases += "Rawr..."
phrases += "Blop..."
phrases += "Blorble..."
if (rabid || attacked)
if(rabid || attacked)
phrases += "Hrr..."
phrases += "Nhuu..."
phrases += "Unn..."
if (mood == ":3")
if(mood == ":3")
phrases += "Purr..."
if (attacked)
if(attacked)
phrases += "Grrr..."
if (getToxLoss() > 30)
if(getToxLoss() > 30)
phrases += "Cold..."
if (getToxLoss() > 60)
if(getToxLoss() > 60)
phrases += "So... cold..."
phrases += "Very... cold..."
if (getToxLoss() > 90)
if(getToxLoss() > 90)
phrases += "..."
phrases += "C... c..."
if (Victim)
if(Victim)
phrases += "Nom..."
phrases += "Tasty..."
if (powerlevel > 3) phrases += "Bzzz..."
if (powerlevel > 5) phrases += "Zap..."
if (powerlevel > 8) phrases += "Zap... Bzz..."
if (mood == "sad") phrases += "Bored..."
if (slimes_near) phrases += "Brother..."
if (slimes_near > 1) phrases += "Brothers..."
if (dead_slimes) phrases += "What happened?"
if (!slimes_near)
if(powerlevel > 3) phrases += "Bzzz..."
if(powerlevel > 5) phrases += "Zap..."
if(powerlevel > 8) phrases += "Zap... Bzz..."
if(mood == "sad") phrases += "Bored..."
if(slimes_near) phrases += "Brother..."
if(slimes_near > 1) phrases += "Brothers..."
if(dead_slimes) phrases += "What happened?"
if(!slimes_near)
phrases += "Lonely..."
for (var/M in friends_near)
for(var/M in friends_near)
phrases += "[M]... friend..."
if (nutrition < get_hunger_nutrition())
if(nutrition < get_hunger_nutrition())
phrases += "[M]... feed me..."
say (pick(phrases))
/mob/living/carbon/slime/proc/get_max_nutrition() // Can't go above it
if (is_adult) return 1200
if(is_adult) return 1200
else return 1000
/mob/living/carbon/slime/proc/get_grow_nutrition() // Above it we grow, below it we can eat
if (is_adult) return 1000
if(is_adult) return 1000
else return 800
/mob/living/carbon/slime/proc/get_hunger_nutrition() // Below it we will always eat
if (is_adult) return 600
if(is_adult) return 600
else return 500
/mob/living/carbon/slime/proc/get_starve_nutrition() // Below it we will eat before everything else
if (is_adult) return 300
if(is_adult) return 300
else return 200
/mob/living/carbon/slime/proc/will_hunt(var/hunger = -1) // Check for being stopped from feeding and chasing
if (hunger == 2 || rabid || attacked) return 1
if (Leader) return 0
if (holding_still) return 0
if(hunger == 2 || rabid || attacked) return 1
if(Leader) return 0
if(holding_still) return 0
return 1
+5 -5
View File
@@ -2,27 +2,27 @@
var/verb = "telepathically chirps"
var/ending = copytext(text, length(text))
if (ending == "?")
if(ending == "?")
verb = "telepathically asks"
else if (ending == "!")
else if(ending == "!")
verb = "telepathically cries"
return verb
/mob/living/carbon/slime/say_understands(var/other)
if (istype(other, /mob/living/carbon/slime))
if(istype(other, /mob/living/carbon/slime))
return 1
return ..()
/mob/living/carbon/slime/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "", var/italics = 0, var/mob/speaker = null, var/sound/speech_sound, var/sound_vol)
if (speaker in Friends)
if(speaker in Friends)
speech_buffer = list()
speech_buffer.Add(speaker)
speech_buffer.Add(lowertext(html_decode(message)))
..()
/mob/living/carbon/slime/hear_radio(var/message, var/verb="says", var/datum/language/language=null, var/part_a, var/part_b, var/mob/speaker = null, var/hard_to_hear = 0, var/vname ="", var/atom/follow_target)
if (speaker in Friends)
if(speaker in Friends)
speech_buffer = list()
speech_buffer.Add(speaker)
speech_buffer.Add(lowertext(html_decode(message)))
+33 -33
View File
@@ -75,12 +75,12 @@
/mob/living/carbon/slime/regenerate_icons()
icon_state = "[colour] [is_adult ? "adult" : "baby"] slime"
overlays.len = 0
if (mood)
if(mood)
overlays += image('icons/mob/slimes.dmi', icon_state = "aslime-[mood]")
..()
/mob/living/carbon/slime/movement_delay()
if (bodytemperature >= 330.23) // 135 F
if(bodytemperature >= 330.23) // 135 F
return -1 // slimes become supercharged at high temperatures
var/tally = 0
@@ -88,7 +88,7 @@
var/health_deficiency = (100 - health)
if(health_deficiency >= 45) tally += (health_deficiency / 25)
if (bodytemperature < 183.222)
if(bodytemperature < 183.222)
tally += (283.222 - bodytemperature) / 10 * 1.75
if(reagents)
@@ -104,7 +104,7 @@
return tally + config.slime_delay
/mob/living/carbon/slime/Bump(atom/movable/AM as mob|obj, yes)
if ((!(yes) || now_pushing))
if((!(yes) || now_pushing))
return
now_pushing = 1
@@ -121,7 +121,7 @@
if(prob(probab))
if(istype(AM, /obj/structure/window) || istype(AM, /obj/structure/grille))
if(nutrition <= get_hunger_nutrition() && !Atkcool)
if (is_adult || prob(5))
if(is_adult || prob(5))
AM.attack_slime(src)
spawn()
Atkcool = 1
@@ -143,13 +143,13 @@
now_pushing = 0
..()
if (!istype(AM, /atom/movable))
if(!istype(AM, /atom/movable))
return
if (!( now_pushing ))
if(!( now_pushing ))
now_pushing = 1
if (!( AM.anchored ))
if(!( AM.anchored ))
var/t = get_dir(src, AM)
if (istype(AM, /obj/structure/window))
if(istype(AM, /obj/structure/window))
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
@@ -169,7 +169,7 @@
else
stat(null, "Health: [round((health / 150) * 100)]%")
if (client.statpanel == "Status")
if(client.statpanel == "Status")
stat(null, "Nutrition: [nutrition]/[get_max_nutrition()]")
if(amount_grown >= 10)
if(is_adult)
@@ -197,12 +197,12 @@
var/b_loss = null
var/f_loss = null
switch (severity)
if (1.0)
switch(severity)
if(1.0)
qdel(src)
return
if (2.0)
if(2.0)
b_loss += 60
f_loss += 60
@@ -231,13 +231,13 @@
return
/mob/living/carbon/slime/attack_slime(mob/living/carbon/slime/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (Victim) return // can't attack while eating!
if(Victim) return // can't attack while eating!
if (health > -100)
if(health > -100)
M.do_attack_animation(src)
visible_message("<span class='danger'> The [M.name] has glomped [src]!</span>", \
@@ -292,11 +292,11 @@
adjustBruteLoss(damage)
/mob/living/carbon/slime/attack_hand(mob/living/carbon/human/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (istype(loc, /turf) && istype(loc.loc, /area/start))
if(istype(loc, /turf) && istype(loc.loc, /area/start))
to_chat(M, "No attacking people at spawn, you jackass.")
return
@@ -377,10 +377,10 @@
switch(M.a_intent)
if (I_HELP)
if(I_HELP)
help_shake_act(M)
if (I_GRAB)
if(I_GRAB)
grabbedby(M)
else
@@ -388,8 +388,8 @@
var/damage = rand(1, 9)
attacked += 10
if (prob(90))
if (HULK in M.mutations)
if(prob(90))
if(HULK in M.mutations)
damage += 15
if(Victim || Target)
Victim = null
@@ -418,25 +418,25 @@
/mob/living/carbon/slime/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (istype(loc, /turf) && istype(loc.loc, /area/start))
if(istype(loc, /turf) && istype(loc.loc, /area/start))
to_chat(M, "No attacking people at spawn, you jackass.")
return
switch(M.a_intent)
if (I_HELP)
if(I_HELP)
visible_message("<span class='notice'>[M] caresses [src] with its scythe like arm.</span>")
if (I_HARM)
if(I_HARM)
M.do_attack_animation(src)
if (prob(95))
if(prob(95))
attacked += 10
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
var/damage = rand(15, 30)
if (damage >= 25)
if(damage >= 25)
damage = rand(20, 40)
visible_message("<span class='danger'>[M] has attacked [name]!</span>", \
"<span class='userdanger'>[M] has attacked [name]!</span>")
@@ -450,10 +450,10 @@
visible_message("<span class='danger'>[M] has attempted to lunge at [name]!</span>", \
"<span class='userdanger'>[M] has attempted to lunge at [name]!</span>")
if (I_GRAB)
if(I_GRAB)
grabbedby(M)
if (I_DISARM)
if(I_DISARM)
M.do_attack_animation(src)
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
var/damage = 5
@@ -499,7 +499,7 @@
if(S.next_step(user, src))
return 1
if(istype(W,/obj/item/stack/sheet/mineral/plasma)) //Lets you feed slimes plasma.
if (user in Friends)
if(user in Friends)
++Friends[user]
else
Friends[user] = 1
@@ -580,8 +580,8 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
/mob/living/carbon/slime/proc/apply_water()
adjustToxLoss(rand(15,20))
if (!client)
if (Target) // Like cats
if(!client)
if(Target) // Like cats
Target = null
++Discipline
return
+1 -1
View File
@@ -95,7 +95,7 @@
if(paralysis)
stat = UNCONSCIOUS
else if (status_flags & FAKEDEATH)
else if(status_flags & FAKEDEATH)
stat = UNCONSCIOUS
else
+24 -24
View File
@@ -55,7 +55,7 @@
/mob/living/verb/succumb()
set hidden = 1
if (InCritical())
if(InCritical())
attack_log += "[src] has ["succumbed to death"] with [round(health, 0.1)] points of health!"
adjustOxyLoss(health - config.health_threshold_dead)
updatehealth()
@@ -271,7 +271,7 @@
/mob/living/proc/get_organ_target()
var/mob/shooter = src
var/t = shooter:zone_sel.selecting
if ((t in list( "eyes", "mouth" )))
if((t in list( "eyes", "mouth" )))
t = "head"
var/obj/item/organ/external/def_zone = ran_zone(t)
return def_zone
@@ -323,12 +323,12 @@
if(iscarbon(src))
var/mob/living/carbon/C = src
if (C.handcuffed && !initial(C.handcuffed))
if(C.handcuffed && !initial(C.handcuffed))
C.unEquip(C.handcuffed)
C.handcuffed = initial(C.handcuffed)
C.update_handcuffed()
if (C.legcuffed && !initial(C.legcuffed))
if(C.legcuffed && !initial(C.legcuffed))
C.unEquip(C.legcuffed)
C.legcuffed = initial(C.legcuffed)
C.update_inv_legcuffed()
@@ -440,26 +440,26 @@
return
/mob/living/Move(atom/newloc, direct)
if (buckled && buckled.loc != newloc) //not updating position
if (!buckled.anchored)
if(buckled && buckled.loc != newloc) //not updating position
if(!buckled.anchored)
return buckled.Move(newloc, direct)
else
return 0
if (restrained())
if(restrained())
stop_pulling()
var/t7 = 1
if (restrained())
if(restrained())
for(var/mob/living/M in range(src, 1))
if ((M.pulling == src && M.stat == 0 && !( M.restrained() )))
if((M.pulling == src && M.stat == 0 && !( M.restrained() )))
t7 = null
if(t7 && pulling && (get_dist(src, pulling) <= 1 || pulling.loc == loc))
var/turf/T = loc
. = ..()
if (pulling && pulling.loc)
if(pulling && pulling.loc)
if(!( isturf(pulling.loc) ))
stop_pulling()
return
@@ -473,46 +473,46 @@
stop_pulling()
return
if (!restrained())
if(!restrained())
var/diag = get_dir(src, pulling)
if ((diag - 1) & diag)
if((diag - 1) & diag)
else
diag = null
if ((get_dist(src, pulling) > 1 || diag))
if (isliving(pulling))
if((get_dist(src, pulling) > 1 || diag))
if(isliving(pulling))
var/mob/living/M = pulling
var/ok = 1
if (locate(/obj/item/weapon/grab, M.grabbed_by))
if (prob(75))
if(locate(/obj/item/weapon/grab, M.grabbed_by))
if(prob(75))
var/obj/item/weapon/grab/G = pick(M.grabbed_by)
if (istype(G, /obj/item/weapon/grab))
if(istype(G, /obj/item/weapon/grab))
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [] has been pulled from []'s grip by []", G.affecting, G.assailant, src), 1)
//G = null
qdel(G)
else
ok = 0
if (locate(/obj/item/weapon/grab, M.grabbed_by.len))
if(locate(/obj/item/weapon/grab, M.grabbed_by.len))
ok = 0
if (ok)
if(ok)
var/atom/movable/t = M.pulling
M.stop_pulling()
if (M.lying && (prob(M.getBruteLoss() / 6)))
if(M.lying && (prob(M.getBruteLoss() / 6)))
var/turf/location = M.loc
if (istype(location, /turf/simulated))
if(istype(location, /turf/simulated))
location.add_blood(M)
pulling.Move(T, get_dir(pulling, T))
if(M)
M.start_pulling(t)
else
if (pulling)
if(pulling)
pulling.Move(T, get_dir(pulling, T))
else
stop_pulling()
. = ..()
if (s_active && !( s_active in contents ) && get_turf(s_active) != get_turf(src)) //check !( s_active in contents ) first so we hopefully don't have to call get_turf() so much.
if(s_active && !( s_active in contents ) && get_turf(s_active) != get_turf(src)) //check !( s_active in contents ) first so we hopefully don't have to call get_turf() so much.
s_active.close(src)
if(.) // did we actually move?
@@ -854,7 +854,7 @@
return tally
/mob/living/proc/can_use_guns(var/obj/item/weapon/gun/G)
if (G.trigger_guard != TRIGGER_GUARD_ALLOW_ALL && !IsAdvancedToolUser())
if(G.trigger_guard != TRIGGER_GUARD_ALLOW_ALL && !IsAdvancedToolUser())
to_chat(src, "<span class='warning'>You don't have the dexterity to do this!</span>")
return 0
return 1
+4 -4
View File
@@ -43,7 +43,7 @@
var/armor = run_armor_check(def_zone, P.flag, armour_penetration = P.armour_penetration)
var/proj_sharp = is_sharp(P)
var/proj_edge = has_edge(P)
if ((proj_sharp || proj_edge) && prob(getarmor(def_zone, P.flag)))
if((proj_sharp || proj_edge) && prob(getarmor(def_zone, P.flag)))
proj_sharp = 0
proj_edge = 0
@@ -69,7 +69,7 @@
if(istype(O,/obj/item/weapon))
var/obj/item/weapon/W = O
dtype = W.damtype
if (W.hitsound && W.throwforce > 0)
if(W.hitsound && W.throwforce > 0)
playsound(loc, W.hitsound, 30, 1, -1)
//run to-hit check here
@@ -77,11 +77,11 @@
var/throw_damage = O.throwforce*(speed/5)
//var/miss_chance = 15
//if (O.throw_source)
//if(O.throw_source)
//var/distance = get_dist(O.throw_source, loc)
//miss_chance = min(15*(distance-2), 0)
/*
if (prob(miss_chance))
if(prob(miss_chance))
visible_message("\blue \The [O] misses [src] narrowly!")
return
*/
+1 -1
View File
@@ -1,6 +1,6 @@
/mob/living/Logout()
..()
if (mind)
if(mind)
if(!key) //key and mind have become seperated. I believe this is for when a staff member aghosts.
mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body.
//This causes instant sleep and tags a player as SSD. See life.dm for furthering SSD.
+15 -15
View File
@@ -49,14 +49,14 @@ proc/get_radio_key_from_channel(var/channel)
/mob/living/proc/binarycheck()
if (istype(src, /mob/living/silicon/pai))
if(istype(src, /mob/living/silicon/pai))
return
if (!ishuman(src))
if(!ishuman(src))
return
var/mob/living/carbon/human/H = src
if (H.l_ear || H.r_ear)
if(H.l_ear || H.r_ear)
var/obj/item/device/radio/headset/dongle
if(istype(H.l_ear,/obj/item/device/radio/headset))
dongle = H.l_ear
@@ -142,8 +142,8 @@ proc/get_radio_key_from_channel(var/channel)
return emote(copytext(message,2))
//parse the radio code and consume it
if (message_mode)
if (message_mode == "headset")
if(message_mode)
if(message_mode == "headset")
message = copytext(message,2) //it would be really nice if the parse procs could do this for us.
else
message = copytext(message,3)
@@ -210,18 +210,18 @@ proc/get_radio_key_from_channel(var/channel)
for(var/mob/living/M in hearers(5, src))
if((M != src) && msg)
M.show_message(msg)
if (speech_sound)
if(speech_sound)
sound_vol *= 0.5
var/turf/T = get_turf(src)
//handle nonverbal and sign languages here
if (speaking)
if (speaking.flags & NONVERBAL)
if (prob(30))
if(speaking)
if(speaking.flags & NONVERBAL)
if(prob(30))
src.custom_emote(1, "[pick(speaking.signlang_verb)].")
if (speaking.flags & SIGNLANG)
if(speaking.flags & SIGNLANG)
return say_signlang(message, pick(speaking.signlang_verb), speaking)
var/list/listening = list()
@@ -234,7 +234,7 @@ proc/get_radio_key_from_channel(var/channel)
if(pressure < SOUND_MINIMUM_PRESSURE)
message_range = 1
if (pressure < ONE_ATMOSPHERE*0.4) //sound distortion pressure, to help clue people in that the air is thin, even if it isn't a vacuum yet
if(pressure < ONE_ATMOSPHERE*0.4) //sound distortion pressure, to help clue people in that the air is thin, even if it isn't a vacuum yet
italics = 1
sound_vol *= 0.5 //muffle the sound a bit, so it's like we're actually talking through contact
@@ -254,9 +254,9 @@ proc/get_radio_key_from_channel(var/channel)
listening_obj |= O
for(var/mob/M in player_list)
if (!M.client)
if(!M.client)
continue //skip monkeys and leavers
if (istype(M, /mob/new_player))
if(istype(M, /mob/new_player))
continue
if(M.stat == DEAD && M.client && (M.client.prefs.toggles & CHAT_GHOSTEARS) && src.client) // src.client is so that ghosts don't have to listen to mice
listening |= M
@@ -287,7 +287,7 @@ proc/get_radio_key_from_channel(var/channel)
return 1
/mob/living/proc/say_signlang(var/message, var/verb="gestures", var/datum/language/language)
for (var/mob/O in viewers(src, null))
for(var/mob/O in viewers(src, null))
O.hear_signlang(message, verb, language, src)
return 1
@@ -456,7 +456,7 @@ proc/get_radio_key_from_channel(var/channel)
if(watching.len)
var/rendered = "<span class='game say'><span class='name'>[src.name]</span> [not_heard].</span>"
for (var/mob/M in watching)
for(var/mob/M in watching)
M.show_message(rendered, 2)
log_whisper("[src.name]/[src.key] : [message]")
+50 -50
View File
@@ -26,10 +26,10 @@ var/list/ai_verbs_default = list(
//Not sure why this is necessary...
/proc/AutoUpdateAI(obj/subject)
var/is_in_use = 0
if (subject!=null)
if(subject!=null)
for(var/A in ai_list)
var/mob/living/silicon/ai/M = A
if ((M.client && M.machine == subject))
if((M.client && M.machine == subject))
is_in_use = 1
subject.attack_ai(M)
return is_in_use
@@ -121,8 +121,8 @@ var/list/ai_verbs_default = list(
var/pickedName = null
while(!pickedName)
pickedName = pick(ai_names)
for (var/mob/living/silicon/ai/A in mob_list)
if (A.real_name == pickedName && possibleNames.len > 1) //fixing the theoretically possible infinite loop
for(var/mob/living/silicon/ai/A in mob_list)
if(A.real_name == pickedName && possibleNames.len > 1) //fixing the theoretically possible infinite loop
possibleNames -= pickedName
pickedName = null
@@ -138,7 +138,7 @@ var/list/ai_verbs_default = list(
proc_holder_list = new()
if(L)
if (istype(L, /datum/ai_laws))
if(istype(L, /datum/ai_laws))
laws = L
else
make_laws()
@@ -154,7 +154,7 @@ var/list/ai_verbs_default = list(
aiCamera = new/obj/item/device/camera/siliconcam/ai_camera(src)
if (istype(loc, /turf))
if(istype(loc, /turf))
add_ai_verbs(src)
//Languages
@@ -176,12 +176,12 @@ var/list/ai_verbs_default = list(
add_language("Clownish", 0)
if(!safety)//Only used by AIize() to successfully spawn an AI.
if (!B)//If there is no player/brain inside.
if(!B)//If there is no player/brain inside.
new/obj/structure/AIcore/deactivated(loc)//New empty terminal.
qdel(src)//Delete AI.
return
else
if (B.brainmob.mind)
if(B.brainmob.mind)
B.brainmob.mind.transfer_to(src)
on_mob_init()
@@ -219,7 +219,7 @@ var/list/ai_verbs_default = list(
to_chat(src, radio_text)
if (!(ticker && ticker.mode && (mind in ticker.mode.malf_ai)))
if(!(ticker && ticker.mode && (mind in ticker.mode.malf_ai)))
show_laws()
to_chat(src, "<b>These laws may be changed by other players, or by you being the traitor.</b>")
@@ -306,7 +306,7 @@ var/list/ai_verbs_default = list(
//if(icon_state == initial(icon_state))
var/icontype = ""
if (custom_sprite == 1) icontype = ("Custom")//automagically selects custom sprite if one is available
if(custom_sprite == 1) icontype = ("Custom")//automagically selects custom sprite if one is available
else icontype = input("Select an icon!", "AI", null, null) in list("Monochrome", "Blue", "Clown", "Inverted", "Text", "Smiley", "Angry", "Dorf", "Matrix", "Bliss", "Firewall", "Green", "Red", "Static", "Triumvirate", "Triumvirate Static", "Red October", "Sparkles", "ANIMA", "President", "NT")
switch(icontype)
if("Custom") icon_state = "[src.ckey]-ai"
@@ -340,9 +340,9 @@ var/list/ai_verbs_default = list(
/mob/living/silicon/ai/show_malf_ai()
if(ticker.mode.name == "AI malfunction")
var/datum/game_mode/malfunction/malf = ticker.mode
for (var/datum/mind/malfai in malf.malf_ai)
if (mind == malfai) // are we the evil one?
if (malf.apcs >= 3)
for(var/datum/mind/malfai in malf.malf_ai)
if(mind == malfai) // are we the evil one?
if(malf.apcs >= 3)
stat(null, "Time until station control secured: [max(malf.AI_win_timeleft/(malf.apcs/3), 0)] seconds")
// this verb lets the ai see the stations manifest
@@ -436,13 +436,13 @@ var/list/ai_verbs_default = list(
ai_announcement()
/mob/living/silicon/ai/check_eye(var/mob/user as mob)
if (!current)
if(!current)
return null
user.reset_view(current)
return 1
/mob/living/silicon/ai/blob_act()
if (stat != 2)
if(stat != 2)
adjustBruteLoss(60)
updatehealth()
return 1
@@ -452,7 +452,7 @@ var/list/ai_verbs_default = list(
return 0
/mob/living/silicon/ai/emp_act(severity)
if (prob(30))
if(prob(30))
switch(pick(1,2))
if(1)
view_core()
@@ -467,11 +467,11 @@ var/list/ai_verbs_default = list(
if(1.0)
gib()
if(2.0)
if (stat != 2)
if(stat != 2)
adjustBruteLoss(60)
adjustFireLoss(60)
if(3.0)
if (stat != 2)
if(stat != 2)
adjustBruteLoss(30)
return
@@ -481,21 +481,21 @@ var/list/ai_verbs_default = list(
if(usr != src)
return
..()
if (href_list["mach_close"])
if (href_list["mach_close"] == "aialerts")
if(href_list["mach_close"])
if(href_list["mach_close"] == "aialerts")
viewalerts = 0
var/t1 = text("window=[]", href_list["mach_close"])
unset_machine()
src << browse(null, t1)
if (href_list["switchcamera"])
if(href_list["switchcamera"])
switchCamera(locate(href_list["switchcamera"])) in cameranet.cameras
if (href_list["showalerts"])
if(href_list["showalerts"])
subsystem_alarm_monitor()
if(href_list["show_paper"])
if(last_paper_seen)
src << browse(last_paper_seen, "window=show_paper")
//Carn: holopad requests
if (href_list["jumptoholopad"])
if(href_list["jumptoholopad"])
var/obj/machinery/hologram/holopad/H = locate(href_list["jumptoholopad"])
if(stat == CONSCIOUS)
if(H)
@@ -507,7 +507,7 @@ var/list/ai_verbs_default = list(
play_vox_word(href_list["say_word"], null, src)
return
if (href_list["track"])
if(href_list["track"])
var/mob/living/target = locate(href_list["track"]) in mob_list
if(target && target.can_track())
ai_actual_track(target)
@@ -515,7 +515,7 @@ var/list/ai_verbs_default = list(
to_chat(src, "<span class='warning'>Target is not on or near any active cameras on the station.</span>")
return
if (href_list["trackbot"])
if(href_list["trackbot"])
var/mob/living/simple_animal/bot/target = locate(href_list["trackbot"]) in simple_animal_list
if(target)
ai_actual_track(target)
@@ -523,7 +523,7 @@ var/list/ai_verbs_default = list(
to_chat(src, "<span class='warning'>Target is not on or near any active cameras on the station.</span>")
return
if (href_list["callbot"]) //Command a bot to move to a selected location.
if(href_list["callbot"]) //Command a bot to move to a selected location.
Bot = locate(href_list["callbot"]) in simple_animal_list
if(!Bot || Bot.remote_disabled || src.control_disabled)
return //True if there is no bot found, the bot is manually emagged, or the AI is carded with wireless off.
@@ -531,17 +531,17 @@ var/list/ai_verbs_default = list(
to_chat(src, "<span class='notice'>Set your waypoint by clicking on a valid location free of obstructions.</span>")
return
if (href_list["interface"]) //Remotely connect to a bot!
if(href_list["interface"]) //Remotely connect to a bot!
Bot = locate(href_list["interface"]) in simple_animal_list
if(!Bot || Bot.remote_disabled || src.control_disabled)
return
Bot.attack_ai(src)
if (href_list["botrefresh"]) //Refreshes the bot control panel.
if(href_list["botrefresh"]) //Refreshes the bot control panel.
botcall()
return
if (href_list["ai_take_control"]) //Mech domination
if(href_list["ai_take_control"]) //Mech domination
var/obj/mecha/M = locate(href_list["ai_take_control"])
if(controlled_mech)
to_chat(src, "You are already loaded into an onboard computer!")
@@ -549,17 +549,17 @@ var/list/ai_verbs_default = list(
if(M)
M.transfer_ai(AI_MECH_HACK,src, usr) //Called om the mech itself.
else if (href_list["faketrack"])
else if(href_list["faketrack"])
var/mob/target = locate(href_list["track"]) in mob_list
var/mob/living/silicon/ai/A = locate(href_list["track2"]) in mob_list
if(A && target)
A.cameraFollow = target
to_chat(A, "Now tracking [target.name] on camera.")
if (usr.machine == null)
if(usr.machine == null)
usr.machine = usr
while (src.cameraFollow == target)
while(src.cameraFollow == target)
to_chat(usr, "Target is not on or near any active cameras on the station. We'll check again in 5 seconds (unless you use the cancel-camera verb).")
sleep(40)
continue
@@ -575,23 +575,23 @@ var/list/ai_verbs_default = list(
/mob/living/silicon/ai/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (istype(loc, /turf) && istype(loc.loc, /area/start))
if(istype(loc, /turf) && istype(loc.loc, /area/start))
to_chat(M, "No attacking people at spawn, you jackass.")
return
switch(M.a_intent)
if (I_HELP)
if(I_HELP)
visible_message("<span class='notice'>[M] caresses [src]'s plating with its scythe like arm.</span>")
else //harm
M.do_attack_animation(src)
var/damage = rand(10, 20)
if (prob(90))
if(prob(90))
playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has slashed at [src]!</span>",\
"<span class='userdanger'>[M] has slashed at [src]!</span>")
@@ -644,7 +644,7 @@ var/list/ai_verbs_default = list(
d += "<A HREF=?src=\ref[src];botrefresh=\ref[Bot]>Query network status</A><br>"
d += "<table width='100%'><tr><td width='40%'><h3>Name</h3></td><td width='20%'><h3>Status</h3></td><td width='30%'><h3>Location</h3></td><td width='10%'><h3>Control</h3></td></tr>"
for (var/mob/living/simple_animal/bot/Bot in simple_animal_list)
for(var/mob/living/simple_animal/bot/Bot in simple_animal_list)
if((Bot.z in ai_allowed_Zlevel) && !Bot.remote_disabled) //Only non-emagged bots on the allowed Z-level are detected!
bot_area = get_area(Bot)
d += "<tr><td width='30%'>[Bot.hacked ? "<span class='bad'>(!) </span>[Bot.name]" : Bot.name] ([Bot.model])</td>"
@@ -686,7 +686,7 @@ var/list/ai_verbs_default = list(
if(!tracking)
cameraFollow = null
if (!C || stat == DEAD) //C.can_use())
if(!C || stat == DEAD) //C.can_use())
return 0
if(!src.eyeobj)
@@ -716,7 +716,7 @@ var/list/ai_verbs_default = list(
var/mob/living/silicon/ai/U = usr
for (var/obj/machinery/camera/C in cameranet.cameras)
for(var/obj/machinery/camera/C in cameranet.cameras)
if(!C.can_use())
continue
@@ -770,7 +770,7 @@ var/list/ai_verbs_default = list(
if(check_unable())
return
for (var/obj/machinery/M in machines) //change status
for(var/obj/machinery/M in machines) //change status
if(istype(M, /obj/machinery/ai_status_display))
var/obj/machinery/ai_status_display/AISD = M
AISD.emotion = emote
@@ -852,10 +852,10 @@ var/list/ai_verbs_default = list(
camera_light_on = !camera_light_on
if (!camera_light_on)
if(!camera_light_on)
to_chat(src, "Camera lights deactivated.")
for (var/obj/machinery/camera/C in lit_cameras)
for(var/obj/machinery/camera/C in lit_cameras)
C.set_light(0)
lit_cameras = list()
@@ -888,19 +888,19 @@ var/list/ai_verbs_default = list(
var/list/obj/machinery/camera/add = list()
var/list/obj/machinery/camera/remove = list()
var/list/obj/machinery/camera/visible = list()
for (var/datum/camerachunk/CC in eyeobj.visibleCameraChunks)
for (var/obj/machinery/camera/C in CC.cameras)
if (!C.can_use() || get_dist(C, eyeobj) > 7)
for(var/datum/camerachunk/CC in eyeobj.visibleCameraChunks)
for(var/obj/machinery/camera/C in CC.cameras)
if(!C.can_use() || get_dist(C, eyeobj) > 7)
continue
visible |= C
add = visible - lit_cameras
remove = lit_cameras - visible
for (var/obj/machinery/camera/C in remove)
for(var/obj/machinery/camera/C in remove)
lit_cameras -= C //Removed from list before turning off the light so that it doesn't check the AI looking away.
C.Togglelight(0)
for (var/obj/machinery/camera/C in add)
for(var/obj/machinery/camera/C in add)
C.Togglelight(1)
lit_cameras |= C
@@ -936,7 +936,7 @@ var/list/ai_verbs_default = list(
return
to_chat(src, "Accessing Subspace Transceiver control...")
if (src.aiRadio)
if(src.aiRadio)
src.aiRadio.interact(src)
@@ -952,7 +952,7 @@ var/list/ai_verbs_default = list(
if(H.digitalcamo)
to_chat(src, "Unable to locate an airlock")
return
if (!near_camera(target))
if(!near_camera(target))
to_chat(src, "Target is not near any active cameras.")
return
var/obj/machinery/door/airlock/tobeopened
@@ -1012,7 +1012,7 @@ var/list/ai_verbs_default = list(
to_chat(user, "<span class='warning'>No intelligence patterns detected.</span>")//No more magical carding of empty cores, AI RETURN TO BODY!!!11
return
if (mind.special_role == "malfunction") //AI MALF!!
if(mind.special_role == "malfunction") //AI MALF!!
to_chat(user, "<span class='boldannounce'>ERROR</span>: Remote transfer interface disabled.")//Do ho ho ho~
return
+2 -2
View File
@@ -1,7 +1,7 @@
/mob/living/silicon/ai/death(gibbed)
if(stat == DEAD) return
stat = DEAD
if (src.custom_sprite == 1)//check for custom AI sprite, defaulting to blue screen if no.
if(src.custom_sprite == 1)//check for custom AI sprite, defaulting to blue screen if no.
icon_state = "[ckey]-ai-crash"
else icon_state = "ai-crash"
update_canmove()
@@ -21,7 +21,7 @@
for(var/obj/machinery/ai_status_display/O in world) //change status
spawn( 0 )
O.mode = 2
if (istype(loc, /obj/item/device/aicard))
if(istype(loc, /obj/item/device/aicard))
loc.icon_state = "aicard-404"
timeofdeath = worldtime2text()
@@ -5,22 +5,22 @@
return
var/msg = "<span class='info'>"
if (src.stat == DEAD)
if(src.stat == DEAD)
msg += "<span class='deadsay'>It appears to be powered-down.</span>\n"
else
msg += "<span class='warning'>"
if (src.getBruteLoss())
if (src.getBruteLoss() < 30)
if(src.getBruteLoss())
if(src.getBruteLoss() < 30)
msg += "It looks slightly dented.\n"
else
msg += "<B>It looks severely dented!</B>\n"
if (src.getFireLoss())
if (src.getFireLoss() < 30)
if(src.getFireLoss())
if(src.getFireLoss() < 30)
msg += "It looks slightly charred.\n"
else
msg += "<B>Its casing is melted and heat-warped!</B>\n"
if (src.stat == UNCONSCIOUS)
if(src.stat == UNCONSCIOUS)
msg += "It is non-responsive and displaying the text: \"RUNTIME: Sensory Overload, stack 26/3\".\n"
msg += "</span>"
msg += "*---------*</span>"
@@ -50,7 +50,7 @@
var/mob/living/silicon/ai/AI = usr
if(AI.eyeobj && AI.client.eye == AI.eyeobj)
AI.cameraFollow = null
if (isturf(src.loc) || isturf(src))
if(isturf(src.loc) || isturf(src))
AI.eyeobj.setLoc(src)
// AI MOVEMENT
@@ -82,7 +82,7 @@
//user.unset_machine() //Uncomment this if it causes problems.
//user.lightNearbyCamera()
if (user.camera_light_on)
if(user.camera_light_on)
user.light_cameras()
// Return to the Core.
+1 -1
View File
@@ -6,7 +6,7 @@
/mob/living/silicon/ai/show_laws(var/everyone = 0)
var/who
if (everyone)
if(everyone)
who = world
else
who = src
+3 -3
View File
@@ -12,7 +12,7 @@
updatehealth()
update_gravity(mob_has_gravity())
if (health <= config.health_threshold_dead)
if(health <= config.health_threshold_dead)
death()
return 0
@@ -102,7 +102,7 @@
var/PRP
for(PRP = 1, PRP <= 4, PRP++)
for(var/obj/machinery/power/apc/APC in my_area)
if (!(APC.stat & BROKEN))
if(!(APC.stat & BROKEN))
theAPC = APC
break
@@ -116,7 +116,7 @@
return
if(my_area.power_equip)
if (!istype(T, /turf/space))
if(!istype(T, /turf/space))
to_chat(src, "Alert cancelled. Power has been restored without our assistance.")
aiRestorePowerRoutine = 0
clear_fullscreen("blind")
+1 -1
View File
@@ -3,7 +3,7 @@
for(var/obj/machinery/ai_status_display/O in world) //change status
O.mode = 0
if(!isturf(loc))
if (client)
if(client)
client.eye = loc
client.perspective = EYE_PERSPECTIVE
src.view_core()
@@ -1,8 +1,8 @@
/mob/living/silicon/decoy/Life()
if (src.stat == 2)
if(src.stat == 2)
return
else
if (src.health <= config.health_threshold_dead && src.stat != 2)
if(src.health <= config.health_threshold_dead && src.stat != 2)
death()
return
+16 -16
View File
@@ -1,6 +1,6 @@
/mob/living/silicon/emote(var/act, var/m_type=1, var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
if(findtext(act, "-", 1, null))
var/t1 = findtext(act, "-", 1, null)
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
@@ -28,14 +28,14 @@
if("ping","pings")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> pings at [param]."
else
message = "<B>[src]</B> pings."
@@ -45,14 +45,14 @@
if("buzz","buzzs","buzzes")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> buzzes at [param]."
else
message = "<B>[src]</B> buzzes."
@@ -62,14 +62,14 @@
if("beep","beeps")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> beeps at [param]."
else
message = "<B>[src]</B> beeps."
@@ -79,14 +79,14 @@
if("yes")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> emits an affirmative blip at [param]."
else
message = "<B>[src]</B> emits an affirmative blip."
@@ -96,14 +96,14 @@
if("no")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> emits a negative blip at [param]."
else
message = "<B>[src]</B> emits a negative blip."
+1 -1
View File
@@ -3,7 +3,7 @@
var/list/additional_law_channels = list("State" = "")
/mob/living/silicon/proc/laws_sanity_check()
if (!src.laws)
if(!src.laws)
laws = new base_law_type
/mob/living/silicon/proc/has_zeroth_law()
+1 -1
View File
@@ -6,7 +6,7 @@
force_fold_out()
var/turf/T = get_turf_or_move(loc)
for (var/mob/M in viewers(T))
for(var/mob/M in viewers(T))
M.show_message("<span class=warning>[src] emits a dull beep before it loses power and collapses.</span>", 3, "<span class=warning>You hear a dull beep followed by the sound of glass crunching.</span>", 2)
name = "pAI debris"
desc = "The unfortunate remains of some poor personal AI device."
+1 -1
View File
@@ -13,7 +13,7 @@
if(cable)
if(get_dist(src, cable) > 1)
var/turf/T = get_turf_or_move(loc)
for (var/mob/M in viewers(T))
for(var/mob/M in viewers(T))
M.show_message("\red The data cable rapidly retracts back into its spool.", 3, "\red You hear a click and the sound of wire spooling rapidly.", 2)
qdel(src.cable)
cable = null
+22 -22
View File
@@ -127,21 +127,21 @@
/mob/living/silicon/pai/Stat()
..()
statpanel("Status")
if (src.client.statpanel == "Status")
if(src.client.statpanel == "Status")
show_silenced()
if (proc_holder_list.len)//Generic list for proc_holder objects.
if(proc_holder_list.len)//Generic list for proc_holder objects.
for(var/obj/effect/proc_holder/P in proc_holder_list)
statpanel("[P.panel]","",P)
/mob/living/silicon/pai/check_eye(var/mob/user as mob)
if (!src.current)
if(!src.current)
return null
user.reset_view(src.current)
return 1
/mob/living/silicon/pai/blob_act()
if (src.stat != 2)
if(src.stat != 2)
src.adjustBruteLoss(60)
src.updatehealth()
return 1
@@ -166,7 +166,7 @@
to_chat(src, "<font color=green><b>Communication circuit overload. Shutting down and reloading communication circuits - speech and messaging functionality will be unavailable until the reboot is complete.</b></font>")
if(prob(20))
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
for(var/mob/M in viewers(T))
M.show_message("\red A shower of sparks spray from [src]'s inner workings.", 3, "\red You hear and smell the ozone hiss of electrical sparks being expelled violently.", 2)
return src.death(0)
@@ -191,15 +191,15 @@
switch(severity)
if(1.0)
if (src.stat != 2)
if(src.stat != 2)
adjustBruteLoss(100)
adjustFireLoss(100)
if(2.0)
if (src.stat != 2)
if(src.stat != 2)
adjustBruteLoss(60)
adjustFireLoss(60)
if(3.0)
if (src.stat != 2)
if(src.stat != 2)
adjustBruteLoss(30)
return
@@ -223,28 +223,28 @@
updatehealth()
/mob/living/silicon/pai/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (istype(src.loc, /turf) && istype(src.loc.loc, /area/start))
if(istype(src.loc, /turf) && istype(src.loc.loc, /area/start))
to_chat(M, "You cannot attack someone in the spawn area.")
return
switch(M.a_intent)
if (I_HELP)
if(I_HELP)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
if((O.client && !( O.blinded )))
O.show_message(text("\blue [M] caresses [src]'s casing with its scythe like arm."), 1)
else //harm
M.do_attack_animation(src)
var/damage = rand(10, 20)
if (prob(90))
if(prob(90))
playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
if((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] has slashed at []!</B>", M, src), 1)
if(prob(8))
flash_eyes(affect_silicon = 1)
@@ -253,17 +253,17 @@
else
playsound(src.loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
if((O.client && !( O.blinded )))
O.show_message(text("\red <B>[] took a swipe at []!</B>", M, src), 1)
return
/mob/living/silicon/pai/proc/switchCamera(var/obj/machinery/camera/C)
usr:cameraFollow = null
if (!C)
if(!C)
src.unset_machine()
src.reset_view(null)
return 0
if (stat == 2 || !C.status || !(src.network in C.network)) return 0
if(stat == 2 || !C.status || !(src.network in C.network)) return 0
// ok, we're alive, camera is good and in our network...
@@ -306,7 +306,7 @@
to_chat(usr, "You can't change your camera network because you are dead!")
return
for (var/obj/machinery/camera/C in Cameras)
for(var/obj/machinery/camera/C in Cameras)
if(!C.status)
continue
else
@@ -441,9 +441,9 @@
/mob/living/silicon/pai/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W, /obj/item/stack/nanopaste))
var/obj/item/stack/nanopaste/N = W
if (stat == DEAD)
if(stat == DEAD)
to_chat(user, "<span class='danger'>\The [src] is beyond help, at this point.</span>")
else if (getBruteLoss() || getFireLoss())
else if(getBruteLoss() || getFireLoss())
adjustBruteLoss(-15)
adjustFireLoss(-15)
updatehealth()
@@ -539,7 +539,7 @@
if(print_flavor_text()) msg += "\n[print_flavor_text()]"
if (pose)
if(pose)
if( findtext(pose,".",lentext(pose)) == 0 && findtext(pose,"!",lentext(pose)) == 0 && findtext(pose,"?",lentext(pose)) == 0 )
pose = addtext(pose,".") //Makes sure all emotes end with a period.
msg += "\nIt is [pose]"
@@ -550,7 +550,7 @@
/mob/living/silicon/pai/bullet_act(var/obj/item/projectile/Proj)
..(Proj)
updatehealth()
if (stat != 2)
if(stat != 2)
spawn(1)
close_up()
return 2
@@ -32,12 +32,12 @@
// returns 0 if savefile did not exist
/datum/paiCandidate/proc/savefile_load(mob/user, var/silent = 1)
if (IsGuestKey(user.key))
if(IsGuestKey(user.key))
return 0
var/path = savefile_path(user)
if (!fexists(path))
if(!fexists(path))
return 0
var/savefile/F = new /savefile(path)
@@ -47,9 +47,9 @@
var/version = null
F["version"] >> version
if (isnull(version) || version != 1)
if(isnull(version) || version != 1)
fdel(path)
if (!silent)
if(!silent)
alert(user, "Your savefile was incompatible with this version and was deleted.")
return 0
@@ -374,7 +374,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates
if(!C) return //handle logouts that happen whilst the alert is waiting for a response.
if(response == "Yes")
recruitWindow(C.mob)
else if (response == "Never for this round")
else if(response == "Never for this round")
var/warning = alert(C, "Are you sure? This action will be undoable and you will need to wait until next round.", "You sure?", "Yes", "No")
if(warning == "Yes")
asked[C.key] = INFINITY
@@ -85,7 +85,7 @@ var/global/list/default_pai_software = list()
data["current_emotion"] = card.current_emotion
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
if(!ui)
ui = new(user, src, ui_key, "pai_interface.tmpl", "pAI Software Interface", 450, 600)
ui.set_initial_data(data)
ui.open()
@@ -65,7 +65,7 @@
var/answer = input(M, "[P] is requesting a DNA sample from you. Will you allow it to confirm your identity?", "[P] Check DNA", "No") in list("Yes", "No")
if(answer == "Yes")
var/turf/T = get_turf_or_move(P.loc)
for (var/mob/v in viewers(T))
for(var/mob/v in viewers(T))
v.show_message("<span class='notice'>[M] presses \his thumb against [P].</span>", 3, "<span class='notice'>[P] makes a sharp clicking sound as it extracts DNA material from [M].</span>", 2)
var/datum/dna/dna = M.dna
to_chat(P, "<font color = red><h3>[M]'s UE string : [dna.unique_enzymes]</h3></font>")
@@ -296,7 +296,7 @@
return
t = sanitize(copytext(t, 1, MAX_MESSAGE_LEN))
t = readd_quotes(t)
if (!t)
if(!t)
return
M.current_room.topic = t
@@ -329,7 +329,7 @@
return
t = sanitize(copytext(t, 1, MAX_MESSAGE_LEN))
t = readd_quotes(t)
if (!t || !P.pda.can_use())
if(!t || !P.pda.can_use())
return
target.post(M, t)
@@ -380,12 +380,12 @@
if(record)
var/datum/data/record/R = record
var/datum/data/record/M = null
if (!( data_core.general.Find(R) ))
if(!( data_core.general.Find(R) ))
P.medical_cannotfind = 1
else
P.medical_cannotfind = 0
for(var/datum/data/record/E in data_core.medical)
if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
if((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
M = E
P.medicalActive1 = R
P.medicalActive2 = M
@@ -434,14 +434,14 @@
if(record)
var/datum/data/record/R = record
var/datum/data/record/S = null
if (!( data_core.general.Find(R) ))
if(!( data_core.general.Find(R) ))
P.securityActive1 = null
P.securityActive2 = null
P.security_cannotfind = 1
else
P.security_cannotfind = 0
for(var/datum/data/record/E in data_core.security)
if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
if((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
S = E
P.securityActive1 = R
P.securityActive2 = S
@@ -111,11 +111,11 @@
to_chat(user, "\red The maintenance drone chassis not compatible with \the [W].")
return
else if (istype(W, /obj/item/weapon/crowbar))
else if(istype(W, /obj/item/weapon/crowbar))
to_chat(user, "The machine is hermetically sealed. You can't open the case.")
return
else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
else if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if(stat == 2)
@@ -26,7 +26,7 @@
set desc = "Allows you to hide beneath tables or certain items. Toggled on or off."
set category = "Drone"
if (layer != TURF_LAYER+0.2)
if(layer != TURF_LAYER+0.2)
layer = TURF_LAYER+0.2
to_chat(src, text("\blue You are now hiding."))
else
@@ -57,10 +57,10 @@
to_chat(usr, "\red Access denied.")
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.set_machine(src)
if (href_list["setarea"])
if(href_list["setarea"])
//Probably should consider using another list, but this one will do.
var/t_area = input("Select the area to ping.", "Set Target Area", null) as null|anything in TAGGERLOCATIONS
@@ -71,14 +71,14 @@
drone_call_area = t_area
to_chat(usr, "\blue You set the area selector to [drone_call_area].")
else if (href_list["ping"])
else if(href_list["ping"])
to_chat(usr, "\blue You issue a maintenance request for all active drones, highlighting [drone_call_area].")
for(var/mob/living/silicon/robot/drone/D in world)
if(D.client && D.stat == 0)
to_chat(D, "-- Maintenance drone presence requested in: [drone_call_area].")
else if (href_list["resync"])
else if(href_list["resync"])
var/mob/living/silicon/robot/drone/D = locate(href_list["resync"])
@@ -86,7 +86,7 @@
to_chat(usr, "\red You issue a law synchronization directive for the drone.")
D.law_resync()
else if (href_list["shutdown"])
else if(href_list["shutdown"])
var/mob/living/silicon/robot/drone/D = locate(href_list["shutdown"])
@@ -96,7 +96,7 @@
log_game("[key_name(usr)] issued kill order for [key_name(src)] from control console.")
D.shut_down()
else if (href_list["search_fab"])
else if(href_list["search_fab"])
if(dronefab)
return
@@ -111,7 +111,7 @@
to_chat(usr, "\red Unable to locate drone fabricator.")
else if (href_list["toggle_fab"])
else if(href_list["toggle_fab"])
if(!dronefab)
return
@@ -222,7 +222,7 @@
for(var/obj/W in T)
//Different classes of items give different commodities.
if (istype(W,/obj/item/weapon/cigbutt))
if(istype(W,/obj/item/weapon/cigbutt))
stored_comms["plastic"]++
else if(istype(W,/obj/effect/spider/spiderling))
stored_comms["wood"]++
@@ -270,7 +270,7 @@
stored_comms["glass"]++
stored_comms["glass"]++
stored_comms["glass"]++
else if (istype(W,/obj/item/weapon/light/tube) || istype(W,/obj/item/weapon/light/bulb))
else if(istype(W,/obj/item/weapon/light/tube) || istype(W,/obj/item/weapon/light/bulb))
stored_comms["glass"]++
else
continue
@@ -310,11 +310,11 @@
var/tools = "<B>Tools and devices</B><BR>"
var/resources = "<BR><B>Resources</B><BR>"
for (var/O in module.modules)
for(var/O in module.modules)
var/module_string = ""
if (!O)
if(!O)
module_string += text("<B>Resource depleted</B><BR>")
else if(activated(O))
module_string += text("[O]: <B>Activated</B><BR>")
@@ -328,8 +328,8 @@
dat += tools
if (emagged)
if (!module.emag)
if(emagged)
if(!module.emag)
dat += text("<B>Resource depleted</B><BR>")
else if(activated(module.emag))
dat += text("[module.emag]: <B>Activated</B><BR>")
@@ -19,7 +19,7 @@
..()
/obj/machinery/drone_fabricator/power_change()
if (powered())
if(powered())
stat &= ~NOPOWER
else
icon_state = "drone_fab_nopower"
@@ -88,10 +88,10 @@
to_chat(src, "\red That verb is not currently permitted.")
return
if (!src.stat)
if(!src.stat)
return
if (usr != src)
if(usr != src)
return 0 //something is terribly wrong
if(jobban_isbanned(src,"nonhumandept") || jobban_isbanned(src,"Drone"))
@@ -128,7 +128,7 @@
pluralcheck = " [deathtimeminutes] minutes and"
var/deathtimeseconds = round((deathtime - deathtimeminutes * 600) / 10,1)
if (deathtime < 6000 && joinedasobserver == 0)
if(deathtime < 6000 && joinedasobserver == 0)
to_chat(usr, "You have been dead for[pluralcheck] [deathtimeseconds] seconds.")
to_chat(usr, "<span class='warning'>You must wait 10 minutes to respawn as a drone!</span>")
return
@@ -1,15 +1,15 @@
/mob/living/silicon/robot/drone/say(var/message)
if(local_transmit)
if (src.client)
if(src.client)
if(client.prefs.muted & MUTE_IC)
to_chat(src, "You cannot send IC messages (muted).")
return 0
if (src.client.handle_spam_prevention(message,MUTE_IC))
if(src.client.handle_spam_prevention(message,MUTE_IC))
return 0
message = sanitize(message)
if (stat == 2)
if(stat == 2)
return say_dead(message)
if(copytext(message,1,2) == "*")
@@ -21,7 +21,7 @@
return L.broadcast(src,trim(copytext(message,2)))
//Must be concious to speak
if (stat)
if(stat)
return 0
var/list/listeners = hearers(5,src)
@@ -31,8 +31,8 @@
if(D.client && D.local_transmit)
to_chat(D, "<b>[src]</b> transmits, \"[message]\"")
for (var/mob/M in player_list)
if (istype(M, /mob/new_player))
for(var/mob/M in player_list)
if(istype(M, /mob/new_player))
continue
else if(M.stat == 2 && M.client && M.client.prefs.toggles & CHAT_GHOSTEARS)
to_chat(M, "<b>[src]</b> transmits, \"[message]\"")
+47 -47
View File
@@ -1,6 +1,6 @@
/mob/living/silicon/robot/emote(var/act, var/m_type=1, var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
if(findtext(act, "-", 1, null))
var/t1 = findtext(act, "-", 1, null)
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
@@ -23,111 +23,111 @@
switch(act)
if ("salute","salutes")
if (!src.buckled)
if("salute","salutes")
if(!src.buckled)
var/M = null
if (param)
for (var/mob/A in view(null, null))
if (param == A.name)
if(param)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if (!M)
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> salutes to [param]."
else
message = "<B>[src]</b> salutes."
m_type = 1
if ("bow","bows")
if (!src.buckled)
if("bow","bows")
if(!src.buckled)
var/M = null
if (param)
for (var/mob/A in view(null, null))
if (param == A.name)
if(param)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if (!M)
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> bows to [param]."
else
message = "<B>[src]</B> bows."
m_type = 1
if ("clap","claps")
if (!src.restrained())
if("clap","claps")
if(!src.restrained())
message = "<B>[src]</B> claps."
m_type = 2
if ("flap","flaps")
if (!src.restrained())
if("flap","flaps")
if(!src.restrained())
message = "<B>[src]</B> flaps its wings."
m_type = 2
if ("aflap","aflaps")
if (!src.restrained())
if("aflap","aflaps")
if(!src.restrained())
message = "<B>[src]</B> flaps its wings ANGRILY!"
m_type = 2
if ("twitch")
if("twitch")
message = "<B>[src]</B> twitches violently."
m_type = 1
if ("twitch_s","twitches")
if("twitch_s","twitches")
message = "<B>[src]</B> twitches."
m_type = 1
if ("nod","nods")
if("nod","nods")
message = "<B>[src]</B> nods."
m_type = 1
if ("deathgasp")
if("deathgasp")
message = "<B>[src]</B> shudders violently for a moment, then becomes motionless, its eyes slowly darkening."
m_type = 1
if ("glare","glares")
if("glare","glares")
var/M = null
if (param)
for (var/mob/A in view(null, null))
if (param == A.name)
if(param)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if (!M)
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> glares at [param]."
else
message = "<B>[src]</B> glares."
if ("stare","stares")
if("stare","stares")
var/M = null
if (param)
for (var/mob/A in view(null, null))
if (param == A.name)
if(param)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if (!M)
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> stares at [param]."
else
message = "<B>[src]</B> stares."
if ("look","looks")
if("look","looks")
var/M = null
if (param)
for (var/mob/A in view(null, null))
if (param == A.name)
if(param)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if (!M)
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> looks at [param]."
else
message = "<B>[src]</B> looks."
@@ -135,7 +135,7 @@
if("law")
if (istype(module,/obj/item/weapon/robot_module/security))
if(istype(module,/obj/item/weapon/robot_module/security))
message = "<B>[src]</B> shows its legal authorization barcode."
playsound(src.loc, 'sound/voice/biamthelaw.ogg', 50, 0)
@@ -144,7 +144,7 @@
to_chat(src, "You are not THE LAW, pal.")
if("halt")
if (istype(module,/obj/item/weapon/robot_module/security))
if(istype(module,/obj/item/weapon/robot_module/security))
message = "<B>[src]</B>'s speakers skreech, \"Halt! Security!\"."
playsound(src.loc, 'sound/voice/halt.ogg', 50, 0)
@@ -152,12 +152,12 @@
else
to_chat(src, "You are not security.")
if ("flip","flips")
if("flip","flips")
m_type = 1
message = "<B>[src]</B> does a flip!"
src.SpinAnimation(5,1)
if ("help")
if("help")
to_chat(src, "salute, bow-(none)/mob, clap, flap, aflap, twitch, twitches, nod, deathgasp, glare-(none)/mob, stare-(none)/mob, look,\n law, halt")
..(act, m_type, message)
@@ -7,19 +7,19 @@
if(act_module)
msg += "It is holding [bicon(act_module)] \a [act_module].\n"
msg += "<span class='warning'>"
if (src.getBruteLoss())
if (src.getBruteLoss() < 75)
if(src.getBruteLoss())
if(src.getBruteLoss() < 75)
msg += "It looks slightly dented.\n"
else
msg += "<B>It looks severely dented!</B>\n"
if (src.getFireLoss())
if (src.getFireLoss() < 75)
if(src.getFireLoss())
if(src.getFireLoss() < 75)
msg += "It looks slightly charred.\n"
else
msg += "<B>It looks severely burnt and heat-warped!</B>\n"
if (src.fire_stacks < 0)
if(src.fire_stacks < 0)
msg += "It's covered in water.\n"
if (src.fire_stacks > 0)
if(src.fire_stacks > 0)
msg += "It's coated in something flammable.\n"
msg += "</span>"
@@ -40,7 +40,7 @@
if(print_flavor_text()) msg += "\n[print_flavor_text()]\n"
if (pose)
if(pose)
if( findtext(pose,".",lentext(pose)) == 0 && findtext(pose,"!",lentext(pose)) == 0 && findtext(pose,"?",lentext(pose)) == 0 )
pose = addtext(pose,".") //Makes sure all emotes end with a period.
msg += "\nIt is [pose]"
@@ -45,7 +45,7 @@
if(activated(O))
to_chat(src, "Already activated")
return
if (is_component_functioning("power cell") && cell)
if(is_component_functioning("power cell") && cell)
if(istype(O, /obj/item/borg))
var/obj/item/borg/B = O
if(B.powerneeded)
@@ -7,12 +7,12 @@
laws_sanity_check()
var/who
if (everyone)
if(everyone)
who = world
else
who = src
if(lawupdate)
if (connected_ai)
if(connected_ai)
if(connected_ai.stat || connected_ai.control_disabled)
to_chat(src, "<b>AI signal lost, unable to sync laws.</b>")
@@ -30,11 +30,11 @@
to_chat(who, "<b>Obey these laws:</b>")
laws.show_laws(who)
// TODO: Update to new antagonist system.
if (mind && (mind.special_role == "traitor" && mind.original == src) && connected_ai)
if(mind && (mind.special_role == "traitor" && mind.original == src) && connected_ai)
to_chat(who, "<b>Remember, [connected_ai.name] is technically your master, but your objective comes first.</b>")
else if (connected_ai)
else if(connected_ai)
to_chat(who, "<b>Remember, [connected_ai.name] is your master, other AIs can be ignored.</b>")
else if (emagged)
else if(emagged)
to_chat(who, "<b>Remember, you are not required to listen to the AI.</b>")
else
to_chat(who, "<b>Remember, you are not bound to any AI, you are not required to listen to them.</b>")
@@ -43,7 +43,7 @@
/mob/living/silicon/robot/lawsync()
laws_sanity_check()
var/datum/ai_laws/master = connected_ai && lawupdate ? connected_ai.laws : null
if (master)
if(master)
master.sync(src)
..()
return
@@ -2,7 +2,7 @@
set invisibility = 0
set background = BACKGROUND_ENABLED
if (src.notransform)
if(src.notransform)
return
//Status updates, death etc.
@@ -22,9 +22,9 @@
/mob/living/silicon/robot/proc/use_power()
if (stat == DEAD)
if(stat == DEAD)
return
else if (is_component_functioning("power cell") && cell)
else if(is_component_functioning("power cell") && cell)
if(module)
for(var/obj/item/borg/B in get_all_slots())
if(B.powerneeded)
@@ -232,7 +232,7 @@
/mob/living/silicon/robot/proc/update_items()
if (client)
if(client)
for(var/obj/I in get_all_slots())
client.screen |= I
if(module_state_1)
@@ -1,12 +1,12 @@
/mob/living/silicon/robot/proc/photosync()
var/obj/item/device/camera/siliconcam/master_cam = connected_ai ? connected_ai.aiCamera : null
if (!master_cam)
if(!master_cam)
return
var/synced
synced = 0
for(var/datum/picture/z in aiCamera.aipictures)
if (!(master_cam.aipictures.Find(z)))
if(!(master_cam.aipictures.Find(z)))
aiCamera.printpicture(null, z)
synced = 1
if(synced)
+51 -51
View File
@@ -168,7 +168,7 @@ var/list/robot_verbs_default = list(
setup_PDA()
//We also need to update name of internal camera.
if (camera)
if(camera)
camera.c_tag = newname
//Check for custom sprite
@@ -221,7 +221,7 @@ var/list/robot_verbs_default = list(
// setup the PDA and its name
/mob/living/silicon/robot/proc/setup_PDA()
if (!rbPDA)
if(!rbPDA)
rbPDA = new(src)
rbPDA.set_name_and_job(real_name, braintype)
if(scrambledcodes)
@@ -375,7 +375,7 @@ var/list/robot_verbs_default = list(
module.add_subsystems(src)
//Custom_sprite check and entry
if (custom_sprite == 1)
if(custom_sprite == 1)
module_sprites["Custom"] = "[src.ckey]-[modtype]"
hands.icon_state = lowertext(module.module_type)
@@ -411,7 +411,7 @@ var/list/robot_verbs_default = list(
return null
var/dat = "<HEAD><TITLE>[src.name] Self-Diagnosis Report</TITLE></HEAD><BODY>\n"
for (var/V in components)
for(var/V in components)
var/datum/robot_component/C = components[V]
dat += "<b>[C.name]</b><br><table><tr><td>Power consumption</td><td>[C.energy_consumption]</td></tr><tr><td>Brute Damage:</td><td>[C.brute_damage]</td></tr><tr><td>Electronics Damage:</td><td>[C.electronics_damage]</td></tr><tr><td>Powered:</td><td>[(!C.energy_consumption || C.is_powered()) ? "Yes" : "No"]</td></tr><tr><td>Toggled:</td><td>[ C.toggled ? "Yes" : "No"]</td></table><br>"
@@ -467,7 +467,7 @@ var/list/robot_verbs_default = list(
src.verbs -= silicon_subsystems
/mob/living/silicon/robot/blob_act()
if (stat != 2)
if(stat != 2)
adjustBruteLoss(60)
updatehealth()
return 1
@@ -481,7 +481,7 @@ var/list/robot_verbs_default = list(
..()
if(ticker && ticker.mode.name == "AI malfunction")
var/datum/game_mode/malfunction/malf = ticker.mode
for (var/datum/mind/malfai in malf.malf_ai)
for(var/datum/mind/malfai in malf.malf_ai)
if(connected_ai)
if(connected_ai.mind == malfai)
if(malf.apcs >= 3)
@@ -495,7 +495,7 @@ var/list/robot_verbs_default = list(
/mob/living/silicon/robot/proc/show_jetpack_pressure()
// if you have a jetpack, show the internal tank pressure
var/obj/item/weapon/tank/jetpack/current_jetpack = installed_jetpack()
if (current_jetpack)
if(current_jetpack)
stat("Internal Atmosphere Info", current_jetpack.name)
stat("Tank Pressure", current_jetpack.air_contents.return_pressure())
@@ -519,7 +519,7 @@ var/list/robot_verbs_default = list(
/mob/living/silicon/robot/Stat()
..()
statpanel("Status")
if (client.statpanel == "Status")
if(client.statpanel == "Status")
show_cell_power()
show_jetpack_pressure()
@@ -533,11 +533,11 @@ var/list/robot_verbs_default = list(
gib()
return
if(2.0)
if (stat != 2)
if(stat != 2)
adjustBruteLoss(60)
adjustFireLoss(60)
if(3.0)
if (stat != 2)
if(stat != 2)
adjustBruteLoss(30)
return
@@ -551,7 +551,7 @@ var/list/robot_verbs_default = list(
/mob/living/silicon/robot/Bump(atom/movable/AM as mob|obj, yes)
spawn( 0 )
if ((!( yes ) || now_pushing))
if((!( yes ) || now_pushing))
return
now_pushing = 1
if(ismob(AM))
@@ -566,13 +566,13 @@ var/list/robot_verbs_default = list(
return
now_pushing = 0
..()
if (!istype(AM, /atom/movable))
if(!istype(AM, /atom/movable))
return
if (!now_pushing)
if(!now_pushing)
now_pushing = 1
if (!AM.anchored)
if(!AM.anchored)
var/t = get_dir(src, AM)
if (istype(AM, /obj/structure/window/full))
if(istype(AM, /obj/structure/window/full))
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
return
@@ -582,7 +582,7 @@ var/list/robot_verbs_default = list(
return
/mob/living/silicon/robot/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/restraints/handcuffs)) // fuck i don't even know why isrobot() in handcuff code isn't working so this will have to do
if(istype(W, /obj/item/weapon/restraints/handcuffs)) // fuck i don't even know why isrobot() in handcuff code isn't working so this will have to do
return
if(opened) // Are they trying to insert something?
@@ -604,15 +604,15 @@ var/list/robot_verbs_default = list(
return
if (istype(W, /obj/item/weapon/weldingtool) && user.a_intent == I_HELP)
if(istype(W, /obj/item/weapon/weldingtool) && user.a_intent == I_HELP)
if(W == module_active)
return
if (!getBruteLoss())
if(!getBruteLoss())
to_chat(user, "<span class='notice'>Nothing to fix!</span>")
return
var/obj/item/weapon/weldingtool/WT = W
user.changeNext_move(CLICK_CD_MELEE)
if (WT.remove_fuel(0))
if(WT.remove_fuel(0))
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
adjustBruteLoss(-30)
updatehealth()
@@ -624,7 +624,7 @@ var/list/robot_verbs_default = list(
else if(istype(W, /obj/item/stack/cable_coil) && user.a_intent == I_HELP && (wiresexposed || istype(src,/mob/living/silicon/robot/drone)))
if (!getFireLoss())
if(!getFireLoss())
to_chat(user, "<span class='notice'>Nothing to fix!</span>")
return
var/obj/item/stack/cable_coil/coil = W
@@ -634,7 +634,7 @@ var/list/robot_verbs_default = list(
coil.use(1)
user.visible_message("<span class='alert'>\The [user] fixes some of the burnt wires on \the [src] with \the [coil].</span>")
else if (istype(W, /obj/item/weapon/crowbar)) // crowbar means open or close the cover
else if(istype(W, /obj/item/weapon/crowbar)) // crowbar means open or close the cover
if(opened)
if(cell)
to_chat(user, "You close the cover.")
@@ -693,7 +693,7 @@ var/list/robot_verbs_default = list(
opened = 1
update_icons()
else if (istype(W, /obj/item/weapon/stock_parts/cell) && opened) // trying to put a cell inside
else if(istype(W, /obj/item/weapon/stock_parts/cell) && opened) // trying to put a cell inside
var/datum/robot_component/C = components["power cell"]
if(wiresexposed)
to_chat(user, "Close the panel first.")
@@ -713,8 +713,8 @@ var/list/robot_verbs_default = list(
C.electronics_damage = 0
diag_hud_set_borgcell()
else if (istype(W, /obj/item/weapon/wirecutters) || istype(W, /obj/item/device/multitool))
if (wiresexposed)
else if(istype(W, /obj/item/weapon/wirecutters) || istype(W, /obj/item/device/multitool))
if(wiresexposed)
wires.Interact(user)
else
to_chat(user, "You can't reach the wiring.")
@@ -737,7 +737,7 @@ var/list/robot_verbs_default = list(
else
to_chat(user, "Unable to locate a radio.")
else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card
else if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card
if(emagged)//still allow them to open the cover
to_chat(user, "The interface seems slightly damaged")
if(opened)
@@ -847,28 +847,28 @@ var/list/robot_verbs_default = list(
to_chat(usr, "You unlock your cover.")
/mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
if (!ticker)
if(!ticker)
to_chat(M, "You cannot attack people before the game has started.")
return
if (istype(loc, /turf) && istype(loc.loc, /area/start))
if(istype(loc, /turf) && istype(loc.loc, /area/start))
to_chat(M, "No attacking people at spawn, you jackass.")
return
switch(M.a_intent)
if (I_HELP)
if(I_HELP)
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
if((O.client && !( O.blinded )))
O.show_message(text("<span class='notice'>[M] caresses [src]'s plating with its scythe like arm.</span>"), 1)
if (I_GRAB)
if(I_GRAB)
grabbedby(M)
if (I_HARM)
if(I_HARM)
M.do_attack_animation(src)
var/damage = rand(10, 20)
if (prob(90))
if(prob(90))
playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has slashed at [src]!</span>",\
"<span class='userdanger'>[M] has slashed at [src]!</span>")
@@ -881,10 +881,10 @@ var/list/robot_verbs_default = list(
visible_message("<span class='danger'>[M] took a swipe at [src]!</span>", \
"<span class='userdanger'>[M] took a swipe at [src]!</span>")
if (I_DISARM)
if(I_DISARM)
if(!(lying))
M.do_attack_animation(src)
if (prob(85))
if(prob(85))
Stun(7)
step(src,get_dir(M,src))
spawn(5)
@@ -960,7 +960,7 @@ var/list/robot_verbs_default = list(
diag_hud_set_borgcell()
if(!opened && (!istype(user, /mob/living/silicon)))
if (user.a_intent == I_HELP)
if(user.a_intent == I_HELP)
user.visible_message("<span class='notice'>[user] pets [src]!</span>", \
"<span class='notice'>You pet [src]!</span>")
@@ -1015,7 +1015,7 @@ var/list/robot_verbs_default = list(
var/combat = list("Combat","Peacekeeper")
if(modtype in combat)
if (base_icon == "")
if(base_icon == "")
base_icon = icon_state
if(module_active && istype(module_active,/obj/item/borg/combat/mobility))
icon_state = "[base_icon]-roll"
@@ -1050,14 +1050,14 @@ var/list/robot_verbs_default = list(
<B>Installed Modules</B><BR><BR>
<table border='0'>"}
for (var/obj in module.modules)
if (!obj)
for(var/obj in module.modules)
if(!obj)
dat += text("<tr><td><B>Resource depleted</B></td></tr>")
else if(activated(obj))
dat += text("<tr><td>[obj]</td><td><B>Activated</B></td></tr>")
else
dat += text("<tr><td>[obj]</td><td><A HREF=?src=\ref[src];act=\ref[obj]>Activate</A></td></tr>")
if (emagged)
if(emagged)
if(activated(module.emag))
dat += text("<tr><td>[module.emag]</td><td><B>Activated</B></td></tr>")
else
@@ -1081,31 +1081,31 @@ var/list/robot_verbs_default = list(
if(usr != src)
return 1
if (href_list["mach_close"])
if(href_list["mach_close"])
var/t1 = text("window=[href_list["mach_close"]]")
unset_machine()
src << browse(null, t1)
return 1
if (href_list["showalerts"])
if(href_list["showalerts"])
subsystem_alarm_monitor()
return 1
if (href_list["mod"])
if(href_list["mod"])
var/obj/item/O = locate(href_list["mod"])
if (istype(O) && (O.loc == src))
if(istype(O) && (O.loc == src))
O.attack_self(src)
return 1
if (href_list["act"])
if(href_list["act"])
var/obj/item/O = locate(href_list["act"])
if (!istype(O) || !(O.loc == src || O.loc == src.module))
if(!istype(O) || !(O.loc == src || O.loc == src.module))
return 1
activate_module(O)
installed_modules()
if (href_list["deact"])
if(href_list["deact"])
var/obj/item/O = locate(href_list["deact"])
if(activated(O))
if(module_state_1 == O)
@@ -1173,7 +1173,7 @@ var/list/robot_verbs_default = list(
var/turf/tile = loc
if(isturf(tile))
tile.clean_blood()
if (istype(tile, /turf/simulated))
if(istype(tile, /turf/simulated))
var/turf/simulated/S = tile
S.dirt = 0
for(var/A in tile)
@@ -1246,7 +1246,7 @@ var/list/robot_verbs_default = list(
set src = usr
var/obj/item/W = get_active_hand()
if (W)
if(W)
W.attack_self(src)
return
@@ -1271,7 +1271,7 @@ var/list/robot_verbs_default = list(
var/icontype
if (custom_sprite == 1)
if(custom_sprite == 1)
icontype = "Custom"
triesleft = 0
else
@@ -1292,7 +1292,7 @@ var/list/robot_verbs_default = list(
update_icons()
if (triesleft >= 1)
if(triesleft >= 1)
var/choice = input("Look at your icon - is this what you want?") in list("Yes","No")
if(choice=="No")
choose_icon(triesleft, module_sprites)
@@ -1329,7 +1329,7 @@ var/list/robot_verbs_default = list(
sync()
/mob/living/silicon/robot/adjustOxyLoss(var/amount)
if (suiciding)
if(suiciding)
..()
/mob/living/silicon/robot/regenerate_icons()
@@ -4,7 +4,7 @@
stat = CONSCIOUS
return
health = maxHealth - (getOxyLoss() + getFireLoss() + getBruteLoss())
if (stat == DEAD && health > 0)
if(stat == DEAD && health > 0)
update_revive()
var/mob/dead/observer/ghost = get_ghost()
if(ghost)
@@ -17,7 +17,7 @@
select_colour(user)
if("Mode")
if (mode == 1)
if(mode == 1)
mode = 2
else
mode = 1
@@ -30,10 +30,10 @@
// see code\modules\paperwork\paper.dm line 62
/obj/item/weapon/pen/multi/robopen/proc/RenamePaper(mob/user as mob,obj/paper as obj)
if ( !user || !paper )
if( !user || !paper )
return
var/n_name = input(user, "What would you like to label the paper?", "Paper Labelling", null) as text
if ( !user || !paper )
if( !user || !paper )
return
n_name = copytext(n_name, 1, 32)
@@ -87,7 +87,7 @@
set src in range(0)
var/N = input("How much damage should the shield absorb?") in list("5","10","25","50","75","100")
if (N)
if(N)
shield_level = text2num(N)/100
/obj/item/borg/combat/mobility
@@ -507,7 +507,7 @@
//checks whether this item is a module of the robot it is located in.
/obj/item/proc/is_robot_module()
if (!istype(src.loc, /mob/living/silicon/robot))
if(!istype(src.loc, /mob/living/silicon/robot))
return 0
var/mob/living/silicon/robot/R = src.loc
+10 -10
View File
@@ -20,7 +20,7 @@
if(message_mode == "department")
return holopad_talk(message, verb, speaking)
else if(message_mode)
if (aiRadio.disabledAi || aiRestorePowerRoutine || stat)
if(aiRadio.disabledAi || aiRestorePowerRoutine || stat)
to_chat(src, "<span class='danger'>System Error - Transceiver Disabled.</span>")
return 0
if(message_mode == "general")
@@ -41,9 +41,9 @@
/mob/living/silicon/say_quote(var/text)
var/ending = copytext(text, length(text))
if (ending == "?")
if(ending == "?")
return speak_query
else if (ending == "!")
else if(ending == "!")
return speak_exclamation
return speak_statement
@@ -54,14 +54,14 @@
/mob/living/silicon/say_understands(var/other,var/datum/language/speaking = null)
//These only pertain to common. Languages are handled by mob/say_understands()
if (!speaking)
if (istype(other, /mob/living/carbon))
if(!speaking)
if(istype(other, /mob/living/carbon))
return 1
if (istype(other, /mob/living/silicon))
if(istype(other, /mob/living/silicon))
return 1
if (istype(other, /mob/living/simple_animal/bot))
if(istype(other, /mob/living/simple_animal/bot))
return 1
if (istype(other, /mob/living/carbon/brain))
if(istype(other, /mob/living/carbon/brain))
return 1
return ..()
@@ -72,7 +72,7 @@
message = trim(message)
if (!message)
if(!message)
return
var/obj/machinery/hologram/holopad/T = src.holo
@@ -113,7 +113,7 @@
message = trim(message)
if (!message)
if(!message)
return
var/obj/machinery/hologram/holopad/T = src.holo
+13 -13
View File
@@ -130,7 +130,7 @@
/proc/islinked(var/mob/living/silicon/robot/bot, var/mob/living/silicon/ai/ai)
if(!istype(bot) || !istype(ai))
return 0
if (bot.connected_ai == ai)
if(bot.connected_ai == ai)
return 1
return 0
@@ -163,15 +163,15 @@
return universal_speak || (speaking in src.speech_synthesizer_langs) //need speech synthesizer support to vocalize a language
/mob/living/silicon/add_language(var/language, var/can_speak=1)
if (..(language) && can_speak)
if(..(language) && can_speak)
speech_synthesizer_langs.Add(all_languages[language])
return 1
/mob/living/silicon/remove_language(var/rem_language)
..(rem_language)
for (var/datum/language/L in speech_synthesizer_langs)
if (L.name == rem_language)
for(var/datum/language/L in speech_synthesizer_langs)
if(L.name == rem_language)
speech_synthesizer_langs -= L
/mob/living/silicon/check_languages()
@@ -209,7 +209,7 @@
onclose(src, "airoster")
/mob/living/silicon/Bump(atom/movable/AM as mob|obj, yes) //Allows the AI to bump into mobs if it's itself pushed
if ((!( yes ) || now_pushing))
if((!( yes ) || now_pushing))
return
now_pushing = 1
if(ismob(AM))
@@ -219,13 +219,13 @@
return
now_pushing = 0
..()
if (!istype(AM, /atom/movable))
if(!istype(AM, /atom/movable))
return
if (!now_pushing)
if(!now_pushing)
now_pushing = 1
if (!AM.anchored)
if(!AM.anchored)
var/t = get_dir(src, AM)
if (istype(AM, /obj/structure/window))
if(istype(AM, /obj/structure/window))
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
@@ -278,16 +278,16 @@
var/sensor_type = input("Please select sensor type.", "Sensor Integration", null) in list("Security", "Medical","Diagnostic","Disable")
remove_med_sec_hud()
switch(sensor_type)
if ("Security")
if("Security")
add_sec_hud()
to_chat(src, "<span class='notice'>Security records overlay enabled.</span>")
if ("Medical")
if("Medical")
add_med_hud()
to_chat(src, "<span class='notice'>Life signs monitor overlay enabled.</span>")
if ("Diagnostic")
if("Diagnostic")
add_diag_hud()
to_chat(src, "<span class='notice'>Robotics diagnostic overlay enabled.</span>")
if ("Disable")
if("Disable")
to_chat(src, "Sensor augmentations disabled.")
/mob/living/silicon/proc/receive_alarm(var/datum/alarm_handler/alarm_handler, var/datum/alarm/alarm, was_raised)
@@ -325,7 +325,7 @@
else
to_chat(user, "<span class='notice'>You attempt to pull [paicard] free...</span>")
if(do_after(user, 30, target = src))
if (paicard)
if(paicard)
user.visible_message("<span class='notice'>[user] uses [W] to pull [paicard] out of [bot_name]!</span>","<span class='notice'>You pull [paicard] out of [bot_name] with [W].</span>")
ejectpai(user)
else
@@ -417,7 +417,7 @@ Pass the desired type path itself, declaring a temporary var beforehand is not r
*/
/mob/living/simple_animal/bot/proc/scan(scan_type, old_target, scan_range = DEFAULT_SCAN_RANGE)
var/final_result
for (var/scan in shuffle(view(scan_range, src))) //Search for something in range!
for(var/scan in shuffle(view(scan_range, src))) //Search for something in range!
if(!istype(scan, scan_type)) //Check that the thing we found is the type we want!
continue //If not, keep searching!
if( (scan in ignore_list) || (scan == old_target) ) //Filter for blacklisted elements, usually unreachable or previously processed oness
@@ -323,7 +323,7 @@ Auto Patrol[]"},
return
anchored = 0
threatlevel = 0
for (var/mob/living/carbon/C in view(7,src)) //Let's find us a criminal
for(var/mob/living/carbon/C in view(7,src)) //Let's find us a criminal
if((C.stat) || (C.handcuffed))
continue
@@ -1,6 +1,6 @@
/mob/living/simple_animal/bot/emote(var/act, var/m_type=1, var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
if(findtext(act, "-", 1, null))
var/t1 = findtext(act, "-", 1, null)
param = copytext(act, t1 + 1, length(act) + 1)
act = copytext(act, 1, t1)
@@ -30,14 +30,14 @@
if("ping")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> pings at [param]."
else
message = "<B>[src]</B> pings."
@@ -47,14 +47,14 @@
if("buzz")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> buzzes at [param]."
else
message = "<B>[src]</B> buzzes."
@@ -64,14 +64,14 @@
if("beep")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> beeps at [param]."
else
message = "<B>[src]</B> beeps."
@@ -81,14 +81,14 @@
if("yes")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> emits an affirmative blip at [param]."
else
message = "<B>[src]</B> emits an affirmative blip."
@@ -98,14 +98,14 @@
if("no")
var/M = null
if(param)
for (var/mob/A in view(null, null))
if (param == A.name)
for(var/mob/A in view(null, null))
if(param == A.name)
M = A
break
if(!M)
param = null
if (param)
if(param)
message = "<B>[src]</B> emits a negative blip at [param]."
else
message = "<B>[src]</B> emits a negative blip."
@@ -106,8 +106,8 @@
visible_message("[user] crowbars out the power cell from [src].",
"<span class='notice'>You pry the powercell out of [src].</span>")
update_controls()
else if (istype(I, /obj/item/weapon/wrench))
if (health < maxHealth)
else if(istype(I, /obj/item/weapon/wrench))
if(health < maxHealth)
adjustBruteLoss(-25)
updatehealth()
user.visible_message(
@@ -385,7 +385,7 @@ Auto Patrol: []"},
/mob/living/simple_animal/bot/secbot/proc/look_for_perp()
anchored = 0
for (var/mob/living/carbon/C in view(7,src)) //Let's find us a criminal
for(var/mob/living/carbon/C in view(7,src)) //Let's find us a criminal
if((C.stat) || (C.handcuffed))
continue
@@ -44,9 +44,9 @@
..(user)
var/msg = "<span class='info'>"
if (src.health < src.maxHealth)
if(src.health < src.maxHealth)
msg += "<span class='warning'>"
if (src.health >= src.maxHealth/2)
if(src.health >= src.maxHealth/2)
msg += "It looks slightly dented.\n"
else
msg += "<B>It looks severely dented!</B>\n"
@@ -252,7 +252,7 @@
set category = "Behemoth"
set name = "Summon Cultist (300)"
set desc = "Teleport a cultist to your location"
if (istype(usr,/mob/living/simple_animal/constructbehemoth))
if(istype(usr,/mob/living/simple_animal/constructbehemoth))
if(usr.energy<300)
to_chat(usr, "\red You do not have enough power stored!")
@@ -264,12 +264,12 @@
usr.energy -= 300
var/list/mob/living/cultists = new
for(var/datum/mind/H in ticker.mode.cult)
if (istype(H.current,/mob/living))
if(istype(H.current,/mob/living))
cultists+=H.current
var/mob/cultist = input("Choose the one who you want to summon", "Followers of Geometer") as null|anything in (cultists - usr)
if(!cultist)
return
if (cultist == usr) //just to be sure.
if(cultist == usr) //just to be sure.
return
cultist.loc = usr.loc
usr.visible_message("/red [cultist] appears in a flash of red light as [usr] glows with power")*/
@@ -80,8 +80,8 @@
custom_emote(1, "looks at [user] with [pick("an amused","an annoyed","a confused","a resentful", "a happy", "an excited")] expression.")
return
if (istype(O, /obj/item/weapon/razor))
if (shaved)
if(istype(O, /obj/item/weapon/razor))
if(shaved)
to_chat(user, "<span class='warning'>You can't shave this corgi, it's already been shaved!</span>")
return
user.visible_message("[user] starts to shave [src] using \the [O].", "<span class='notice'>You start to shave [src] using \the [O]...</span>")
@@ -437,13 +437,13 @@
step_to(src,movement_target,1)
if(movement_target) //Not redundant due to sleeps, Item can be gone in 6 decisecomds
if (movement_target.loc.x < src.x)
if(movement_target.loc.x < src.x)
dir = WEST
else if (movement_target.loc.x > src.x)
else if(movement_target.loc.x > src.x)
dir = EAST
else if (movement_target.loc.y < src.y)
else if(movement_target.loc.y < src.y)
dir = SOUTH
else if (movement_target.loc.y > src.y)
else if(movement_target.loc.y > src.y)
dir = NORTH
else
dir = SOUTH
@@ -471,7 +471,7 @@
/mob/living/simple_animal/pet/corgi/Ian/Bump(atom/movable/AM as mob|obj, yes)
spawn( 0 )
if ((!( yes ) || now_pushing))
if((!( yes ) || now_pushing))
return
now_pushing = 1
if(ismob(AM))
@@ -488,13 +488,13 @@
tmob.LAssailant = src
now_pushing = 0
..()
if (!( istype(AM, /atom/movable) ))
if(!( istype(AM, /atom/movable) ))
return
if (!( now_pushing ))
if(!( now_pushing ))
now_pushing = 1
if (!( AM.anchored ))
if(!( AM.anchored ))
var/t = get_dir(src, AM)
if (istype(AM, /obj/structure/window/full))
if(istype(AM, /obj/structure/window/full))
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
return
@@ -622,7 +622,7 @@
/mob/living/simple_animal/pet/corgi/Ian/borgi/proc/explode()
for(var/mob/M in viewers(src, null))
if (M.client)
if(M.client)
M.show_message("\red [src] makes an odd whining noise.")
sleep(10)
explosion(get_turf(src), 0, 1, 4, 7)
@@ -631,7 +631,7 @@
/mob/living/simple_animal/pet/corgi/Ian/borgi/proc/shootAt(var/atom/movable/target)
var/turf/T = get_turf(src)
var/turf/U = get_turf(target)
if (!T || !U)
if(!T || !U)
return
var/obj/item/projectile/beam/A = new /obj/item/projectile/beam(loc)
A.icon = 'icons/effects/genetics.dmi'
@@ -647,7 +647,7 @@
..()
if(emagged && prob(25))
var/mob/living/carbon/target = locate() in view(10,src)
if (target)
if(target)
shootAt(target)
//spark for no reason

Some files were not shown because too many files have changed in this diff Show More