Merge branch 'master' of https://github.com/Baystation12/Baystation12 into bleeding-edge-freeze

Conflicts:
	code/game/machinery/hydroponics.dm
	code/modules/reagents/Chemistry-Reagents.dm

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2013-01-21 05:05:17 +10:00
16 changed files with 370 additions and 172 deletions

View File

@@ -775,10 +775,10 @@
#include "code\modules\clothing\under\jobs\security.dm" #include "code\modules\clothing\under\jobs\security.dm"
#include "code\modules\customitems\item_defines.dm" #include "code\modules\customitems\item_defines.dm"
#include "code\modules\customitems\item_spawning.dm" #include "code\modules\customitems\item_spawning.dm"
#include "code\modules\DetectiveWork\detective_work.dm" #include "code\modules\detectivework\detective_work.dm"
#include "code\modules\DetectiveWork\evidence.dm" #include "code\modules\detectivework\evidence.dm"
#include "code\modules\DetectiveWork\footprints_and_rag.dm" #include "code\modules\detectivework\footprints_and_rag.dm"
#include "code\modules\DetectiveWork\scanner.dm" #include "code\modules\detectivework\scanner.dm"
#include "code\modules\events\alien_infestation.dm" #include "code\modules\events\alien_infestation.dm"
#include "code\modules\events\blob.dm" #include "code\modules\events\blob.dm"
#include "code\modules\events\carp_migration.dm" #include "code\modules\events\carp_migration.dm"

View File

@@ -9,7 +9,8 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
config_tag = "changeling" config_tag = "changeling"
restricted_jobs = list("AI", "Cyborg") restricted_jobs = list("AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain") protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain")
required_players = 15 required_players = 2
required_players_secret = 5
required_enemies = 1 required_enemies = 1
recommended_enemies = 4 recommended_enemies = 4

View File

@@ -3,7 +3,8 @@
config_tag = "traitorchan" config_tag = "traitorchan"
traitors_possible = 3 //hard limit on traitors if scaling is turned off traitors_possible = 3 //hard limit on traitors if scaling is turned off
restricted_jobs = list("AI", "Cyborg") restricted_jobs = list("AI", "Cyborg")
required_players = 20 required_players = 3
required_players_secret = 10
required_enemies = 2 required_enemies = 2
recommended_enemies = 3 recommended_enemies = 3

View File

@@ -22,7 +22,8 @@
config_tag = "cult" config_tag = "cult"
restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain") restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain")
protected_jobs = list() protected_jobs = list()
required_players = 15 required_players = 5
required_players_secret = 15
required_enemies = 3 required_enemies = 3
recommended_enemies = 4 recommended_enemies = 4

View File

@@ -1,7 +1,8 @@
/datum/game_mode/epidemic /datum/game_mode/epidemic
name = "epidemic" name = "epidemic"
config_tag = "epidemic" config_tag = "epidemic"
required_players = 6 required_players = 1
required_players_secret = 15
var/const/waittime_l = 300 //lower bound on time before intercept arrives (in tenths of seconds) var/const/waittime_l = 300 //lower bound on time before intercept arrives (in tenths of seconds)
var/const/waittime_h = 600 //upper bound on time before intercept arrives (in tenths of seconds) var/const/waittime_h = 600 //upper bound on time before intercept arrives (in tenths of seconds)

View File

@@ -52,7 +52,7 @@
possibleEvents["Appendicitis"] = medical_count * 50 possibleEvents["Appendicitis"] = medical_count * 50
if(security_count >= 1) if(security_count >= 1)
possibleEvents["Prison Break"] = security_count * 50 possibleEvents["Prison Break"] = security_count * 50
possibleEvents["Space Ninja"] = security_count * 10 // very low chance for space ninja event //possibleEvents["Space Ninja"] = security_count * 10 // very low chance for space ninja event
var/picked_event = pick(possibleEvents) var/picked_event = pick(possibleEvents)
var/chance = possibleEvents[picked_event] var/chance = possibleEvents[picked_event]
@@ -610,4 +610,4 @@ proc/number_active_with_role(role)
if("Cyborg") if("Cyborg")
if(M.mind.assigned_role == "Cyborg") if(M.mind.assigned_role == "Cyborg")
count++ count++
return count return count

View File

@@ -24,6 +24,7 @@
var/list/restricted_jobs = list() // Jobs it doesn't make sense to be. I.E chaplain or AI cultist var/list/restricted_jobs = list() // Jobs it doesn't make sense to be. I.E chaplain or AI cultist
var/list/protected_jobs = list() // Jobs that can't be tratiors because var/list/protected_jobs = list() // Jobs that can't be tratiors because
var/required_players = 0 var/required_players = 0
var/required_players_secret = 0 //Minimum number of players for that game mode to be chose in Secret
var/required_enemies = 0 var/required_enemies = 0
var/recommended_enemies = 0 var/recommended_enemies = 0
var/uplink_welcome = "Syndicate Uplink Console:" var/uplink_welcome = "Syndicate Uplink Console:"
@@ -84,8 +85,13 @@ Implants;
for(var/mob/new_player/player in player_list) for(var/mob/new_player/player in player_list)
if((player.client)&&(player.ready)) if((player.client)&&(player.ready))
playerC++ playerC++
if(playerC >= required_players)
return 1 if(master_mode=="secret")
if(playerC >= required_players_secret)
return 1
else
if(playerC >= required_players)
return 1
return 0 return 0

