Merge branch 'master' of https://github.com/tgstation/-tg-station into explosive

Conflicts:
	code/modules/mob/living/carbon/carbon.dm
	code/modules/mob/living/carbon/carbon_defines.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/reagents/Chemistry-Goon-420BlazeIt.dm
	code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm
This commit is contained in:
Iamgoofball
2015-03-08 14:26:52 -07:00
285 changed files with 9871 additions and 13276 deletions
@@ -127,12 +127,8 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
..()
return
/datum/reagent/krokodil/addiction_act_stage4(var/mob/living/carbon/human/M as mob)
if(!istype(M.dna.species, /datum/species/cosmetic_zombie))
M << "<span class='userdanger'>Your skin falls off easily!</span>"
M.adjustBruteLoss(rand(50,80)*REM) // holy shit your skin just FELL THE FUCK OFF
hardset_dna(M, null, null, null, null, /datum/species/cosmetic_zombie)
else
M.adjustBruteLoss(5*REM)
M << "<span class='userdanger'>Your skin sloughs off!</span>"
M.adjustBruteLoss(rand(50,80)*REM)
..()
return
@@ -228,7 +224,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
name = "methamphetamine"
id = "methamphetamine"
result = "methamphetamine"
required_reagents = list("ephedrine" = 1, "iodine" = 1, "phosphorous" = 1, "hydrogen" = 1)
required_reagents = list("ephedrine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1)
result_amount = 4
required_temp = 374
@@ -507,4 +503,4 @@ datum/reagent/hotline/addiction_act_stage4(var/mob/living/M as mob)
H.visible_message("<span class = 'userdanger'>[H] clutches at their chest! It looks like they're having a heart attack!</span>")
H.heart_attack = 1 // don't do drugs kids
..()
return
return
@@ -620,7 +620,6 @@ datum/reagent/strange_reagent/reaction_mob(var/mob/living/carbon/human/M as mob,
living_mob_list |= list(M)
M.emote("gasp")
add_logs(M, M, "revived", object="strange reagent")
hardset_dna(M, null, null, null, null, /datum/species/zombie)
..()
return
datum/reagent/strange_reagent/on_mob_life(var/mob/living/M as mob)
@@ -183,6 +183,7 @@
var/ex_heavy = round(created_volume / 42)
var/ex_light = round(created_volume / 21)
var/ex_flash = round(created_volume / 8)
<<<<<<< HEAD
explosion(T,ex_severe,ex_heavy,ex_light,ex_flash, 1)
return
@@ -454,4 +455,4 @@ datum/reagent/pyrosium/on_mob_life(var/mob/living/M as mob)
var/ex_light = round(created_volume / 21)
var/ex_flash = round(created_volume / 8)
explosion(T,ex_severe,ex_heavy,ex_light,ex_flash, 1)
return
return
@@ -920,6 +920,7 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = list("ketchup" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/corn = list("cornoil" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5),
/obj/item/weapon/reagent_containers/food/snacks/grown/oat = list("flour" = -5),
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0),
//Grinder stuff, but only if dry
@@ -67,6 +67,7 @@ datum/reagent/blob/lung_destroying_toxin
datum/reagent/blob/lung_destroying_toxin/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume,var/show_message = 1)
if(method == TOUCH)
M.apply_damage(20, OXY)
M.losebreath += 15
M.apply_damage(20, TOX)
if(show_message)
M << "<span class = 'userdanger'>The blob strikes you, and your lungs feel heavy and weak!</span>"
@@ -95,13 +96,11 @@ datum/reagent/blob/radioactive_liquid/reaction_mob(var/mob/living/M as mob, var/
if(method == TOUCH)
if(istype(M, /mob/living/carbon/human))
M.apply_damage(10, BRUTE)
M.apply_effect(10,IRRADIATE,0)
M.apply_effect(40,IRRADIATE,0) // irradiate the shit out of these fuckers
if(prob(33))
randmuti(M)
if(prob(98))
randmutb(M)
else
randmutg(M)
domutcheck(M, null)
updateappearance(M)
if(show_message)
@@ -266,10 +266,12 @@ datum/reagent/water/reaction_turf(var/turf/simulated/T, var/volume)
G.temperature = max(min(G.temperature-(CT*1000),G.temperature/CT),0)
G.react()
qdel(hotspot)
T.color = initial(T.color)
return
datum/reagent/water/reaction_obj(var/obj/O, var/volume)
src = null
O.color = initial(O.color)
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube))
var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O
if(!cube.wrapped)
@@ -279,6 +281,7 @@ datum/reagent/water/reaction_obj(var/obj/O, var/volume)
datum/reagent/water/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with water can help put them out!
if(!istype(M, /mob/living))
return
M.color = initial(M.color)
if(method == TOUCH)
M.adjust_fire_stacks(-(volume / 10))
if(M.fire_stacks <= 0)
@@ -313,9 +313,10 @@ datum/reagent/consumable/ethanol/beepsky_smash
description = "Deny drinking this and prepare for THE LAW."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
metabolization_rate = 0.8
datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(var/mob/living/M as mob)
M.Stun(2)
M.Stun(1)
..()
return
@@ -55,12 +55,6 @@ datum/reagent/consumable/sugar
metabolization_rate = 2 * REAGENTS_METABOLISM
overdose_threshold = 200 // Hyperglycaemic shock
datum/reagent/consumable/sugar/on_mob_life(var/mob/living/M as mob)
if(M.satiety > -200)
M.satiety -= 20 //eating sugar makes you more hungry over time by making your hunger drop faster.
M.nutrition += max(((NUTRITION_LEVEL_FED + 50) - M.nutrition )/100, 0) * nutriment_factor // sugar doesn't help your hunger if your stomach is nearly full
holder.remove_reagent(src.id, metabolization_rate)
datum/reagent/consumable/sugar/overdose_start(var/mob/living/M as mob)
M << "<span class = 'userdanger'>You go into hyperglycaemic shock! Lay off the twinkies!</span>"
M.sleeping += 30
@@ -338,7 +332,7 @@ datum/reagent/consumable/hell_ramen/on_mob_life(var/mob/living/M as mob)
return
datum/reagent/consumable/flour
name = "flour"
name = "Flour"
id = "flour"
description = "This is what you rub all over yourself to pretend to be a ghost."
reagent_state = SOLID
@@ -355,3 +349,18 @@ datum/reagent/consumable/cherryjelly
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
color = "#801E28" // rgb: 128, 30, 40
datum/reagent/consumable/rice
name = "Rice"
id = "rice"
description = "tiny nutritious grains"
reagent_state = SOLID
nutriment_factor = 3 * REAGENTS_METABOLISM
color = "#FFFFFF" // rgb: 0, 0, 0
datum/reagent/consumable/vanilla
name = "Vanilla Powder"
id = "vanilla"
description = "A fatty, bitter paste made from vanilla pods."
reagent_state = SOLID
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#FFFACD"
@@ -77,3 +77,21 @@
return 0
return 1
/obj/item/weapon/reagent_containers/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/egg)) //making dough
var/obj/item/weapon/reagent_containers/food/snacks/egg/E = W
if(flags & OPENCONTAINER)
if(reagents)
if(reagents.has_reagent("flour"))
if(reagents.get_reagent_amount("flour") >= 15)
var/obj/item/weapon/reagent_containers/food/snacks/S = new /obj/item/weapon/reagent_containers/food/snacks/dough(get_turf(src))
user << "<span class='notice'>You mix egg and flour to make some dough.</span>"
reagents.remove_reagent("flour", 15)
if(E.reagents)
E.reagents.trans_to(S,E.reagents.total_volume)
qdel(E)
else
user << "<span class='notice'>Not enough flour to make dough.</span>"
return
..()
@@ -88,6 +88,21 @@
reagents.reaction(target, TOUCH)
reagents.clear_reagents()
/obj/item/weapon/reagent_containers/glass/attackby(var/obj/item/I, mob/user as mob, params)
if(istype(I, /obj/item/clothing/mask/cigarette)) //ciggies are weird
return
var/hotness = is_hot(I)
if(hotness)
var/added_heat = (hotness / 100) //ishot returns a temperature
if(reagents)
if(reagents.chem_temp < hotness) //can't be heated to be hotter than the source
reagents.chem_temp += added_heat
user << "<span class='notice'>You heat [src] with [I].</span>"
reagents.handle_reactions()
else
user << "<span class='warning'>[src] is already hotter than [I].</span>"
..()
/obj/item/weapon/reagent_containers/glass/beaker
name = "beaker"
@@ -211,3 +226,5 @@
user.put_in_hands(new /obj/item/weapon/bucket_sensor)
user.unEquip(src)
qdel(src)
else
..()
@@ -118,7 +118,7 @@
/obj/item/weapon/reagent_containers/spray/waterflower
name = "water flower"
desc = "A seemingly innocent sunflower...with a twist."
icon = 'icons/obj/harvest.dmi'
icon = 'icons/obj/hydroponics/harvest.dmi'
icon_state = "sunflower"
item_state = "sunflower"
amount_per_transfer_from_this = 1
@@ -194,7 +194,7 @@
/obj/item/weapon/reagent_containers/spray/plantbgone // -- Skie
name = "Plant-B-Gone"
desc = "Kills those pesky weeds!"
icon = 'icons/obj/hydroponics.dmi'
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "plantbgone"
item_state = "plantbgone"
volume = 100
@@ -98,6 +98,8 @@
..()
if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet))
if((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE))
if(Proj.nodamage)
return
message_admins("[key_name_admin(Proj.firer)] triggered a fueltank explosion.")
log_game("[key_name(Proj.firer)] triggered a fueltank explosion.")
explosion(src.loc,-1,0,2, flame_range = 2)