mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Heated plasma and AN/FO bombs (#34165)
* Heated plasma and AN/FO bombs * Heated plasma and AN/FO bombs * Heated plasma and AN/FO bombs * Heated plasma and AN/FO bombs * Heated plasma and AN/FO bombs * nip in the bud --------- Co-authored-by: SECBATON GRIFFON <sage>
This commit is contained in:
@@ -79,6 +79,8 @@
|
|||||||
#define SILICON "silicon"
|
#define SILICON "silicon"
|
||||||
#define FUEL "fuel"
|
#define FUEL "fuel"
|
||||||
#define FUELBOMB "fuelbomb"
|
#define FUELBOMB "fuelbomb"
|
||||||
|
#define PLASMABOMB "plasmabomb"
|
||||||
|
#define ANFOBOMB "anfobomb"
|
||||||
#define VOMIT "vomit"
|
#define VOMIT "vomit"
|
||||||
#define CLEANER "cleaner"
|
#define CLEANER "cleaner"
|
||||||
#define BLEACH "bleach"
|
#define BLEACH "bleach"
|
||||||
@@ -144,6 +146,7 @@
|
|||||||
#define SALINE "saline"
|
#define SALINE "saline"
|
||||||
#define GLUE "glue"
|
#define GLUE "glue"
|
||||||
#define DIETHYLAMINE "diethylamine"
|
#define DIETHYLAMINE "diethylamine"
|
||||||
|
#define AMMONIUMNITRATE "ammoniumnitrate"
|
||||||
#define ETHYLREDOXRAZINE "ethylredoxrazine"
|
#define ETHYLREDOXRAZINE "ethylredoxrazine"
|
||||||
#define CHLORALHYDRATE "chloralhydrate"
|
#define CHLORALHYDRATE "chloralhydrate"
|
||||||
#define SUX "suxameth"
|
#define SUX "suxameth"
|
||||||
|
|||||||
@@ -4467,6 +4467,10 @@ var/procizine_tolerance = 0
|
|||||||
density = 0.65
|
density = 0.65
|
||||||
specheatcap = 35.37
|
specheatcap = 35.37
|
||||||
|
|
||||||
|
/datum/reagent/diethylamine/ammoniumnitrate
|
||||||
|
name = "Ammonium Nitrate"
|
||||||
|
id = AMMONIUMNITRATE
|
||||||
|
|
||||||
/datum/reagent/diethylamine/on_plant_life(obj/machinery/portable_atmospherics/hydroponics/T)
|
/datum/reagent/diethylamine/on_plant_life(obj/machinery/portable_atmospherics/hydroponics/T)
|
||||||
if(!holder)
|
if(!holder)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -583,6 +583,8 @@
|
|||||||
required_reagents = list(FUEL = 1)
|
required_reagents = list(FUEL = 1)
|
||||||
required_temp = AUTOIGNITION_WELDERFUEL
|
required_temp = AUTOIGNITION_WELDERFUEL
|
||||||
result_amount = 1
|
result_amount = 1
|
||||||
|
var/fire_temp = AUTOIGNITION_WELDERFUEL
|
||||||
|
var/power = 0
|
||||||
|
|
||||||
/datum/chemical_reaction/fuelbomb/on_reaction(var/datum/reagents/holder, var/created_volume)
|
/datum/chemical_reaction/fuelbomb/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||||
if(holder.my_atom.is_open_container())
|
if(holder.my_atom.is_open_container())
|
||||||
@@ -591,17 +593,18 @@
|
|||||||
|
|
||||||
for(var/turf/simulated/floor/target_tile in range(0,location))
|
for(var/turf/simulated/floor/target_tile in range(0,location))
|
||||||
spawn(0)
|
spawn(0)
|
||||||
target_tile.hotspot_expose(AUTOIGNITION_WELDERFUEL, created_volume, surfaces = 1)
|
target_tile.hotspot_expose(fire_temp, created_volume, surfaces = 1)
|
||||||
|
|
||||||
holder.del_reagent(FUEL)
|
for(var/reagent in required_reagents)
|
||||||
|
holder.del_reagent(reagent)
|
||||||
else
|
else
|
||||||
var/datum/effect/system/reagents_explosion/e = new()
|
var/datum/effect/system/reagents_explosion/e = new()
|
||||||
if(created_volume > 500)
|
if(created_volume > 500)
|
||||||
e.set_up(15, holder.my_atom, 0, 0, null, 1, 2, 4)
|
e.set_up(15, holder.my_atom, 0, 0, null, 1+power, 2+(power*2), 4+(power*2))
|
||||||
else if(created_volume > 100)
|
else if(created_volume > 100)
|
||||||
e.set_up(9, holder.my_atom, 0, 0, null, 0, 1, 3)
|
e.set_up(9, holder.my_atom, 0, 0, null, 0+power, 1+power, 3+power)
|
||||||
else
|
else
|
||||||
e.set_up(9, holder.my_atom, 0, 0, null, -1, 1, 2)
|
e.set_up(9, holder.my_atom, 0, 0, null, -1+power, 1, 2+power)
|
||||||
e.holder_damage(holder.my_atom)
|
e.holder_damage(holder.my_atom)
|
||||||
if(isliving(holder.my_atom))
|
if(isliving(holder.my_atom))
|
||||||
e.amount *= 0.5
|
e.amount *= 0.5
|
||||||
@@ -611,6 +614,23 @@
|
|||||||
e.start()
|
e.start()
|
||||||
holder.clear_reagents()
|
holder.clear_reagents()
|
||||||
|
|
||||||
|
|
||||||
|
/datum/chemical_reaction/fuelbomb/plasma
|
||||||
|
name = "Plasma bomb"
|
||||||
|
id = PLASMABOMB
|
||||||
|
required_reagents = list(PLASMA = 1)
|
||||||
|
required_temp = AUTOIGNITION_WELDERFUEL
|
||||||
|
fire_temp = AUTOIGNITION_WELDERFUEL
|
||||||
|
power = 1
|
||||||
|
|
||||||
|
/datum/chemical_reaction/fuelbomb/anfo
|
||||||
|
name = "AN/FO bomb"
|
||||||
|
id = ANFOBOMB
|
||||||
|
required_reagents = list(AMMONIUMNITRATE = 16, FUEL = 1) // rough approximation of the 94%-6% mix
|
||||||
|
required_temp = AUTOIGNITION_WELDERFUEL-1 // just for priority and to stop recipe conflicts
|
||||||
|
fire_temp = AUTOIGNITION_WELDERFUEL
|
||||||
|
power = 1
|
||||||
|
|
||||||
/datum/chemical_reaction/sodiumchloride
|
/datum/chemical_reaction/sodiumchloride
|
||||||
name = "Sodium Chloride"
|
name = "Sodium Chloride"
|
||||||
id = SODIUMCHLORIDE
|
id = SODIUMCHLORIDE
|
||||||
@@ -1206,6 +1226,13 @@
|
|||||||
required_reagents = list(HYDROGEN = 3, NITROGEN = 1)
|
required_reagents = list(HYDROGEN = 3, NITROGEN = 1)
|
||||||
result_amount = 3
|
result_amount = 3
|
||||||
|
|
||||||
|
/datum/chemical_reaction/ammoniumnitrate
|
||||||
|
name = "Ammonium Nitrate"
|
||||||
|
id = AMMONIUMNITRATE
|
||||||
|
result = AMMONIUMNITRATE
|
||||||
|
required_reagents = list(AMMONIA = 5, CLEANER = 3, NITROGEN = 2, OXYGEN = 5)
|
||||||
|
result_amount = 18
|
||||||
|
|
||||||
/datum/chemical_reaction/diethylamine
|
/datum/chemical_reaction/diethylamine
|
||||||
name = "Diethylamine"
|
name = "Diethylamine"
|
||||||
id = DIETHYLAMINE
|
id = DIETHYLAMINE
|
||||||
|
|||||||
Reference in New Issue
Block a user