Uueoa-Esa, Part 2: System Ruins (#18944)

Adds several ruins for the uninhabited planets of Uueoa-Esa.
Adds a pre-contact Unathi spacesuit for one of the ruins and potential
future use.
Voidsuits and other refittable clothing items (if any are added) can now
be set to refit to a species on initialize rather than copypasting code
for mapped-in suit variants.

Will require updating for #18850 and #18920 when merged.
This commit is contained in:
RustingWithYou
2024-04-16 20:05:01 +00:00
committed by GitHub
parent 13542bea11
commit 6e27f718aa
27 changed files with 17659 additions and 16 deletions
+8
View File
@@ -3999,6 +3999,14 @@
#include "maps\random_ruins\exoplanets\raskara\raskara_okon.dm"
#include "maps\random_ruins\exoplanets\raskara\raskara_ritual.dm"
#include "maps\random_ruins\exoplanets\raskara\raskara_wreck.dm"
#include "maps\random_ruins\exoplanets\uueoaesa\heph_mining_station.dm"
#include "maps\random_ruins\exoplanets\uueoaesa\heph_survey_post.dm"
#include "maps\random_ruins\exoplanets\uueoaesa\izweski_probe.dm"
#include "maps\random_ruins\exoplanets\uueoaesa\kazhkz_crash.dm"
#include "maps\random_ruins\exoplanets\uueoaesa\miners_guild_outpost.dm"
#include "maps\random_ruins\exoplanets\uueoaesa\pid_crashed_shuttle.dm"
#include "maps\random_ruins\exoplanets\uueoaesa\pid_kois_farm.dm"
#include "maps\random_ruins\exoplanets\uueoaesa\sol_listening_post.dm"
#include "maps\random_ruins\space_ruins\space_ruins.dm"
#include "maps\runtime\runtime_overmap.dm"
#include "maps\runtime\code\runtime.dm"
@@ -277,6 +277,10 @@
broken_overlay = null
burned_overlay = null
/turf/simulated/floor/tiled/slate/airless
name = "airless tiles"
initial_gas = null
// ------------------------------- cargo
/turf/simulated/floor/tiled/cargo
+8
View File
@@ -41,6 +41,9 @@
///How protective is this clothing against anomalies? Should be a value from 0 to 1 indicating the percentage of anomaly protection it provides.
var/anomaly_protection = 0
///Species to refit the item for on initialize so that we can map in specific items for specific species easier. This should be set to the BODYTYPE of the species in question, not the species name or type itself.
var/refit_initialize = null
/obj/item/clothing/Initialize(var/mapload, var/material_key)
. = ..(mapload)
if(!material_key)
@@ -51,6 +54,11 @@
for(var/T in starting_accessories)
var/obj/item/clothing/accessory/tie = new T(src)
src.attach_accessory(null, tie)
if(refit_initialize)
if(contained_sprite)
refit_contained(refit_initialize)
else
refit_for_species(refit_initialize)
update_icon()
/obj/item/clothing/Destroy()
@@ -314,3 +314,24 @@
desc = "A reinforced mix of older Dominian and homemade Unathi pirate hardware in a single helmet; made to fit in a larger assembly."
icon_state = "rig-hiskyncaptain-helmet"
item_state = "rig-hiskyncaptain-helmet"
//Pre-contact spacesuits for Uueoa-Esa ruins.
/obj/item/clothing/suit/space/unathi_ruin
name = "unathi spacesuit"
desc = "A large and bulky spacesuit, seemingly of an early space age design. The distinctive shape of the suit indicates that it was made for an Unathi wearer."
desc_extended = "These spacesuits were among some of the earliest designs of Unathi space programs, though they rapidly became obsolete following first contact and the massive expansion of space exploration efforts. Seeing a suit like this outside of a museum is extremely rare in the modern day. The markings on this one do not identify it as Izweski, but it is impossible to tell to whom it might have belonged."
icon = 'icons/obj/unathi_ruins.dmi'
icon_state = "unathispacesuit"
item_state = "unathispacesuit"
species_restricted = list(SPECIES_UNATHI)
refittable = FALSE
/obj/item/clothing/head/helmet/space/unathi_ruin
name = "unathi space helmet"
desc = "A large and bulky space helmet, with a primitive 'fishbowl' design common in the early days of space exploration. The shape of the helmet indicates that it was designed for an Unathi wearer."
desc_extended = "These helmets are an early design from the Unathi space age, used primarily by the first Izweski astronauts in the 22nd century. They rapidly became obsolete after first contact and the massive expansion of space exploration efforts, making them a rare site outside of museums and private collections in the modern day. The markings on this one do not identify it as Izweski, but it is impossible to tell to whom it might have belonged."
icon = 'icons/obj/unathi_ruins.dmi'
icon_state = "unathispacehelm"
item_state = "unathispacehelm"
species_restricted = list(SPECIES_UNATHI)
refittable = FALSE
@@ -48,10 +48,8 @@
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_SKRELL, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP)
refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_TAJARA, BODYTYPE_IPC, BODYTYPE_UNATHI, BODYTYPE_SKRELL)
/obj/item/clothing/head/helmet/space/void/merc/unathi/Initialize()
. = ..()
refit_contained(BODYTYPE_UNATHI)
/obj/item/clothing/head/helmet/space/void/merc/unathi
refit_initialize = BODYTYPE_UNATHI
/obj/item/clothing/suit/space/void/merc/unathi/Initialize()
. = ..()
refit_contained(BODYTYPE_UNATHI)
/obj/item/clothing/suit/space/void/merc/unathi
refit_initialize = BODYTYPE_UNATHI
@@ -360,10 +360,9 @@
species_restricted = list(BODYTYPE_HUMAN)
refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_UNATHI)
/obj/item/clothing/head/helmet/space/void/lancer/unathi/Initialize()
. = ..()
/obj/item/clothing/head/helmet/space/void/lancer/unathi
desc = "A sleek helmet with a bright yellow visor, expertly made in and colored in the iconic branding of Ceres' Lance. This one is fitted to Unathi."
refit_contained(BODYTYPE_UNATHI)
refit_initialize = BODYTYPE_UNATHI
/obj/item/clothing/suit/space/void/lancer
name = "lancer voidsuit"
@@ -389,10 +388,9 @@
species_restricted = list(BODYTYPE_HUMAN)
refittable_species = list(BODYTYPE_HUMAN, BODYTYPE_UNATHI)
/obj/item/clothing/suit/space/void/lancer/unathi/Initialize()
. = ..()
/obj/item/clothing/suit/space/void/lancer/unathi
desc = "A bulky void suit with heavy plating. Looks to be colored in the branding of Ceres' Lance. This one is fitted to Unathi."
refit_contained(BODYTYPE_UNATHI)
refit_initialize = BODYTYPE_UNATHI
//Einstein Engines espionage voidsuit
/obj/item/clothing/head/helmet/space/void/einstein
@@ -228,6 +228,14 @@
..()
ex_act(2.0)
//Fertilizer tank
/obj/structure/reagent_dispensers/fertilizer
name = "fertilizer tank"
desc = "A tank filled with nutrients for plant growth"
icon_state = "lubetank"
amount_per_transfer_from_this = 30
reagents_to_add = list(/singleton/reagent/toxin/fertilizer = 1000)
//Wall Dispensers
/obj/structure/reagent_dispensers/peppertank
@@ -7,6 +7,10 @@
//for easy reference
/obj/var/datum/talking_atom/talking_atom
/obj/Destroy()
QDEL_NULL(talking_atom)
return ..()
/datum/talking_atom
var/list/heard_words = list()
var/last_talk_time = 0
@@ -0,0 +1,59 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# - (fixes bugs)
# wip
# - (work in progress)
# qol
# - (quality of life)
# soundadd
# - (adds a sound)
# sounddel
# - (removes a sound)
# rscadd
# - (adds a feature)
# rscdel
# - (removes a feature)
# imageadd
# - (adds an image or sprite)
# imagedel
# - (removes an image or sprite)
# spellcheck
# - (fixes spelling or grammar)
# experiment
# - (experimental change)
# balance
# - (balance changes)
# code_imp
# - (misc internal code change)
# refactor
# - (refactors code)
# config
# - (makes a change to the config files)
# admin
# - (makes changes to administrator tools)
# server
# - (miscellaneous changes to server)
#################################
# Your name.
author: RustingWithYou
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Adds various ruins for the minor planets and asteroids of Uueoa-Esa."
- qol: "Clothing items can now be set to refit to a species on initialize."
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

