Merge branch 'incremental_tg' r5600 into bs12_with_tgport

Conflicts:
	baystation12.dme
	code/__HELPERS/global_lists.dm
	code/controllers/master_controller.dm
	code/game/gamemodes/events/ninja_equipment.dm
	code/game/gamemodes/events/space_ninja.dm
	code/game/gamemodes/wizard/rightandwrong.dm
	code/game/hud.dm
	code/game/jobs/job/captain.dm
	code/game/jobs/job/job.dm
	code/game/jobs/job/medical.dm
	code/game/jobs/job/science.dm
	code/game/jobs/job/security.dm
	code/game/machinery/computer/cloning.dm
	code/game/objects/items/blueprints.dm
	code/game/objects/items/weapons/gift_wrappaper.dm
	code/game/objects/items/weapons/implants/implantnanoaug.dm
	code/game/objects/items/weapons/storage/uplink_kits.dm
	code/game/objects/items/weapons/stunbaton.dm
	code/game/turfs/turf.dm
	code/modules/client/client defines.dm
	code/modules/client/client procs.dm
	code/modules/clothing/masks/miscellaneous.dm
	code/modules/clothing/shoes/miscellaneous.dm
	code/modules/clothing/under/ties.dm
	code/modules/mob/living/carbon/human/human_attackhand.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/carbon/human/say.dm
	code/modules/mob/living/silicon/say.dm
	code/modules/mob/mob_defines.dm
	code/modules/paperwork/clipboard.dm
	code/modules/paperwork/pen.dm
	code/modules/paperwork/stamps.dm
	code/modules/projectiles/projectile.dm
	code/modules/reagents/Chemistry-Holder.dm
	code/modules/reagents/reagent_containers/glass.dm
	code/setup.dm
	config/config.txt
	html/changelog.html
	icons/effects/effects.dmi
	icons/mob/feet.dmi
	icons/mob/head.dmi
	icons/mob/items_lefthand.dmi
	icons/mob/items_righthand.dmi
	icons/mob/mask.dmi
	icons/mob/suit.dmi
	icons/mob/ties.dmi
	icons/mob/uniform.dmi
	icons/obj/clothing/hats.dmi
	icons/obj/clothing/masks.dmi
	icons/obj/clothing/shoes.dmi
	icons/obj/clothing/suits.dmi
	icons/obj/clothing/ties.dmi
	maps/tgstation.2.1.0.dmm

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2013-01-23 00:23:37 +10:00
211 changed files with 23396 additions and 11979 deletions
+99 -88
View File
@@ -24,12 +24,29 @@ datum
var/datum/reagent/D = new path()
chemical_reagents_list[D.id] = D
if(!chemical_reactions_list)
//Chemical Reactions - Initialises all /datum/chemical_reaction into a list (without an index)
//Chemical Reactions - Initialises all /datum/chemical_reaction into a list
// It is filtered into multiple lists within a list.
// For example:
// chemical_reaction_list["plasma"] is a list of all reactions relating to plasma
var/paths = typesof(/datum/chemical_reaction) - /datum/chemical_reaction
chemical_reactions_list = list()
for(var/path in paths)
var/datum/chemical_reaction/D = new path()
chemical_reactions_list += D
var/list/reaction_ids = list()
if(D.required_reagents && D.required_reagents.len)
for(var/reaction in D.required_reagents)
reaction_ids += reaction
// Create filters based on each reagent id in the required reagents list
for(var/id in reaction_ids)
if(!chemical_reactions_list[id])
chemical_reactions_list[id] = list()
chemical_reactions_list[id] += D
break // Don't bother adding ourselves to other reagent ids, it is redundant.
proc
@@ -88,14 +105,9 @@ datum
var/current_reagent_transfer = current_reagent.volume * part
if(preserve_data)
trans_data = current_reagent.data
if((current_reagent.id == "blood" && !ishuman(target)) || current_reagent.id != "blood")
R.add_reagent(current_reagent.id, (current_reagent_transfer * multiplier), trans_data)
src.remove_reagent(current_reagent.id, current_reagent_transfer)
else if(current_reagent.id == "blood" && ishuman(target)) // can never be sure
var/mob/living/carbon/human/H = target
H.vessel.add_reagent(current_reagent.id, (current_reagent_transfer * multiplier), trans_data)
src.remove_reagent(current_reagent.id, current_reagent_transfer)
H.vessel.update_total()
R.add_reagent(current_reagent.id, (current_reagent_transfer * multiplier), trans_data)
src.remove_reagent(current_reagent.id, current_reagent_transfer)
src.update_total()
R.update_total()
R.handle_reactions()
@@ -203,84 +215,90 @@ datum
var/reaction_occured = 0
do
reaction_occured = 0
for(var/datum/chemical_reaction/C in chemical_reactions_list)
var/total_required_reagents = C.required_reagents.len
var/total_matching_reagents = 0
var/total_required_catalysts = C.required_catalysts.len
var/total_matching_catalysts= 0
var/matching_container = 0
var/matching_other = 0
var/list/multipliers = new/list()
for(var/datum/reagent/R in reagent_list) // Usually a small list
for(var/reaction in chemical_reactions_list[R.id]) // Was a big list but now it should be smaller since we filtered it with our reagent id
for(var/B in C.required_reagents)
if(!has_reagent(B, C.required_reagents[B])) break
total_matching_reagents++
multipliers += round(get_reagent_amount(B) / C.required_reagents[B])
for(var/B in C.required_catalysts)
if(!has_reagent(B, C.required_catalysts[B])) break
total_matching_catalysts++
if(!reaction)
continue
if(!C.required_container)
matching_container = 1
var/datum/chemical_reaction/C = reaction
var/total_required_reagents = C.required_reagents.len
var/total_matching_reagents = 0
var/total_required_catalysts = C.required_catalysts.len
var/total_matching_catalysts= 0
var/matching_container = 0
var/matching_other = 0
var/list/multipliers = new/list()
else
if(my_atom.type == C.required_container)
for(var/B in C.required_reagents)
if(!has_reagent(B, C.required_reagents[B])) break
total_matching_reagents++
multipliers += round(get_reagent_amount(B) / C.required_reagents[B])
for(var/B in C.required_catalysts)
if(!has_reagent(B, C.required_catalysts[B])) break
total_matching_catalysts++
if(!C.required_container)
matching_container = 1
if(!C.required_other)
matching_other = 1
else
if(my_atom.type == C.required_container)
matching_container = 1
else
/*if(istype(my_atom, /obj/item/slime_core))
var/obj/item/slime_core/M = my_atom
if(!C.required_other)
matching_other = 1
if(M.POWERFLAG == C.required_other && M.Uses > 0) // added a limit to slime cores -- Muskets requested this
matching_other = 1*/
if(istype(my_atom, /obj/item/slime_extract))
var/obj/item/slime_extract/M = my_atom
else
/*if(istype(my_atom, /obj/item/slime_core))
var/obj/item/slime_core/M = my_atom
if(M.Uses > 0) // added a limit to slime cores -- Muskets requested this
matching_other = 1
if(M.POWERFLAG == C.required_other && M.Uses > 0) // added a limit to slime cores -- Muskets requested this
matching_other = 1*/
if(istype(my_atom, /obj/item/slime_extract))
var/obj/item/slime_extract/M = my_atom
if(M.Uses > 0) // added a limit to slime cores -- Muskets requested this
matching_other = 1
if(total_matching_reagents == total_required_reagents && total_matching_catalysts == total_required_catalysts && matching_container && matching_other)
var/multiplier = min(multipliers)
for(var/B in C.required_reagents)
remove_reagent(B, (multiplier * C.required_reagents[B]), safety = 1)
if(total_matching_reagents == total_required_reagents && total_matching_catalysts == total_required_catalysts && matching_container && matching_other)
var/multiplier = min(multipliers)
for(var/B in C.required_reagents)
remove_reagent(B, (multiplier * C.required_reagents[B]), safety = 1)
var/created_volume = C.result_amount*multiplier
if(C.result)
feedback_add_details("chemical_reaction","[C.result]|[C.result_amount*multiplier]")
multiplier = max(multiplier, 1) //this shouldnt happen ...
add_reagent(C.result, C.result_amount*multiplier)
var/created_volume = C.result_amount*multiplier
if(C.result)
feedback_add_details("chemical_reaction","[C.result]|[C.result_amount*multiplier]")
multiplier = max(multiplier, 1) //this shouldnt happen ...
add_reagent(C.result, C.result_amount*multiplier)
if(!isliving(my_atom))
for(var/mob/M in viewers(4, get_turf(my_atom)) )
var/list/seen = viewers(4, get_turf(my_atom))
for(var/mob/M in seen)
M << "\blue \icon[my_atom] The solution begins to bubble."
/* if(istype(my_atom, /obj/item/slime_core))
var/obj/item/slime_core/ME = my_atom
ME.Uses--
if(ME.Uses <= 0) // give the notification that the slime core is dead
for(var/mob/M in viewers(4, get_turf(my_atom)) )
M << "\blue \icon[my_atom] The innards begin to boil!"
*/
if(istype(my_atom, /obj/item/slime_extract))
var/obj/item/slime_extract/ME2 = my_atom
ME2.Uses--
if(ME2.Uses <= 0) // give the notification that the slime core is dead
for(var/mob/M in viewers(4, get_turf(my_atom)) )
M << "\blue \icon[my_atom] The [my_atom]'s power is consumed in the reaction."
ME2.name = "used slime extract"
ME2.desc = "This extract has been used up."
/* if(istype(my_atom, /obj/item/slime_core))
var/obj/item/slime_core/ME = my_atom
ME.Uses--
if(ME.Uses <= 0) // give the notification that the slime core is dead
for(var/mob/M in viewers(4, get_turf(my_atom)) )
M << "\blue \icon[my_atom] The innards begin to boil!"
*/
if(istype(my_atom, /obj/item/slime_extract))
var/obj/item/slime_extract/ME2 = my_atom
ME2.Uses--
if(ME2.Uses <= 0) // give the notification that the slime core is dead
for(var/mob/M in seen)
M << "\blue \icon[my_atom] The [my_atom]'s power is consumed in the reaction."
ME2.name = "used slime extract"
ME2.desc = "This extract has been used up."
playsound(get_turf(my_atom), 'sound/effects/bubbles.ogg', 80, 1)
playsound(get_turf(my_atom), 'sound/effects/bubbles.ogg', 80, 1)
C.on_reaction(src, created_volume)
reaction_occured = 1
break
C.on_reaction(src, created_volume)
reaction_occured = 1
break
while(reaction_occured)
update_total()
@@ -426,17 +444,13 @@ datum
for(var/A in reagent_list)
var/datum/reagent/R = A
var/datum/compare = chemical_reagents_list[reagent]
if(istype(R,compare))
var/amt = max(0,min(R.volume,amount))
R.volume -= amt
amount -= amt
if(amount<=0)
update_total()
if(!safety)//So it does not handle reactions when it need not to
handle_reactions()
my_atom.on_reagent_change()
return 0
if (R.id == reagent)
R.volume -= amount
update_total()
if(!safety)//So it does not handle reactions when it need not to
handle_reactions()
my_atom.on_reagent_change()
return 0
return 1
@@ -444,8 +458,7 @@ datum
for(var/A in reagent_list)
var/datum/reagent/R = A
var/datum/compare = chemical_reagents_list[reagent]
if(istype(R,compare))
if (R.id == reagent)
if(!amount) return R
else
if(R.volume >= amount) return R
@@ -454,14 +467,12 @@ datum
return 0
get_reagent_amount(var/reagent)
var/amnt = 0
for(var/A in reagent_list)
var/datum/reagent/R = A
var/datum/compare = chemical_reagents_list[reagent]
if(istype(R,compare))
amnt += R.volume
if (R.id == reagent)
return R.volume
return amnt
return 0
get_reagents()
var/res = ""
+88 -82
View File
@@ -2,9 +2,12 @@
#define LIQUID 2
#define GAS 3
#define REM REAGENTS_EFFECT_MULTIPLIER
//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.
datum
reagent
var/name = "Reagent"
@@ -82,9 +85,9 @@ datum
on_mob_life(var/mob/living/M as mob)
if(prob(10))
M << "\red Your insides are burning!"
M.adjustToxLoss(rand(20,60))
M.adjustToxLoss(rand(20,60)*REM)
else if(prob(40))
M.heal_organ_damage(5,0)
M.heal_organ_damage(5*REM,0)
..()
return
@@ -267,29 +270,29 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.drowsyness = max(M.drowsyness-2, 0)
M.drowsyness = max(M.drowsyness-2*REM, 0)
if(holder.has_reagent("toxin"))
holder.remove_reagent("toxin", 2)
holder.remove_reagent("toxin", 2*REM)
if(holder.has_reagent("stoxin"))
holder.remove_reagent("stoxin", 2)
holder.remove_reagent("stoxin", 2*REM)
if(holder.has_reagent("plasma"))
holder.remove_reagent("plasma", 1)
holder.remove_reagent("plasma", 1*REM)
if(holder.has_reagent("sacid"))
holder.remove_reagent("sacid", 1)
holder.remove_reagent("sacid", 1*REM)
if(holder.has_reagent("cyanide"))
holder.remove_reagent("cyanide", 1)
holder.remove_reagent("cyanide", 1*REM)
if(holder.has_reagent("amatoxin"))
holder.remove_reagent("amatoxin", 2)
holder.remove_reagent("amatoxin", 2*REM)
if(holder.has_reagent("chloralhydrate"))
holder.remove_reagent("chloralhydrate", 5)
holder.remove_reagent("chloralhydrate", 5*REM)
if(holder.has_reagent("carpotoxin"))
holder.remove_reagent("carpotoxin", 1)
holder.remove_reagent("carpotoxin", 1*REM)
if(holder.has_reagent("zombiepowder"))
holder.remove_reagent("zombiepowder", 0.5)
holder.remove_reagent("zombiepowder", 0.5*REM)
if(holder.has_reagent("mindbreaker"))
holder.remove_reagent("mindbreaker", 2)
M.hallucination = max(0, M.hallucination - 5)
M.adjustToxLoss(-2)
holder.remove_reagent("mindbreaker", 2*REM)
M.hallucination = max(0, M.hallucination - 5*REM)
M.adjustToxLoss(-2*REM)
..()
return
@@ -302,7 +305,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustToxLoss(1.5)
M.adjustToxLoss(1.5*REM)
..()
return
@@ -315,8 +318,8 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustToxLoss(3)
M.adjustOxyLoss(3)
M.adjustToxLoss(3*REM)
M.adjustOxyLoss(3*REM)
M.sleeping += 1
..()
return
@@ -454,7 +457,7 @@ datum
if(!M) M = holder.my_atom
if(M.losebreath >= 10)
M.losebreath = max(10, M.losebreath-5)
holder.remove_reagent(src.id, 0.2)
holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
return
space_drugs
@@ -471,7 +474,7 @@ datum
if(M.canmove)
if(prob(10)) step(M, pick(cardinal))
if(prob(7)) M.emote(pick("twitch","drool","moan","giggle"))
holder.remove_reagent(src.id, 0.2)
holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
return
serotrotium
@@ -484,7 +487,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(ishuman(M))
if(prob(7)) M.emote(pick("twitch","drool","moan","gasp"))
holder.remove_reagent(src.id, 0.1)
holder.remove_reagent(src.id, 0.25 * REAGENTS_METABOLISM)
return
/* silicate
@@ -584,7 +587,7 @@ datum
id = "carbon"
description = "A chemical element."
reagent_state = SOLID
color = "#C77400" // rgb: 199, 116, 0
color = "#1C1300" // rgb: 30, 20, 0
reaction_turf(var/turf/T, var/volume)
src = null
@@ -600,7 +603,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.take_organ_damage(1, 0)
M.take_organ_damage(1*REM, 0)
..()
return
@@ -613,7 +616,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustToxLoss(1)
M.adjustToxLoss(1*REM)
..()
return
@@ -651,10 +654,10 @@ datum
id = "sugar"
description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste."
reagent_state = SOLID
color = "#808080" // rgb: 128, 128, 128
color = "#FFFFFF" // rgb: 255, 255, 255
on_mob_life(var/mob/living/M as mob)
M.nutrition += 1
M.nutrition += 1*REM
..()
return
@@ -667,8 +670,8 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustToxLoss(1)
M.take_organ_damage(0, 1)
M.adjustToxLoss(1*REM)
M.take_organ_damage(0, 1*REM)
..()
return
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
@@ -740,7 +743,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustToxLoss(1)
M.adjustToxLoss(1*REM)
..()
return
@@ -828,11 +831,11 @@ datum
id = "radium"
description = "Radium is an alkaline earth metal. It is extremely radioactive."
reagent_state = SOLID
color = "#604838" // rgb: 96, 72, 56
color = "#C7C7C7" // rgb: 199,199,199
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.apply_effect(2,IRRADIATE,0)
M.apply_effect(2*REM,IRRADIATE,0)
..()
return
@@ -927,7 +930,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.nutrition += nutriment_factor
M.nutrition += nutriment_factor*REM
..()
return
@@ -1151,8 +1154,8 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(holder.has_reagent("inaprovaline"))
holder.remove_reagent("inaprovaline", 2)
M.adjustToxLoss(1)
holder.remove_reagent("inaprovaline", 2*REM)
M.adjustToxLoss(3*REM)
..()
return
reaction_obj(var/obj/O, var/volume)
@@ -1205,7 +1208,7 @@ datum
M.make_dizzy(1)
if(!M.confused) M.confused = 1
M.confused = max(M.confused, 20)
holder.remove_reagent(src.id, 0.2)
holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
..()
return
@@ -1221,7 +1224,7 @@ datum
return
if(!M) M = holder.my_atom
if(prob(33))
M.take_organ_damage(1, 0)
M.take_organ_damage(1*REM, 0)
M.adjustOxyLoss(3)
if(prob(20)) M.emote("gasp")
..()
@@ -1238,7 +1241,7 @@ datum
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
M.heal_organ_damage(0,2)
M.heal_organ_damage(0,2*REM)
..()
return
@@ -1253,7 +1256,7 @@ datum
if(M.stat == 2.0) //THE GUY IS **DEAD**! BEREFT OF ALL LIFE HE RESTS IN PEACE etc etc. He does NOT metabolise shit anymore, god DAMN
return
if(!M) M = holder.my_atom
M.heal_organ_damage(0,3)
M.heal_organ_damage(0,3*REM)
..()
return
@@ -1268,9 +1271,9 @@ datum
if(M.stat == 2.0)
return //See above, down and around. --Agouri
if(!M) M = holder.my_atom
M.adjustOxyLoss(-2)
M.adjustOxyLoss(-2*REM)
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2)
holder.remove_reagent("lexorin", 2*REM)
..()
return
@@ -1287,7 +1290,7 @@ datum
if(!M) M = holder.my_atom
M.adjustOxyLoss(-M.getOxyLoss())
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 2)
holder.remove_reagent("lexorin", 2*REM)
..()
return
@@ -1302,10 +1305,10 @@ datum
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
if(M.getOxyLoss() && prob(80)) M.adjustOxyLoss(-1)
if(M.getBruteLoss() && prob(80)) M.heal_organ_damage(1,0)
if(M.getFireLoss() && prob(80)) M.heal_organ_damage(0,1)
if(M.getToxLoss() && prob(80)) M.adjustToxLoss(-1)
if(M.getOxyLoss() && prob(80)) M.adjustOxyLoss(-1*REM)
if(M.getBruteLoss() && prob(80)) M.heal_organ_damage(1*REM,0)
if(M.getFireLoss() && prob(80)) M.heal_organ_damage(0,1*REM)
if(M.getToxLoss() && prob(80)) M.adjustToxLoss(-1*REM)
..()
return
@@ -1404,7 +1407,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.jitteriness = max(M.jitteriness-5,0)
if(prob(80)) M.adjustBrainLoss(1)
if(prob(80)) M.adjustBrainLoss(1*REM)
if(prob(50)) M.drowsyness = max(M.drowsyness, 3)
if(prob(10)) M.emote("drool")
..()
@@ -1419,7 +1422,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.radiation = max(M.radiation-3,0)
M.radiation = max(M.radiation-3*REM,0)
..()
return
@@ -1434,8 +1437,8 @@ datum
if(M.stat == 2.0)
return //See above, down and around. --Agouri
if(!M) M = holder.my_atom
M.radiation = max(M.radiation-7,0)
M.adjustToxLoss(-1)
M.radiation = max(M.radiation-7*REM,0)
M.adjustToxLoss(-1*REM)
if(prob(15))
M.take_organ_damage(1, 0)
..()
@@ -1450,7 +1453,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustBrainLoss(-3)
M.adjustBrainLoss(-3*REM)
..()
return
@@ -1482,7 +1485,7 @@ datum
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
M.heal_organ_damage(2,0)
M.heal_organ_damage(2*REM,0)
..()
return
@@ -1496,7 +1499,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(prob(5)) M.emote(pick("twitch","blink_r","shiver"))
holder.remove_reagent(src.id, 0.2)
holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
..()
return
@@ -1555,7 +1558,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustToxLoss(2)
M.adjustToxLoss(2*REM)
..()
return
@@ -1568,8 +1571,8 @@ datum
on_mob_life(var/mob/living/carbon/M as mob)
if(!M) M = holder.my_atom
M.status_flags |= FAKEDEATH
M.adjustOxyLoss(0.5)
M.adjustToxLoss(0.5)
M.adjustOxyLoss(0.5*REM)
M.adjustToxLoss(0.5*REM)
M.Weaken(10)
M.silent = max(M.silent, 10)
M.tod = worldtime2text()
@@ -1690,7 +1693,7 @@ datum
color = "#404030" // rgb: 64, 64, 48
ultraglue
name = "Ulta Glue"
name = "Ultra Glue"
id = "glue"
description = "An extremely powerful bonding agent."
color = "#FFFFCC" // rgb: 255, 255, 204
@@ -1705,7 +1708,7 @@ datum
ethylredoxrazine // FUCK YOU, ALCOHOL
name = "Ethylredoxrazine"
id = "ethylredoxrazine"
description = "A powerfuld oxidizer that reacts with ethanol."
description = "A powerful oxidizer that reacts with ethanol."
reagent_state = SOLID
color = "#605048" // rgb: 96, 80, 72
@@ -1737,7 +1740,7 @@ datum
M.sleeping += 1
if(51 to INFINITY)
M.sleeping += 1
M.adjustToxLoss(data - 50)
M.adjustToxLoss((data - 50)*REM)
..()
return
@@ -1955,7 +1958,7 @@ datum
id = "sodiumchloride"
description = "A salt made of sodium chloride. Commonly used to season food."
reagent_state = SOLID
color = "#282828" // rgb: 40, 40, 40
color = "#FFFFFF" // rgb: 255,255,255
blackpepper
name = "Black Pepper"
@@ -2000,7 +2003,7 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustToxLoss(1)
M.adjustToxLoss(1*REM)
..()
return
@@ -2041,7 +2044,7 @@ datum
id = "sprinkles"
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
color = "#FF00FF" // rgb: 255, 0, 255
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
@@ -2052,6 +2055,7 @@ datum
..()
return
..()
/* //removed because of meta bullshit. this is why we can't have nice things.
syndicream
name = "Cream filling"
@@ -2237,7 +2241,7 @@ datum
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
if(!M) M = holder.my_atom
if(M.getToxLoss() && prob(20)) M.adjustToxLoss(-1)
if(M.getToxLoss() && prob(20)) M.adjustToxLoss(-1*REM)
M.nutrition++
..()
return
@@ -2587,7 +2591,7 @@ datum
id = "space_up"
description = "Tastes like a hull breach in your mouth."
reagent_state = LIQUID
color = "#202800" // rgb: 32, 40, 0
color = "#00FF00" // rgb: 0, 255, 0
on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature > 310)
@@ -2601,7 +2605,7 @@ datum
description = "A tangy substance made of 0.5% natural citrus!"
id = "lemon_lime"
reagent_state = LIQUID
color = "#878F00" // rgb: 135, 40, 0
color = "#8CFF00" // rgb: 135, 255, 0
on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature > 310)
@@ -2715,7 +2719,7 @@ datum
id = "vodka"
description = "Number one drink AND fueling choice for Russians worldwide."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#0064C8" // rgb: 0, 100, 200
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -2758,7 +2762,7 @@ datum
id = "tequilla"
description = "A strong and mildly flavoured, mexican produced spirit. Feeling thirsty hombre?"
reagent_state = LIQUID
color = "#A8B0B7" // rgb: 168, 176, 183
color = "#FFFF91" // rgb: 255, 255, 145
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -2777,7 +2781,7 @@ datum
id = "vermouth"
description = "You suddenly feel a craving for a martini..."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#91FF91" // rgb: 145, 255, 145
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -2837,7 +2841,7 @@ datum
id = "tonic"
description = "It tastes strange but at least the quinine keeps the Space Malaria at bay."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#0064C8" // rgb: 0, 100, 200
on_mob_life(var/mob/living/M as mob)
M.dizziness = max(0,M.dizziness-5)
@@ -2869,7 +2873,7 @@ datum
id = "cognac"
description = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#AB3C05" // rgb: 171, 60, 5
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -3020,7 +3024,7 @@ datum
id = "goldschlager"
description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#FFFF91" // rgb: 255, 255, 145
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -3191,7 +3195,7 @@ datum
id = "booger"
description = "Ewww..."
reagent_state = LIQUID
color = "#A68310" // rgb: 166, 131, 16
color = "#8CFF8C" // rgb: 140, 255, 140
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -3269,7 +3273,7 @@ datum
id = "tequillasunrise"
description = "Tequila and orange juice. Much like a Screwdriver, only Mexican~"
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#FFE48C" // rgb: 255, 228, 140
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -3329,7 +3333,7 @@ datum
id = "doctorsdelight"
description = "A gulp a day keeps the MediBot away. That's probably for the best."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#FF8CFF" // rgb: 255, 140, 255
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -3421,7 +3425,7 @@ datum
b52
name = "B-52"
id = "b52"
description = "Coffee, Irish Cream, and congac. You will get bombed."
description = "Coffee, Irish Cream, and cognac. You will get bombed."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
@@ -3461,7 +3465,7 @@ datum
id = "margarita"
description = "On the rocks with salt on the rim. Arriba~!"
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#8CFF8C" // rgb: 140, 255, 140
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -3597,7 +3601,7 @@ datum
id = "snowwhite"
description = "A cold refreshment"
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#FFFFFF" // rgb: 255, 255, 255
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -3616,7 +3620,7 @@ datum
id = "demonsblood"
description = "AHHHH!!!!"
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#820000" // rgb: 130, 0, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -3635,7 +3639,7 @@ datum
id = "vodkatonic"
description = "For when a gin and tonic isn't russian enough."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#0064C8" // rgb: 0, 100, 200
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -3673,7 +3677,7 @@ datum
id = "bahama_mama"
description = "Tropical cocktail."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#FF7F3B" // rgb: 255, 127, 59
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -3753,7 +3757,7 @@ datum
id = "red_mead"
description = "The true Viking drink! Even though it has a strange red color."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
color = "#C73C00" // rgb: 199, 60, 0
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
@@ -4033,7 +4037,7 @@ datum
id = "bananahonk"
description = "A drink from Clown Heaven."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#664300" // rgb: 102, 67, 0
color = "#FFFF91" // rgb: 255, 255, 140
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
@@ -4179,4 +4183,6 @@ datum
else if(data >= 115 && prob(33))
M.confused = max(M.confused+15,15)
..()
return
return
// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
#undef REM
+7 -17
View File
@@ -1009,7 +1009,8 @@ datum
/mob/living/simple_animal/hostile/syndicate/ranged,
/mob/living/simple_animal/hostile/syndicate/ranged/space,
/mob/living/simple_animal/hostile/alien/queen/large,
/mob/living/simple_animal/clown
/mob/living/simple_animal/hostile/retaliate,
/mob/living/simple_animal/hostile/retaliate/clown
)//exclusion list for things you don't want the reaction to create.
var/list/critters = typesof(/mob/living/simple_animal/hostile) - blocked // list of possible hostile mobs
@@ -1282,20 +1283,9 @@ datum
required_container = /obj/item/slime_extract/adamantine
required_other = 1
on_reaction(var/datum/reagents/holder)
var/mob/living/carbon/human/G = new /mob/living/carbon/human
G.dna.mutantrace = "adamantine"
G.real_name = text("Adamantine Golem ([rand(1, 1000)])")
G.equip_to_slot_or_del(new /obj/item/clothing/under/golem(G), slot_w_uniform)
G.equip_to_slot_or_del(new /obj/item/clothing/suit/golem(G), slot_wear_suit)
G.equip_to_slot_or_del(new /obj/item/clothing/shoes/golem(G), slot_shoes)
G.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/golem(G), slot_wear_mask)
G.equip_to_slot_or_del(new /obj/item/clothing/gloves/golem(G), slot_gloves)
G.loc = get_turf_loc(holder.my_atom)
var/list/candidates = get_alien_candidates()
var/candidate = pick(candidates)
G.key = candidate
G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. Serve the one created you, and assist them in completing their goals at any cost."
var/obj/effect/golemrune/Z = new /obj/effect/golemrune
Z.loc = get_turf_loc(holder.my_atom)
Z.announce_to_ghosts()
//////////////////////////////////////////FOOD MIXTURES////////////////////////////////////
tofu
@@ -1802,8 +1792,8 @@ datum
name = "Changeling Sting"
id = "changelingsting"
result = "changelingsting"
required_reagents = list("orangejuice" = 1, "limejuice" = 1, "lemonjuice" = 1, "vodka" = 1)
result_amount = 4
required_reagents = list("screwdrivercocktail" = 1, "limejuice" = 1, "lemonjuice" = 1)
result_amount = 5
aloe
name = "Aloe"
@@ -1174,9 +1174,9 @@
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/bloodsoup
name = "Meatball soup"
name = "Tomato soup"
desc = "Smells like copper"
icon_state = "meatballsoup"
icon_state = "tomatosoup"
New()
..()
reagents.add_reagent("nutriment", 2)
@@ -26,10 +26,11 @@
/obj/machinery/bot/medbot,
/obj/machinery/computer/pandemic,
/obj/item/weapon/storage/secure/safe,
/obj/machinery/disposal,
/obj/machinery/iv_drip,
/obj/machinery/disease2/incubator
)
/obj/machinery/disease2/incubator,
/obj/machinery/disposal,
/mob/living/simple_animal/cow,
/mob/living/simple_animal/hostile/retaliate/goat )
examine()
set src in view()