From dfd642f861bdd0573d1b198064366f44a695a84f Mon Sep 17 00:00:00 2001 From: Ashe Higgs Date: Fri, 18 Aug 2017 23:05:37 -0400 Subject: [PATCH] Ports smart metal foam from FTL (#29963) * Ports smart foam from FTL * Adds foam grenades to the EngiVend * Why are you doing htis? * Stuff * badoop --- code/game/machinery/vending.dm | 4 +-- .../effects/effect_system/effects_foam.dm | 21 +++++++++++ .../objects/items/grenades/chem_grenade.dm | 18 ++++++++++ code/game/objects/items/storage/boxes.dm | 9 +++++ code/game/turfs/simulated/floor.dm | 2 +- code/game/turfs/simulated/floor/plating.dm | 33 ++++++++++++++++++ .../chemistry/reagents/other_reagents.dm | 8 +++++ .../reagents/chemistry/recipes/others.dm | 21 +++++++++++ icons/turf/floors.dmi | Bin 449436 -> 452516 bytes 9 files changed, 113 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 151acb3a396..d1302a906b7 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1067,9 +1067,9 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "engivend" icon_deny = "engivend-deny" req_access_txt = "11" //Engineering Equipment access - products = list(/obj/item/clothing/glasses/meson/engine = 2, /obj/item/device/multitool = 4, /obj/item/electronics/airlock = 10, /obj/item/electronics/apc = 10, /obj/item/electronics/airalarm = 10, /obj/item/stock_parts/cell/high = 10, /obj/item/construction/rcd/loaded = 3, /obj/item/device/geiger_counter = 5) + products = list(/obj/item/clothing/glasses/meson/engine = 2, /obj/item/device/multitool = 4, /obj/item/electronics/airlock = 10, /obj/item/electronics/apc = 10, /obj/item/electronics/airalarm = 10, /obj/item/stock_parts/cell/high = 10, /obj/item/construction/rcd/loaded = 3, /obj/item/device/geiger_counter = 5, /obj/item/grenade/chem_grenade/smart_metal_foam = 10) contraband = list(/obj/item/stock_parts/cell/potato = 3) - premium = list(/obj/item/storage/belt/utility = 3) + premium = list(/obj/item/storage/belt/utility = 3, /obj/item/storage/box/smart_metal_foam = 1) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) resistance_flags = FIRE_PROOF diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index c1a384a0b3f..5dfe5ece055 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -32,6 +32,9 @@ /obj/effect/particle_effect/foam/metal/MakeSlippery() return +/obj/effect/particle_effect/foam/metal/smart + name = "smart foam" + /obj/effect/particle_effect/foam/metal/iron name = "iron foam" metal = IRON_FOAM @@ -68,6 +71,20 @@ flick("[icon_state]-disolve", src) QDEL_IN(src, 5) +/obj/effect/particle_effect/foam/smart/kill_foam() //Smart foam adheres to area borders for walls + STOP_PROCESSING(SSfastprocess, src) + if(metal) + var/turf/T = get_turf(src) + if(isspaceturf(T)) //Block up any exposed space + T.ChangeTurf(/turf/open/floor/plating/foam) + for(var/direction in GLOB.cardinals) + var/turf/cardinal_turf = get_step(T, direction) + if(get_area(cardinal_turf) != get_area(T)) //We're at an area boundary, so let's block off this turf! + new/obj/structure/foamedmetal(T) + break + flick("[icon_state]-disolve", src) + QDEL_IN(src, 5) + /obj/effect/particle_effect/foam/process() lifetime-- if(lifetime < 1) @@ -149,6 +166,10 @@ effect_type = /obj/effect/particle_effect/foam/metal +/datum/effect_system/foam_spread/metal/smart + effect_type = /obj/effect/particle_effect/foam/smart + + /datum/effect_system/foam_spread/New() ..() chemholder = new /obj() diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 608dd260b17..b352596e2f5 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -326,6 +326,24 @@ beakers += B2 +/obj/item/grenade/chem_grenade/smart_metal_foam + name = "smart metal foam grenade" + desc = "Used for sealing and reconstruction of air breaches." + stage = READY + +/obj/item/grenade/chem_grenade/smart_metal_foam/Initialize() + . = ..() + var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src) + var/obj/item/reagent_containers/glass/beaker/B2 = new(src) + + B1.reagents.add_reagent("aluminium", 75) + B2.reagents.add_reagent("smart_foaming_agent", 25) + B2.reagents.add_reagent("facid", 25) + + beakers += B1 + beakers += B2 + + /obj/item/grenade/chem_grenade/incendiary name = "incendiary grenade" desc = "Used for clearing rooms of living things." diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 9ee8aab13f1..e03b306c261 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -583,6 +583,15 @@ for(var/i in 1 to 7) new /obj/item/grenade/chem_grenade/metalfoam(src) +/obj/item/storage/box/smart_metal_foam + name = "box of smart metal foam grenades" + desc = "Used to rapidly seal hull breaches. This variety conforms to the walls of its area." + illustration = "flashbang" + +/obj/item/storage/box/smart_metal_foam/PopulateContents() + for(var/i in 1 to 7) + new/obj/item/grenade/chem_grenade/smart_metal_foam(src) + /obj/item/storage/box/hug name = "box of hugs" desc = "A special box for sensitive people." diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 1fae8ed2c06..c13def98977 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -24,7 +24,7 @@ ..() //This is so damaged or burnt tiles or platings don't get remembered as the default tile var/static/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","damaged4", - "damaged5","panelscorched","floorscorched1","floorscorched2","platingdmg1","platingdmg2", + "damaged5","panelscorched","floorscorched1","floorscorched2","platingdmg1","platingdmg2", "foam_plating", "platingdmg3","plating","light_on","light_on_flicker1","light_on_flicker2", "light_on_clicker3","light_on_clicker4","light_on_clicker5","light_broken", "light_on_broken","light_off","wall_thermite","grass", "sand", diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index dc83f31736e..a03caadd19a 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -4,6 +4,7 @@ * Airless * Airless plating * Engine floor + * Foam plating */ // note that plating and engine floor do not call their parent attackby, unlike other flooring // this is done in order to avoid inheriting the crowbar attackby @@ -69,3 +70,35 @@ icon_state = icon_plating burnt = 0 broken = 0 + +/turf/open/floor/plating/foam + name = "metal foam plating" + desc = "Thin, fragile flooring created with metal foam." + icon_state = "foam_plating" + broken_states = list("foam_plating") + burnt_states = list("foam_plating") + +/turf/open/floor/plating/foam/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/stack/tile/plasteel)) + var/obj/item/stack/tile/plasteel/P = I + if(P.use(1)) + var/obj/L = locate(/obj/structure/lattice) in src + if(L) + qdel(L) + to_chat(user, "You reinforce the foamed plating with tiling.") + playsound(src, 'sound/weapons/Genhit.ogg', 50, TRUE) + ChangeTurf(/turf/open/floor/plating) + else + playsound(src, 'sound/weapons/tap.ogg', 100, TRUE) //The attack sound is muffled by the foam itself + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) + if(prob(I.force * 20 - 25)) + user.visible_message("[user] smashes through [src]!", \ + "You smash through [src] with [I]!") + ChangeTurf(baseturf) + else + to_chat(user, "You hit [src], to no effect!") + +/turf/open/floor/plating/foam/ex_act() + ..() + ChangeTurf(baseturf) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 3247b273aea..a74f72c293f 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1079,6 +1079,14 @@ color = "#664B63" // rgb: 102, 75, 99 taste_description = "metal" +/datum/reagent/smart_foaming_agent //Smart foaming agent. Functions similarly to metal foam, but conforms to walls. + name = "Smart foaming agent" + id = "smart_foaming_agent" + description = "A agent that yields metallic foam which conforms to area boundaries when mixed with light metal and a strong acid." + reagent_state = SOLID + color = "#664B63" // rgb: 102, 75, 99 + taste_description = "metal" + /datum/reagent/ammonia name = "Ammonia" id = "ammonia" diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 173bcbcaccc..222f88ba8ba 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -466,6 +466,20 @@ s.start() holder.clear_reagents() +/datum/chemical_reaction/smart_foam + name = "Smart Metal Foam" + id = "smart_metal_foam" + required_reagents = list("aluminium" = 3, "smart_foaming_agent" = 1, "facid" = 1) + mob_react = TRUE + +/datum/chemical_reaction/smart_foam/on_reaction(datum/reagents/holder, created_volume) + var/turf/location = get_turf(holder.my_atom) + location.visible_message("The solution spews out metallic foam!") + var/datum/effect_system/foam_spread/metal/smart/s = new() + s.set_up(created_volume * 5, location, holder, TRUE) + s.start() + holder.clear_reagents() + /datum/chemical_reaction/ironfoam name = "Iron Foam" id = "ironlfoam" @@ -487,6 +501,13 @@ results = list("foaming_agent" = 1) required_reagents = list("lithium" = 1, "hydrogen" = 1) +/datum/chemical_reaction/smart_foaming_agent + name = "Smart foaming Agent" + id = "smart_foaming_agent" + results = list("smart_foaming_agent" = 3) + required_reagents = list("foaming_agent" = 3, "acetone" = 1, "iron" = 1) + mix_message = "The solution mixes into a frothy metal foam and conforms to the walls of its container." + /////////////////////////////// Cleaning and hydroponics ///////////////////////////////////////////////// diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index ee1d186509222283019a59cec895723e88d20923..a0521414f19b06fc00757b0cca1aa98fd3c52dd1 100644 GIT binary patch delta 15915 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