View File

@@ -4,7 +4,8 @@
/datum/game_mode/malfunction /datum/game_mode/malfunction
name = "AI malfunction" name = "AI malfunction"
config_tag = "malfunction" config_tag = "malfunction"
required_players = 20 required_players = 2
required_players_secret = 15
required_enemies = 1 required_enemies = 1
recommended_enemies = 1 recommended_enemies = 1

View File

@@ -5,7 +5,8 @@
/datum/game_mode/meme /datum/game_mode/meme
name = "Memetic Anomaly" name = "Memetic Anomaly"
config_tag = "meme" config_tag = "meme"
required_players = 6 required_players = 3
required_players_secret = 10
restricted_jobs = list("AI", "Cyborg") restricted_jobs = list("AI", "Cyborg")
recommended_enemies = 2 // need at least a meme and a host recommended_enemies = 2 // need at least a meme and a host
votable = 0 // temporarily disable this mode for voting votable = 0 // temporarily disable this mode for voting

View File

@@ -5,7 +5,8 @@
/datum/game_mode/nuclear /datum/game_mode/nuclear
name = "nuclear emergency" name = "nuclear emergency"
config_tag = "nuclear" config_tag = "nuclear"
required_players = 20 // 20 players - 5 players to be the nuke ops = 15 players remaining required_players = 6
required_players_secret = 15 // 15 players - 5 players to be the nuke ops = 10 players remaining
required_enemies = 5 required_enemies = 5
recommended_enemies = 5 recommended_enemies = 5

View File

@@ -15,7 +15,8 @@
name = "revolution" name = "revolution"
config_tag = "revolution" config_tag = "revolution"
restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer")
required_players = 20 required_players = 4
required_players_secret = 15
required_enemies = 3 required_enemies = 3
recommended_enemies = 3 recommended_enemies = 3

View File

@@ -3,7 +3,8 @@
/datum/game_mode/revolution/rp_revolution /datum/game_mode/revolution/rp_revolution
name = "rp-revolution" name = "rp-revolution"
config_tag = "rp-revolution" config_tag = "rp-revolution"
required_players = 12 required_players = 4
required_players_secret = 12
required_enemies = 3 required_enemies = 3
recommended_enemies = 3 recommended_enemies = 3

View File

@@ -5,7 +5,8 @@
/datum/game_mode/wizard /datum/game_mode/wizard
name = "wizard" name = "wizard"
config_tag = "wizard" config_tag = "wizard"
required_players = 20 required_players = 2
required_players_secret = 10
required_enemies = 1 required_enemies = 1
recommended_enemies = 1 recommended_enemies = 1

View File

@@ -714,6 +714,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
user.visible_message("\red [user] starts uprooting the weeds.", "\red You remove the weeds from the [src].") user.visible_message("\red [user] starts uprooting the weeds.", "\red You remove the weeds from the [src].")
weedlevel = 0 weedlevel = 0
updateicon() updateicon()
src.updateicon()
else else
user << "\red This plot is completely devoid of weeds. It doesn't need uprooting." user << "\red This plot is completely devoid of weeds. It doesn't need uprooting."

View File

