Adds a coverage check to xenoflora splattering, adjusts brainloss across

the board.
This commit is contained in:
Zuhayr
2016-01-31 11:46:56 +10:30
parent b9233680d2
commit 408cb5d8d8
20 changed files with 42 additions and 67 deletions
+1 -1
View File
@@ -159,7 +159,7 @@ var/list/sacrificed = list()
target << "<span class='cult'>Your entire broken soul and being is engulfed in corruption and flames as your mind shatters away into nothing.</span>"
target.hallucination += 5000
target.apply_effect(15, STUTTER)
target.adjustBrainLoss(rand(1,5))
target.adjustBrainLoss(1)
initial_message = 1
if (!target.can_feel_pain())
+1 -2
View File
@@ -110,7 +110,6 @@
//Get the clone body ready
H.adjustCloneLoss(150) // New damage var so you can't eject a clone early then stab them to abuse the current damage system --NeoFite
H.adjustBrainLoss(50) // Even if healed to full health, it will have some brain damage
H.Paralyse(4)
//Here let's calculate their health so the pod doesn't immediately eject them!!!
@@ -170,7 +169,7 @@
occupant.adjustCloneLoss(-2 * heal_rate)
//Premature clones may have brain damage.
occupant.adjustBrainLoss(-1 * heal_rate)
occupant.adjustBrainLoss(-(n_ceil(0.5*heal_rate)))
//So clones don't die of oxyloss in a running pod.
if(occupant.reagents.get_reagent_amount("inaprovaline") < 30)
@@ -20,13 +20,8 @@
if (!ishuman(user) && !istype(user,/mob/living/silicon/robot))
return ..(user)
var/mob/living/carbon/human/H = user
if(H.getBrainLoss() >= 60)
return
var/t1 = text("<B>Access control</B><br>\n")
if (last_configurator)
t1 += "Operator: [last_configurator]<br>"
+2 -2
View File
@@ -232,8 +232,8 @@ Class Procs:
*/
if (ishuman(user))
var/mob/living/carbon/human/H = user
if(H.getBrainLoss() >= 60)
visible_message("<span class='warning'>[H] stares cluelessly at [src] and drools.</span>")
if(H.getBrainLoss() >= 55)
visible_message("<span class='warning'>[H] stares cluelessly at [src].</span>")
return 1
else if(prob(H.getBrainLoss()))
user << "<span class='warning'>You momentarily forget how to use [src].</span>"
@@ -40,7 +40,7 @@
add_fingerprint(user)
if(on && user.zone_sel.selecting == O_EYES)
if(((CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50)) //too dumb to use flashlight properly
if((CLUMSY in user.mutations) && prob(50)) //too dumb to use flashlight properly
return ..() //just hit them in the head
var/mob/living/carbon/human/H = M //mob has protective eyewear
+4 -4
View File
@@ -26,7 +26,7 @@ REAGENT SCANNER
/obj/item/device/healthanalyzer/attack(mob/living/M as mob, mob/living/user as mob)
if (( (CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50))
if ((CLUMSY in user.mutations) && prob(50))
user << text("<span class='warning'>You try to analyze the floor's vitals!</span>")
for(var/mob/O in viewers(M, null))
O.show_message("<span class='warning'>\The [user] has analyzed the floor's vitals!</span>", 1)
@@ -130,10 +130,10 @@ REAGENT SCANNER
// user.show_message("<span class='notice'>Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.</span>")
if (M.has_brain_worms())
user.show_message("<span class='warning'>Subject suffering from aberrant brain activity. Recommend further scanning.</span>")
else if (M.getBrainLoss() >= 100 || !M.has_brain())
else if (M.getBrainLoss() >= 60 || !M.has_brain())
user.show_message("<span class='warning'>Subject is brain dead.</span>")
else if (M.getBrainLoss() >= 60)
user.show_message("<span class='warning'>Severe brain damage detected. Subject likely to have a traumatic brain injury!.</span>")
else if (M.getBrainLoss() >= 25)
user.show_message("<span class='warning'>Severe brain damage detected. Subject likely to have a traumatic brain injury.</span>")
else if (M.getBrainLoss() >= 10)
user.show_message("<span class='warning'>Significant brain damage detected. Subject may have had a concussion.</span>")
if(ishuman(M))
+4 -4
View File
@@ -2,8 +2,8 @@
name = "mousetrap"
desc = "A handy little spring-loaded trap for catching pesty rodents."
icon_state = "mousetrap"
origin_tech = list(TECH_COMBAT = 1)
matter = list(DEFAULT_WALL_MATERIAL = 100, "waste" = 10)
origin_tech = list(TECH_COMBAT = 1)
matter = list(DEFAULT_WALL_MATERIAL = 100, "waste" = 10)
var/armed = 0
@@ -54,7 +54,7 @@
if(!armed)
user << "<span class='notice'>You arm [src].</span>"
else
if(((user.getBrainLoss() >= 60 || (CLUMSY in user.mutations)) && prob(50)))
if((CLUMSY in user.mutations) && prob(50))
var/which_hand = "l_hand"
if(!user.hand)
which_hand = "r_hand"
@@ -70,7 +70,7 @@
attack_hand(mob/living/user as mob)
if(armed)
if(((user.getBrainLoss() >= 60 || CLUMSY in user.mutations)) && prob(50))
if((CLUMSY in user.mutations) && prob(50))
var/which_hand = "l_hand"
if(!user.hand)
which_hand = "r_hand"
+14 -4
View File
@@ -153,7 +153,6 @@
if(!body_coverage)
return
target << "<span class='danger'>You are stung by \the [fruit]!</span>"
for(var/rid in chems)
var/injecting = min(5,max(1,get_trait(TRAIT_POTENCY)/5))
@@ -178,9 +177,20 @@
for(var/mob/living/M in T.contents)
if(!M.reagents)
continue
for(var/chem in chems)
var/injecting = min(5,max(1,get_trait(TRAIT_POTENCY)/3))
M.reagents.add_reagent(chem,injecting)
var/body_coverage = HEAD|FACE|EYES|UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
for(var/obj/item/clothing/clothes in M)
if(M.l_hand == clothes || M.r_hand == clothes)
continue
body_coverage &= ~(clothes.body_parts_covered)
if(!body_coverage)
continue
var/datum/reagents/R = M.reagents
var/mob/living/carbon/human/H = M
if(istype(H))
R = H.touching
if(istype(R))
for(var/chem in chems)
R.add_reagent(chem,min(5,max(1,get_trait(TRAIT_POTENCY)/3)))
//Applies an effect to a target atom.
/datum/seed/proc/thrown_at(var/obj/item/thrown,var/atom/target, var/force_explode)
@@ -243,9 +243,6 @@
msg += "</span>"
if(getBrainLoss() >= 60)
msg += "[T.He] [T.has] a stupid expression on [T.his] face.\n"
var/ssd_msg = species.get_ssd(src)
if(ssd_msg && (!should_have_organ("brain") || has_brain()) && stat != DEAD)
if(!key)
@@ -190,17 +190,6 @@
speech_problem_flag = 1
if (prob(10))
stuttering = max(10, stuttering)
// No. -- cib
/*if (getBrainLoss() >= 60 && stat != 2)
if (prob(3))
switch(pick(1,2,3))
if(1)
say(pick("IM A PONY NEEEEEEIIIIIIIIIGH", "without oxigen blob don't evoluate?", "CAPTAINS A COMDOM", "[pick("", "that meatball traitor")] [pick("joerge", "george", "gorge", "gdoruge")] [pick("mellens", "melons", "mwrlins")] is grifing me HAL;P!!!", "can u give me [pick("telikesis","halk","eppilapse")]?", "THe saiyans screwed", "Bi is THE BEST OF BOTH WORLDS>", "I WANNA PET TEH monkeyS", "stop grifing me!!!!", "SOTP IT#"))
if(2)
say(pick("FUS RO DAH","fucking 4rries!", "stat me", ">my face", "roll it easy!", "waaaaaagh!!!", "red wonz go fasta", "FOR TEH EMPRAH", "lol2cat", "dem dwarfs man, dem dwarfs", "SPESS MAHREENS", "hwee did eet fhor khayosss", "lifelike texture ;_;", "luv can bloooom", "PACKETS!!!"))
if(3)
emote("drool")
*/
if(stat != 2)
var/rn = rand(0, 200)
@@ -143,16 +143,6 @@
if(parent[3])
speech_problem_flag = 1
var/braindam = getBrainLoss()
if(braindam >= 60)
speech_problem_flag = 1
if(prob(braindam/4))
message = stutter(message)
verb = pick("stammers", "stutters")
if(prob(braindam))
message = uppertext(message)
verb = "yells loudly"
var/list/returns[3]
returns[1] = message
returns[2] = verb
@@ -17,7 +17,7 @@
var/mode = 1;
/obj/item/device/robotanalyzer/attack(mob/living/M as mob, mob/living/user as mob)
if(( (CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50))
if((CLUMSY in user.mutations) && prob(50))
user << text("\red You try to analyze the floor's vitals!")
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [user] has analyzed the floor's vitals!"), 1)
@@ -83,7 +83,7 @@
return
if(prob(5))
host.adjustBrainLoss(rand(1,2))
host.adjustBrainLoss(0.1)
if(prob(host.brainloss/20))
host.say("*[pick(list("blink","blink_r","choke","aflap","drool","twitch","twitch_s","gasp"))]")
@@ -46,14 +46,14 @@
spawn(rand(200,250)+B.host.brainloss)
if(!B || !B.controlling) return
B.host.adjustBrainLoss(rand(5,10))
B.host.adjustBrainLoss(rand(0.1,0.5))
H << "<span class='danger'>With an immense exertion of will, you regain control of your body!</span>"
B.host << "<span class='danger'>You feel control of the host brain ripped from your grasp, and retract your probosci before the wild neural impulses can damage you.</span>"
B.detatch()
verbs -= /mob/living/carbon/proc/release_control
verbs -= /mob/living/carbon/proc/punish_host
verbs -= /mob/living/carbon/proc/spawn_larvae
return
..()
+3 -7
View File
@@ -853,13 +853,9 @@
if ((!in_range(src, user) || !istype(src.loc, /turf) || hacker)) // AI-hacked APCs cannot be controlled by other AIs, unlinked cyborgs or humans.
return 0
var/mob/living/carbon/human/H = user
if (istype(H))
if(H.getBrainLoss() >= 60)
H.visible_message("<span class='danger'>[H] stares cluelessly at [src] and drools.</span>")
return 0
else if(prob(H.getBrainLoss()))
user << "<span class='danger'>You momentarily forget how to use [src].</span>"
return 0
if (istype(H) && prob(H.getBrainLoss()))
user << "<span class='danger'>You momentarily forget how to use [src].</span>"
return 0
return 1
/obj/machinery/power/apc/Topic(href, href_list)
@@ -135,8 +135,7 @@
on_hit(var/atom/target, var/blocked = 0)
if(ishuman(target))
var/mob/living/carbon/human/M = target
M.adjustBrainLoss(20)
M.hallucination += 20
M.confused += rand(5,8)
/obj/item/projectile/icarus/pointdefense/process()
Icarus_FireLaser(get_turf(original))
@@ -191,7 +191,7 @@
step(M, pick(cardinal))
if(prob(5))
M.emote(pick("twitch", "drool", "moan"))
M.adjustBrainLoss(2)
M.adjustBrainLoss(0.1)
/datum/reagent/nitrogen
name = "Nitrogen"
@@ -394,7 +394,7 @@
return
M.jitteriness = max(M.jitteriness - 5, 0)
if(prob(80))
M.adjustBrainLoss(3 * removed)
M.adjustBrainLoss(0.1 * removed)
if(prob(50))
M.drowsyness = max(M.drowsyness, 3)
if(prob(10))
@@ -13,7 +13,7 @@
C.adjustToxLoss(rand(5,25) * weakness)
C.adjustBruteLoss(rand(5,25) * weakness)
C.adjustFireLoss(rand(5,25) * weakness)
C.adjustBrainLoss(rand(5,25) * weakness)
C.adjustBrainLoss(rand(1,5) * weakness)
C.apply_effect(25 * weakness, IRRADIATE)
C.nutrition -= min(50 * weakness, C.nutrition)
C.make_dizzy(6 * weakness)
@@ -31,7 +31,7 @@
C.adjustFireLoss(1 * weakness)
C.adjustToxLoss(1 * weakness)
C.adjustOxyLoss(1 * weakness)
C.adjustBrainLoss(1 * weakness)
C.adjustBrainLoss(0.1 * weakness)
C.updatehealth()
/datum/artifact_effect/hurt/DoEffectPulse()
@@ -45,5 +45,5 @@
C.adjustFireLoss(3 * weakness)
C.adjustToxLoss(3 * weakness)
C.adjustOxyLoss(3 * weakness)
C.adjustBrainLoss(3 * weakness)
C.adjustBrainLoss(0.1 * weakness)
C.updatehealth()
+1 -1
View File
@@ -241,7 +241,7 @@
if (B && B.damage < B.min_broken_damage)
B.take_damage(5)
else
mob.setBrainLoss(50)
mob.setBrainLoss(10)
/datum/disease2/effect/hallucinations
name = "Hallucinational Syndrome"