Adds Chemical flamethrowers (#25091)

* Initial work

* Good enough to open a PR out of draft

* Make these use the vars on the flamethrower

* Moar fixes

* Undefines define

* Update code/game/objects/items/weapons/chemical_flamethrower.dm

Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower.dm

Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower.dm

Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower.dm

Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower.dm

Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>

* This won't compile

* GDN review

* Fixes CI

* Fixes CI even more

* 5 ammo per tile now

* Heavily nerfs adding multiple fires

* Adds phlogiston as a burnable reagent

* Fixes the fire name

* Placeholder sprite + ammo use fix

* Now in cargo partially

* Apply suggestions from code review

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower/chemical_flamethrower.dm

Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower/fire_effect.dm

Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower/fire_effect.dm

Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Lewc Review

* Adds nuclear variant

* Adds the chem flamethrower to the nukie uplink, alongside ammo

* More fire armor tweaks

* GDN review

* Update code/modules/reagents/chemistry/reagents/pyrotechnic.dm

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower/chemical_flamethrower.dm

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower/chemical_flamethrower.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower/fire_effect.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* TEMPORARY PUSH

* Adds inhands

* Update code/game/objects/items/weapons/chemical_flamethrower/chemical_flamethrower.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/game/objects/items/weapons/chemical_flamethrower/chemical_flamethrower.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Fixes inhands

* Makes air hot again

* Lewc review

* Audible messages and canister refilling

* Update code/game/objects/items/weapons/chemical_flamethrower/chemical_flamethrower.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

---------

Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
This commit is contained in:
DGamerL
2024-09-05 23:12:56 +00:00
committed by GitHub
co-authored by GDN Henri215 1080pCat Luc Burzah
parent 6ae5bfef8a
commit e3c73110db
21 changed files with 523 additions and 10 deletions
+6
View File
@@ -105,6 +105,12 @@
origin_tech = "combat=6;magnets=6;syndicate=2"
outcome = /obj/item/gun/energy/disabler/silencer
/obj/item/weaponcrafting/gunkit/chemical_flamethrower
name = "extended chemical flamethrower parts kit"
desc = "A suitcase containing the necessary gun parts to transform a standard chemical flamethrower into a version that can accept two cartridges instead of one."
origin_tech = "combat=5;engineering=6;plasmatech=4"
outcome = /obj/item/chemical_flamethrower/extended
/obj/item/weaponcrafting/gunkit/universal_gun_kit
name = "universal self assembling gun parts kit"
desc = "A suitcase containing the necessary gun parts to build a full gun, when combined with a gun kit. Use it directly on a gunkit to rapidly assemble it."
+8
View File
@@ -296,6 +296,14 @@
..()
blacklist += subtypesof(/obj/item/gun/energy/disabler)
/datum/crafting_recipe/flamethrower_extended
name = "Extended Chemical Flamethrower"
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
result = list(/obj/item/chemical_flamethrower/extended)
reqs = list(/obj/item/chemical_flamethrower = 1,
/obj/item/stack/cable_coil = 5,
/obj/item/weaponcrafting/gunkit/chemical_flamethrower = 1)
/datum/crafting_recipe/ed209
name = "ED209"
result = list(/mob/living/simple_animal/bot/ed209)
@@ -304,10 +304,10 @@
var/thermal_protection = 0 //Simple check to estimate how protected we are against multiple temperatures
if(wear_suit)
if(wear_suit.max_heat_protection_temperature >= FIRE_SUIT_MAX_TEMP_PROTECT)
thermal_protection += (wear_suit.max_heat_protection_temperature*0.7)
thermal_protection += (wear_suit.max_heat_protection_temperature * 0.7)
if(head)
if(head.max_heat_protection_temperature >= FIRE_HELM_MAX_TEMP_PROTECT)
thermal_protection += (head.max_heat_protection_temperature*THERMAL_PROTECTION_HEAD)
thermal_protection += (head.max_heat_protection_temperature * THERMAL_PROTECTION_HEAD)
thermal_protection = round(thermal_protection)
return thermal_protection
@@ -196,7 +196,6 @@
ammo_type = /obj/item/ammo_casing/caseless/foam_dart/sniper/riot
materials = list(MAT_METAL = 90000)
/obj/item/ammo_box/caps
name = "speed loader (caps)"
desc = "A revolver speedloader for a cap gun. Cannot chamber live ammunition."
@@ -6,6 +6,8 @@
color = "#FFAF00"
process_flags = ORGANIC | SYNTHETIC
taste_description = "burning"
burn_temperature = T0C + 500
burn_duration = 20 SECONDS
var/temp_fire = 4000
var/temp_deviance = 1000
var/size_divisor = 40
@@ -43,6 +45,7 @@
temp_deviance = 500
size_divisor = 80
mob_burning = 3 // 15
burn_temperature = T0C + 700
/datum/reagent/napalm
name = "Napalm"
@@ -52,6 +55,9 @@
process_flags = ORGANIC | SYNTHETIC
color = "#C86432"
taste_description = "burning"
burn_temperature = T0C + 500
burn_duration = 40 SECONDS
fire_stack_applications = 4 // BURN BABY BURN
/datum/reagent/napalm/reaction_temperature(exposed_temperature, exposed_volume)
if(exposed_temperature > T0C + 100)
@@ -91,6 +97,9 @@
drink_desc = "Unless you are an industrial tool, this is probably not safe for consumption."
taste_description = "mistakes"
process_flags = ORGANIC | SYNTHETIC
burn_temperature = T0C + 400
burn_duration = 15 SECONDS // Barely better than default
var/max_radius = 7
var/min_radius = 0
var/volume_radius_modifier = -0.15
@@ -139,7 +148,7 @@
T.create_reagents(50)
T.reagents.add_reagent("fuel", volume)
/datum/reagent/fuel/reaction_mob(mob/living/M, method=REAGENT_TOUCH, volume)//Splashing people with welding fuel to make them easy to ignite!
/datum/reagent/fuel/reaction_mob(mob/living/M, method = REAGENT_TOUCH, volume) // Splashing people with welding fuel to make them easy to ignite!
if(method == REAGENT_TOUCH)
if(M.on_fire)
M.adjust_fire_stacks(6)
@@ -152,6 +161,8 @@
color = "#7A2B94"
taste_description = "corporate assets going to waste"
taste_mult = 1.5
burn_temperature = T0C + 400
burn_duration = 20 SECONDS
/datum/reagent/plasma/reaction_temperature(exposed_temperature, exposed_volume)
if(exposed_temperature >= T0C + 100)
@@ -185,6 +196,8 @@
color = "#673910" // rgb: 103, 57, 16
process_flags = ORGANIC | SYNTHETIC
taste_description = "rust"
burn_temperature = T0C + 1500 // hahahahHAHAHAHAH LET IT BURN
burn_duration = 5 SECONDS // Not for long though
/datum/reagent/thermite/reaction_mob(mob/living/M, method= REAGENT_TOUCH, volume)
if(method == REAGENT_TOUCH)
@@ -237,6 +250,9 @@
metabolization_rate = 4
process_flags = ORGANIC | SYNTHETIC
taste_mult = 0
burn_temperature = T0C + 700
burn_duration = 15 SECONDS
fire_stack_applications = 3
/datum/reagent/clf3/on_mob_life(mob/living/M)
if(M.on_fire)
@@ -45,6 +45,13 @@
// Affects the quantity of the reagent that is requested by CC.
var/goal_difficulty = REAGENT_GOAL_SKIP
/// At what temperature does this reagent burn? Currently only used for chemical flamethrowers
var/burn_temperature = T0C
/// How long would a fire burn using this reagent? Currently only used for chemical flamethrowers
var/burn_duration = 30 SECONDS
/// How many firestacks will the reagent apply when it is burning? Currently only used for chemical flamethrowers
var/fire_stack_applications = 1
/datum/reagent/Destroy()
. = ..()
holder = null
@@ -354,3 +354,46 @@
materials = list(MAT_GOLD = 5000, MAT_METAL = 10000, MAT_TITANIUM = 3000, MAT_BLUESPACE = 2000)
build_path = /obj/item/organ/internal/cyberimp/arm/muscle
category = list("Weapons")
/datum/design/upgraded_chemical_flamethrower
name = "Extended Capacity Chemical Flamethrower Parts"
desc = "Parts for a flamethrower that accepts two chemical cartridges to create lasting fires."
id = "chem_flamethrower_extended"
req_tech = list("combat" = 6, "engineering" = 7, "plasmatech" = 5)
materials = list(MAT_TITANIUM = 7000, MAT_METAL = 13000, MAT_GOLD = 1000)
build_path = /obj/item/weaponcrafting/gunkit/chemical_flamethrower
category = list("Weapons")
// The normal and extended canisters can be obtained from cargo aswell, pyrotechnical ones are RnD exclusive
/datum/design/chemical_canister
name = "Chemical Canister"
desc = "A plain chemical canister, designed for use with a chemical flamethrower."
id = "chemical_canister"
req_tech = list("materials" = 3, "plasmatech" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 5000)
reagents_list = list("fuel" = 20)
build_path = /obj/item/chemical_canister
category = list("Weapons")
/datum/design/chemical_canister/extended
name = "Extended Capacity Chemical Canister"
desc = "A large chemical canister, designed for use with a chemical flamethrower."
id = "chemical_canister_extended"
req_tech = list("materials" = 5, "plasmatech" = 4)
build_type = PROTOLATHE
materials = list(MAT_METAL = 10000)
reagents_list = list("fuel" = 40)
build_path = /obj/item/chemical_canister/extended
category = list("Weapons")
/datum/design/chemical_canister/pyrotechnics
name = "Chemical Canister (Pyrotechnics)"
desc = "A chemical canister designed to accept pyrotechnics."
id = "chemical_canister_pyro"
req_tech = list("materials" = 4, "plasmatech" = 6)
build_type = PROTOLATHE
materials = list(MAT_METAL = 7500)
reagents_list = list("fuel" = 30)
build_path = /obj/item/chemical_canister/pyrotechnics
category = list("Weapons")
@@ -264,3 +264,17 @@
cost = 250
containertype = /obj/structure/largecrate
containername = "Plasma canister crate"
/datum/supply_packs/engineering/chemical_flamethrower
name = "Chemical Flamethrower Starter Pack"
contains = list(/obj/item/chemical_flamethrower, /obj/item/chemical_canister, /obj/item/chemical_canister)
cost = 750
containertype = /obj/structure/closet/crate // Just a normal open crate, you can get a gas flamethrower from an autolathe
containername = "chemical flamethrower crate"
/datum/supply_packs/engineering/chemical_canister
name = "Chemical Flamethrower Canister Pack"
contains = list(/obj/item/chemical_canister, /obj/item/chemical_canister, /obj/item/chemical_canister, /obj/item/chemical_canister, /obj/item/chemical_canister/extended) // One extended canister, as a treat
cost = 500
containertype = /obj/structure/closet/crate
containername = "chemical flamethrower canister crate"