@@ -1,6 +1,7 @@
#define SOLID 1 #define SOLID 1
#define LIQUID 2 #define LIQUID 2
#define GAS 3 #define GAS 3
#define FOOD_METABOLISM 0.4
//The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent) //The reaction procs must ALWAYS set src = null, this detaches the proc from the object (the reagent)
//so that it can continue working when the reagent is deleted while the proc is still active. //so that it can continue working when the reagent is deleted while the proc is still active.
@@ -269,28 +270,27 @@ datum
if(!M) M = holder.my_atom if(!M) M = holder.my_atom
M.drowsyness = max(M.drowsyness-2, 0) M.drowsyness = max(M.drowsyness-2, 0)
if(holder.has_reagent("toxin")) if(holder.has_reagent("toxin"))
holder.remove_reagent("toxin", 2) holder.remove_reagent("toxin", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("stoxin")) if(holder.has_reagent("stoxin"))
holder.remove_reagent("stoxin", 2) holder.remove_reagent("stoxin", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("plasma")) if(holder.has_reagent("plasma"))
holder.remove_reagent("plasma", 1) holder.remove_reagent("plasma", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("sacid")) if(holder.has_reagent("sacid"))
holder.remove_reagent("sacid", 1) holder.remove_reagent("sacid", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("cyanide")) if(holder.has_reagent("cyanide"))
holder.remove_reagent("cyanide", 1) holder.remove_reagent("cyanide", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("amatoxin")) if(holder.has_reagent("amatoxin"))
holder.remove_reagent("amatoxin", 2) holder.remove_reagent("amatoxin", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("chloralhydrate")) if(holder.has_reagent("chloralhydrate"))
holder.remove_reagent("chloralhydrate", 5) holder.remove_reagent("chloralhydrate", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("carpotoxin")) if(holder.has_reagent("carpotoxin"))
holder.remove_reagent("carpotoxin", 1) holder.remove_reagent("carpotoxin", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("zombiepowder")) if(holder.has_reagent("zombiepowder"))
holder.remove_reagent("zombiepowder", 0.5) holder.remove_reagent("zombiepowder", 10*REAGENTS_METABOLISM)
if(holder.has_reagent("mindbreaker")) if(holder.has_reagent("mindbreaker"))
holder.remove_reagent("mindbreaker", 2) holder.remove_reagent("mindbreaker", 10*REAGENTS_METABOLISM)
M.hallucination = max(0, M.hallucination - 5) M.hallucination = max(0, M.hallucination - 5*REAGENTS_EFFECT_MULTIPLIER)
M.adjustToxLoss(-2) M.adjustToxLoss(-2*REAGENTS_EFFECT_MULTIPLIER) ..()
..()
return return
toxin toxin
@@ -318,6 +318,8 @@ datum
M.adjustToxLoss(3) M.adjustToxLoss(3)
M.adjustOxyLoss(3) M.adjustOxyLoss(3)
M.sleeping += 1 M.sleeping += 1
// Sleep toxins should always be consumed pretty fast
holder.remove_reagent(src.id, 0.1)
..() ..()
return return
@@ -440,6 +442,8 @@ datum
M.stuttering = 0 M.stuttering = 0
M.confused = 0 M.confused = 0
M.jitteriness = 0 M.jitteriness = 0
// Sleep toxins should always be consumed pretty fast
holder.remove_reagent(src.id, 0.1)
..() ..()
return return
@@ -922,12 +926,13 @@ datum
id = "virusfood" id = "virusfood"
description = "A mixture of water, milk, and oxygen. Virus cells can use this mixture to reproduce." description = "A mixture of water, milk, and oxygen. Virus cells can use this mixture to reproduce."
reagent_state = LIQUID reagent_state = LIQUID
nutriment_factor = 2 * REAGENTS_METABOLISM nutriment_factor = 2 * FOOD_METABOLISM
color = "#899613" // rgb: 137, 150, 19 color = "#899613" // rgb: 137, 150, 19
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom if(!M) M = holder.my_atom
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..() ..()
return return
@@ -1151,9 +1156,8 @@ datum
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom if(!M) M = holder.my_atom
if(holder.has_reagent("inaprovaline")) if(holder.has_reagent("inaprovaline"))
holder.remove_reagent("inaprovaline", 2) holder.remove_reagent("inaprovaline", 10*REAGENTS_METABOLISM)
M.adjustToxLoss(1) M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER) ..()
..()
return return
reaction_obj(var/obj/O, var/volume) reaction_obj(var/obj/O, var/volume)
src = null src = null
@@ -1270,8 +1274,7 @@ datum
if(!M) M = holder.my_atom if(!M) M = holder.my_atom
M.adjustOxyLoss(-2) M.adjustOxyLoss(-2)
if(holder.has_reagent("lexorin")) if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2) holder.remove_reagent("lexorin", 10*REAGENTS_METABOLISM) ..()
..()
return return
dexalinp dexalinp
@@ -1287,8 +1290,7 @@ datum
if(!M) M = holder.my_atom if(!M) M = holder.my_atom
M.adjustOxyLoss(-M.getOxyLoss()) M.adjustOxyLoss(-M.getOxyLoss())
if(holder.has_reagent("lexorin")) if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2) holder.remove_reagent("lexorin", 10*REAGENTS_METABOLISM) ..()
..()
return return
tricordrazine tricordrazine
@@ -1387,7 +1389,7 @@ datum
M.AdjustStunned(-1) M.AdjustStunned(-1)
M.AdjustWeakened(-1) M.AdjustWeakened(-1)
if(holder.has_reagent("mindbreaker")) if(holder.has_reagent("mindbreaker"))
holder.remove_reagent("mindbreaker", 5) holder.remove_reagent("mindbreaker", 10*REAGENTS_METABOLISM)
M.hallucination = max(0, M.hallucination - 10) M.hallucination = max(0, M.hallucination - 10)
if(prob(60)) M.adjustToxLoss(1) if(prob(60)) M.adjustToxLoss(1)
..() ..()
@@ -1738,6 +1740,9 @@ datum
if(51 to INFINITY) if(51 to INFINITY)
M.sleeping += 1 M.sleeping += 1
M.adjustToxLoss(data - 50) M.adjustToxLoss(data - 50)
// Sleep toxins should always be consumed pretty fast
holder.remove_reagent(src.id, 0.1)
..() ..()
return return
@@ -1761,6 +1766,8 @@ datum
M.sleeping += 1 M.sleeping += 1
M.adjustToxLoss(data - 50) M.adjustToxLoss(data - 50)
data++ data++
// Sleep toxins should always be consumed pretty fast
holder.remove_reagent(src.id, 0.1)
..() ..()
return return
@@ -1773,35 +1780,176 @@ datum
id = "nutriment" id = "nutriment"
description = "All the vitamins, minerals, and carbohydrates the body needs in pure form." description = "All the vitamins, minerals, and carbohydrates the body needs in pure form."
reagent_state = SOLID reagent_state = SOLID
nutriment_factor = 15 * REAGENTS_METABOLISM nutriment_factor = 15 * FOOD_METABOLISM
color = "#664330" // rgb: 102, 67, 48 color = "#664330" // rgb: 102, 67, 48
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom if(!M) M = holder.my_atom
if(prob(50)) M.heal_organ_damage(1,0) if(prob(50)) M.heal_organ_damage(1,0)
M.nutrition += nutriment_factor // For hunger and fatness M.nutrition += nutriment_factor // For hunger and fatness
/* holder.remove_reagent(src.id, FOOD_METABOLISM) ..()
// If overeaten - vomit and fall down return
// Makes you feel bad but removes reagents and some effect
// from your body coco
if (M.nutrition > 650) name = "Coco Powder"
M.nutrition = rand (250, 400) id = "coco"
M.weakened += rand(2, 10) description = "A fatty, bitter paste made from coco beans."
M.jitteriness += rand(0, 5) nutriment_factor = 5 * FOOD_METABOLISM
M.dizziness = max (0, (M.dizziness - rand(0, 15))) color = "#302000" // rgb: 48, 32, 0
M.druggy = max (0, (M.druggy - rand(0, 15)))
M.adjustToxLoss(rand(-15, -5))) sprinkles
M.updatehealth() name = "Sprinkles"
*/ id = "sprinkles"
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
nutriment_factor = 1 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
syndicream
name = "Cream filling"
id = "syndicream"
description = "Delicious cream filling of a mysterious origin. Tastes criminally good."
nutriment_factor = 1 * FOOD_METABOLISM
color = "#AB7878" // rgb: 171, 120, 120
cornoil
name = "Corn Oil"
id = "cornoil"
description = "An oil derived from various types of corn."
reagent_state = LIQUID
nutriment_factor = 20 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
reaction_turf(var/turf/simulated/T, var/volume)
if (!istype(T)) return
src = null
if(volume >= 3)
if(T.wet >= 1) return
T.wet = 1
if(T.wet_overlay)
T.overlays -= T.wet_overlay
T.wet_overlay = null
T.wet_overlay = image('icons/effects/water.dmi',T,"wet_floor")
T.overlays += T.wet_overlay
spawn(800)
if (!istype(T)) return
if(T.wet >= 2) return
T.wet = 0
if(T.wet_overlay)
T.overlays -= T.wet_overlay
T.wet_overlay = null
var/hotspot = (locate(/obj/fire) in T)
if(hotspot)
var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0)
lowertemp.react()
T.assume_air(lowertemp)
del(hotspot)
dry_ramen
name = "Dry Ramen"
id = "dry_ramen"
description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
nutriment_factor = 1 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
hot_ramen
name = "Hot Ramen"
id = "hot_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school."
reagent_state = LIQUID
nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (10 * TEMPERATURE_DAMAGE_COEFFICIENT))
..()
return
hell_ramen
name = "Hell Ramen"
id = "hell_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school."
reagent_state = LIQUID
nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob)
M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
..()
return
flour
name = "flour"
id = "flour"
description = "This is what you rub all over yourself to pretend to be a ghost."
nutriment_factor = 1 * FOOD_METABOLISM
color = "#FFFFFF" // rgb: 0, 0, 0
reaction_turf(var/turf/T, var/volume)
src = null
if(!istype(T, /turf/space))
new /obj/effect/decal/cleanable/flour(T)
cherryjelly
name = "Cherry Jelly"
id = "cherryjelly"
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
reagent_state = LIQUID
nutriment_factor = 1 * FOOD_METABOLISM
color = "#801E28" // rgb: 128, 30, 40
//Drugs
amatoxin
name = "Amatoxin"
id = "amatoxin"
description = "A powerful poison derived from certain species of mushroom."
color = "#792300" // rgb: 121, 35, 0
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustToxLoss(1)
..() ..()
return return
psilocybin
name = "Psilocybin"
id = "psilocybin"
description = "A strong psycotropic derived from certain species of mushroom."
color = "#E700E7" // rgb: 231, 0, 231
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.druggy = max(M.druggy, 30)
if(!data) data = 1
switch(data)
if(1 to 5)
if (!M.stuttering) M.stuttering = 1
M.make_dizzy(5)
if(prob(10)) M.emote(pick("twitch","giggle"))
if(5 to 10)
if (!M.stuttering) M.stuttering = 1
M.make_jittery(10)
M.make_dizzy(10)
M.druggy = max(M.druggy, 35)
if(prob(20)) M.emote(pick("twitch","giggle"))
if (10 to INFINITY)
if (!M.stuttering) M.stuttering = 1
M.make_jittery(20)
M.make_dizzy(20)
M.druggy = max(M.druggy, 40)
if(prob(30)) M.emote(pick("twitch","giggle"))
holder.remove_reagent(src.id, 0.2)
data++
..()
return
lipozine lipozine
name = "Lipozine" // The anti-nutriment. name = "Lipozine" // The anti-nutriment.
id = "lipozine" id = "lipozine"
description = "A chemical compound that causes a powerful fat-burning reaction." description = "A chemical compound that causes a powerful fat-burning reaction."
reagent_state = LIQUID reagent_state = LIQUID
nutriment_factor = 10 * REAGENTS_METABOLISM nutriment_factor = 10 * FOOD_METABOLISM
color = "#BBEDA4" // rgb: 187, 237, 164 color = "#BBEDA4" // rgb: 187, 237, 164
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
@@ -1818,7 +1966,7 @@ datum
id = "soysauce" id = "soysauce"
description = "A salty sauce made from the soy plant." description = "A salty sauce made from the soy plant."
reagent_state = LIQUID reagent_state = LIQUID
nutriment_factor = 2 * REAGENTS_METABOLISM nutriment_factor = 2 * FOOD_METABOLISM
color = "#792300" // rgb: 121, 35, 0 color = "#792300" // rgb: 121, 35, 0
ketchup ketchup
@@ -1826,7 +1974,7 @@ datum
id = "ketchup" id = "ketchup"
description = "Ketchup, catsup, whatever. It's tomato paste." description = "Ketchup, catsup, whatever. It's tomato paste."
reagent_state = LIQUID reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM nutriment_factor = 5 * FOOD_METABOLISM
color = "#731008" // rgb: 115, 16, 8 color = "#731008" // rgb: 115, 16, 8
@@ -1844,7 +1992,7 @@ datum
if(1 to 15) if(1 to 15)
M.bodytemperature += 5 * TEMPERATURE_DAMAGE_COEFFICIENT M.bodytemperature += 5 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("frostoil")) if(holder.has_reagent("frostoil"))
holder.remove_reagent("frostoil", 5) holder.remove_reagent("frostoil", 10*REAGENTS_METABOLISM)
if(istype(M, /mob/living/carbon/slime)) if(istype(M, /mob/living/carbon/slime))
M.bodytemperature += rand(5,20) M.bodytemperature += rand(5,20)
if(15 to 25) if(15 to 25)
@@ -1930,7 +2078,7 @@ datum
if(1 to 15) if(1 to 15)
M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("capsaicin")) if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 5) holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM)
if(istype(M, /mob/living/carbon/slime)) if(istype(M, /mob/living/carbon/slime))
M.bodytemperature -= rand(5,20) M.bodytemperature -= rand(5,20)
if(15 to 25) if(15 to 25)
@@ -1969,11 +2117,12 @@ datum
id = "coco" id = "coco"
description = "A fatty, bitter paste made from coco beans." description = "A fatty, bitter paste made from coco beans."
reagent_state = SOLID reagent_state = SOLID
nutriment_factor = 5 * REAGENTS_METABOLISM nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0 color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..() ..()
return return
@@ -1982,13 +2131,14 @@ datum
id = "hot_coco" id = "hot_coco"
description = "Made with love! And coco beans." description = "Made with love! And coco beans."
reagent_state = LIQUID reagent_state = LIQUID
nutriment_factor = 2 * REAGENTS_METABOLISM nutriment_factor = 2 * FOOD_METABOLISM
color = "#403010" // rgb: 64, 48, 16 color = "#403010" // rgb: 64, 48, 16
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..() ..()
return return
@@ -2040,15 +2190,17 @@ datum
name = "Sprinkles" name = "Sprinkles"
id = "sprinkles" id = "sprinkles"
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops." description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
nutriment_factor = 1 * REAGENTS_METABOLISM nutriment_factor = 1 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0 color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective", "Warden")) if(istype(M, /mob/living/carbon/human) && M.job in list("Security Officer", "Head of Security", "Detective", "Warden"))
if(!M) M = holder.my_atom if(!M) M = holder.my_atom
M.heal_organ_damage(1,1) M.heal_organ_damage(1,1)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..() ..()
return return
..() ..()
@@ -2057,16 +2209,18 @@ datum
name = "Cream filling" name = "Cream filling"
id = "syndicream" id = "syndicream"
description = "Delicious cream filling of a mysterious origin. Tastes criminally good." description = "Delicious cream filling of a mysterious origin. Tastes criminally good."
nutriment_factor = 1 * REAGENTS_METABOLISM nutriment_factor = 1 * FOOD_METABOLISM
color = "#AB7878" // rgb: 171, 120, 120 color = "#AB7878" // rgb: 171, 120, 120
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
if(istype(M, /mob/living/carbon/human) && M.mind) if(istype(M, /mob/living/carbon/human) && M.mind)
if(M.mind.special_role) if(M.mind.special_role)
if(!M) M = holder.my_atom if(!M) M = holder.my_atom
M.heal_organ_damage(1,1) M.heal_organ_damage(1,1)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..() ..()
return return
..() ..()
@@ -2076,11 +2230,12 @@ datum
id = "cornoil" id = "cornoil"
description = "An oil derived from various types of corn." description = "An oil derived from various types of corn."
reagent_state = LIQUID reagent_state = LIQUID
nutriment_factor = 20 * REAGENTS_METABOLISM nutriment_factor = 20 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0 color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..() ..()
return return
reaction_turf(var/turf/simulated/T, var/volume) reaction_turf(var/turf/simulated/T, var/volume)
@@ -2122,11 +2277,12 @@ datum
id = "dry_ramen" id = "dry_ramen"
description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water." description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
reagent_state = SOLID reagent_state = SOLID
nutriment_factor = 1 * REAGENTS_METABOLISM nutriment_factor = 1 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0 color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..() ..()
return return
@@ -2135,11 +2291,12 @@ datum
id = "hot_ramen" id = "hot_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school." description = "The noodles are boiled, the flavors are artificial, just like being back in school."
reagent_state = LIQUID reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0 color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (10 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.bodytemperature = min(310, M.bodytemperature + (10 * TEMPERATURE_DAMAGE_COEFFICIENT))
..() ..()
@@ -2150,11 +2307,12 @@ datum
id = "hell_ramen" id = "hell_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school." description = "The noodles are boiled, the flavors are artificial, just like being back in school."
reagent_state = LIQUID reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM nutriment_factor = 5 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0 color = "#302000" // rgb: 48, 32, 0
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
..() ..()
return return
@@ -2164,11 +2322,12 @@ datum
id = "flour" id = "flour"
description = "This is what you rub all over yourself to pretend to be a ghost." description = "This is what you rub all over yourself to pretend to be a ghost."
reagent_state = SOLID reagent_state = SOLID
nutriment_factor = 1 * REAGENTS_METABOLISM nutriment_factor = 1 * FOOD_METABOLISM
color = "#FFFFFF" // rgb: 0, 0, 0 color = "#FFFFFF" // rgb: 0, 0, 0
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..() ..()
return return
@@ -2182,11 +2341,12 @@ datum
id = "cherryjelly" id = "cherryjelly"
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry." description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
reagent_state = LIQUID reagent_state = LIQUID
nutriment_factor = 1 * REAGENTS_METABOLISM nutriment_factor = 1 * FOOD_METABOLISM
color = "#801E28" // rgb: 128, 30, 40 color = "#801E28" // rgb: 128, 30, 40
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
holder.remove_reagent(src.id, FOOD_METABOLISM)
..() ..()
return return
@@ -2199,7 +2359,7 @@ datum
id = "orangejuice" id = "orangejuice"
description = "Both delicious AND rich in Vitamin C, what more do you need?" description = "Both delicious AND rich in Vitamin C, what more do you need?"
reagent_state = LIQUID reagent_state = LIQUID
nutriment_factor = 1 * REAGENTS_METABOLISM nutriment_factor = 1 * FOOD_METABOLISM
color = "#E78108" // rgb: 231, 129, 8 color = "#E78108" // rgb: 231, 129, 8
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
@@ -2220,9 +2380,14 @@ datum
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor M.nutrition += nutriment_factor
if(!M) M = holder.my_atom holder.remove_reagent(src.id, FOOD_METABOLISM)
if(M.getFireLoss() && prob(20)) M.heal_organ_damage(0,1) if (adj_dizzy) M.dizziness = max(0,M.dizziness + adj_dizzy)
M.nutrition++ if (adj_drowsy) M.drowsyness = max(0,M.drowsyness + adj_drowsy)
if (adj_sleepy) M.sleeping = max(0,M.sleeping + adj_sleepy)
if (adj_temp)
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
M.bodytemperature = min(310, M.bodytemperature + (25 * TEMPERATURE_DAMAGE_COEFFICIENT)) // Drinks should be used up faster than other reagents.
holder.remove_reagent(src.id, FOOD_METABOLISM)
..() ..()
return return
@@ -2409,11 +2574,12 @@ datum
nutriment_factor = 1 * REAGENTS_METABOLISM nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#DFD7AF" // rgb: 223, 215, 175 color = "#DFD7AF" // rgb: 223, 215, 175
on_mob_life(var/mob/living/M as mob) potato_juice
M.nutrition += nutriment_factor name = "Potato Juice"
if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0) id = "potato"
..() description = "Juice of the potato. Bleh."
return nutriment_factor = 2 * FOOD_METABOLISM
color = "#302000" // rgb: 48, 32, 0
coffee coffee
name = "Coffee" name = "Coffee"
@@ -2422,19 +2588,12 @@ datum
reagent_state = LIQUID reagent_state = LIQUID
color = "#482000" // rgb: 72, 32, 0 color = "#482000" // rgb: 72, 32, 0
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
..() if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0)
M.dizziness = max(0,M.dizziness-5) if(holder.has_reagent("capsaicin"))
M.drowsyness = max(0,M.drowsyness-3) holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM)
M.sleeping = max(0,M.sleeping - 2) ..()
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 return
M.bodytemperature = min(310, M.bodytemperature + (25 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.make_jittery(5)
if(holder.has_reagent("frostoil"))
holder.remove_reagent("frostoil", 5)
..()
return
tea tea
name = "Tea" name = "Tea"
id = "tea" id = "tea"
@@ -2455,12 +2614,13 @@ datum
..() ..()
return return
icecoffee hot_coco
name = "Iced Coffee" name = "Hot Chocolate"
id = "icecoffee" id = "hot_coco"
description = "Coffee and ice, refreshing and cool." description = "Made with love! And coco beans."
reagent_state = LIQUID nutriment_factor = 2 * FOOD_METABOLISM
color = "#102838" // rgb: 16, 40, 56 color = "#403010" // rgb: 64, 48, 16
adj_temp = 5
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
..() ..()
@@ -2473,13 +2633,14 @@ datum
..() ..()
return return
icetea on_mob_life(var/mob/living/M as mob)
name = "Iced Tea" ..()
id = "icetea" M.make_jittery(5)
description = "No relation to a certain rap artist/ actor." if(adj_temp > 0 && holder.has_reagent("frostoil"))
reagent_state = LIQUID holder.remove_reagent("frostoil", 10*REAGENTS_METABOLISM)
color = "#104038" // rgb: 16, 64, 56
holder.remove_reagent(src.id, 0.1)
return
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
..() ..()
M.dizziness = max(0,M.dizziness-2) M.dizziness = max(0,M.dizziness-2)
@@ -3023,17 +3184,10 @@ datum
color = "#664300" // rgb: 102, 67, 0 color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
if(!data) data = 1 M:nutrition += nutriment_factor
data++ holder.remove_reagent(src.id, FOOD_METABOLISM)
M.dizziness +=3 if(!src.data) data = 1
if(data >= 45 && data <125) src.data++
if (!M.stuttering) M.stuttering = 1
M.stuttering += 3
else if(data >= 125 && prob(33))
M.confused = max(M.confused+2,0)
..()
return
patron patron
name = "Patron" name = "Patron"
id = "patron" id = "patron"
@@ -3091,13 +3245,16 @@ datum
..() ..()
return return
whiskey_cola beer //It's really much more stronger than other drinks.
name = "Whiskey Cola" name = "Beer"
id = "whiskeycola" id = "beer"
description = "Whiskey, mixed with cola. Surprisingly refreshing." description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
reagent_state = LIQUID nutriment_factor = 2 * FOOD_METABOLISM
color = "#3E1B00" // rgb: 62, 27, 0 color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob)
..()
M:jitteriness = max(M:jitteriness-3,0)
return
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
if(!data) data = 1 if(!data) data = 1
data++ data++
@@ -3252,18 +3409,16 @@ datum
reagent_state = LIQUID reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0 color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob) ..()
if(!data) data = 1 M:nutrition += nutriment_factor
data++ holder.remove_reagent(src.id, FOOD_METABOLISM)
M.dizziness +=3 M:drowsyness = max(0,M:drowsyness-7)
if(data >= 45 && data <145) //if(!M:sleeping_willingly)
if (!M.stuttering) M.stuttering = 1 // M:sleeping = max(0,M.sleeping-2)
M.stuttering += 3 if (M.bodytemperature > 310)
else if(data >= 145 && prob(33)) M.bodytemperature = max(310, M.bodytemperature-5)
M.confused = max(M.confused+2,0) M.make_jittery(1)
..() return
return
tequilla_sunrise tequilla_sunrise
name = "Tequila Sunrise" name = "Tequila Sunrise"
id = "tequillasunrise" id = "tequillasunrise"
@@ -3463,25 +3618,25 @@ datum
reagent_state = LIQUID reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0 color = "#664300" // rgb: 102, 67, 0
on_mob_life(var/mob/living/M as mob) doctor_delight
if(!data) data = 1 name = "The Doctor's Delight"
data++ id = "doctorsdelight"
M.dizziness +=4 description = "A gulp a day keeps the MediBot away. That's probably for the best."
if(data >= 55 && data <150) reagent_state = LIQUID
if (!M.stuttering) M.stuttering = 1 nutriment_factor = 1 * FOOD_METABOLISM
M.stuttering += 3 color = "#664300" // rgb: 102, 67, 0
else if(data >= 150 && prob(33)) on_mob_life(var/mob/living/M as mob)
M.confused = max(M.confused+2,0) M:nutrition += nutriment_factor
..() holder.remove_reagent(src.id, FOOD_METABOLISM)
return if(!M) M = holder.my_atom
if(M:getOxyLoss() && prob(50)) M:adjustOxyLoss(-2)
black_russian if(M:getBruteLoss() && prob(60)) M:heal_organ_damage(2,0)
name = "Black Russian" if(M:getFireLoss() && prob(50)) M:heal_organ_damage(0,2)
id = "blackrussian" if(M:getToxLoss() && prob(50)) M:adjustToxLoss(-2)
description = "For the lactose-intolerant. Still as classy as a White Russian." if(M.dizziness !=0) M.dizziness = max(0,M.dizziness-15)
reagent_state = LIQUID if(M.confused !=0) M.confused = max(0,M.confused - 5)
color = "#360000" // rgb: 54, 0, 0 ..()
return
on_mob_life(var/mob/living/M as mob) on_mob_life(var/mob/living/M as mob)
if(!data) data = 1 if(!data) data = 1
data++ data++
@@ -3815,25 +3970,18 @@ datum
..() ..()
return return
grog bananahonk
name = "Grog" name = "Banana Mama"
id = "grog" id = "bananahonk"
description = "Watered down rum, Nanotrasen approves!" description = "A drink from Clown Heaven."
reagent_state = LIQUID nutriment_factor = 1 * FOOD_METABOLISM
color = "#664300" // rgb: 102, 67, 0 color = "#664300" // rgb: 102, 67, 0
silencer
on_mob_life(var/mob/living/M as mob) name = "Silencer"
if(!data) data = 1 id = "silencer"
data++ description = "A drink from Mime Heaven."
M.dizziness +=2 nutriment_factor = 1 * FOOD_METABOLISM
if(data >= 90 && data <250) color = "#664300" // rgb: 102, 67, 0
if (!M.stuttering) M.stuttering = 1
M.stuttering += 2
else if(data >= 250 && prob(33))
M.confused = max(M.confused+2,0)
..()
return
aloe aloe
name = "Aloe" name = "Aloe"
id = "aloe" id = "aloe"

View File

@@ -118,6 +118,39 @@ should be listed in the changelog upon commit though. Thanks. -->
</ul> </ul>
</div> </div>
<div class="commit sansserif">
<h2 class="date">November 2012 - January 2013</h2>
<h3 class="author">chinsky updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Several cargo crates from pre-merge were ported.</li>
<li class="tweak">Contraband crate is no longer labeled as such.</li>
<li class="rscadd">In space, no one can hear you scream now.</li>
</ul>
<h3 class="author">CIB updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Airflow produces subtle sound effects now.</li>
<li class="tweak">Events are now adjusted based on department activity.</li>
<li class="tweak">The virus event will spawn BS12 vira.</li>
<li class="tweak">Two new traitor objectives: Brig and Harm</li>
<li class="tweak">Space no longer makes rooms cold.</li>
<li class="rscadd">Gibbing creates actual limbs you can pick up, if you're lucky a complete head with brain.</li>
<li class="rscadd">It's now possible to miss in combat(melee and guns), instead of just hitting the torso rather than the head. This makes targetting the head much riskier than before.</li>
<li class="tweak">Chemicals now last 10x as long in the blood, but their effect is also reduced equally.</li>
<li class="rscadd">IV drips now have a right-click option to take blood rather than give it.</li>
<li class="rscadd">Everyone gets a crew manifest.</li>
</ul>
<h3 class="author">CaelAislinn updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">There now is a client-toggle for whether to become a space-ninja.</li>
<li class="tweak">Reduced startup lag by removing a vermin-related proc.</li>
<li class="tweak">Several alien balance fixes.</li>
</ul>
<h3 class="author">Ravensdale updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Ported station-wide explosion sounds.</li>
</ul>
</div>
<div class="commit sansserif"> <div class="commit sansserif">
<h2 class="date">December 3rd</h2> <h2 class="date">December 3rd</h2>
<h3 class="author">Cael_Aislinn updated:</h3> <h3 class="author">Cael_Aislinn updated:</h3>