@@ -1,4 +1,4 @@
|
||||
#define STUN_SET_AMOUNT 2
|
||||
#define STUN_SET_AMOUNT 40
|
||||
|
||||
/obj/item/organ/cyberimp
|
||||
name = "cybernetic implant"
|
||||
@@ -31,7 +31,7 @@
|
||||
/obj/item/organ/cyberimp/brain/emp_act(severity)
|
||||
if(!owner)
|
||||
return
|
||||
var/stun_amount = 5 + (severity-1 ? 0 : 5)
|
||||
var/stun_amount = 200/severity
|
||||
owner.Stun(stun_amount)
|
||||
to_chat(owner, "<span class='warning'>Your body seizes up!</span>")
|
||||
return stun_amount
|
||||
@@ -107,10 +107,10 @@
|
||||
if(crit_fail)
|
||||
return
|
||||
|
||||
if(owner.stunned > STUN_SET_AMOUNT)
|
||||
owner.stunned = STUN_SET_AMOUNT
|
||||
if(owner.weakened > STUN_SET_AMOUNT)
|
||||
owner.weakened = STUN_SET_AMOUNT
|
||||
if(owner.AmountStun() > STUN_SET_AMOUNT)
|
||||
owner.SetStun(STUN_SET_AMOUNT)
|
||||
if(owner.AmountKnockdown() > STUN_SET_AMOUNT)
|
||||
owner.SetKnockdown(STUN_SET_AMOUNT)
|
||||
|
||||
/obj/item/organ/cyberimp/brain/anti_stun/emp_act(severity)
|
||||
if(crit_fail)
|
||||
|
||||
@@ -49,6 +49,9 @@
|
||||
/obj/item/organ/ears/proc/minimumDeafTicks(value)
|
||||
deaf = max(deaf, value)
|
||||
|
||||
/obj/item/organ/ears/invincible/adjustEarDamage(ddmg, ddeaf)
|
||||
return
|
||||
|
||||
|
||||
/mob/proc/restoreEars()
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
var/sight_flags = 0
|
||||
var/see_in_dark = 2
|
||||
var/eye_damage = 0
|
||||
var/tint = 0
|
||||
var/eye_color = "" //set to a hex code to override a mob's eye color
|
||||
var/old_eye_color = "fff"
|
||||
@@ -110,17 +111,24 @@
|
||||
icon_state = "flashlight_eyes"
|
||||
flash_protect = 2
|
||||
tint = INFINITY
|
||||
var/obj/item/device/flashlight/eyelight/eye
|
||||
|
||||
/obj/item/organ/eyes/robotic/flashlight/emp_act(severity)
|
||||
return
|
||||
|
||||
/obj/item/organ/eyes/robotic/flashlight/Insert(var/mob/living/carbon/M, var/special = 0)
|
||||
..()
|
||||
M.set_light(M.light_range + 15, M.light_power + 1)
|
||||
if(!eye)
|
||||
eye = new /obj/item/device/flashlight/eyelight()
|
||||
eye.on = TRUE
|
||||
eye.forceMove(M)
|
||||
eye.update_brightness(M)
|
||||
|
||||
|
||||
/obj/item/organ/eyes/robotic/flashlight/Remove(var/mob/living/carbon/M, var/special = 0)
|
||||
M.set_light(M.light_range -15, M.light_power - 1)
|
||||
eye.on = FALSE
|
||||
eye.update_brightness(M)
|
||||
eye.forceMove(src)
|
||||
..()
|
||||
|
||||
// Welding shield implant
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
var/obj/S = ..()
|
||||
S.icon_state = "heart-off"
|
||||
return S
|
||||
|
||||
|
||||
/obj/item/organ/heart/on_life()
|
||||
if(owner.client)
|
||||
var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = TRUE)
|
||||
@@ -68,22 +68,6 @@
|
||||
H.playsound_local(get_turf(H),fastbeat,40,0, channel = CHANNEL_HEARTBEAT)
|
||||
beat = BEAT_FAST
|
||||
|
||||
/obj/item/organ/heart/on_life()
|
||||
if(owner.client)
|
||||
var/mob/living/carbon/H = owner
|
||||
if(H.health <= HEALTH_THRESHOLD_CRIT && beat != BEAT_SLOW)
|
||||
beat = BEAT_SLOW
|
||||
H.playsound_local(get_turf(H),'sound/health/slowbeat.ogg',40,0, channel = CHANNEL_HEARTBEAT)
|
||||
to_chat(owner, "<span class = 'notice'>You feel your heart slow down...</span>")
|
||||
if(beat == BEAT_SLOW && H.health > HEALTH_THRESHOLD_CRIT)
|
||||
H.stop_sound_channel(CHANNEL_HEARTBEAT)
|
||||
beat = BEAT_NONE
|
||||
|
||||
if(H.jitteriness)
|
||||
if(!beat || beat == BEAT_SLOW)
|
||||
H.playsound_local(get_turf(H),'sound/health/fastbeat.ogg',40,0, channel = CHANNEL_HEARTBEAT)
|
||||
beat = BEAT_FAST
|
||||
|
||||
/obj/item/organ/heart/cursed
|
||||
name = "cursed heart"
|
||||
desc = "A heart that, when inserted, will force you to pump it manually."
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm (rejected hunks)
|
||||
@@ -51,9 +51,9 @@
|
||||
|
||||
/obj/item/organ/heart/on_life()
|
||||
if(owner.client)
|
||||
- var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = 1)
|
||||
+ var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = TRUE)
|
||||
|
||||
- var/sound/fastbeat = sound('sound/health/fastbeat.ogg', repeat = 1)
|
||||
+ var/sound/fastbeat = sound('sound/health/fastbeat.ogg', repeat = TRUE)
|
||||
var/mob/living/carbon/H = owner
|
||||
if(H.health <= HEALTH_THRESHOLD_CRIT && beat != BEAT_SLOW)
|
||||
beat = BEAT_SLOW
|
||||
@@ -7,7 +7,6 @@
|
||||
/mob/proc/getorganslot(slot)
|
||||
return
|
||||
|
||||
|
||||
/mob/living/carbon/getorgan(typepath)
|
||||
return (locate(typepath) in internal_organs)
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
if(!H.co2overloadtime) // If it's the first breath with too much CO2 in it, lets start a counter, then have them pass out after 12s or so.
|
||||
H.co2overloadtime = world.time
|
||||
else if(world.time - H.co2overloadtime > 120)
|
||||
H.Paralyse(3)
|
||||
H.Unconscious(60)
|
||||
H.adjustOxyLoss(3) // Lets hurt em a little, let them know we mean business
|
||||
if(world.time - H.co2overloadtime > 300) // They've been in here 30s now, lets start to kill them for their own good!
|
||||
H.adjustOxyLoss(8)
|
||||
@@ -179,10 +179,10 @@
|
||||
// N2O
|
||||
|
||||
var/SA_pp = breath.get_breath_partial_pressure(breath_gases["n2o"][MOLES])
|
||||
if(SA_pp > SA_para_min) // Enough to make us paralysed for a bit
|
||||
H.Paralyse(3) // 3 gives them one second to wake up and run away a bit!
|
||||
if(SA_pp > SA_para_min) // Enough to make us stunned for a bit
|
||||
H.Unconscious(60) // 60 gives them one second to wake up and run away a bit!
|
||||
if(SA_pp > SA_sleep_min) // Enough to make us sleep as well
|
||||
H.Sleeping(max(H.sleeping+2, 10))
|
||||
H.Sleeping(max(H.AmountSleeping() + 40, 200))
|
||||
else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning
|
||||
if(prob(20))
|
||||
H.emote(pick("giggle", "laugh"))
|
||||
@@ -251,6 +251,8 @@
|
||||
|
||||
/obj/item/organ/lungs/plasmaman
|
||||
name = "plasma filter"
|
||||
desc = "A spongy rib-shaped mass for filtering plasma from the air."
|
||||
icon_state = "lungs-plasma"
|
||||
|
||||
safe_oxygen_min = 0 //We don't breath this
|
||||
safe_toxins_min = 16 //We breath THIS!
|
||||
|
||||
@@ -150,4 +150,4 @@
|
||||
else
|
||||
ears = new
|
||||
|
||||
ears.Insert(src)
|
||||
ears.Insert(src)
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
/datum/language/draconic,
|
||||
/datum/language/codespeak,
|
||||
/datum/language/monkey,
|
||||
/datum/language/beachbum,
|
||||
/datum/language/narsie,
|
||||
/datum/language/beachbum,
|
||||
/datum/language/ratvar
|
||||
))
|
||||
|
||||
/obj/item/organ/tongue/get_spans()
|
||||
@@ -140,9 +141,7 @@
|
||||
|
||||
/obj/item/organ/tongue/bone
|
||||
name = "bone \"tongue\""
|
||||
desc = "Apparently skeletons alter the sounds they produce \
|
||||
through oscillation of their teeth, hence their characteristic \
|
||||
rattling."
|
||||
desc = "Apparently skeletons alter the sounds they produce through oscillation of their teeth, hence their characteristic rattling."
|
||||
icon_state = "tonguebone"
|
||||
say_mod = "rattles"
|
||||
attack_verb = list("bitten", "chattered", "chomped", "enamelled", "boned")
|
||||
@@ -152,7 +151,7 @@
|
||||
var/phomeme_type = "sans"
|
||||
var/list/phomeme_types = list("sans", "papyrus")
|
||||
|
||||
/obj/item/organ/tongue/bone/New()
|
||||
/obj/item/organ/tongue/bone/Initialize()
|
||||
. = ..()
|
||||
phomeme_type = pick(phomeme_types)
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
//Cut out the name so it doesn't trigger commands
|
||||
found_string = L.first_name()
|
||||
|
||||
else if(L.mind && dd_hasprefix(message, L.mind.assigned_role))
|
||||
else if(L.mind && L.mind.assigned_role && dd_hasprefix(message, L.mind.assigned_role))
|
||||
specific_listeners += L //focus on those with the specified job
|
||||
//Cut out the job so it doesn't trigger commands
|
||||
found_string = L.mind.assigned_role
|
||||
@@ -210,7 +210,7 @@
|
||||
message = copytext(message, 0, 1)+copytext(message, 1 + length(found_string), length(message) + 1)
|
||||
|
||||
var/static/regex/stun_words = regex("stop|wait|stand still|hold on|halt")
|
||||
var/static/regex/weaken_words = regex("drop|fall|trip|weaken")
|
||||
var/static/regex/knockdown_words = regex("drop|fall|trip|knockdown")
|
||||
var/static/regex/sleep_words = regex("sleep|slumber|rest")
|
||||
var/static/regex/vomit_words = regex("vomit|throw up")
|
||||
var/static/regex/silence_words = regex("shut up|silence|ssh|quiet|hush")
|
||||
@@ -258,20 +258,20 @@
|
||||
cooldown = COOLDOWN_STUN
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
L.Stun(3 * power_multiplier)
|
||||
L.Stun(60 * power_multiplier)
|
||||
|
||||
//WEAKEN
|
||||
else if(findtext(message, weaken_words))
|
||||
//KNOCKDOWN
|
||||
else if(findtext(message, knockdown_words))
|
||||
cooldown = COOLDOWN_STUN
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
L.Weaken(3 * power_multiplier)
|
||||
L.Knockdown(60 * power_multiplier)
|
||||
|
||||
//SLEEP
|
||||
else if((findtext(message, sleep_words)))
|
||||
cooldown = COOLDOWN_STUN
|
||||
for(var/mob/living/carbon/C in listeners)
|
||||
C.Sleeping(2 * power_multiplier)
|
||||
C.Sleeping(40 * power_multiplier)
|
||||
|
||||
//VOMIT
|
||||
else if((findtext(message, vomit_words)))
|
||||
@@ -486,9 +486,9 @@
|
||||
var/mob/living/L = V
|
||||
if(L.resting)
|
||||
L.lay_down() //aka get up
|
||||
L.SetStunned(0)
|
||||
L.SetWeakened(0)
|
||||
L.SetParalysis(0) //i said get up i don't care if you're being tazed
|
||||
L.SetStun(0)
|
||||
L.SetKnockdown(0)
|
||||
L.SetUnconscious(0) //i said get up i don't care if you're being tazed
|
||||
|
||||
//SIT
|
||||
else if((findtext(message, sit_words)))
|
||||
@@ -555,7 +555,7 @@
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, get_turf(user), 'sound/items/bikehorn.ogg', 300, 1), 25)
|
||||
if(user.mind && user.mind.assigned_role == "Clown")
|
||||
for(var/mob/living/carbon/C in listeners)
|
||||
C.slip(0,7 * power_multiplier)
|
||||
C.slip(140 * power_multiplier)
|
||||
cooldown = COOLDOWN_MEME
|
||||
|
||||
//RIGHT ROUND
|
||||
|
||||
Reference in New Issue
Block a user