@@ -62,7 +62,7 @@
spawn_weight = 0.5
spawn_cost = 2
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, SECTOR_WEEPING_STARS)
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, SECTOR_WEEPING_STARS, SECTOR_UUEOAESA)
prefix = "asteroid/sol_ship/"
suffixes = list("sol_ship_unique.dmm")
@@ -77,7 +77,7 @@
spawn_weight = 0.5
spawn_cost = 3
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS)
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, SECTOR_UUEOAESA)
prefix = "asteroid/skrell_ship/"
suffixes = list("skrell_crash_unique.dmm")
@@ -150,7 +150,7 @@
spawn_weight = 1
spawn_cost = 1
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, SECTOR_NEW_ANKARA, SECTOR_AEMAQ, ALL_COALITION_SECTORS)
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, SECTOR_NEW_ANKARA, SECTOR_AEMAQ, ALL_COALITION_SECTORS, SECTOR_UUEOAESA)
prefix = "asteroid/digsite/"
suffixes = list("digsite_unique.dmm")
@@ -193,7 +193,7 @@
id = "miningoutpost"
description = "A long-abandoned mining outpost."
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, ALL_COALITION_SECTORS)
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, ALL_COALITION_SECTORS, SECTOR_UUEOAESA)
prefix = "asteroid/old_outpost/"
suffixes = list("old_outpost.dmm")
@@ -0,0 +1,126 @@
/datum/map_template/ruin/exoplanet/heph_mining_station
name = "Hephaestus Mining Station"
id = "heph_mining_station"
description = "A Hephaestus Industries mining station on one of Uueoa-Esa's minor celestial bodies."
sectors = list(SECTOR_UUEOAESA)
prefix = "uueoaesa/"
suffixes = list("heph_mining_station.dmm")
template_flags = TEMPLATE_FLAG_NO_RUINS|TEMPLATE_FLAG_RUIN_STARTS_DISALLOWED
spawn_cost = 2
ban_ruins = list(/datum/map_template/ruin/exoplanet/miners_guild_outpost)
/area/heph_mining_station
name = "Hephaestus Mining Station"
icon_state = "bluenew"
requires_power = TRUE
dynamic_lighting = TRUE
no_light_control = FALSE
base_turf = /turf/simulated/floor/exoplanet/barren
area_flags = AREA_FLAG_RAD_SHIELDED|AREA_FLAG_INDESTRUCTIBLE_TURFS
ambience = AMBIENCE_EXPOUTPOST
/area/heph_mining_station/mining
name = "Hephaestus Mining Station - Processing"
icon_state = "mining"
/area/heph_mining_station/mess
name = "Hephaestus Mining Station - Mess Hall"
icon_state = "cafeteria"
/area/heph_mining_station/medbay
name = "Hephaestus Mining Station - Medical"
icon_state = "medbay"
/area/heph_mining_station/entry
name = "Hephaestus Mining Station - Entry"
icon_state = "exit"
/area/heph_mining_station/engineer
name = "Hephaestus Mining Station - Engineering"
icon_state = "outpost_engine"
/area/heph_mining_station/quarters
name = "Hephaestus Mining Station - Crew Quarters"
icon_state = "crew_quarters"
/area/heph_mining_station/equipmentstorage
name = "Hephaestus Mining Station - Equipment Storage"
icon_state = "security"
/area/heph_mining_station/eva
name = "Hephaestus Mining Station - EVA Storage"
icon_state = "eva"
/area/heph_mining_station/storage
name = "Hephaestus Mining Station - General Storage"
icon_state = "machinist_workshop"
/datum/ghostspawner/human/heph_space_miner
name = "Hephaestus Miner"
short_name = "heph_space_miner"
desc = "Work as a miner for Hephaestus Industries on a planetary station."
tags = list("External")
welcome_message = "You are a Hephaestus Industries miner, working on an outpost on one of Uueoa-Esa's smaller celestial bodies. Mine the planet or asteroid you find yourself on."
spawnpoints = list("heph_space_miner")
max_count = 3
extra_languages = list(LANGUAGE_UNATHI, LANGUAGE_AZAZIBA)
outfit = /obj/outfit/admin/moghes_heph_miner
possible_species = list(SPECIES_UNATHI)
allow_appearance_change = APPEARANCE_PLASTICSURGERY
uses_species_whitelist = FALSE
/datum/ghostspawner/human/heph_space_miner/klax
name = "Hephaestus K'laxan Miner"
short_name = "heph_klax_space_miner"
max_count = 1
extra_languages = list(LANGUAGE_VAURCA)
possible_species = list(SPECIES_VAURCA_WORKER, SPECIES_VAURCA_BULWARK)
outfit = /obj/outfit/admin/moghes_heph_miner/klax
uses_species_whitelist = TRUE
/obj/outfit/admin/moghes_heph_miner
name = "Moghes Hephaestus Miner"
uniform = /obj/item/clothing/under/rank/miner/heph
shoes = /obj/item/clothing/shoes/workboots/toeless
back = /obj/item/storage/backpack/satchel/heph
head = /obj/item/clothing/head/hardhat/green
suit = /obj/item/clothing/accessory/poncho/unathimantle/hephaestus
id = /obj/item/card/id/hephaestus
backpack_contents = list(/obj/item/storage/wallet/random = 1)
/obj/outfit/admin/moghes_heph_miner/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
if(H?.wear_suit)
H.wear_suit.color = "#2a2b2e"
/obj/outfit/admin/moghes_heph_miner/get_id_access()
return list(ACCESS_EXTERNAL_AIRLOCKS, ACCESS_HEPHAESTUS)
/obj/outfit/admin/moghes_heph_miner/klax
name = "Moghes Hephaestus Miner - K'lax"
shoes = /obj/item/clothing/shoes/vaurca
head = null
mask = /obj/item/clothing/mask/gas/vaurca/filter
back = /obj/item/storage/backpack/cloak/cargo
backpack_contents = list(/obj/item/storage/wallet/random = 1, /obj/item/reagent_containers/food/snacks/koisbar_clean = 3)
/obj/outfit/admin/moghes_heph_miner/klax/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
if(H?.wear_mask && H.species.has_organ[BP_PHORON_RESERVE])
var/obj/item/organ/internal/vaurca/preserve/preserve = H.internal_organs_by_name[BP_PHORON_RESERVE]
H.internal = preserve
H.internals.icon_state = "internal1"
if(H?.wear_suit)
H.wear_suit.color = "#2a2b2e"
var/obj/item/organ/A = new /obj/item/organ/internal/augment/language/klax(H)
var/obj/item/organ/external/affected = H.get_organ(A.parent_organ)
A.replaced(H, affected)
var/obj/item/organ/B = new /obj/item/organ/internal/augment/tool/drill(H)
var/obj/item/organ/external/affectedB = H.get_organ(B.parent_organ)
B.replaced(H, affectedB)
H.update_body()
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,18 @@
/datum/map_template/ruin/exoplanet/heph_survey_post
name = "Hephaestus Survey Post"
id = "heph_survey_post"
description = "A long-abandoned Hephaestus survey outpost."
sectors = list(SECTOR_UUEOAESA)
prefix = "uueoaesa/"
suffixes = list("heph_survey_post.dmm")
template_flags = TEMPLATE_FLAG_NO_RUINS|TEMPLATE_FLAG_RUIN_STARTS_DISALLOWED
/area/heph_survey_post
name = "Hephaestus Survey Post"
icon_state = "bluenew"
requires_power = TRUE
dynamic_lighting = TRUE
no_light_control = FALSE
base_turf = /turf/simulated/floor/plating
area_flags = AREA_FLAG_RAD_SHIELDED|AREA_FLAG_INDESTRUCTIBLE_TURFS
ambience = AMBIENCE_EXPOUTPOST
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,22 @@
/datum/map_template/ruin/exoplanet/izweski_probe
name = "Izweski Probe"
id = "izweski_probe"
description = "An ancient Izweski Hegemony space probe."
sectors = list(SECTOR_UUEOAESA)
prefix = "uueoaesa/"
suffixes = list("izweski_probe.dmm")
template_flags = TEMPLATE_FLAG_NO_RUINS|TEMPLATE_FLAG_RUIN_STARTS_DISALLOWED
/obj/structure/survey_probe/hegemony/old
name = "\improper Hegemony space probe"
desc = "An unmanned probe, clearly a very old and unsophisticated design. The flag of the Izweski Hegemony is displayed on the side, and a fading screen displays a readout in Sinta'Unathi"
desc_extended = "This model of survey probe seems to be very old. A plaque on the side bears some words in Sinta'Unathi beneath the seal of the Izweski Hegemony."
anchored = TRUE
density = TRUE
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "surveying_probe_deployed"
/obj/structure/survey_probe/hegemony/old/examine(mob/user)
. = ..()
if(GLOB.all_languages[LANGUAGE_UNATHI] in user.languages)
to_chat(user, SPAN_NOTICE("The probe's plaque identifies it as property of the Izweski Hegemony Extraterrestrial Surveying Guild - a space exploration guild dissolved shortly following First Contact. The date displayed on the ancient screen would read as 2361 by the common human calendar."))
@@ -0,0 +1,31 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/effect/landmark/clear,
/turf/template_noop,
/area/template_noop)
"h" = (
/obj/effect/landmark/clear,
/obj/structure/sign/flag/hegemony,
/turf/template_noop,
/area/template_noop)
"J" = (
/obj/effect/landmark/clear,
/obj/structure/survey_probe/hegemony/old,
/turf/template_noop,
/area/template_noop)
(1,1,1) = {"
a
a
a
"}
(2,1,1) = {"
h
J
a
"}
(3,1,1) = {"
a
a
a
"}
@@ -0,0 +1,117 @@
/datum/map_template/ruin/exoplanet/kazhkz_crash
name = "Crashed Kazhkz Shuttle"
id = "kazhkz_crash"
description = "A crashed shuttle from the days of the Contact War."
template_flags = TEMPLATE_FLAG_NO_RUINS|TEMPLATE_FLAG_RUIN_STARTS_DISALLOWED
sectors = list(SECTOR_UUEOAESA)
prefix = "uueoaesa/"
suffixes = list("kazhkz_crash.dmm")
shuttles_to_initialise = list(/datum/shuttle/autodock/overmap/kazhkz_crash)
/area/shuttle/kazhkz_crash
name = "Crashed Shuttle"
requires_power = TRUE
/obj/effect/overmap/visitable/ship/landable/kazhkz_crash
name = "Crashed Kazhkz Shuttle"
desc = "The NanoTrasen Bounty-class shuttle was one of the megacorporation's first spacecraft designs, intended for long-term scouting and prospecting missions in the Romanovich Cloud. Though superceded by more modern designs, the Bounty-class remained in common use until the late 2450s. This one appears to be showing signs of heavy damage."
class = "NTCV" //NanoTrasen Corporate Vessel
designation = "Victory"
designer = "NanoTrasen"
sizeclass = "Bounty-class prospecting shuttle"
shiptype = "Long-term, short-range prospecting and scouting operations"
shuttle = "Crashed Kazhkz Shuttle"
icon_state = "shuttle"
moving_state = "shuttle_moving"
colors = list("#d65e1e", "#1f731f") //Kazhkz and Han'san colors
max_speed = 1/(3 SECONDS)
burn_delay = 1 SECONDS
vessel_mass = 3000 //Hard to move
fore_dir = SOUTH
vessel_size = SHIP_SIZE_TINY
/obj/machinery/computer/shuttle_control/explore/kazhkz_crash
name = "shuttle control console"
shuttle_tag = "Crashed Kazhkz Shuttle"
/datum/shuttle/autodock/overmap/kazhkz_crash
name = "Crashed Kazhkz Shuttle"
move_time = 90
shuttle_area = list(/area/shuttle/kazhkz_crash)
current_location = "nav_start_kazhkz_crash"
landmark_transition = "nav_transit_kazhkz_crash"
range = 1
fuel_consumption = 2
logging_home_tag = "nav_start_kazhkz_crash"
defer_initialisation = TRUE
/obj/effect/shuttle_landmark/kazhkz_crash
name = "Shuttle Crash Site"
landmark_tag = "nav_start_kazhkz_crash"
docking_controller = "airlock_kazhkz_crash"
landmark_flags = SLANDMARK_FLAG_AUTOSET //Can spawn on multiple planet types
movable_flags = MOVABLE_FLAG_EFFECTMOVE
/obj/effect/shuttle_landmark/kazhkz_crash/transit
name = "In transit"
landmark_tag = "nav_transit_kazhkz_crash"
base_turf = /turf/space/transit/north
/obj/effect/landmark/corpse/kazhkz_crash
name = "Dead Kazhkz Warrior"
corpseuniform = /obj/item/clothing/under/unathi/hiskyn
corpseshoes = /obj/item/clothing/shoes/magboots
corpsesuit = /obj/item/clothing/suit/space/unathi_ruin
corpsehelmet = /obj/item/clothing/head/helmet/space/unathi_ruin
corpseback = /obj/item/tank/oxygen/brown
corpsebelt = /obj/item/gun/projectile/pistol/spitter
corpseid = FALSE
species = SPECIES_UNATHI
/obj/effect/landmark/corpse/kazhkz_crash/do_extra_customization(mob/living/carbon/human/M)
M.ChangeToHusk()
M.adjustBruteLoss(rand(200,400))
M.dir = pick(GLOB.cardinal)
/obj/effect/landmark/corpse/kazhkz_crash/captain
corpsesuit = /obj/item/clothing/suit/space/void/mining
corpsehelmet = /obj/item/clothing/head/helmet/space/void/mining
/obj/effect/landmark/corpse/kazhkz_crash/captain/do_extra_customization(mob/living/carbon/human/M)
. = ..()
if(M.wear_suit && isclothing(M.wear_suit))
var/obj/item/clothing/suit = M.wear_suit
suit.refit_contained(BODYTYPE_UNATHI)
if(M.head && isclothing(M.head))
var/obj/item/clothing/head = M.head
head.refit_contained(BODYTYPE_UNATHI)
/obj/item/paper/fluff/kazhkz_crash_note
name = "scrawled message"
info = "The plan has failed. Izweski defences have shot down King Seryo's vessel, and the survivors of the assault have fled. I was able to distract the Hegemony's fighters with our own vessel for a time, but our engines are too damaged. I tried to bring us down on the surface here, in the hopes that the others would find us, but I fear it is too late. Most of my warriors perished, either in the battle or from the crash, and the others do not have long. Lord Kasz has guided the others in a retreat, and I pray to whatever spirits know this cursed place that they are safe and far from here. I will not join my ancestors in the earth of our homeland, and my bones may never be honored - but should my spirit rest here, may I guide my clan and that of my King to safety, and may I visit a terrible curse upon the tyrant S'kresti Izweski.<br><i>R'tiza Han'san<br>09/06/2438</i>"
/obj/item/paper/fluff/kazhkz_crash_note/Initialize()
. = ..()
var/languagetext = "\[lang=p\]"
languagetext += "[info]\[/lang\]"
info = parsepencode(languagetext)
icon_state = "scrap_bloodied"
/obj/item/paper/fluff/kazhkz_crash_plans
name = "assault plans"
info = "\
To R'tiza of the Clan Han'san, my faithful battle-leader,<br>\
The assault on the Izweski stronghold is prepared. Every warrior sworn to the Kazhkz Kingdom is mobilized, and the last of our shuttles are prepared for launch.<br>\
Tomorrow, as the Burning Mother rises, our vessels will depart. I weep for our land and people as the Izweski conquerors approach, but it has become clear that the free nations of Moghes have waited too long to strike against the tyrants of Skalamar.<br>\
You will command a shuttle of your own - smaller than most of those we possess, but nimbler, wth seven of your best warriors. It has been renamed the Victory, in honor of what we hope to find this day. When we reach Skalamar, your men will be tasked with securing a landing position near the Izweski keep, where the Hegemon's personal shuttle is reportedly docked.<br>\
Once you have secured the position, the remainder of our forces will move in and seize the Izweski stronghold. This war will end in one stroke, as the Hegemony will either capitulate or crumble into infighting. It is a deadly mission I entrust you with, yet your clan's lord tells me that there is no officer of his blood who would be better-suited.<br>\
Strike fear into their hearts and glory into your own, Uezsla Han'san.<br>\
<i>By the hand and will of King Seryo Kazhkz.</i>"
/obj/item/paper/fluff/kazhkz_crash_plans/Initialize()
. = ..()
var/languagetext = "\[lang=p\]"
languagetext += "[info]\[/lang\]"
info = parsepencode(languagetext)
icon_state = "paper_words"
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,73 @@
/datum/map_template/ruin/exoplanet/miners_guild_outpost
name = "Miners' Guild Outpost"
id = "miners_guild_outpost"
description = "A Miners' Guild mining outpost on one of Uueoa-Esa's minor celestial bodies."
sectors = list(SECTOR_UUEOAESA)
prefix = "uueoaesa/"
suffixes = list("miners_guild_outpost.dmm")
template_flags = TEMPLATE_FLAG_NO_RUINS|TEMPLATE_FLAG_RUIN_STARTS_DISALLOWED
spawn_cost = 2
ban_ruins = list(/datum/map_template/ruin/exoplanet/heph_mining_station)
/area/miners_guild_outpost
name = "Miners' Guild Outpost"
icon_state = "bluenew"
requires_power = TRUE
dynamic_lighting = TRUE
no_light_control = FALSE
base_turf = /turf/simulated/floor/exoplanet/barren
area_flags = AREA_FLAG_RAD_SHIELDED|AREA_FLAG_INDESTRUCTIBLE_TURFS
ambience = AMBIENCE_EXPOUTPOST
/area/miners_guild_outpost/entry
name = "Miners' Guild Outpost - Entrance"
icon_state = "exit"
/area/miners_guild_outpost/eva
name = "Miners' Guild Outpost - EVA Storage"
icon_state = "eva"
/area/miners_guild_outpost/mining
name = "Miners' Guild Outpost - Processing"
icon_state = "mining"
/area/miners_guild_outpost/quarters
name = "Miners' Guild Outpost - Crew Quarters"
icon_state = "crew_quarters"
/area/miners_guild_outpost/mess
name = "Miners' Guild Outpost - Mess Hall"
icon_state = "cafeteria"
/area/miners_guild_outpost/engineering
name = "Miners' Guild Outpost - Engineering"
icon_state = "engineering"
/datum/ghostspawner/human/miners_guild_outpost
short_name = "miners_guild_outpost"
name = "Unathi Guild Miner"
desc = "Crew a Miners' Guild outpost on one of Uueoa-Esa's minor celestial bodies. Break rocks, earn your paycheck."
tags = list("External")
welcome_message = "You are a guildsman of the Miners' Guild, working in a small outpost on one of the myriad moons or asteroids of Uueoa-Esa. Mine the location, for honor and profit."
spawnpoints = list("miners_guild_outpost")
max_count = 3
outfit = /obj/outfit/admin/miners_guild
possible_species = list(SPECIES_UNATHI)
allow_appearance_change = APPEARANCE_PLASTICSURGERY
assigned_role = "Guild Miner"
special_role = "Guild Miner"
respawn_flag = null
uses_species_whitelist = FALSE
/datum/ghostspawner/human/miners_guild_outpost/foreman
short_name = "miners_guild_outpost_boss"
name = "Unathi Guild Foreman"
desc = "Command a Miners' Guild outpost on one of Uueoa-Esa's minor celestial bodies. Break rocks, manage your crew, earn your paycheck."
max_count = 1
uses_species_whitelist = TRUE
assigned_role = "Guild Foreman"
special_role = "Guild Foreman"
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,57 @@
/datum/map_template/ruin/exoplanet/pid_crashed_shuttle
name = "Crashed Hegemony Shuttle"
id = "pid-crashed_shuttle"
description = "A crashed Hegemony shuttle on the moon Pid, filled with k'ois spores."
sectors = list(SECTOR_UUEOAESA)
prefix = "uueoaesa/"
suffixes = list("pid_crashed_shuttle.dmm")
template_flags = TEMPLATE_FLAG_NO_RUINS|TEMPLATE_FLAG_RUIN_STARTS_DISALLOWED
/obj/effect/landmark/corpse/hegemony_shuttle
name = "Hegemony Shuttle Pilot"
corpseuniform = /obj/item/clothing/under/unathi/izweski
corpsesuit = /obj/item/clothing/suit/space/void/hegemony
corpsehelmet = /obj/item/clothing/head/helmet/space/void/hegemony
corpseshoes = /obj/item/clothing/shoes/magboots/hegemony
corpsebelt = /obj/item/gun/energy/pistol/hegemony
corpseid = FALSE
species = SPECIES_UNATHI
/obj/effect/landmark/corpse/hegemony_shuttle/do_extra_customization(var/mob/living/carbon/human/M)
M.change_hair_color(140, 134, 105)
var/cadaver_color = pick("green", "red", "black")
switch(cadaver_color)
if("green")
M.change_skin_color(27, 50, 27)
if("red")
M.change_skin_color(128, 62, 62)
if("black")
M.change_skin_color(28, 28, 28)
/obj/item/paper/fluff/pid_shuttle/entry1
name = "pilot's log #1"
info = "Those Izharshan scum blew out our thrusters. We've been leaking CO2 halfway across the system, and our distress beacon's not responding. I'm going to put us down on Pid. It's a long shot, but I know those Vaurca have been setting something up there. Maybe we can contact them. It'll be a rough landing, though. Spirits guide us."
/obj/item/paper/fluff/pid_shuttle/entry2
name = "pilot's log #2"
info = "Sk'akh be praised, we made it down in one piece. Atmosphere isn't breathable, but it's stable. No response on radio so far from the xsain. Kssighriss thinks that we have enough supplies and air to last three days, four if we stretch it. Hopefully help is coming soon."
/obj/item/paper/fluff/pid_shuttle/entry3
name = "pilot's log #3"
info = "Day three. We're out of food. We've been searching the surface on foot, and the inflatables have kept our oxygen in, but so far no sign of anyone, or any Hegemony ships in range. Hegemon's head, at this rate I'd take the pirates. Better dying on Izharshan blades than asphyxiating on this cursed rock."
/obj/item/paper/fluff/pid_shuttle/entry4
name = "pilot's log #4"
info = "Day four. Vharek and I tried to clear out some of the rocks around the shuttle, and one fell on my leg. Didn't breach my suit, but the bone's definitely broken. Hurts just to sit here. Kssighriss thinks he's picked up some sort of signal, about twelve miles to the west. Maybe it's the xsain, but it's further than I can go, and further than our air will last if the others have to help me."
/obj/item/paper/fluff/pid_shuttle/entry5
name = "pilot's log #5"
info = "The others won't go without me, and they won't make it with me. Our air is running out too fast. Kssighriss, Vharek, Ikhla. When you find this, take the remaining supplies and go after the signal. Tell my clan that I chose to go to my death with honor, for all of our sakes. Three Heads guide you all, my friends."
/obj/item/paper/fluff/pid_shuttle/Initialize()
. = ..()
var/languagetext = "\[lang=o\]"
languagetext += info
languagetext += "\[/lang\]"
info = parsepencode(languagetext)
icon_state = "paper_words"
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,73 @@
/datum/map_template/ruin/exoplanet/pid_kois_farm
name = "K'lax K'ois Farm"
id = "pid-kois_farm"
description = "A farm on the moon Pid, operated by K'laxan Vaurca."
sectors = list(SECTOR_UUEOAESA)
prefix = "uueoaesa/"
suffixes = list("pid_kois_farm.dmm")
template_flags = TEMPLATE_FLAG_NO_RUINS|TEMPLATE_FLAG_RUIN_STARTS_DISALLOWED
/area/pid_kois_farm
name = "K'lax Farm"
icon_state = "bluenew"
requires_power = FALSE
dynamic_lighting = TRUE
no_light_control = FALSE
base_turf = /turf/simulated/floor/exoplanet/barren
area_flags = AREA_FLAG_RAD_SHIELDED
ambience = AMBIENCE_EXPOUTPOST
/datum/ghostspawner/human/pid_kois_farmer
name = "K'laxan Farmer"
short_name = "pid_vaurca"
desc = "Farm k'ois on the moon Pid."
max_count = 3
spawnpoints = list("pid_vaurca")
welcome_message = "You are a Worker of the Hive K'lax, tasked with k'ois farming on Pid. Produce the deadly fungus to feed your Hive. \
IMPORTANT - Vaurca are a very alien species, and can be difficult to roleplay. It is recommended that you read the Aurorastation wiki page for the species, as well as the Vaurca Hives page for information on K'lax coloration."
uses_species_whitelist = FALSE
outfit = /obj/outfit/admin/pid_farmer
possible_species = list(SPECIES_VAURCA_WORKER)
extra_languages = list(LANGUAGE_VAURCA)
mob_name_pick_message = "Pick a Vaurca Worker name."
/datum/ghostspawner/human/pid_kois_farmer/bulwark
name = "K'laxan Bulwark Farmer"
short_name = "pid_bulwark"
max_count = 1
uses_species_whitelist = TRUE
possible_species = list(SPECIES_VAURCA_BULWARK)
mob_name_pick_message = "Pick a Vaurca Bulwark name."
welcome_message = "You are a Bulwark of the Hive K'lax, tasked with k'ois farming on Pid. Produce the deadly fungus to feed your Hive."
/datum/ghostspawner/human/pid_kois_farmer/warrior
name = "K'laxan Farm Security"
short_name = "pid_warrior"
max_count = 1
uses_species_whitelist = TRUE
possible_species = list(SPECIES_VAURCA_WARRIOR)
mob_name_pick_message = "Pick a Vaurca Warrior name."
welcome_message = "You are a Warrior of the Hive K'lax, tasked with protecting a k'ois farm on Pid. Ensure the safety of the Workers and Bulwarks at this location."
/obj/outfit/admin/pid_farmer
name = "Pid K'ois Farmer"
uniform = /obj/item/clothing/under/vaurca
shoes = /obj/item/clothing/shoes/vaurca
mask = /obj/item/clothing/mask/gas/vaurca/filter
l_ear = null
id = /obj/item/card/id
/obj/outfit/admin/pid_farmer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
if(H?.wear_mask && H.species.has_organ[BP_PHORON_RESERVE])
var/obj/item/organ/internal/vaurca/preserve/preserve = H.internal_organs_by_name[BP_PHORON_RESERVE]
H.internal = preserve
H.internals.icon_state = "internal1"
var/obj/item/organ/A = new /obj/item/organ/internal/augment/language/klax(H)
var/obj/item/organ/external/affected = H.get_organ(A.parent_organ)
A.replaced(H, affected)
H.update_body()
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,114 @@
/datum/map_template/ruin/exoplanet/sol_listening_post
name = "Solarian Listening Post"
id = "sol_listening_post"
description = "An abandoned Solarian listening post in the Uueoa-Esa system."
sectors = list(SECTOR_UUEOAESA)
prefix = "uueoaesa/"
suffixes = list("sol_listening_post.dmm")
template_flags = TEMPLATE_FLAG_NO_RUINS|TEMPLATE_FLAG_RUIN_STARTS_DISALLOWED
/area/sol_listening_post
name = "Solarian Listening Post"
icon_state = "bluenew"
requires_power = TRUE
dynamic_lighting = TRUE
no_light_control = FALSE
base_turf = /turf/simulated/floor/exoplanet/barren
area_flags = AREA_FLAG_RAD_SHIELDED|AREA_FLAG_INDESTRUCTIBLE_TURFS
ambience = AMBIENCE_EXPOUTPOST
/obj/effect/landmark/corpse/sol_marine_husk
name = "Decayed Solarian Marine"
corpseuniform = /obj/item/clothing/under/rank/sol/marine
corpsesuit = /obj/item/clothing/suit/space/void/sol
corpsehelmet = /obj/item/clothing/head/helmet/space/void/sol
corpseshoes = /obj/item/clothing/shoes/magboots
corpseglasses = /obj/item/clothing/glasses/safety/goggles/tactical
corpsebelt = /obj/item/gun/projectile/pistol/sol
corpseid = FALSE
species = SPECIES_HUMAN
/obj/effect/landmark/corpse/sol_marine_husk/do_extra_customization(mob/living/carbon/human/M)
M.ChangeToSkeleton()
M.adjustBruteLoss(rand(200,400))
M.dir = pick(GLOB.cardinal)
/obj/effect/landmark/corpse/sol_officer_husk
name = "Decayed Solarian Officer"
corpseuniform = /obj/item/clothing/under/rank/sol/dress/subofficer
corpseshoes = /obj/item/clothing/shoes/jackboots
corpsehelmet = /obj/item/clothing/head/sol/dress
corpseid = FALSE
/obj/effect/landmark/corpse/sol_officer_husk/do_extra_customization(mob/living/carbon/human/M)
M.ChangeToSkeleton()
M.adjustBruteLoss(rand(200,400))
M.dir = pick(GLOB.cardinal)
/obj/effect/landmark/corpse/unathi_pirate
name = "Unathi Pirate"
corpseuniform = /obj/item/clothing/under/unathi/izharshan
corpsesuit = /obj/item/clothing/suit/space/void/unathi_pirate
corpseshoes = /obj/item/clothing/shoes/magboots
corpsehelmet = /obj/item/clothing/head/helmet/space/void/unathi_pirate
corpseid = FALSE
/obj/effect/landmark/corpse/unathi_pirate/do_extra_customization(mob/living/carbon/human/M)
M.ChangeToSkeleton()
M.adjustBruteLoss(rand(200,400))
M.dir = pick(GLOB.cardinal)
if(prob(10))
M.equip_to_slot_or_del(new /obj/item/melee/energy/sword/pirate(M), slot_belt)
/obj/item/paper/fluff/sol_uueoa
/obj/item/paper/fluff/sol_uueoa/entry1
name = "SAMS Sentinel Entry #1"
info = "Lt. Lillian Crenshaw, personal log. July 12th, 2445. Fuck me. Who did I piss off to get this posting? I mean, when they brought me up in front of a tribunal I expected the Tenth Middle Ring or some other shitass assignment, but this?\
A fucking miserable station on an equally miserable rock, watching some fucking lizards throwing nukes at each other and listening for... hell if I know. Making sure the Skrell or NT aren't up to something, \
or that no pirates are trying to strike it rich out here. Six of us and a whole lot of fancy-ass equipment we're meant to keep running."
/obj/item/paper/fluff/sol_uueoa/entry2
name = "SAMS Sentinel Entry #2"
info = "Lt. Lillian Crenshaw, personal log. June 18th, 2446. It has been almost one fucking year. Do you know what these state of the art listening devices of ours have picked up? Jack and shit. The other day Cpl. Stevens managed to get one of his 'local friends'\
to bring in some 'essential supplies'. Seems that pretty much all there is to do around here is drink, look at the consoles, and watch whatever dogshit movie someone has downloaded. Good news is that we can hear pretty much everything going on in this backwater, \
bad news is that none of it's interesting. Lizards are still nuking each other, Skrell are doing some research on shit no one cares about over on Oueueue- the other fucking planet. The day the Alliance bails on this place is going to be the happiest day of my life."
/obj/item/paper/fluff/sol_uueoa/entry3
name = "SAMS Sentinel Entry #3"
info = "Lt. Lillian Crenshaw, personal log. August 9th, 2446. Some shit has actually been happening lately. Apparently some of the lizards have turned to piracy, and are causing problems in the nearby systems. So, we wind up cross-referencing energy emissions and ship IFFs, and \
passing those off to the Navy proper to deal with. Not exactly riveting shit and serving my country or whatever but hey, something other than watching Stevens and Huang arm-wrestle for the eighteenth time this week, or counting the mold spots on the outer hull. God bless the fucking Alliance, ooh-rah.\
Better get thanked for my goddamn service when I'm out of here."
/obj/item/paper/fluff/sol_uueoa/entry4
name = "SAMS Sentinel, Personal Letter"
info = "Dear Mom. I just arrived in Uueoa-Esa (don't ask me how long it took to spell that). There's not much to do around here, but the LT says that most people only stay on this posting for a few months, and then they usually get assigned to Ouerea.\
That's another planet here, and it's where most of the humans in the system are. The locals, who are these lizard people called Unathi, are having a war on their homeworld, but I hear that it's still safe on Ouerea. I really hope I get posted there, I want to meet \
an alien! There are Skrell there too, and the LT says that we're meant to make sure they're not up to anything, but it just looks like they're doing a lot of complicated research stuff from what we see. Looking forward to calling you and Dad next time I get leave. Love, Johnny."
/obj/item/paper/fluff/sol_uueoa/entry5
name = "SAMS Sentinel Unsent Fax"
info = "words"
/obj/item/paper/fluff/sol_uueoa/Initialize()
. = ..()
var/languagetext = "\[lang=1\]"
languagetext += info
languagetext += "\[/lang\]"
info = parsepencode(languagetext)
icon_state = "paper_words"
/obj/item/paper/fluff/sol_uueoa/entry5/Initialize()
. = ..()
var/T = parsepencode(
{"\[center\]\[flag_sol\]\[/center\]\[br\]
\[lang=1\]\[center\]\[b\]SAMS Sentinel Emergency Transmission\[/b\]\[/center\]
\[center\]\[b\]September 12th, 2446\[/b\]\[/center\]
\[b\]TO:\[/b\] SAMV Yincheng
\[b\]FROM:\[/b\] Lieutenant Lillian Crenshaw, SAMS Sentinel
\[b\]MESSAGE:\[/b] Emergency transmission to SAMV Yincheng. The listening post SAMS Sentinel, located at the attached
coordinates in the local asteroid belt, is under attack by pirates. Requesting backup immediately, they're almost through
the airlock. My men are armed and preparing to repel but they have us outnumbered, sen-.\[/lang]"}
)
info = T
icon_state = "paper_words"
File diff suppressed because it is too large Load Diff