diff --git a/aurorastation.dme b/aurorastation.dme index c765bc23de3..ebb048743f3 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1124,6 +1124,7 @@ #include "code\game\objects\structures\extinguisher.dm" #include "code\game\objects\structures\fireaxe_cabinet.dm" #include "code\game\objects\structures\full_window_frame.dm" +#include "code\game\objects\structures\geyser.dm" #include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\grille.dm" #include "code\game\objects\structures\hadii_statue.dm" @@ -1133,6 +1134,7 @@ #include "code\game\objects\structures\lattice.dm" #include "code\game\objects\structures\light_pole.dm" #include "code\game\objects\structures\mirror.dm" +#include "code\game\objects\structures\monolith.dm" #include "code\game\objects\structures\mop_bucket.dm" #include "code\game\objects\structures\morgue.dm" #include "code\game\objects\structures\noticeboard.dm" @@ -3345,6 +3347,9 @@ #include "maps\random_ruins\exoplanets\adhomai\ala_base.dm" #include "maps\random_ruins\exoplanets\adhomai\ala_cell.dm" #include "maps\random_ruins\exoplanets\adhomai\nka_base.dm" +#include "maps\random_ruins\exoplanets\adhomai\north_pole_monolith.dm" +#include "maps\random_ruins\exoplanets\adhomai\north_pole_nka_expedition.dm" +#include "maps\random_ruins\exoplanets\adhomai\north_pole_worm.dm" #include "maps\random_ruins\exoplanets\adhomai\pra_base.dm" #include "maps\random_ruins\exoplanets\adhomai\pra_mining_camp.dm" #include "maps\random_ruins\exoplanets\adhomai\psis_outpost.dm" diff --git a/code/game/objects/structures/geyser.dm b/code/game/objects/structures/geyser.dm new file mode 100644 index 00000000000..836210edb24 --- /dev/null +++ b/code/game/objects/structures/geyser.dm @@ -0,0 +1,29 @@ +/obj/structure/geyser + name = "arctic geyser" + desc = "A mound fuming with hot steam." + icon = 'icons/obj/geyser.dmi' + icon_state = "geyser_dormant" + density = FALSE + pixel_x = -32 + +/obj/structure/geyser/Initialize() + . = ..() + if(prob(50)) + icon_state = "geyser_plume" + +/obj/structure/geyser/Crossed(AM as mob|obj, var/ignore_deployment = FALSE) + if(ishuman(AM)) + var/mob/living/carbon/human/L = AM + if(prob(50)) + trigger(L) + + ..() + +/obj/structure/geyser/proc/trigger(mob/living/carbon/human/L) + visible_message(SPAN_WARNING("The [src] spews a cloud of hot steam!")) + flick("geyser_fire", src) + var/steam_temperature = pick(10,50,100,500) + L.bodytemperature += steam_temperature + if(steam_temperature >= 100) + L.apply_damage(50, DAMAGE_BURN) + to_chat(L, SPAN_WARNING("Your skin fizzes as the steam touches it!")) \ No newline at end of file diff --git a/code/game/objects/structures/monolith.dm b/code/game/objects/structures/monolith.dm new file mode 100644 index 00000000000..075a9af8efa --- /dev/null +++ b/code/game/objects/structures/monolith.dm @@ -0,0 +1,32 @@ +/obj/structure/monolith + name = "monolith" + desc = "An obviously artifical structure of unknown origin." + icon = 'icons/obj/monolith.dmi' + icon_state = "jaggy1" + layer = ABOVE_ALL_MOB_LAYER + density = TRUE + anchored = TRUE + var/active = FALSE + var/list/possible_colors = list("#232B2B", COLOR_ASTEROID_ROCK, COLOR_HULL) + +/obj/structure/monolith/Initialize() + . = ..() + icon_state = "jaggy[rand(1,4)]" + if(!color) + color = pick(possible_colors) + update_icon() + +/obj/structure/monolith/update_icon() + overlays.Cut() + if(active) + var/image/I = image(icon,"[icon_state]decor") + I.appearance_flags = RESET_COLOR + I.color = get_random_colour(0, 150, 255) + I.layer = EFFECTS_ABOVE_LIGHTING_LAYER + add_overlay(I) + set_light(0.3, 0.1, 2, l_color = I.color) + + var/turf/simulated/floor/exoplanet/T = get_turf(src) + if(istype(T)) + var/image/I = overlay_image(icon, "dugin", T.dirt_color, RESET_COLOR) + add_overlay(I) \ No newline at end of file diff --git a/code/modules/clothing/head/xenos/tajara.dm b/code/modules/clothing/head/xenos/tajara.dm index 75fb4bbf6a6..cefecfaa287 100644 --- a/code/modules/clothing/head/xenos/tajara.dm +++ b/code/modules/clothing/head/xenos/tajara.dm @@ -119,6 +119,12 @@ icon_state = "nka_commander_hat" item_state = "nka_commander_hat" +/obj/item/clothing/head/tajaran/nka_cap/sailor + name = "royal navy service hat" + desc = "A simple service hat worn by sailors of the Royal Navy." + icon_state = "nka_sailor_hat" + item_state = "nka_sailor_hat" + /obj/item/clothing/head/tajaran/consular name = "consular service cap" desc = "A service cap worn by the diplomatic service of the People's Republic of Adhomai." diff --git a/code/modules/clothing/under/xenos/tajara.dm b/code/modules/clothing/under/xenos/tajara.dm index 91de08378ee..18b05900c6d 100644 --- a/code/modules/clothing/under/xenos/tajara.dm +++ b/code/modules/clothing/under/xenos/tajara.dm @@ -239,6 +239,12 @@ item_state = "nka_commander" starting_accessories = null +/obj/item/clothing/under/tajaran/nka_uniform/sailor + name = "royal navy sailor uniform" + desc = "A military uniform used by the sailor of the New Kingdom of Adhomai's navy." + icon_state = "nka_sailor" + item_state = "nka_sailor" + /obj/item/clothing/under/tajaran/consular name = "people's republic consular uniform" desc = "An olive uniform used by the diplomatic service of the People's Republic of Adhomai." diff --git a/code/modules/maps/planet_types/lore/srandmarr.dm b/code/modules/maps/planet_types/lore/srandmarr.dm index 9b9e45be31a..6553a913f48 100644 --- a/code/modules/maps/planet_types/lore/srandmarr.dm +++ b/code/modules/maps/planet_types/lore/srandmarr.dm @@ -134,9 +134,13 @@ /datum/map_template/ruin/exoplanet/adhomai_war_memorial, /datum/map_template/ruin/exoplanet/adhomai_raskara_ritual, /datum/map_template/ruin/exoplanet/adhomai_raskariim_hideout, /datum/map_template/ruin/exoplanet/adhomai_cavern_geist, /datum/map_template/ruin/exoplanet/adhomai_tunneler_nest, /datum/map_template/ruin/exoplanet/adhomai_rafama_herd) place_near_main = list(2, 2) + var/landing_faction /obj/effect/overmap/visitable/sector/exoplanet/adhomai/pre_ruin_preparation() - var/landing_faction = pick("People's Republic of Adhomai", "Democratic People's Republic of Adhomai", "New Kingdom of Adhomai") + if(prob(15)) + landing_faction = "North Pole" + else + landing_faction = pick("People's Republic of Adhomai", "Democratic People's Republic of Adhomai", "New Kingdom of Adhomai") switch(landing_faction) if("People's Republic of Adhomai") possible_random_ruins = list (/datum/map_template/ruin/exoplanet/adhomai_hunting, /datum/map_template/ruin/exoplanet/adhomai_minefield, /datum/map_template/ruin/exoplanet/adhomai_village, @@ -161,6 +165,11 @@ /datum/map_template/ruin/exoplanet/adhomai_tunneler_nest, /datum/map_template/ruin/exoplanet/adhomai_rafama_herd, /datum/map_template/ruin/exoplanet/adhomai_amohdan, /datum/map_template/ruin/exoplanet/adhomai_archeology, /datum/map_template/ruin/exoplanet/nka_base, /datum/map_template/ruin/exoplanet/adhomai_president_hadii_statue_toppled) + if("North Pole") + features_budget = 1 + map_generators = list(/datum/random_map/noise/exoplanet/snow/adhomai_north_pole, /datum/random_map/noise/ore/rich) + possible_random_ruins = list (/datum/map_template/ruin/exoplanet/north_pole_monolith, /datum/map_template/ruin/exoplanet/north_pole_nka_expedition, /datum/map_template/ruin/exoplanet/north_pole_worm) + desc += " The landing sites are located at the [landing_faction]'s territory." /obj/effect/overmap/visitable/sector/exoplanet/adhomai/generate_habitability() @@ -179,7 +188,10 @@ /obj/effect/overmap/visitable/sector/exoplanet/adhomai/generate_atmosphere() ..() if(atmosphere) - atmosphere.temperature = T0C - 5 + if(landing_faction == "North Pole") + atmosphere.temperature = T0C - 40 + else + atmosphere.temperature = T0C - 5 atmosphere.update_values() /obj/effect/overmap/visitable/sector/exoplanet/adhomai/update_icon() @@ -234,6 +246,43 @@ if(prob(10)) new /obj/effect/floor_decal/snowdrift/large(T) +/datum/random_map/noise/exoplanet/snow/adhomai_north_pole + descriptor = "Adhomai North pole" + smoothing_iterations = 1 + flora_prob = 0 + water_level_max = 4 + land_type = /turf/simulated/floor/exoplanet/snow + water_type = /turf/simulated/floor/exoplanet/ice/dark + fauna_types = list(/mob/living/simple_animal/scavenger, /mob/living/simple_animal/ice_catcher, /mob/living/simple_animal/hostile/plasmageist, /mob/living/simple_animal/hostile/wriggler) + +/datum/random_map/noise/exoplanet/snow/adhomai_north_pole/generate_flora() + return + +/datum/random_map/noise/exoplanet/snow/adhomai_north_pole/get_additional_spawns(var/value, var/turf/T) + ..() + if(istype(T, water_type)) + return + if(T.density) + return + var/val = min(10,max(0,round((value/cell_range)*10))) + if(isnull(val)) val = 0 + switch(val) + if(2) + if(prob(25)) + new /obj/structure/flora/rock/ice(T) + if(3) + if(prob(10)) + new /obj/structure/geyser(T) + if(4) + if(prob(20)) + new /obj/structure/flora/rock/adhomai(T) + if(5) + if(prob(15)) + new /obj/effect/floor_decal/snowdrift(T) + if(6) + if(prob(10)) + new /obj/effect/floor_decal/snowdrift/large(T) + /area/exoplanet/adhomai name = "Adhomian Wilderness" ambience = list('sound/effects/wind/tundra0.ogg', 'sound/effects/wind/tundra1.ogg', 'sound/effects/wind/tundra2.ogg', 'sound/effects/wind/spooky0.ogg', 'sound/effects/wind/spooky1.ogg') diff --git a/code/modules/mob/living/simple_animal/friendly/adhomai.dm b/code/modules/mob/living/simple_animal/friendly/adhomai.dm index d7ce60ea384..60dc1e3ebe3 100644 --- a/code/modules/mob/living/simple_animal/friendly/adhomai.dm +++ b/code/modules/mob/living/simple_animal/friendly/adhomai.dm @@ -154,4 +154,98 @@ mob_size = 5 melee_damage_lower = 5 melee_damage_upper = 5 - meat_amount = 2 \ No newline at end of file + meat_amount = 2 + +/mob/living/simple_animal/scavenger + name = "scavenger" + desc = "Segmented, keratinous creatures that feed on the Hma'trra Zivr carcasses found on the pole's surface." + icon = 'icons/mob/npc/adhomai.dmi' + icon_state = "scavenger" + icon_living = "scavenger" + icon_dead = "scavenger_dead" + meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai + meat_amount = 1 + organ_names = list("thorax", "legs", "head") + faction = "Adhomai" + maxHealth = 20 + health = 20 + mob_size = 3 + + speak_emote = list("chitters") + emote_hear = list("chitters") + emote_see = list("scutters around", "digs the ground") + + blood_type = "#281C2D" + +/mob/living/simple_animal/ice_catcher + name = "ice catcher" + desc = "An animal often mistaken for a rock due its shell. Its main body is made up of large tentacles." + icon = 'icons/mob/npc/adhomai_48.dmi' + icon_state = "catcher" + icon_living = "catcher" + icon_dead = "catcher_dead" + + meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai + meat_amount = 10 + organ_names = list("shell", "tentacles") + faction = "Adhomai" + + maxHealth = 50 + health = 50 + mob_size = 3 + pixel_x = -8 + blood_type = "#281C2D" + var/burrowed = FALSE + var/chosen_icon + +/mob/living/simple_animal/ice_catcher/Initialize() + . = ..() + chosen_icon = pick("catcher", "catcher1", "catcher2") + icon_state = chosen_icon + icon_living = chosen_icon + icon_dead = "[chosen_icon]_dead" + burrow() + +/mob/living/simple_animal/ice_catcher/proc/burrow() + burrowed = TRUE + icon_state = "[chosen_icon]-h" + icon_living = "[chosen_icon]-h" + anchored = TRUE + name = "rock" + desc = "A rock." + visible_message(SPAN_NOTICE("\The [src] burrows into the ground!")) + +/mob/living/simple_animal/ice_catcher/Move() + if(burrowed) + return + else + ..() + +/mob/living/simple_animal/ice_catcher/proc/unburrow() + burrowed = FALSE + icon_state = "[chosen_icon]" + icon_living = "[chosen_icon]" + anchored = FALSE + name = "ice catcher" + desc = "An animal often mistaken for a rock due its shell. Its main body is made up of large tentacles." + visible_message(SPAN_NOTICE("\The [src] emerges from the ground!")) + +/mob/living/simple_animal/ice_catcher/attack_hand(mob/living/carbon/human/M as mob) + if(burrowed && (stat != DEAD)) + unburrow() + ..() + +/mob/living/simple_animal/ice_catcher/attackby(obj/item/O, mob/user) + if(burrowed && (stat != DEAD)) + unburrow() + ..() + +/mob/living/simple_animal/ice_catcher/bullet_act(obj/item/projectile/P, def_zone) + if(burrowed && (stat != DEAD)) + unburrow() + ..() + +/mob/living/simple_animal/ice_catcher/death(gibbed) + ..() + if(burrowed) + unburrow() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/adhomai.dm b/code/modules/mob/living/simple_animal/hostile/adhomai.dm index 7a4bc07c56b..49dec00d672 100644 --- a/code/modules/mob/living/simple_animal/hostile/adhomai.dm +++ b/code/modules/mob/living/simple_animal/hostile/adhomai.dm @@ -63,4 +63,114 @@ butchering_products = list(/obj/item/stack/material/animalhide = 1) meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai - meat_amount = 5 \ No newline at end of file + meat_amount = 5 + +/mob/living/simple_animal/hostile/wriggler + name = "wriggler" + desc = "A large arctic predator.Its body is a white flesh sphere from which several tentacles emerge." + icon = 'icons/mob/npc/adhomai.dmi' + icon_state = "wriggler" + icon_living = "wriggler" + icon_dead = "wriggler_dead" + meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai + meat_amount = 5 + organ_names = list("body", "tentacles") + faction = "Adhomai" + maxHealth = 100 + health = 100 + + speak_emote = list("gurgles") + emote_hear = list("gurgles") + emote_see = list("wiggles around", "wiggles its tentacles") + + response_help = "pets the" + response_disarm = "gently pushes aside the" + response_harm = "hits the" + + melee_damage_lower = 15 + melee_damage_upper = 15 + + mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY + mob_push_flags = ALLMOBS + + attacktext = "strangled" + attack_sound = 'sound/effects/noosed.ogg' + + speed = 1 + mob_size = 10 + environment_smash = 1 + + attack_emote = "wiggles toward" + see_in_dark = 10 + see_invisible = SEE_INVISIBLE_NOLIGHTING + blood_type = "#281C2D" + + +/mob/living/simple_animal/hostile/plasmageist + name = "plasmageist" + desc = "A luminescent, lightning balls frequently spotted floating over the Adhomian North Pole." + icon = 'icons/mob/npc/adhomai.dmi' + icon_state = "plasmageist" + icon_living = "plasmageist" + icon_dead = "plasmageist_dead" + organ_names = list("body") + faction = "Adhomai" + + speak_emote = list("hums") + emote_hear = list("hums") + emote_see = list("hums ominously", "crackles with energy", "floats around") + + maxHealth = 50 + health = 50 + + melee_damage_lower = 5 + melee_damage_upper = 5 + attacktext = "shocked" + attack_sound = 'sound/magic/LightningShock.ogg' + + speed = 1 + mob_size = 5 + + attack_emote = "hums at" + see_in_dark = 10 + see_invisible = SEE_INVISIBLE_NOLIGHTING + + smart_ranged = TRUE + + ranged = TRUE + projectiletype = /obj/item/projectile/beam/tesla/plasmageist + projectilesound = 'sound/magic/LightningShock.ogg' + + pass_flags = PASSTABLE|PASSRAILING + + tameable = FALSE + flying = TRUE + + blood_overlay_icon = null + +/mob/living/simple_animal/hostile/plasmageist/attack_hand(mob/living/carbon/human/M as mob) + M.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) + visible_message(SPAN_WARNING("\The [M] tries to touch \the [src]!")) + tesla_zap(M, 5, 5000) + +/mob/living/simple_animal/hostile/plasmageist/attackby(obj/item/O, mob/user) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) + if(isliving(user)) + visible_message(SPAN_WARNING("\The [user] tries to touch \the [src]!")) + tesla_zap(user, 5, 5000) + +/mob/living/simple_animal/hostile/plasmageist/death(gibbed) + ..() + ..(null, "disintegrates!") + var/T = get_turf(src) + spark(T, 1, alldirs) + explosion(T, -1, 0, 2) + qdel(src) + +/mob/living/simple_animal/hostile/plasmageist/ex_act(severity) + return + +/obj/item/projectile/beam/tesla/plasmageist/on_impact(atom/target) + . = ..() + if(isliving(target)) + explosion(target, -1, 0, 2) diff --git a/html/changelogs/alberyk-northpole.yml b/html/changelogs/alberyk-northpole.yml new file mode 100644 index 00000000000..f3f0e74e6ad --- /dev/null +++ b/html/changelogs/alberyk-northpole.yml @@ -0,0 +1,6 @@ +author: Alberyk, Kyres1 + +delete-after: True + +changes: + - rscadd: "The North Pole now has a small chance of being chosen as a land site when Adhomai is spawned." diff --git a/icons/effects/adhomai_worm.dmi b/icons/effects/adhomai_worm.dmi new file mode 100644 index 00000000000..69bac49c258 Binary files /dev/null and b/icons/effects/adhomai_worm.dmi differ diff --git a/icons/mob/npc/adhomai.dmi b/icons/mob/npc/adhomai.dmi index 5559790b167..847ac67bd80 100644 Binary files a/icons/mob/npc/adhomai.dmi and b/icons/mob/npc/adhomai.dmi differ diff --git a/icons/mob/npc/adhomai_48.dmi b/icons/mob/npc/adhomai_48.dmi new file mode 100644 index 00000000000..1b1a788d078 Binary files /dev/null and b/icons/mob/npc/adhomai_48.dmi differ diff --git a/icons/obj/geyser.dmi b/icons/obj/geyser.dmi new file mode 100644 index 00000000000..776e2235701 Binary files /dev/null and b/icons/obj/geyser.dmi differ diff --git a/icons/obj/monolith.dmi b/icons/obj/monolith.dmi new file mode 100644 index 00000000000..0f479e3b23f Binary files /dev/null and b/icons/obj/monolith.dmi differ diff --git a/icons/obj/tajara_items.dmi b/icons/obj/tajara_items.dmi index f961d19d074..6b01e7ce96b 100644 Binary files a/icons/obj/tajara_items.dmi and b/icons/obj/tajara_items.dmi differ diff --git a/maps/random_ruins/exoplanets/adhomai/north_pole_monolith.dm b/maps/random_ruins/exoplanets/adhomai/north_pole_monolith.dm new file mode 100644 index 00000000000..ca2b31ca8cc --- /dev/null +++ b/maps/random_ruins/exoplanets/adhomai/north_pole_monolith.dm @@ -0,0 +1,9 @@ +/datum/map_template/ruin/exoplanet/north_pole_monolith + name = "North Pole Monolith" + id = "north_pole_monolith" + description = "An ominous looking monolith standing in the middle of nowhere." + + spawn_weight = 1 + spawn_cost = 1 + sectors = list(SECTOR_SRANDMARR) + suffixes = list("adhomai/north_pole_monolith.dmm") \ No newline at end of file diff --git a/maps/random_ruins/exoplanets/adhomai/north_pole_monolith.dmm b/maps/random_ruins/exoplanets/adhomai/north_pole_monolith.dmm new file mode 100644 index 00000000000..785ec5d2fea --- /dev/null +++ b/maps/random_ruins/exoplanets/adhomai/north_pole_monolith.dmm @@ -0,0 +1,50 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"c" = ( +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"X" = ( +/obj/structure/monolith{ + color = "#232B2B" + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) + +(1,1,1) = {" +c +c +c +c +c +"} +(2,1,1) = {" +c +c +c +c +c +"} +(3,1,1) = {" +c +c +X +c +c +"} +(4,1,1) = {" +c +c +c +c +c +"} +(5,1,1) = {" +c +c +c +c +c +"} diff --git a/maps/random_ruins/exoplanets/adhomai/north_pole_nka_expedition.dm b/maps/random_ruins/exoplanets/adhomai/north_pole_nka_expedition.dm new file mode 100644 index 00000000000..be97291fc52 --- /dev/null +++ b/maps/random_ruins/exoplanets/adhomai/north_pole_nka_expedition.dm @@ -0,0 +1,88 @@ +/datum/map_template/ruin/exoplanet/north_pole_nka_expedition + name = "New Kingdom Arctic Expedition" + id = "north_pole_nka_expedition" + description = "A New Kingdom expedition sent to explore the North Pole." + + spawn_weight = 1 + spawn_cost = 1 + sectors = list(SECTOR_SRANDMARR) + suffixes = list("adhomai/north_pole_nka_expedition.dmm") + +//ghost roles + +/datum/ghostspawner/human/nka_polar_explorer + short_name = "nka_polar_explorer" + name = "New Kingdom Arctic Explorer" + desc = "Explore the north pole as part of the New Kingdom expedition." + tags = list("External") + + extra_languages = list(LANGUAGE_SIIK_MAAS) + spawnpoints = list("nka_polar_explorer") + max_count = 3 + + outfit = /datum/outfit/admin/nka_polar_explorer + possible_species = list(SPECIES_TAJARA,SPECIES_TAJARA_MSAI,SPECIES_TAJARA_ZHAN) + allow_appearance_change = APPEARANCE_PLASTICSURGERY + + assigned_role = "New Kingdom Arctic Explorer" + special_role = "New Kingdom Arctic Explorer" + respawn_flag = null + + uses_species_whitelist = FALSE + +/datum/outfit/admin/nka_polar_explorer + name = "New Kingdom Arctic Explorer" + + uniform = /obj/item/clothing/under/tajaran/archeologist + suit = /obj/item/clothing/suit/storage/tajaran/archeologist + head = /obj/item/clothing/head/tajaran/archeologist + shoes = /obj/item/clothing/shoes/tajara/workboots/adhomian_boots + back = /obj/item/storage/backpack/satchel/leather + belt = /obj/item/melee/whip + accessory = /obj/item/clothing/accessory/holster/waist/brown + accessory_contents = list(/obj/item/gun/projectile/revolver/adhomian) + l_ear = null + + id = /obj/item/card/id + r_pocket = /obj/item/storage/wallet/random + l_pocket = /obj/item/device/radio + +/datum/outfit/admin/nka_polar_explorer/get_id_access() + return list(access_nka) + +/datum/ghostspawner/human/nka_polar_sailor + short_name = "nka_polar_sailor" + name = "New Kingdom Arctic Sailor" + desc = "Defend the New Kingdom's Explorers as part of the expedition." + tags = list("External") + + extra_languages = list(LANGUAGE_SIIK_MAAS) + spawnpoints = list("nka_polar_sailor") + max_count = 3 + + outfit = /datum/outfit/admin/nka_polar_sailor + possible_species = list(SPECIES_TAJARA,SPECIES_TAJARA_MSAI,SPECIES_TAJARA_ZHAN) + allow_appearance_change = APPEARANCE_PLASTICSURGERY + + assigned_role = "New Kingdom Arctic Sailor" + special_role = "New Kingdom Arctic Sailor" + respawn_flag = null + + uses_species_whitelist = FALSE + +/datum/outfit/admin/nka_polar_sailor + name = "New Kingdom Arctic Sailor" + + uniform = /obj/item/clothing/under/tajaran/nka_uniform/sailor + head = /obj/item/clothing/head/tajaran/nka_cap/sailor + back = /obj/item/storage/backpack/rucksack/tan + shoes = /obj/item/clothing/shoes/tajara/combat + belt = /obj/item/storage/belt/military + l_ear = null + + id = /obj/item/card/id + r_pocket = /obj/item/storage/wallet/random + l_pocket = /obj/item/device/radio + +/datum/outfit/admin/nka_polar_sailor/get_id_access() + return list(access_nka) \ No newline at end of file diff --git a/maps/random_ruins/exoplanets/adhomai/north_pole_nka_expedition.dmm b/maps/random_ruins/exoplanets/adhomai/north_pole_nka_expedition.dmm new file mode 100644 index 00000000000..439cf6cc352 --- /dev/null +++ b/maps/random_ruins/exoplanets/adhomai/north_pole_nka_expedition.dmm @@ -0,0 +1,903 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/dispenser/oxygen, +/turf/simulated/floor/carpet/rubber{ + temperature = 233.15 + }, +/area/adhomai_archeology) +"b" = ( +/obj/structure/reagent_dispensers/coolanttank, +/obj/effect/floor_decal/industrial/hatch/yellow, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"c" = ( +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"d" = ( +/obj/structure/closet/crate, +/obj/item/ammo_magazine/c38, +/obj/item/ammo_magazine/c38, +/obj/item/ammo_magazine/c38, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"e" = ( +/obj/structure/table/rack, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/simulated/floor/carpet/rubber{ + temperature = 233.15 + }, +/area/adhomai_archeology) +"f" = ( +/obj/structure/bed/stool/chair/office/dark{ + dir = 8 + }, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"g" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/radiocarbon_spectrometer, +/obj/effect/floor_decal/industrial/hatch/yellow, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"h" = ( +/obj/effect/ghostspawpoint{ + identifier = "nka_polar_explorer"; + name = "igs - nka_polar_explorer" + }, +/obj/structure/bed/stool/wood, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"i" = ( +/obj/machinery/suspension_gen, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"j" = ( +/obj/structure/sign/flag/nka{ + pixel_y = 32 + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"l" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/machinery/artifact_analyser, +/obj/effect/floor_decal/spline/plain/cee{ + dir = 1 + }, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"m" = ( +/obj/structure/closet/secure_closet/cabinet{ + name = "secure locker (rifle)"; + req_access = list(213) + }, +/obj/item/gun/projectile/shotgun/pump/rifle, +/obj/item/ammo_magazine/boltaction, +/obj/item/ammo_magazine/boltaction, +/obj/item/ammo_magazine/boltaction, +/turf/simulated/floor/carpet/rubber{ + temperature = 233.15 + }, +/area/adhomai_archeology) +"n" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/item/reagent_containers/glass/bucket{ + pixel_y = 12 + }, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"p" = ( +/obj/structure/sign/flag/nka{ + pixel_x = 32 + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"r" = ( +/obj/structure/closet/crate/miningcart, +/obj/structure/sign/flag/nka{ + pixel_x = -32 + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"s" = ( +/obj/structure/closet/secure_closet/cabinet{ + name = "secure locker (shotgun)"; + req_access = list(213) + }, +/obj/item/storage/box/shotgunammo, +/obj/item/storage/box/shotgunshells, +/obj/item/gun/projectile/shotgun/doublebarrel/pellet, +/obj/item/clothing/accessory/storage/bandolier, +/turf/simulated/floor/carpet/rubber{ + temperature = 233.15 + }, +/area/adhomai_archeology) +"t" = ( +/obj/machinery/floodlight, +/obj/structure/sign/flag/nka{ + pixel_y = 32 + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"u" = ( +/obj/structure/closet/crate, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"v" = ( +/obj/structure/closet/crate, +/obj/item/flame/lighter/adhomai, +/obj/item/flame/lighter/adhomai, +/obj/item/flame/lighter/adhomai, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"w" = ( +/obj/structure/closet/crate/miningcart, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"x" = ( +/obj/structure/closet/crate, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/lantern, +/obj/item/device/flashlight/lantern, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"y" = ( +/obj/machinery/floodlight, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"z" = ( +/obj/structure/anomaly_container, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"A" = ( +/obj/structure/closet/crate/secure/large, +/obj/item/storage/box/dynamite, +/obj/item/storage/box/dynamite, +/obj/item/storage/box/dynamite, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"C" = ( +/obj/structure/table/standard, +/obj/item/paper_bin, +/obj/item/pen/black, +/obj/item/device/flashlight/lamp{ + pixel_y = 15 + }, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"D" = ( +/obj/structure/closet/crate/freezer, +/obj/item/storage/field_ration/nka/navy, +/obj/item/storage/field_ration/nka/navy, +/obj/item/storage/field_ration/nka/navy, +/obj/item/storage/field_ration/nka/navy, +/obj/item/storage/field_ration/nka/navy, +/obj/item/storage/field_ration/nka/navy, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"E" = ( +/turf/simulated/floor/carpet/rubber{ + temperature = 233.15 + }, +/area/adhomai_archeology) +"F" = ( +/obj/structure/bonfire/light_up, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"G" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/excavation, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"H" = ( +/obj/structure/table/standard, +/obj/item/stack/nanopaste, +/obj/item/stack/nanopaste, +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"I" = ( +/obj/structure/curtain/open, +/turf/simulated/floor/carpet/rubber{ + temperature = 233.15 + }, +/area/adhomai_archeology) +"J" = ( +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"K" = ( +/obj/structure/sign/flag/nka{ + pixel_y = -32 + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"M" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/simulated/floor/carpet/rubber{ + temperature = 233.15 + }, +/area/adhomai_archeology) +"N" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"O" = ( +/obj/structure/sign/flag/nka{ + pixel_x = -32 + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"P" = ( +/obj/item/trash/cigbutt/cigarbutt, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"Q" = ( +/obj/effect/ghostspawpoint{ + identifier = "nka_polar_sailor"; + name = "igs - nka_polar_sailor" + }, +/turf/simulated/floor/carpet/rubber{ + temperature = 233.15 + }, +/area/adhomai_archeology) +"R" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 1 + }, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"S" = ( +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 12 + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"T" = ( +/obj/structure/table/rack, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/mechanical, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"U" = ( +/obj/structure/table/rack, +/obj/item/clothing/shoes/tajara/winter, +/obj/item/clothing/shoes/tajara/winter, +/obj/item/clothing/shoes/tajara/winter, +/obj/item/clothing/shoes/tajara/winter, +/obj/item/clothing/shoes/tajara/winter, +/obj/item/clothing/suit/storage/hooded/wintercoat, +/obj/item/clothing/suit/storage/hooded/wintercoat, +/obj/item/clothing/suit/storage/hooded/wintercoat, +/obj/item/clothing/suit/storage/hooded/wintercoat, +/obj/item/clothing/suit/storage/hooded/wintercoat, +/obj/machinery/light/small, +/turf/simulated/floor/carpet/rubber{ + temperature = 233.15 + }, +/area/adhomai_archeology) +"V" = ( +/obj/structure/curtain/open, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"W" = ( +/obj/structure/table/rack, +/obj/item/device/binoculars/spyglass, +/obj/item/device/binoculars/spyglass, +/turf/simulated/floor/carpet/rubber{ + temperature = 233.15 + }, +/area/adhomai_archeology) +"X" = ( +/turf/simulated/wall/cloth, +/area/adhomai_archeology) +"Y" = ( +/obj/machinery/artifact_scanpad, +/obj/effect/floor_decal/spline/plain/cee, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) +"Z" = ( +/obj/structure/closet/excavation, +/turf/simulated/floor/carpet/rubber{ + temperature = 268.15 + }, +/area/adhomai_archeology) + +(1,1,1) = {" +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +"} +(2,1,1) = {" +c +c +c +c +c +c +c +c +c +c +X +c +c +c +c +c +c +c +c +c +"} +(3,1,1) = {" +c +c +c +c +c +c +c +c +X +X +X +X +X +c +c +c +c +c +c +c +"} +(4,1,1) = {" +c +c +c +c +c +c +c +X +X +v +x +d +X +X +c +c +c +c +c +c +"} +(5,1,1) = {" +c +c +c +c +c +c +c +X +A +J +J +J +D +X +c +c +c +c +c +c +"} +(6,1,1) = {" +c +c +c +c +c +c +c +X +A +J +J +J +u +X +c +c +c +c +c +c +"} +(7,1,1) = {" +c +c +c +c +c +c +c +X +X +X +V +X +X +X +c +c +c +c +c +c +"} +(8,1,1) = {" +c +c +c +c +c +c +c +c +c +O +c +r +w +w +c +c +c +c +c +c +"} +(9,1,1) = {" +c +c +X +X +X +X +y +c +c +c +c +c +c +c +X +X +X +X +c +c +"} +(10,1,1) = {" +c +X +X +N +C +X +y +c +c +c +c +c +c +c +X +a +M +X +X +c +"} +(11,1,1) = {" +c +X +b +n +f +X +t +c +c +S +h +c +c +K +X +E +E +e +X +c +"} +(12,1,1) = {" +X +X +g +R +J +V +c +c +c +h +F +c +c +c +I +E +E +U +X +X +"} +(13,1,1) = {" +c +X +H +R +J +X +j +c +c +c +h +P +c +K +X +Q +Q +W +X +c +"} +(14,1,1) = {" +c +X +X +l +Y +X +c +c +c +c +c +c +c +c +X +s +m +X +X +c +"} +(15,1,1) = {" +c +c +X +X +X +X +c +c +c +c +c +c +c +c +X +X +X +X +c +c +"} +(16,1,1) = {" +c +c +c +c +c +c +c +c +c +p +c +p +c +c +c +c +c +c +c +c +"} +(17,1,1) = {" +c +c +c +c +c +c +c +X +X +X +V +X +X +X +c +c +c +c +c +c +"} +(18,1,1) = {" +c +c +c +c +c +c +c +X +T +J +J +J +i +X +c +c +c +c +c +c +"} +(19,1,1) = {" +c +c +c +c +c +c +c +X +z +J +J +E +i +X +c +c +c +c +c +c +"} +(20,1,1) = {" +c +c +c +c +c +c +c +X +X +Z +G +Z +X +X +c +c +c +c +c +c +"} +(21,1,1) = {" +c +c +c +c +c +c +c +c +X +X +X +X +X +c +c +c +c +c +c +c +"} +(22,1,1) = {" +c +c +c +c +c +c +c +c +c +c +X +c +c +c +c +c +c +c +c +c +"} +(23,1,1) = {" +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +"} diff --git a/maps/random_ruins/exoplanets/adhomai/north_pole_worm.dm b/maps/random_ruins/exoplanets/adhomai/north_pole_worm.dm new file mode 100644 index 00000000000..86e7c9e3ffd --- /dev/null +++ b/maps/random_ruins/exoplanets/adhomai/north_pole_worm.dm @@ -0,0 +1,9 @@ +/datum/map_template/ruin/exoplanet/north_pole_worm + name = "Glacier Worm Carcass" + id = "north_pole_worm" + description = "The carcass of a massive glacier worm." + + spawn_weight = 1 + spawn_cost = 1 + sectors = list(SECTOR_SRANDMARR) + suffixes = list("adhomai/north_pole_worm.dmm") \ No newline at end of file diff --git a/maps/random_ruins/exoplanets/adhomai/north_pole_worm.dmm b/maps/random_ruins/exoplanets/adhomai/north_pole_worm.dmm new file mode 100644 index 00000000000..45bf49bc0cb --- /dev/null +++ b/maps/random_ruins/exoplanets/adhomai/north_pole_worm.dmm @@ -0,0 +1,319 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"c" = ( +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"q" = ( +/mob/living/simple_animal/scavenger, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"M" = ( +/obj/effect/decal/fake_object{ + icon = 'icons/effects/adhomai_worm.dmi'; + icon_state = "skeleton"; + layer = 4.5 + }, +/obj/effect/decal/fake_object{ + icon = 'icons/effects/adhomai_worm.dmi'; + density = 1 + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"N" = ( +/obj/effect/decal/fake_object{ + icon = 'icons/effects/adhomai_worm.dmi'; + density = 1 + }, +/obj/effect/decal/fake_object{ + icon = 'icons/effects/adhomai_worm.dmi'; + density = 1 + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) +"X" = ( +/obj/effect/decal/fake_object{ + icon = 'icons/effects/adhomai_worm.dmi'; + density = 1 + }, +/turf/simulated/floor/exoplanet/snow{ + temperature = 233.15 + }, +/area/exoplanet/adhomai) + +(1,1,1) = {" +c +c +c +c +c +X +X +M +c +c +c +c +c +"} +(2,1,1) = {" +c +c +c +q +c +X +X +X +c +c +q +c +c +"} +(3,1,1) = {" +c +c +c +c +c +X +X +X +c +c +c +c +c +"} +(4,1,1) = {" +c +c +c +c +c +X +X +X +c +c +c +c +c +"} +(5,1,1) = {" +c +c +c +c +c +X +X +X +c +c +c +c +c +"} +(6,1,1) = {" +c +c +c +c +c +X +X +X +c +c +q +c +c +"} +(7,1,1) = {" +c +c +c +c +c +X +X +X +c +c +c +c +c +"} +(8,1,1) = {" +c +c +c +c +c +N +N +N +q +c +c +c +c +"} +(9,1,1) = {" +c +c +c +c +c +X +X +X +c +c +c +c +c +"} +(10,1,1) = {" +c +c +c +c +c +X +X +X +c +c +c +c +c +"} +(11,1,1) = {" +c +c +c +c +q +X +X +X +c +c +c +c +c +"} +(12,1,1) = {" +c +c +c +c +c +X +X +X +c +q +c +c +c +"} +(13,1,1) = {" +c +c +c +c +c +X +X +X +c +c +c +c +c +"} +(14,1,1) = {" +c +c +c +q +c +X +X +X +c +c +c +c +c +"} +(15,1,1) = {" +c +c +c +c +c +X +X +X +c +c +c +c +c +"} +(16,1,1) = {" +c +c +c +c +c +X +X +X +c +c +q +c +c +"} +(17,1,1) = {" +c +c +c +c +c +X +X +X +c +c +c +c +c +"} +(18,1,1) = {" +c +c +c +c +c +X +X +X +c +c +c +c +c +"}