From 11f36c860b99b66df4cd95c5fbc66565e2bf4b63 Mon Sep 17 00:00:00 2001 From: Bokkiewokkie Date: Fri, 10 Jan 2025 02:05:08 +0100 Subject: [PATCH] IFF Code & icons --- nsv13.dme | 7 +++---- .../game/objects/effects/custom_landmarks.dm | 14 ++++++++++++++ ...ost_role_spawners.dm => custom_ghost_role.dm} | 0 .../{custom_loot_spawners.dm => custom_loot.dm} | 0 ...om_window_spawners.dm => custom_structure.dm} | 10 ++++++++++ .../effects/spawners/shield_gen_spawner.dm | 9 --------- nsv13/code/modules/overmap/boarding/interiors.dm | 4 ++++ nsv13/code/modules/overmap/overmap.dm | 1 + nsv13/icons/obj/landmark.dmi | Bin 0 -> 3701 bytes 9 files changed, 32 insertions(+), 13 deletions(-) rename nsv13/code/game/objects/effects/spawners/{custom_ghost_role_spawners.dm => custom_ghost_role.dm} (100%) rename nsv13/code/game/objects/effects/spawners/{custom_loot_spawners.dm => custom_loot.dm} (100%) rename nsv13/code/game/objects/effects/spawners/{custom_window_spawners.dm => custom_structure.dm} (64%) delete mode 100644 nsv13/code/game/objects/effects/spawners/shield_gen_spawner.dm create mode 100644 nsv13/icons/obj/landmark.dmi diff --git a/nsv13.dme b/nsv13.dme index 0a08be885d3..3f7be81c50c 100644 --- a/nsv13.dme +++ b/nsv13.dme @@ -3822,10 +3822,9 @@ #include "nsv13\code\game\objects\effects\decals\alt_guideline.dm" #include "nsv13\code\game\objects\effects\decals\plutonium_sludge.dm" #include "nsv13\code\game\objects\effects\particles\smoke.dm" -#include "nsv13\code\game\objects\effects\spawners\custom_ghost_role_spawners.dm" -#include "nsv13\code\game\objects\effects\spawners\custom_loot_spawners.dm" -#include "nsv13\code\game\objects\effects\spawners\custom_window_spawners.dm" -#include "nsv13\code\game\objects\effects\spawners\shield_gen_spawner.dm" +#include "nsv13\code\game\objects\effects\spawners\custom_ghost_role.dm" +#include "nsv13\code\game\objects\effects\spawners\custom_loot.dm" +#include "nsv13\code\game\objects\effects\spawners\custom_structure.dm" #include "nsv13\code\game\objects\items\autoinjectors.dm" #include "nsv13\code\game\objects\items\bloody_eye.dm" #include "nsv13\code\game\objects\items\bridge_items.dm" diff --git a/nsv13/code/game/objects/effects/custom_landmarks.dm b/nsv13/code/game/objects/effects/custom_landmarks.dm index 480e729e042..a7cb81b3d85 100644 --- a/nsv13/code/game/objects/effects/custom_landmarks.dm +++ b/nsv13/code/game/objects/effects/custom_landmarks.dm @@ -9,6 +9,8 @@ /obj/effect/landmark/nuclear_waste_spawner //Clean way of spawning nuclear gunk after a reactor core meltdown. name = "nuclear waste spawner" + icon = 'nsv13/icons/obj/landmark.dmi' + icon_state = "nuclear" var/range = PLUTONIUM_SLUDGE_RANGE //tile radius to spawn goop var/center_sludge = TRUE // Whether or not the center turf should spawn sludge or not. var/static/list/avoid_objs = typecacheof(list( // List of objs that the waste does not spawn on @@ -64,9 +66,11 @@ return TRUE /obj/effect/landmark/nuclear_waste_spawner/strong + icon_state = "nuclear_strong" range = PLUTONIUM_SLUDGE_RANGE_STRONG /obj/effect/landmark/nuclear_waste_spawner/weak + icon_state = "nuclear_weak" range = PLUTONIUM_SLUDGE_RANGE_WEAK center_sludge = FALSE @@ -74,3 +78,13 @@ #undef PLUTONIUM_SLUDGE_RANGE_STRONG #undef PLUTONIUM_SLUDGE_RANGE_WEAK #undef PLUTONIUM_SLUDGE_CHANCE + +/obj/effect/landmark/iff_console_spawner + name = "IFF console spawn location" + icon = 'nsv13/icons/obj/landmark.dmi' + icon_state = "iff" + +/obj/effect/landmark/iff_console_spawner/Initialize(mapload) + ..() + get_overmap().ifflocs[get_turf(src)] = dir //Note that you can turn this one to choose which way the console faces + return INITIALIZE_HINT_QDEL diff --git a/nsv13/code/game/objects/effects/spawners/custom_ghost_role_spawners.dm b/nsv13/code/game/objects/effects/spawners/custom_ghost_role.dm similarity index 100% rename from nsv13/code/game/objects/effects/spawners/custom_ghost_role_spawners.dm rename to nsv13/code/game/objects/effects/spawners/custom_ghost_role.dm diff --git a/nsv13/code/game/objects/effects/spawners/custom_loot_spawners.dm b/nsv13/code/game/objects/effects/spawners/custom_loot.dm similarity index 100% rename from nsv13/code/game/objects/effects/spawners/custom_loot_spawners.dm rename to nsv13/code/game/objects/effects/spawners/custom_loot.dm diff --git a/nsv13/code/game/objects/effects/spawners/custom_window_spawners.dm b/nsv13/code/game/objects/effects/spawners/custom_structure.dm similarity index 64% rename from nsv13/code/game/objects/effects/spawners/custom_window_spawners.dm rename to nsv13/code/game/objects/effects/spawners/custom_structure.dm index d6bb2cde548..963fbed81ce 100644 --- a/nsv13/code/game/objects/effects/spawners/custom_window_spawners.dm +++ b/nsv13/code/game/objects/effects/spawners/custom_structure.dm @@ -7,3 +7,13 @@ /obj/effect/spawner/structure/window/reinforced/ship/prison name = "nanocarbon prison window spawner" spawn_list = list(/obj/structure/grille/prison, /obj/structure/window/reinforced/fulltile/ship, /obj/machinery/door/firedoor/window) + +/obj/effect/spawner/structure/shield_generator + name = "Shield Generator Spawner" + icon = 'icons/effects/landmarks_static.dmi' + icon_state = "random_room" + +/obj/effect/spawner/structure/shield_generator/Initialize() + if(prob(1)) + spawn_list = list(/obj/machinery/shield_generator) + . = ..() diff --git a/nsv13/code/game/objects/effects/spawners/shield_gen_spawner.dm b/nsv13/code/game/objects/effects/spawners/shield_gen_spawner.dm deleted file mode 100644 index d83e3bd63a7..00000000000 --- a/nsv13/code/game/objects/effects/spawners/shield_gen_spawner.dm +++ /dev/null @@ -1,9 +0,0 @@ -/obj/effect/spawner/structure/shield_generator - name = "Shield Generator Spawner" - icon = 'icons/effects/landmarks_static.dmi' - icon_state = "random_room" - -/obj/effect/spawner/structure/shield_generator/Initialize() - if(prob(1)) - spawn_list = list(/obj/machinery/shield_generator) - . = ..() diff --git a/nsv13/code/modules/overmap/boarding/interiors.dm b/nsv13/code/modules/overmap/boarding/interiors.dm index be43f5760b7..4326d9726c3 100644 --- a/nsv13/code/modules/overmap/boarding/interiors.dm +++ b/nsv13/code/modules/overmap/boarding/interiors.dm @@ -26,6 +26,7 @@ Attempt to "board" an AI ship. You can only do this when they're low on health t SL.linked_overmap = null //Free that level up. occupying_levels = list() docking_points = list() + ifflocs = list() SSair.can_fire = FALSE for(var/turf/T in boarding_interior.get_affected_turfs(locate(1, 1, boarding_reservation_z), FALSE)) //nuke T.empty() @@ -204,6 +205,9 @@ The meat of this file. This will instance the dropship's interior in reserved sp // Anything that needs to be done after the interior loads /obj/structure/overmap/proc/post_load_interior() + if(length(ifflocs)) //Spawn the iff console at a random location! + var/turf/T = pick(ifflocs) + new /obj/structure/computer/iff_console(T, dir = ifflocs[T]) return /obj/structure/overmap/proc/get_interior_center() diff --git a/nsv13/code/modules/overmap/overmap.dm b/nsv13/code/modules/overmap/overmap.dm index ab51f1edbb0..07a23f45093 100644 --- a/nsv13/code/modules/overmap/overmap.dm +++ b/nsv13/code/modules/overmap/overmap.dm @@ -219,6 +219,7 @@ var/list/possible_interior_maps = null var/interior_mode = NO_INTERIOR var/list/interior_entry_points = list() + var/list/ifflocs = list() // List of potential IFF console locations var/boarding_reservation_z = null //Do we have a reserved Z-level for boarding? This is set up on instance_overmap. Ships being boarded copy this value from the boarder. var/obj/structure/overmap/active_boarding_target = null var/static/next_boarding_time = 0 // This is stupid and lazy but it's 5am and I don't care anymore diff --git a/nsv13/icons/obj/landmark.dmi b/nsv13/icons/obj/landmark.dmi new file mode 100644 index 0000000000000000000000000000000000000000..b66306ff3916f420d87c9d763148693a87e1ca31 GIT binary patch literal 3701 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 Tt{G?D00000NkvXXu0mjf!g)7h literal 0 HcmV?d00001