mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-13 08:03:43 +01:00
no_lava fix, make sure simple explosions don't nuke the Syndicate base
This commit is contained in:
@@ -423,3 +423,6 @@
|
||||
#define GHOST_ORBIT_HEXAGON "hexagon"
|
||||
#define GHOST_ORBIT_SQUARE "square"
|
||||
#define GHOST_ORBIT_PENTAGON "pentagon"
|
||||
|
||||
//Explosive wall groups
|
||||
#define EXPLOSIVE_WALL_GROUP_SYNDICATE_BASE "syndicate_base"
|
||||
@@ -48,3 +48,5 @@ GLOBAL_LIST_INIT(active_jammers, list()) // List of active radio jam
|
||||
GLOBAL_LIST_INIT(active_diseases, list()) //List of Active disease in all mobs; purely for quick referencing.
|
||||
|
||||
GLOBAL_LIST_EMPTY(mob_spawners) // All mob_spawn objects
|
||||
|
||||
GLOBAL_LIST_EMPTY(explosive_walls)
|
||||
@@ -275,6 +275,15 @@
|
||||
desc = "Do not taunt. Warranty invalid if exposed to high temperature. Not suitable for agents under 3 years of age."
|
||||
payload = /obj/item/bombcore/large
|
||||
can_unanchor = FALSE
|
||||
var/explosive_wall_group = EXPLOSIVE_WALL_GROUP_SYNDICATE_BASE // If set, this bomb will also cause explosive walls in the same group to explode
|
||||
|
||||
/obj/machinery/syndicatebomb/self_destruct/try_detonate(ignore_active = FALSE)
|
||||
. = ..()
|
||||
if(. && explosive_wall_group)
|
||||
for(var/wall in GLOB.explosive_walls)
|
||||
var/turf/simulated/wall/mineral/plastitanium/explosive/E = wall
|
||||
if(E.explosive_wall_group == explosive_wall_group)
|
||||
E.self_destruct()
|
||||
|
||||
///Bomb Cores///
|
||||
|
||||
|
||||
@@ -64,13 +64,10 @@
|
||||
|
||||
return late ? INITIALIZE_HINT_LATELOAD : qdel(src) // INITIALIZE_HINT_QDEL <-- Doesn't work
|
||||
|
||||
//needs to do its thing before spawn_rivers() is called
|
||||
INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
|
||||
|
||||
/obj/effect/mapping_helpers/no_lava
|
||||
icon_state = "no_lava"
|
||||
|
||||
/obj/effect/mapping_helpers/no_lava/Initialize(mapload)
|
||||
. = ..()
|
||||
/obj/effect/mapping_helpers/no_lava/New()
|
||||
var/turf/T = get_turf(src)
|
||||
T.flags |= NO_LAVA_GEN
|
||||
T.flags |= NO_LAVA_GEN
|
||||
. = ..()
|
||||
@@ -275,21 +275,20 @@
|
||||
icon_state = "map-overspace"
|
||||
fixed_underlay = list("space"=1)
|
||||
|
||||
/turf/simulated/wall/mineral/plastitanium/explosive/dismantle_wall(devastated, explode)
|
||||
var/obj/item/bombcore/large/bombcore = new(get_turf(src))
|
||||
if(devastated || explode)
|
||||
bombcore.detonate()
|
||||
..()
|
||||
/turf/simulated/wall/mineral/plastitanium/explosive
|
||||
var/explosive_wall_group = EXPLOSIVE_WALL_GROUP_SYNDICATE_BASE
|
||||
|
||||
/turf/simulated/wall/mineral/plastitanium/explosive/ex_act(severity, target)
|
||||
switch(severity)
|
||||
if(1)
|
||||
dismantle_wall(1,1)
|
||||
if(2)
|
||||
dismantle_wall(1,1)
|
||||
if(3)
|
||||
if (prob(hardness))
|
||||
dismantle_wall(0,1)
|
||||
/turf/simulated/wall/mineral/plastitanium/explosive/Initialize(mapload)
|
||||
. = ..()
|
||||
GLOB.explosive_walls += src
|
||||
|
||||
/turf/simulated/wall/mineral/plastitanium/explosive/Destroy()
|
||||
GLOB.explosive_walls -= src
|
||||
return ..()
|
||||
|
||||
/turf/simulated/wall/mineral/plastitanium/explosive/proc/self_destruct()
|
||||
var/obj/item/bombcore/large/bombcore = new(get_turf(src))
|
||||
bombcore.detonate()
|
||||
|
||||
//have to copypaste this code
|
||||
/turf/simulated/wall/mineral/plastitanium/interior/copyTurf(turf/T)
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
/obj/effect/mob_spawn/human/lavaland_syndicate/comms/space
|
||||
flavour_text = "<span class='big bold'>You are a syndicate agent,</span><b> assigned to a small listening post station situated near your hated enemy's top secret research facility: Space Station 13. <b>Monitor enemy activity as best you can, and try to keep a low profile. <font size=6>DO NOT</font> abandon the base.</b> Use the communication equipment to provide support to any field agents, and sow disinformation to throw Nanotrasen off your trail. Do not let the base fall into enemy hands!</b>"
|
||||
|
||||
/obj/effect/mob_spawn/human/lavaland_syndicate/comms/space/Initialize()
|
||||
/obj/effect/mob_spawn/human/lavaland_syndicate/comms/space/Initialize(mapload)
|
||||
. = ..()
|
||||
if(prob(90)) //only has a 10% chance of existing, otherwise it'll just be a NPC syndie.
|
||||
new /mob/living/simple_animal/hostile/syndicate/ranged(get_turf(src))
|
||||
|
||||
Reference in New Issue
Block a user