Applies what my mom taught me about conflict resolution

This commit is contained in:
Dave
2019-03-01 18:51:04 -05:00
committed by Unknown
140 changed files with 2769 additions and 833 deletions
+6 -6
View File
@@ -9,21 +9,21 @@
/mob/proc/CanContractDisease(datum/disease/D)
if(stat == DEAD)
return 0
return FALSE
if(D.GetDiseaseID() in resistances)
return 0
return FALSE
if(HasDisease(D))
return 0
return FALSE
if(count_by_type(viruses, /datum/disease/advance) >= 3)
return 0
if(istype(D, /datum/disease/advance) && count_by_type(viruses, /datum/disease/advance) > 0)
return FALSE
if(!(type in D.viable_mobtypes))
return -1 //for stupid fucking monkies
return 1
return TRUE
/mob/proc/ContractDisease(datum/disease/D)
+2 -2
View File
@@ -298,7 +298,7 @@ var/list/advance_cures = list(
if(HasSymptom(S))
return
if(symptoms.len < 5 + rand(-1, 1))
if(symptoms.len < (VIRUS_SYMPTOM_LIMIT - 1) + rand(-1, 1))
symptoms += S
else
RemoveSymptom(pick(symptoms))
@@ -364,7 +364,7 @@ var/list/advance_cures = list(
if(!user)
return
var/i = 5
var/i = VIRUS_SYMPTOM_LIMIT
var/datum/disease/advance/D = new(0, null)
D.symptoms = list()
-8
View File
@@ -48,12 +48,4 @@
if(!D)
name = "Reality Enhancer"
symptoms = list(new/datum/symptom/sensory_restoration)
..(process, D, copy)
// Sensory Destruction
/datum/disease/advance/sensory_destruction/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0)
if(!D)
name = "Reality Destruction"
symptoms = list(new/datum/symptom/sensory_destruction)
..(process, D, copy)
@@ -15,8 +15,8 @@ Bonus
//////////////////////////////////////
*/
/datum/symptom/sensory_restoration
name = "Sensory Restoration"
/datum/symptom/mind_restoration
name = "Mind Restoration"
stealth = -1
resistance = -4
stage_speed = -4
@@ -24,85 +24,42 @@ Bonus
level = 5
severity = 0
/datum/symptom/sensory_restoration/Activate(var/datum/disease/advance/A)
/datum/symptom/mind_restoration/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 3))
var/mob/living/M = A.affected_mob
var/datum/reagents/RD = M.reagents
switch(A.stage)
if(2)
if(RD.check_and_add("oculine", 10, 10))
to_chat(M, "<span class='notice'>Your hearing feels clearer and crisp.</span>")
if(3)
if(RD.check_and_add("antihol", 10, 10))
to_chat(M, "<span class='notice'>You feel sober.</span>")
RD.check_and_add("oculine", 10, 10)
if(4)
if(RD.check_and_add("synaphydramine", 10, 5))
to_chat(M, "<span class='notice'>You feel focused.</span>")
RD.check_and_add("antihol", 10, 10)
RD.check_and_add("oculine", 10, 10)
if(5)
if(RD.check_and_add("mannitol", 10, 10))
to_chat(M, "<span class='notice'>Your mind feels relaxed.</span>")
RD.check_and_add("synaphydramine", 10, 5)
RD.check_and_add("antihol", 10, 10)
RD.check_and_add("oculine", 10, 10)
if(A.stage >= 3)
M.AdjustSlur(-2)
M.AdjustDrunk(-4)
M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3, 0, 1)
if(A.stage >= 4)
M.AdjustDrowsy(-2)
if(RD.has_reagent("lsd"))
RD.remove_reagent("lsd", 5)
if(RD.has_reagent("histamine"))
RD.remove_reagent("histamine", 5)
M.AdjustHallucinate(-10)
if(A.stage >= 5)
RD.check_and_add("mannitol", 10, 10)
return
/*
//////////////////////////////////////
Sensory-Destruction
noticable.
Lowers resistance
Decreases stage speed tremendously.
Decreases transmittablity tremendously.
the drugs hit them so hard they have to focus on not dying
Bonus
The body generates Sensory destructive chemicals.
You cannot taste anything anymore.
ethanol for extremely drunk victim
lsd to break the mind
impedrezene to ruin the brain
//////////////////////////////////////
*/
/datum/symptom/sensory_destruction
name = "Sensory destruction"
/datum/symptom/sensory_restoration
name = "Sensory Restoration"
stealth = -1
resistance = -2
stage_speed = -3
resistance = -3
stage_speed = -2
transmittable = -4
level = 6
severity = 5
level = 4
/datum/symptom/sensory_destruction/Activate(var/datum/disease/advance/A)
/datum/symptom/sensory_restoration/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1)
to_chat(M, "<span class='warning'><b>You can't taste a thing.</b></span>")
if(2)
to_chat(M, "<span class='warning'><b>You can't feel anything.</b></span>")
if(prob(10))
M.reagents.add_reagent("morphine",rand(5,7))
if(3)
M.reagents.add_reagent("ethanol",rand(5,7))
to_chat(M, "<span class='warning'><b>You feel absolutely hammered.</b></span>")
if(prob(15))
M.reagents.add_reagent("morphine",rand(5,7))
if(4)
M.reagents.add_reagent_list(list("ethanol"=rand(7,15),"lsd"=rand(5,10)))
to_chat(M, "<span class='warning'><b>You try to focus on not dying.</b></span>")
if(prob(20))
M.reagents.add_reagent("morphine",rand(5,7))
if(5)
M.reagents.add_reagent_list(list("haloperidol"=rand(5,15),"ethanol"=rand(7,20),"lsd"=rand(5,15)))
to_chat(M, "<span class='warning'><b>u can count 2 potato!</b></span>")
if(prob(25))
M.reagents.add_reagent("morphine",rand(5,7))
return
if(4, 5)
if(M.reagents.get_reagent_amount("oculine") < 20)
M.reagents.add_reagent("oculine", 20)
else
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
to_chat(M, "<span class='notice'>[pick("Your eyes feel great.","You feel like your eyes can focus more clearly.", "You don't feel the need to blink.","Your ears feel great.","Your healing feels more acute.")]</span>")
@@ -1,38 +0,0 @@
/*
//////////////////////////////////////
Stimulant //gotta go fast
Noticable.
Lowers resistance significantly.
Decreases stage speed moderately..
Decreases transmittablity tremendously.
Moderate Level.
Bonus
The body generates Ephedrine.
//////////////////////////////////////
*/
/datum/symptom/stimulant
name = "Stimulant"
stealth = -1
resistance = -3
stage_speed = -2
transmittable = -4
level = 3
/datum/symptom/stimulant/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 10))
var/mob/living/M = A.affected_mob
switch(A.stage)
if(5)
if(M.reagents.get_reagent_amount("ephedrine") < 10)
M.reagents.add_reagent("ephedrine", 10)
else
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
to_chat(M, "<span class='notice'>[pick("You feel restless.", "You feel like running laps around the station.")]</span>")
return
@@ -47,44 +47,4 @@ Bonus
M.BecomeNearsighted()
if(prob(eyes.damage - 10 + 1))
if(M.BecomeBlind())
to_chat(M, "<span class='userdanger'>You go blind!</span>")
/*
//////////////////////////////////////
Ocular Restoration
Noticable.
Lowers resistance significantly.
Decreases stage speed moderately..
Decreases transmittablity tremendously.
High level.
Bonus
Restores eyesight.
//////////////////////////////////////
*/
/datum/symptom/visionaid
name = "Ocular Restoration"
stealth = -1
resistance = -3
stage_speed = -2
transmittable = -4
level = 4
/datum/symptom/visionaid/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
var/mob/living/M = A.affected_mob
switch(A.stage)
if(4, 5)
if(M.reagents.get_reagent_amount("oculine") < 20)
M.reagents.add_reagent("oculine", 20)
else
if(prob(SYMPTOM_ACTIVATION_PROB * 5))
to_chat(M, "<span class='notice'>[pick("Your eyes feel great.", "You are now blinking manually.", "You don't feel the need to blink.")]</span>")
return
to_chat(M, "<span class='userdanger'>You go blind!</span>")
@@ -1,47 +1,6 @@
/*
//////////////////////////////////////
Weight Gain
Very Very Noticable.
Decreases resistance.
Decreases stage speed.
Reduced transmittable.
Intense Level.
Bonus
Increases the weight gain of the mob,
forcing it to eventually turn fat.
//////////////////////////////////////
*/
/datum/symptom/weight_gain
name = "Weight Gain"
stealth = -3
resistance = -3
stage_speed = -2
transmittable = -2
level = 4
severity = 1
/datum/symptom/weight_gain/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2, 3, 4)
to_chat(M, "<span class='warning'>[pick("You feel blubbery.", "Your stomach hurts.")]</span>")
else
M.overeatduration = min(M.overeatduration + 100, 600)
M.nutrition = min(M.nutrition + 100, NUTRITION_LEVEL_FULL)
return
/*
//////////////////////////////////////
Weight Loss
Very Very Noticable.
@@ -77,45 +36,4 @@ Bonus
else
to_chat(M, "<span class='warning'><i>[pick("So hungry...", "You'd kill someone for a bite of food...", "Hunger cramps seize you...")]</i></span>")
M.overeatduration = max(M.overeatduration - 100, 0)
M.nutrition = max(M.nutrition - 100, 0)
return
/*
//////////////////////////////////////
Weight Even
Very Noticable.
Decreases resistance.
Decreases stage speed.
Reduced transmittable.
High level.
Bonus
Causes the weight of the mob to
be even, meaning eating isn't
required anymore.
//////////////////////////////////////
*/
/datum/symptom/weight_even
name = "Weight Even"
stealth = -3
resistance = -2
stage_speed = -2
transmittable = -2
level = 4
/datum/symptom/weight_even/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
switch(A.stage)
if(4, 5)
M.overeatduration = 0
M.nutrition = NUTRITION_LEVEL_WELL_FED + 50
return
M.nutrition = max(M.nutrition - 100, 0)
+1
View File
@@ -30,6 +30,7 @@
var/assigned_role //assigned role is what job you're assigned to when you join the station.
var/special_role //special roles are typically reserved for antags or roles like ERT. If you want to avoid a character being automatically announced by the AI, on arrival (becuase they're an off station character or something); ensure that special_role and assigned_role are equal.
var/offstation_role = FALSE //set to true for ERT, deathsquad, abductors, etc, that can go from and to z2 at will and shouldn't be antag targets
var/list/restricted_roles = list()
var/list/spell_list = list() // Wizard mode & "Give Spell" badmin button.
+10 -1
View File
@@ -825,7 +825,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
cost = 30
containertype = /obj/structure/closet/crate/secure
containername = "IV drip crate"
access = access_cmo
access = access_medical
/datum/supply_packs/medical/surgery
name = "Surgery Crate"
@@ -1036,6 +1036,15 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
containername = "party equipment"
announce_beacons = list("Bar" = list("Bar"))
/datum/supply_packs/organic/bar
name = "Bar Starter Kit"
contains = list(/obj/item/storage/box/drinkingglasses,
/obj/item/circuitboard/soda,
/obj/item/circuitboard/beer)
cost = 20
containername = "beer starter kit"
announce_beacons = list("Bar" = list("Bar"))
//////// livestock
/datum/supply_packs/organic/cow
name = "Cow Crate"
+22 -4
View File
@@ -482,6 +482,16 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
surplus = 25
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/dangerous/sniper_compact //For when you really really hate that one guy.
name = "Compact Sniper Rifle"
desc = "A compact, unscoped version of the operative sniper rifle. Packs a powerful punch, but ammo is limited."
reference = "CSR"
item = /obj/item/gun/projectile/automatic/sniper_rifle/compact
cost = 16
surplus = 0
cant_discount = TRUE
excludefrom = list(/datum/game_mode/nuclear)
/datum/uplink_item/dangerous/crossbow
name = "Energy Crossbow"
desc = "A miniature energy crossbow that is small enough both to fit into a pocket and to slip into a backpack unnoticed by observers. Fires bolts tipped with toxin, a poisonous substance that is the product of a living organism. Stuns enemies for a short period of time. Recharges automatically."
@@ -921,7 +931,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
reference = "PB"
item = /obj/item/pizza_bomb
cost = 5
surplus = 8
surplus = 80
/datum/uplink_item/explosives/grenadier
name = "Grenadier's belt"
@@ -1597,6 +1607,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/storage/box/syndicate
excludefrom = list(/datum/game_mode/nuclear)
cant_discount = TRUE // You fucking wish
var/crate_value = 50
/datum/uplink_item/badass/surplus_crate/super
name = "Syndicate Super Surplus Crate"
desc = "A crate containing 125 telecrystals worth of random syndicate leftovers."
reference = "SYSS"
cost = 40
crate_value = 125
/datum/uplink_item/badass/surplus_crate/spawn_item(turf/loc, obj/item/uplink/U)
var/obj/structure/closet/crate/C = new(loc)
@@ -1604,16 +1622,16 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
var/list/buyable_items = list()
for(var/category in temp_uplink_list)
buyable_items += temp_uplink_list[category]
var/remaining_TC = crate_value
var/list/bought_items = list()
var/list/itemlog = list()
U.uses -= cost
U.used_TC = 20
var/remaining_TC = 50
U.used_TC = cost
var/datum/uplink_item/I
while(remaining_TC)
I = pick(buyable_items)
if(!I.surplus)
if(!I.surplus || prob(100 - I.surplus))
continue
if(I.cost > remaining_TC)
continue