no_lava fix, make sure simple explosions don't nuke the Syndicate base

This commit is contained in:
Mark van Alphen
2019-04-20 03:09:13 +02:00
parent c878f8e36e
commit 092773132d
6 changed files with 31 additions and 21 deletions
+3
View File
@@ -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"
+2
View File
@@ -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)
+9
View File
@@ -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///
+3 -6
View File
@@ -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
. = ..()
+13 -14
View File
@@ -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))