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:
SECBATON GRIFFON
2023-04-25 03:57:40 +01:00
committed by GitHub
parent 0501600463
commit a9960e56ff
3 changed files with 39 additions and 5 deletions

View File

@@ -79,6 +79,8 @@
#define SILICON "silicon"
#define FUEL "fuel"
#define FUELBOMB "fuelbomb"
#define PLASMABOMB "plasmabomb"
#define ANFOBOMB "anfobomb"
#define VOMIT "vomit"
#define CLEANER "cleaner"
#define BLEACH "bleach"
@@ -144,6 +146,7 @@
#define SALINE "saline"
#define GLUE "glue"
#define DIETHYLAMINE "diethylamine"
#define AMMONIUMNITRATE "ammoniumnitrate"
#define ETHYLREDOXRAZINE "ethylredoxrazine"
#define CHLORALHYDRATE "chloralhydrate"
#define SUX "suxameth"

View File

@@ -4467,6 +4467,10 @@ var/procizine_tolerance = 0
density = 0.65
specheatcap = 35.37
/datum/reagent/diethylamine/ammoniumnitrate
name = "Ammonium Nitrate"
id = AMMONIUMNITRATE
/datum/reagent/diethylamine/on_plant_life(obj/machinery/portable_atmospherics/hydroponics/T)
if(!holder)
return

View File

@@ -583,6 +583,8 @@
required_reagents = list(FUEL = 1)
required_temp = AUTOIGNITION_WELDERFUEL
result_amount = 1
var/fire_temp = AUTOIGNITION_WELDERFUEL
var/power = 0
/datum/chemical_reaction/fuelbomb/on_reaction(var/datum/reagents/holder, var/created_volume)
if(holder.my_atom.is_open_container())
@@ -591,17 +593,18 @@
for(var/turf/simulated/floor/target_tile in range(0,location))
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
var/datum/effect/system/reagents_explosion/e = new()
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)
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
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)
if(isliving(holder.my_atom))
e.amount *= 0.5
@@ -611,6 +614,23 @@
e.start()
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
name = "Sodium Chloride"
id = SODIUMCHLORIDE
@@ -1206,6 +1226,13 @@
required_reagents = list(HYDROGEN = 3, NITROGEN = 1)
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
name = "Diethylamine"
id = DIETHYLAMINE