From df32979866e2c6cae135da942060ea54ca87a42e Mon Sep 17 00:00:00 2001 From: nullbear Date: Wed, 13 Apr 2016 13:09:41 -0700 Subject: [PATCH] Adds Chemical Explosives see changelog for details --- code/game/machinery/syndicatebomb.dm | 191 +++++++++++++++++- .../items/stacks/sheets/sheet_types.dm | 4 +- .../items/weapons/grenades/chem_grenade.dm | 148 ++++++++------ code/modules/crafting/recipes.dm | 24 +++ code/modules/reagents/chem_splash.dm | 72 +++++++ code/modules/reagents/chemistry/holder.dm | 7 +- .../research/designs/weapon_designs.dm | 36 ++++ html/changelogs/chembombs.yml | 13 ++ icons/obj/assemblies.dmi | Bin 29221 -> 30067 bytes icons/obj/grenade.dmi | Bin 4840 -> 5171 bytes 10 files changed, 416 insertions(+), 79 deletions(-) create mode 100644 code/modules/reagents/chem_splash.dm create mode 100644 html/changelogs/chembombs.yml diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index c18be89d9f9..685bc3c6b00 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -1,3 +1,4 @@ + /obj/machinery/syndicatebomb icon = 'icons/obj/assemblies.dmi' name = "syndicate bomb" @@ -9,7 +10,7 @@ layer = MOB_LAYER - 0.2 //so people can't hide it and it's REALLY OBVIOUS unacidable = 1 - var/timer = 60 + var/timer = 120 var/open_panel = FALSE //are the wires exposed? var/active = FALSE //is the bomb counting down? var/defused = FALSE //is the bomb capable of exploding? @@ -35,7 +36,8 @@ /obj/machinery/syndicatebomb/New() wires = new /datum/wires/syndicatebomb(src) - payload = new payload(src) + if(src.payload) + payload = new payload(src) update_icon() ..() @@ -44,9 +46,21 @@ wires = null return ..() +/obj/machinery/syndicatebomb/emag_act(mob/user) + if(active && !emagged) + emagged = 1 + timer = 60 // An emag can be used to reduce the timer, or give you more time, depending on when you use it. + if(user) + user.visible_message("Sparks fly out of the [src]!", + "You emag the [src], causing the timing mechanism to malfunction.") + playsound(src.loc, 'sound/effects/sparks4.ogg', 50, 1) + /obj/machinery/syndicatebomb/examine(mob/user) ..() - user << "A digital display on it reads \"[timer]\"." + if(emagged) + user << "A digital display on it reads \"[rand(-1, 60)]\"." + else + user << "A digital display on it reads \"[timer]\"." /obj/machinery/syndicatebomb/update_icon() icon_state = "[initial(icon_state)][active ? "-active" : "-inactive"][open_panel ? "-wires" : ""]" @@ -99,6 +113,25 @@ payload.loc = src else user << "[payload] is already loaded into [src]! You'll have to remove it first." + else if(istype(I, /obj/item/weapon/weldingtool)) + if(payload || !wires.is_all_cut() || !open_panel) + return + var/obj/item/weapon/weldingtool/WT = I + if(!WT.isOn()) + return + if(WT.get_fuel() < 5) //uses up 5 fuel. + user << "You need more fuel to complete this task!" + return + + playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) + user << "You start to cut the [src] apart..." + if(do_after(user, 20/I.toolspeed, target = src)) + if(!WT.isOn() || !WT.remove_fuel(5, user)) + return + user << "You cut the [src] apart." + new /obj/item/stack/sheet/plasteel( loc, 5) + qdel(src) + return else ..() @@ -120,7 +153,7 @@ /obj/machinery/syndicatebomb/proc/settings(mob/user) var/newtime = input(user, "Please set the timer.", "Timer", "[timer]") as num - newtime = Clamp(newtime, 60, 60000) + newtime = Clamp(newtime, 120, 60000) if(in_range(src, user) && isliving(user)) //No running off and setting bombs from across the station timer = newtime src.loc.visible_message("\icon[src] timer set for [timer] seconds.") @@ -166,6 +199,17 @@ /obj/machinery/syndicatebomb/badmin/varplosion payload = /obj/item/weapon/bombcore/badmin/explosion/ +/obj/machinery/syndicatebomb/empty + name = "bomb" + icon_state = "base-bomb" + desc = "An ominous looking device designed to detonate an explosive payload. Can be bolted down using a wrench." + payload = null + open_panel = TRUE + +/obj/machinery/syndicatebomb/empty/New() + ..() + wires.cut_all() + ///Bomb Cores/// /obj/item/weapon/bombcore @@ -180,11 +224,18 @@ var/adminlog = null /obj/item/weapon/bombcore/ex_act(severity, target) // Little boom can chain a big boom. - detonate() + if(prob(50)) + detonate() + else + qdel(src) /obj/item/weapon/bombcore/burn() - detonate() - ..() + if(prob(25)) + detonate() + ..() + else + ..() + qdel(src) /obj/item/weapon/bombcore/proc/detonate() if(adminlog) @@ -292,6 +343,127 @@ explosion(src.loc, 1, 2, 4, flame_range = 2) //Identical to a minibomb qdel(src) +/obj/item/weapon/bombcore/chemical + name = "chemical payload" + desc = "An explosive payload designed to spread chemicals, dangerous or otherwise, across a large area. It is able to hold up to four chemical containers, and must be loaded before use." + origin_tech = "combat=4;materials=3" + icon_state = "chemcore" + var/list/beakers = list() + var/max_beakers = 4 + var/spread_range = 5 + var/temp_boost = 50 + var/time_release = 0 + +/obj/item/weapon/bombcore/chemical/detonate() + + if(time_release > 0) + var/total_volume = 0 + for(var/obj/item/weapon/reagent_containers/RC in beakers) + total_volume += RC.reagents.total_volume + + if(total_volume < time_release) // If it's empty, the detonation is complete. + if(loc && istype(loc,/obj/machinery/syndicatebomb/)) + qdel(loc) + qdel(src) + return + + var/fraction = time_release/total_volume + var/datum/reagents/reactants = new(time_release) + reactants.my_atom = src + for(var/obj/item/weapon/reagent_containers/RC in beakers) + RC.reagents.trans_to(reactants, RC.reagents.total_volume*fraction, 1, 1, 1) + chem_splash(get_turf(src), spread_range, list(reactants), temp_boost) + + spawn(10) + detonate() // Detonate it again in one second, until it's out of juice. + + + // If it's not a time release bomb, do normal explosion + + var/list/reactants = list() + + for(var/obj/item/weapon/reagent_containers/glass/G in beakers) + reactants += G.reagents + + for(var/obj/item/slime_extract/S in beakers) + if(S.Uses) + for(var/obj/item/weapon/reagent_containers/glass/G in beakers) + G.reagents.trans_to(S, G.reagents.total_volume) + + if(S && S.reagents && S.reagents.total_volume) + reactants += S.reagents + + if(!chem_splash(get_turf(src), spread_range, reactants, temp_boost)) + playsound(loc, 'sound/items/Screwdriver2.ogg', 50, 1) + return // The Explosion didn't do anything. No need to log, or disappear. + + if(adminlog) + message_admins(adminlog) + log_game(adminlog) + + playsound(loc, 'sound/effects/bamf.ogg', 75, 1, 5) + + if(loc && istype(loc,/obj/machinery/syndicatebomb/)) + qdel(loc) + qdel(src) + +/obj/item/weapon/bombcore/chemical/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/crowbar) && beakers.len > 0) + playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) + for (var/obj/item/B in beakers) + B.loc = get_turf(src) + beakers -= B + return + else if(istype(I, /obj/item/weapon/reagent_containers/glass/beaker) || istype(I, /obj/item/weapon/reagent_containers/glass/bottle)) + if(beakers.len < max_beakers) + if(!user.drop_item()) + return + beakers += I + user << "You load [src] with [I]." + I.loc = src + else + user << "The [I] wont fit! The [src] can only hold up to [max_beakers] containers." + return + ..() + +/obj/item/weapon/bombcore/chemical/CheckParts() + // Using different grenade casings, causes the payload to have different properties. + for(var/obj/item/weapon/grenade/chem_grenade/G in src) + + if(istype(G, /obj/item/weapon/grenade/chem_grenade/large)) + var/obj/item/weapon/grenade/chem_grenade/large/LG = G + max_beakers += 1 // Adding two large grenades only allows for a maximum of 6 beakers. + spread_range += 2 // Extra range, reduced density. + temp_boost += 50 // maximum of +150K blast using only large beakers. Not enough to self ignite. + for(var/obj/item/slime_extract/S in LG.beakers) // And slime cores. + if(beakers.len < max_beakers) + beakers += S + S.loc = src + else + S.loc = get_turf(src) + + if(istype(G, /obj/item/weapon/grenade/chem_grenade/cryo)) + spread_range -= 1 // Reduced range, but increased density. + temp_boost -= 100 // minimum of -150K blast. + + if(istype(G, /obj/item/weapon/grenade/chem_grenade/pyro)) + temp_boost += 150 // maximum of +350K blast, which is enough to self ignite. Which means a self igniting bomb can't take advantage of other grenade casing properties. Sorry? + + if(istype(G, /obj/item/weapon/grenade/chem_grenade/adv_release)) + time_release += 25 // A typical bomb, using basic beakers, will explode over 2-4 seconds. Using two will make the reaction last for less time, but it will be more dangerous overall. + + for(var/obj/item/weapon/reagent_containers/glass/B in G) + if(beakers.len < max_beakers) + beakers += B + B.loc = src + else + B.loc = get_turf(src) + + qdel(G) + return + + + ///Syndicate Detonator (aka the big red button)/// /obj/item/device/syndicatedetonator @@ -326,7 +498,4 @@ detonated = 0 existant = 0 cooldown = 1 - spawn(30) cooldown = 0 - - - + spawn(30) cooldown = 0 \ No newline at end of file diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index e8370da2e50..1dab68627f7 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -79,6 +79,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ */ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1), \ + new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \ ) /obj/item/stack/sheet/plasteel @@ -110,7 +111,6 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \ new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \ new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \ new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \ - new/datum/stack_recipe("rolling pin", /obj/item/weapon/kitchen/rollingpin, 2, time = 30), \ new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/normal, 3, time = 10, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = 1, on_floor = 1), \ @@ -223,4 +223,4 @@ var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \ desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects." singular_name = "greater gem" icon_state = "sheet-greatergem" - origin_tech = "materials=8" + origin_tech = "materials=8" \ No newline at end of file diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index e448fdb374b..4e83773c9c1 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -15,6 +15,8 @@ var/affected_area = 3 var/obj/item/device/assembly_holder/nadeassembly = null var/assemblyattacher + var/ignition_temp = 10 // The amount of heat added to the reagents when this grenade goes off. + var/threatscale = 1 // Used by advanced grenades to make them slightly more worthy. /obj/item/weapon/grenade/chem_grenade/New() create_reagents(1000) @@ -153,15 +155,14 @@ nadeassembly.on_found(finder) /obj/item/weapon/grenade/chem_grenade/prime() - if(stage != READY || !reagents) + if(stage != READY) return - var/has_reagents - for(var/obj/item/I in beakers) - if(I.reagents.total_volume) - has_reagents = 1 + var/list/datum/reagents/reactants = list() + for(var/obj/item/weapon/reagent_containers/glass/G in beakers) + reactants += G.reagents - if(!has_reagents) + if(!chem_splash(get_turf(src), affected_area, reactants, ignition_temp, threatscale)) playsound(loc, 'sound/items/Screwdriver2.ogg', 50, 1) return @@ -173,79 +174,30 @@ message_admins("grenade primed by an assembly, attached by [key_name_admin(M)](?) (FLW) and last touched by [key_name_admin(last)](?) (FLW) ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] (JMP).") log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] ([T.x], [T.y], [T.z])") - playsound(loc, 'sound/effects/bamf.ogg', 50, 1) - var/turf/DT = get_turf(src) var/area/DA = get_area(DT) log_game("A grenade detonated at [DA.name] ([DT.x], [DT.y], [DT.z])") update_mob() - mix_reagents() - - if(reagents.total_volume) //The possible reactions didnt use up all reagents, so we spread it around. - var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() - steam.set_up(10, 0, get_turf(src)) - steam.attach(src) - steam.start() - - var/list/viewable = view(affected_area, loc) - var/list/accessible = can_flood_from(loc, affected_area) - var/list/reactable = accessible - var/mycontents = GetAllContents() - for(var/turf/T in accessible) - for(var/atom/A in T.GetAllContents()) - if(A in mycontents) continue - if(!(A in viewable)) continue - reactable |= A - if(!reactable.len) //Nothing to react with. Probably means we're in nullspace. - qdel(src) - return - var/fraction = 1/reactable.len - for(var/atom/A in reactable) - reagents.reaction(A, TOUCH, fraction) - qdel(src) -/obj/item/weapon/grenade/chem_grenade/proc/mix_reagents() - var/total_temp - for(var/obj/item/weapon/reagent_containers/glass/G in beakers) - G.reagents.trans_to(src, G.reagents.total_volume) - total_temp += G.reagents.chem_temp - reagents.chem_temp = total_temp - -/obj/item/weapon/grenade/chem_grenade/proc/can_flood_from(myloc, maxrange) - var/turf/myturf = get_turf(myloc) - var/list/reachable = list(myloc) - for(var/i=1; i<=maxrange; i++) - var/list/turflist = list() - for(var/turf/T in (orange(i, myloc) - orange(i-1, myloc))) - turflist |= T - for(var/turf/T in turflist) - if( !(get_dir(T,myloc) in cardinal) && (abs(T.x - myturf.x) == abs(T.y - myturf.y) )) - turflist.Remove(T) - turflist.Add(T) // we move the purely diagonal turfs to the end of the list. - for(var/turf/T in turflist) - if(T in reachable) continue - for(var/turf/NT in orange(1, T)) - if(!(NT in reachable)) continue - if(!(get_dir(T,NT) in cardinal)) continue - if(!NT.CanAtmosPass(T)) continue - reachable |= T - break - return reachable - //Large chem grenades accept slime cores and use the appropriately. /obj/item/weapon/grenade/chem_grenade/large name = "large grenade" - desc = "A custom made large grenade." + desc = "A custom made large grenade. It affects a larger area." icon_state = "large_grenade" allowed_containers = list(/obj/item/weapon/reagent_containers/glass,/obj/item/weapon/reagent_containers/food/condiment, /obj/item/weapon/reagent_containers/food/drinks) origin_tech = "combat=3;materials=3" - affected_area = 4 + affected_area = 5 + ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades. + threatscale = 1.1 // 10% more effective. + +/obj/item/weapon/grenade/chem_grenade/large/prime() + if(stage != READY) + return -/obj/item/weapon/grenade/chem_grenade/large/mix_reagents() for(var/obj/item/slime_extract/S in beakers) if(S.Uses) for(var/obj/item/weapon/reagent_containers/glass/G in beakers) @@ -272,6 +224,76 @@ else return ..() +/obj/item/weapon/grenade/chem_grenade/cryo // Intended for rare cryogenic mixes. Cools the area moderately upon detonation. + name = "cryo grenade" + desc = "A custom made cryogenic grenade. It rapidly cools its contents upon detonation." + icon_state = "cryog" + affected_area = 2 + ignition_temp = -100 + +/obj/item/weapon/grenade/chem_grenade/pyro // Intended for pyrotechnical mixes. Produces a small fire upon detonation, igniting potentially flammable mixtures. + name = "pyro grenade" + desc = "A custom made pyrotechnical grenade. It heats up and ignites its contents upon detonation." + icon_state = "pyrog" + affected_area = 3 + ignition_temp = 500 // This is enough to expose a hotspot. + +/obj/item/weapon/grenade/chem_grenade/adv_release // Intended for weaker, but longer lasting effects. Could have some interesting uses. + name = "advanced release grenade" + desc = "A custom made advanced release grenade. It is able to be triggered more than once. Can be configured using a multitool." + icon_state = "timeg" + var/unit_spread = 10 // Amount of units per repeat. Can be altered with a multitool. + +/obj/item/weapon/grenade/chem_grenade/adv_release/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/multitool)) + if(unit_spread < 100) + unit_spread += 5 + else + unit_spread = 5 + user << " You set the time release to [unit_spread] units per detonation." + return + else + return ..() + +/obj/item/weapon/grenade/chem_grenade/adv_release/prime() + if(stage != READY) + return + + var/total_volume = 0 + for(var/obj/item/weapon/reagent_containers/RC in beakers) + total_volume += RC.reagents.total_volume + + var/fraction = unit_spread/total_volume + var/datum/reagents/reactants = new(unit_spread) + reactants.my_atom = src + for(var/obj/item/weapon/reagent_containers/RC in beakers) + RC.reagents.trans_to(reactants, RC.reagents.total_volume*fraction, threatscale, 1, 1) + + chem_splash(get_turf(src), affected_area, list(reactants), ignition_temp, threatscale) + + if(nadeassembly) + var/mob/M = get_mob_by_ckey(assemblyattacher) + var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast) + var/turf/T = get_turf(src) + var/area/A = get_area(T) + message_admins("grenade primed by an assembly, attached by [key_name_admin(M)](?) (FLW) and last touched by [key_name_admin(last)](?) (FLW) ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] (JMP).") + log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] ([T.x], [T.y], [T.z])") + + var/turf/DT = get_turf(src) + var/area/DA = get_area(DT) + log_game("A grenade detonated at [DA.name] ([DT.x], [DT.y], [DT.z])") + + if(total_volume < unit_spread) // If that was the last detonation, delete the grenade to prevent reusing it. Keep in mind, an explosion might destroy the grenade before it can detonate again anyways. + update_mob() + qdel(src) + + + + + +////////////////////////////// +////// PREMADE GRENADES ////// +////////////////////////////// /obj/item/weapon/grenade/chem_grenade/metalfoam name = "metal foam grenade" diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 83f27e555f2..33fd8889965 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -327,3 +327,27 @@ time = 10 reqs = list(/obj/item/weapon/paper = 5) category = CAT_MISC + +/datum/table_recipe/chemical_payload + name = "Chemical Bomb Core (C4)" + result = /obj/item/weapon/bombcore/chemical + reqs = list( + /obj/item/weapon/stock_parts/matter_bin/super = 1, + /obj/item/weapon/c4 = 1, + /obj/item/weapon/grenade/chem_grenade = 2 + ) + parts = list(/obj/item/weapon/grenade/chem_grenade = 2) + time = 30 + category = CAT_WEAPON + +/datum/table_recipe/chemical_payload2 + name = "Chemical Bomb Core (gibtonite)" + result = /obj/item/weapon/bombcore/chemical + reqs = list( + /obj/item/weapon/stock_parts/matter_bin/super = 1, + /obj/item/weapon/twohanded/required/gibtonite = 1, + /obj/item/weapon/grenade/chem_grenade = 2 + ) + parts = list(/obj/item/weapon/grenade/chem_grenade = 2) + time = 50 + category = CAT_WEAPON diff --git a/code/modules/reagents/chem_splash.dm b/code/modules/reagents/chem_splash.dm new file mode 100644 index 00000000000..b32e9da1753 --- /dev/null +++ b/code/modules/reagents/chem_splash.dm @@ -0,0 +1,72 @@ +// Replaces chemgrenade stuff, allowing reagent explosions to be called from anywhere. +// It should be called using a location, the range, and a list of reagents involved. + +// Threatscale is a multiplier for the 'threat' of the grenade. If you're increasing the affected range drastically, you might want to improve this. +// Extra heat affects the temperature of the mixture, and may cause it to react in different ways. + + +proc/chem_splash(turf/epicenter, affected_range = 3, list/datum/reagents/reactants = list(), extra_heat = 0, threatscale = 1, adminlog = 1) + if(!istype(epicenter, /turf) || !reactants.len || threatscale <= 0) + return + var/has_reagents + var/total_reagents + for(var/datum/reagents/R in reactants) + if(R.total_volume) + has_reagents = 1 + total_reagents += R.total_volume + + if(!has_reagents) + return + + var/datum/reagents/splash_holder = new/datum/reagents(total_reagents*threatscale) + splash_holder.my_atom = epicenter // For some reason this is setting my_atom to null, and causing runtime errors. + var/total_temp = 0 + + for(var/datum/reagents/R in reactants) + R.trans_to(splash_holder, R.total_volume, threatscale, 1, 1) + total_temp += R.chem_temp + splash_holder.chem_temp = (total_temp/reactants.len) + extra_heat // Average temperature of reagents + extra heat. + splash_holder.handle_reactions() // React them now. + + if(splash_holder.total_volume && affected_range >= 0) //The possible reactions didnt use up all reagents, so we spread it around. + var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() + steam.set_up(10, 0, epicenter) + steam.attach(epicenter) + steam.start() + + var/list/viewable = view(affected_range, epicenter) + + var/list/accessible = list(epicenter) + for(var/i=1; i<=affected_range; i++) + var/list/turflist = list() + for(var/turf/T in (orange(i, epicenter) - orange(i-1, epicenter))) + turflist |= T + for(var/turf/T in turflist) + if( !(get_dir(T,epicenter) in cardinal) && (abs(T.x - epicenter.x) == abs(T.y - epicenter.y) )) + turflist.Remove(T) + turflist.Add(T) // we move the purely diagonal turfs to the end of the list. + for(var/turf/T in turflist) + if(T in accessible) continue + for(var/turf/NT in orange(1, T)) + if(!(NT in accessible)) continue + if(!(get_dir(T,NT) in cardinal)) continue + if(!NT.CanAtmosPass(T)) continue + accessible |= T + break + var/list/reactable = accessible + for(var/turf/T in accessible) + for(var/atom/A in T.GetAllContents()) + if(!(A in viewable)) continue + reactable |= A + if(extra_heat >= 300) + T.hotspot_expose(extra_heat*2, 5) + if(!reactable.len) //Nothing to react with. Probably means we're in nullspace. + return + var/fraction = 0.5/accessible.len // In a 100u mix. A small grenade spreads ~1.5u units per affected tile. A large grenade spreads ~0.75u, and a bomb spreads ~0.4u + for(var/atom/A in reactable) + splash_holder.reaction(A, TOUCH, fraction) + + qdel(splash_holder) + return 1 + + diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 4297b94732e..b028b1d8bc1 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -123,7 +123,7 @@ var/const/INJECT = 5 //injection return id -/datum/reagents/proc/trans_to(obj/target, amount=1, multiplier=1, preserve_data=1)//if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred. +/datum/reagents/proc/trans_to(obj/target, amount=1, multiplier=1, preserve_data=1, no_react = 0)//if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred. if(!target ) return var/datum/reagents/R @@ -150,8 +150,9 @@ var/const/INJECT = 5 //injection update_total() R.update_total() - R.handle_reactions() - src.handle_reactions() + if(!no_react) + R.handle_reactions() + src.handle_reactions() return amount /datum/reagents/proc/copy_to(obj/target, amount=1, multiplier=1, preserve_data=1) diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index fa84cbd950f..60ab85b1519 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -127,6 +127,42 @@ build_path = /obj/item/weapon/grenade/chem_grenade/large category = list("Weapons") +/datum/design/pyro_grenade + name = "Pyro Grenade" + desc = "An advanced grenade that is able to self ignite its mixture." + id = "pyro_Grenade" + req_tech = list("combat" = 3, "materials" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_PLASMA = 500) + reliability = 79 + build_path = /obj/item/weapon/grenade/chem_grenade/pyro + category = list("Weapons") + +/* // Currently commented out, because it has no worthwhile useage yet. + +/datum/design/cryo_grenade + name = "Cryo Grenade" + desc = "An advanced grenade that rapidly cools its contents upon detonation." + id = "cryo_Grenade" + req_tech = list("combat" = 3, "materials" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 500) + reliability = 79 + build_path = /obj/item/weapon/grenade/chem_grenade/cryo + category = list("Weapons") +*/ + +/datum/design/adv_grenade + name = "Advanced Release Grenade" + desc = "An advanced grenade that can be detonated several times, best used with a repeating igniter." + id = "adv_Grenade" + req_tech = list("combat" = 3, "materials" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 3000, MAT_GLASS = 500) + reliability = 79 + build_path = /obj/item/weapon/grenade/chem_grenade/adv_release + category = list("Weapons") + /datum/design/smg name = "NanoTrasen Saber SMG" desc = "A prototype advancment over the WT-550 auto rifle made using lightweight materials on a traditional frame, designed to fire standard 9mm rounds." diff --git a/html/changelogs/chembombs.yml b/html/changelogs/chembombs.yml new file mode 100644 index 00000000000..61602bf0deb --- /dev/null +++ b/html/changelogs/chembombs.yml @@ -0,0 +1,13 @@ + +author: "nullbear" + +delete-after: True + +changes: + - rscadd: "Added several craftable explosive chemical weapons." + - rscadd: "Made it possible to craft bomb assemblies using plasteel. Note: they will need a payload, and to have their wires set, before it can be detonated." + - rscadd: "Made it possible to emag bombs in order to cause the timer to malfunction and reset itself to 60 seconds. This can be used to give yourself more time, or to shorten the timer." + - tweak: "Large Grenades are now 10% larger and more effective." + - tweak: "Grenades now typically heat up their contents when they explode." + - tweak: "Non-typical grenades are slightly more potent than they were before." + - tweak: "Reduces metagaming potential for bypassing the timer and setting off bombs with c4 or fire." diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi index fc79b379f4831c49ede7282a35e2231b0235b911..5a8719da0d8fae453dadadd2e4d63f4759bb57d1 100644 GIT binary patch literal 30067 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 C{}b2% literal 29221 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�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 diff --git a/icons/obj/grenade.dmi b/icons/obj/grenade.dmi index c85b9eaa4c2ade30752189b825cdcb50f282273f..e17974ecd19ee22789175357b9e132fa36d2c6e0 100644 GIT binary patch delta 5018 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