diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index c66b16031c63..cfe94738eebf 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -159,6 +159,10 @@ There is no strict process when it comes to merging pull requests. Pull requests * After leaving reviews on an open pull request, maintainers should convert it to a draft. Once you have addressed all their comments to the best of your ability, feel free to mark the pull as `Ready for Review` again. +* We ask that you refrain from pinging staff about getting your pull request reviewed until after it is automatically marked stale pending review. If it ends up stale exempt, give it a week, but usually this situation will be explained such as when a relevant maintainer is currently unavailable. + +* Whenever sprites are added, please include screenshots or video(s) of them in game in the pull request description. + ### A note on balance impacting PRs Certain PRs, such as those which directly change number values (i.e. health, recoil, damage) or add large pieces of content to the game (i.e. a new gun, a new dropship weapon, or a new xeno structure) can have the potential to highly impact game balance or gameflow. @@ -174,7 +178,7 @@ If you are porting features/tools from other codebases, you must give them credi Regarding sprites & sounds, you must credit the artist and possibly the codebase. ## Things you can work on -The following list is non-exhaustive, but should give you a good idea of what the dev team would like to see in Pull Requests. +The following list is non-exhaustive, but should give you a good idea of what we would like to see in Pull Requests. ### Spriting @@ -199,7 +203,7 @@ The following list is non-exhaustive, but should give you a good idea of what th - Bug fixes and inconsistency fixes **A note on new maps.** -Entirely new maps are generally considered to be stepping stones into the Development team’s mapping dept. proper. However, making a new map is a months long process that requires dedication and constant communication and oversight from mappers on the Maintainer team. Mapping, like spriting and coding is an acquired skill, and it is highly likely your first map is going to suck. Maps are fluid entities that are never absolutely complete, don’t wed yourself to your initial layout, always be prepared to remap half the project when going in. +Entirely new maps are generally considered to be stepping stones into the maintainers’ mapping dept. proper. However, making a new map is a months long process that requires dedication and constant communication and oversight from mappers on the Maintainer team. Mapping, like spriting and coding is an acquired skill, and it is highly likely your first map is going to suck. Maps are fluid entities that are never absolutely complete, don’t wed yourself to your initial layout, always be prepared to remap half the project when going in. ### Coding @@ -216,7 +220,7 @@ Entirely new maps are generally considered to be stepping stones into the Develo - New TGUI ## What we don't want -The following list is non-exhaustive, but should give you a good idea of what the dev team don't want to see in Pull Requests. +The following list is non-exhaustive, but should give you a good idea of what we don't want to see in Pull Requests. ### Spriting - Resprites of recently updated content, such as uniforms, guns, marine armor @@ -236,7 +240,10 @@ The following list is non-exhaustive, but should give you a good idea of what th - Player-facing HTML UIs - Prior denied content/PRs (without approval) -Remember that the following lists are not exhaustive. And you can freely contribute an PR with content that can be shuffled into the “What we don’t want” category, and still get it merged. It is just unlikely without prior talk/approval from a maintainer. +### Frozen +- See pinned [issues](https://github.com/cmss13-devs/cmss13/issues) for anything that requires explicit permission. + +Remember that the list is not exhaustive. And you can freely contribute an PR with content that can be shuffled into the “What we don’t want” category, and still get it merged. It is just unlikely without prior talk/approval from a maintainer. ## Banned content Do not add any of the following in a Pull Request or risk getting the PR closed: diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 3137088d1c90..29895088200c 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -48,6 +48,7 @@ GLOBAL_LIST_INIT(note_categories, list("Admin", "Merit", "Whitelist")) #define OBSERVER_JMP(observer, atom) atom ? "(JMP)" : "" #define ARES_MARK(user) "(MARK)" #define ARES_REPLY(user, ref) "(RPLY)" +#define ADMIN_VIEW_BUG_REPORT(datum) "VIEW REPORT" /atom/proc/Admin_Coordinates_Readable(area_name, admin_jump_ref) var/turf/T = get_turf(src) diff --git a/code/__DEFINES/defenses.dm b/code/__DEFINES/defenses.dm index db615c2a0c78..a45802bc3f9e 100644 --- a/code/__DEFINES/defenses.dm +++ b/code/__DEFINES/defenses.dm @@ -22,6 +22,12 @@ #define DEFENSE_BELL_TOWER 4 #define DEFENSE_TESLA_COIL 5 +// Defines for /obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone +#define TURRET_BATTERY_STATE_OK 0 +#define TURRET_BATTERY_STATE_LOW 1 +#define TURRET_BATTERY_STATE_CRITICAL 2 +#define TURRET_BATTERY_STATE_DEAD 3 + // What range the generator has to be in or defenses has to be in. #define GEN_SEARCH_RANGE 5 #define GEN_PLASTEEL_COST 10 diff --git a/code/__DEFINES/job.dm b/code/__DEFINES/job.dm index 5b295e68069f..bedc8234d9c9 100644 --- a/code/__DEFINES/job.dm +++ b/code/__DEFINES/job.dm @@ -77,13 +77,13 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) #define JOB_AUXILIARY_OFFICER "Auxiliary Support Officer" #define JOB_CAS_PILOT "Gunship Pilot" #define JOB_DROPSHIP_PILOT "Dropship Pilot" +#define JOB_TANK_CREW "Tank Crew" #define JOB_DROPSHIP_CREW_CHIEF "Dropship Crew Chief" -#define JOB_CREWMAN "Vehicle Crewman" #define JOB_INTEL "Intelligence Officer" #define JOB_DROPSHIP_ROLES /datum/timelock/dropship #define JOB_DROPSHIP_ROLES_LIST list(JOB_DROPSHIP_CREW_CHIEF, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT) #define JOB_AUXILIARY_ROLES /datum/timelock/auxiliary -#define JOB_AUXILIARY_ROLES_LIST list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL) +#define JOB_AUXILIARY_ROLES_LIST list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_INTEL, JOB_TANK_CREW) #define JOB_POLICE "Military Police" #define JOB_WARDEN "Military Warden" diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 3da1aa8d24c0..bea1d7975688 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -25,6 +25,7 @@ #define SMOKE_RANK_MED 3 #define SMOKE_RANK_HIGH 4 #define SMOKE_RANK_BOILER 5 +#define SMOKE_RANK_MAX 6 // What kind of function to use for Explosions falling off. @@ -162,6 +163,7 @@ #define MATRIX_NVG 1 #define MATRIX_WIDE 2 +#define RESEARCH_UPGRADE_NULL null #define RESEARCH_UPGRADE_EXCLUDE_BUY -2 #define RESEARCH_UPGRADE_CATEGORY -1 //lord forgive me #define RESEARCH_UPGRADE_TIER_1 1 diff --git a/code/__DEFINES/mob_hud.dm b/code/__DEFINES/mob_hud.dm index 97fbc64a9da4..7536b7576d8d 100644 --- a/code/__DEFINES/mob_hud.dm +++ b/code/__DEFINES/mob_hud.dm @@ -13,6 +13,7 @@ #define XENO_HOSTILE_SLOW "13" // xeno-inflicted slow. used by a bunch of MOBA xenos stuff #define XENO_HOSTILE_TAG "14" // dancer prae 'tag' #define XENO_HOSTILE_FREEZE "15" // Any xeno-inflifcted root +#define XENO_EXECUTE "28" // Execute thershold, vampire #define HEALTH_HUD_XENO "16" // health HUD for xenos #define PLASMA_HUD "17" // indicates the plasma level of xenos. @@ -45,6 +46,7 @@ #define MOB_HUD_FACTION_PMC 15 #define MOB_HUD_HUNTER 16 #define MOB_HUD_HUNTER_CLAN 17 +#define MOB_HUD_EXECUTE 18 //for SL/FTL/LZ targeting on locator huds #define TRACKER_SL "track_sl" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index dbd8dbe7ce41..77f2393e6542 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -380,5 +380,6 @@ GLOBAL_LIST_INIT(default_xeno_onmob_icons, list( #define MOBILITY_LIEDOWN (1<<8) #define MOBILITY_FLAGS_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND) +#define MOBILITY_FLAGS_LYING_CAPABLE_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_LIEDOWN) #define MOBILITY_FLAGS_CARBON_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN) #define MOBILITY_FLAGS_REST_CAPABLE_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN) diff --git a/code/__DEFINES/mode.dm b/code/__DEFINES/mode.dm index ca35fadd396b..4c3a658ff421 100644 --- a/code/__DEFINES/mode.dm +++ b/code/__DEFINES/mode.dm @@ -120,12 +120,12 @@ //================================================= //Role defines, specifically lists of roles for job bans, crew manifests and the like. -GLOBAL_LIST_INIT(ROLES_COMMAND, list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_POLICE, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_REQUISITION, JOB_CHIEF_ENGINEER, JOB_CMO, JOB_CHIEF_POLICE, JOB_SEA, JOB_SYNTH, JOB_WARDEN)) +GLOBAL_LIST_INIT(ROLES_COMMAND, list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_TANK_CREW, JOB_DROPSHIP_CREW_CHIEF, JOB_POLICE, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_REQUISITION, JOB_CHIEF_ENGINEER, JOB_CMO, JOB_CHIEF_POLICE, JOB_SEA, JOB_SYNTH, JOB_WARDEN)) //Marine roles -#define ROLES_OFFICERS list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_SYNTH, JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE) +#define ROLES_OFFICERS list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_TANK_CREW, JOB_DROPSHIP_CREW_CHIEF, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_SYNTH, JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE) GLOBAL_LIST_INIT(ROLES_CIC, list(JOB_CO, JOB_XO, JOB_SO, JOB_WO_CO, JOB_WO_XO)) -GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT)) +GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_TANK_CREW, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT)) GLOBAL_LIST_INIT(ROLES_MISC, list(JOB_SYNTH, JOB_WORKING_JOE, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_MESS_SERGEANT, JOB_WO_CORPORATE_LIAISON, JOB_WO_SYNTH)) GLOBAL_LIST_INIT(ROLES_POLICE, list(JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE)) GLOBAL_LIST_INIT(ROLES_ENGINEERING, list(JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH)) @@ -153,7 +153,7 @@ GLOBAL_LIST_INIT(ROLES_UNASSIGNED, list(JOB_SQUAD_MARINE)) JOB_SQUAD_LEADER, JOB_SQUAD_TEAM_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_MARINE #define BLURB_USCM_FLIGHT JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF #define BLURB_USCM_MP JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE -#define BLURB_USCM_ENGI JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH, JOB_WO_PILOT +#define BLURB_USCM_ENGI JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH, JOB_TANK_CREW, JOB_WO_PILOT #define BLURB_USCM_MEDICAL JOB_CMO, JOB_RESEARCHER, JOB_DOCTOR, JOB_NURSE, JOB_WO_CMO, JOB_WO_RESEARCHER, JOB_WO_DOCTOR #define BLURB_USCM_REQ JOB_CHIEF_REQUISITION, JOB_CARGO_TECH, JOB_WO_CHIEF_REQUISITION, JOB_WO_REQUISITION #define BLURB_USCM_WY JOB_CORPORATE_LIAISON diff --git a/code/__HELPERS/job.dm b/code/__HELPERS/job.dm index ec36a485333c..51cc496feeae 100644 --- a/code/__HELPERS/job.dm +++ b/code/__HELPERS/job.dm @@ -34,6 +34,7 @@ JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, + JOB_TANK_CREW, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_ENGINEER, diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 068d85a71ba5..5b9154eac655 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1503,15 +1503,18 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) /// Macro for cases where an UNTIL() may go on forever (such as for an http request) #define UNTIL_OR_TIMEOUT(X, __time) \ - do {\ - __time = max(__time, 0);\ - var/__start_time = world.time;\ - while(!(X)) {;\ - stoplag();\ - if(__start_time + __time <= world.time) {;\ - CRASH("UNTIL_OR_TIMEOUT hit timeout limit of [__time]");\ - };\ - };\ + do { \ + if(__time <= 0) {; \ + CRASH("UNTIL_OR_TIMEOUT given invalid time"); \ + } \ + var/__start_time = world.time; \ + do { \ + if(__start_time + __time <= world.time) {; \ + CRASH("UNTIL_OR_TIMEOUT hit timeout limit of [__time]"); \ + } else { \ + stoplag(); \ + } \ + } while(!(X)) \ } while(FALSE) //Repopulates sortedAreas list diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm index 2bd24af5a0ff..e663bc287946 100644 --- a/code/_globalvars/global_lists.dm +++ b/code/_globalvars/global_lists.dm @@ -9,6 +9,9 @@ GLOBAL_LIST_EMPTY(CLFFaxes) GLOBAL_LIST_EMPTY(GeneralFaxes) //Inter-machine faxes GLOBAL_LIST_EMPTY(fax_contents) //List of fax contents to maintain it even if source paper is deleted +// for all of our various bugs and runtimes +GLOBAL_LIST_EMPTY(bug_reports) + //datum containing a reference to the flattend map png url, the actual png is stored in the user's cache. GLOBAL_LIST_EMPTY(uscm_flat_tacmap_data) GLOBAL_LIST_EMPTY(xeno_flat_tacmap_data) @@ -311,6 +314,9 @@ GLOBAL_LIST_INIT(hj_emotes, setup_hazard_joe_emotes()) rkey++ var/datum/species/S = new T S.race_key = rkey //Used in mob icon caching. + var/datum/species/existing = all_species[S.name] + if(existing) + stack_trace("[S.name] from [T] overlaps with [existing.type]! It must have a unique name for lookup!") all_species[S.name] = S return all_species @@ -353,6 +359,9 @@ GLOBAL_LIST_INIT(hj_emotes, setup_hazard_joe_emotes()) if (!initial(EP.flags)) continue EP = new T + var/datum/equipment_preset/existing = gear_path_presets_list[EP.name] + if(existing) + stack_trace("[EP.name] from [T] overlaps with [existing.type]! It must have a unique name for lookup!") gear_path_presets_list[EP.name] = EP return sortAssoc(gear_path_presets_list) @@ -464,7 +473,11 @@ GLOBAL_LIST_INIT(hj_emotes, setup_hazard_joe_emotes()) /proc/setup_yautja_capes() var/list/cape_list = list() for(var/obj/item/clothing/yautja_cape/cape_type as anything in typesof(/obj/item/clothing/yautja_cape)) - cape_list[initial(cape_type.name)] = cape_type + var/cape_name = initial(cape_type.name) + var/obj/item/clothing/yautja_cape/existing = cape_list[cape_name] + if(existing) + stack_trace("[cape_name] from [cape_type] overlaps with [existing.type]! It must have a unique name for lookup!") + cape_list[cape_name] = cape_type return cape_list diff --git a/code/_onclick/xeno.dm b/code/_onclick/xeno.dm index 453539ff1c3f..3bb69fe05419 100644 --- a/code/_onclick/xeno.dm +++ b/code/_onclick/xeno.dm @@ -13,6 +13,7 @@ if(isturf(target) && tile_attack) //Attacks on turfs must be done indirectly through directional attacks or clicking own sprite. var/turf/T = target + var/mob/living/non_xeno_target for(var/mob/living/L in T) if (!iscarbon(L)) if (!alt) @@ -21,13 +22,19 @@ if (!L.is_xeno_grabbable() || L == src) //Xenos never attack themselves. continue + var/isxeno = isxeno(L) + if(!isxeno) + non_xeno_target = L if (L.body_position == LYING_DOWN) alt = L continue + else if (!isxeno) + break target = L - break if (target == T && alt) target = alt + if(non_xeno_target) + target = non_xeno_target if (T && ignores_resin) // Will not target resin walls and doors if this is set to true. This is normally only set to true through a directional attack. if(istype(T, /obj/structure/mineral_door/resin)) var/obj/structure/mineral_door/resin/attacked_door = T @@ -54,6 +61,9 @@ var/turf/target_turf = target for(var/obj/flamer_fire/fire in target_turf) firepatted = TRUE + if(!(caste.fire_immunity & FIRE_IMMUNITY_NO_DAMAGE) || fire.tied_reagent?.fire_penetrating) + var/firedamage = max(fire.burnlevel - check_fire_intensity_resistance(), 0) * 0.5 + apply_damage(firedamage, BURN, fire) if((fire.firelevel > fire_level_to_extinguish) && (!fire.fire_variant)) //If fire_variant = 0, default fire extinguish behavior. fire.firelevel -= fire_level_to_extinguish fire.update_flame() diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 1cf93e998a4e..627859369231 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -664,3 +664,11 @@ This maintains a list of ip addresses that are able to bypass topic filtering. /datum/config_entry/string/client_error_message default = "Your version of BYOND is too old, may have issues, and is blocked from accessing this server." + +// GitHub API, used for anonymous bug report handling. +/datum/config_entry/string/github_app_api + protection = CONFIG_ENTRY_LOCKED | CONFIG_ENTRY_HIDDEN + +/datum/config_entry/string/repo_name + +/datum/config_entry/string/org diff --git a/code/datums/bug_report.dm b/code/datums/bug_report.dm new file mode 100644 index 000000000000..fd82d4950b91 --- /dev/null +++ b/code/datums/bug_report.dm @@ -0,0 +1,202 @@ +// Datum for handling bug reports +#define STATUS_SUCCESS 201 + +/datum/tgui_bug_report_form + /// contains all the body text for the bug report. + var/list/bug_report_data = null + + /// client of the bug report author, needed to create the ticket + var/client/initial_user = null + // ckey of the author + var/initial_key = null // just incase they leave after creating the bug report + + /// client of the admin who is accessing the report, we don't want multiple admins unknowingly making changes at the same time. + var/client/admin_user = null + + /// value to determine if the bug report is submitted and awaiting admin approval, used for state purposes in tgui. + var/awaiting_admin_approval = FALSE + + // for garbage collection purposes. + var/selected_confirm = FALSE + +/datum/tgui_bug_report_form/New(mob/user) + initial_user = user.client + initial_key = user.client.key + +/datum/tgui_bug_report_form/proc/external_link_prompt(client/user) + tgui_alert(user, "Unable to create a bug report at this time, please create the issue directly through our GitHub repository instead") + var/url = CONFIG_GET(string/githuburl) + if(!url) + to_chat(user, SPAN_WARNING("The configuration is not properly set, unable to open external link")) + return + + if(tgui_alert(user, "This will open the GitHub in your browser. Are you sure?", "Confirm", list("Yes", "No")) == "Yes") + user << link(url) + +/datum/tgui_bug_report_form/ui_state() + return GLOB.always_state + +/datum/tgui_bug_report_form/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "BugReportForm") + ui.open() + +/datum/tgui_bug_report_form/ui_close(mob/user) + . = ..() + if(!admin_user && user.client == initial_user && !selected_confirm) // user closes the ui without selecting confirm or approve. + qdel(src) + return + admin_user = null + selected_confirm = FALSE + +/datum/tgui_bug_report_form/Destroy() + GLOB.bug_reports -= src + return ..() + +/datum/tgui_bug_report_form/proc/sanitize_payload(list/params) + for(var/param in params) + params[param] = sanitize(params[param], list("\t"=" ","�"=" ")) + + return params + +// whether or not an admin can access the record at a given time. +/datum/tgui_bug_report_form/proc/assign_admin(mob/user) + if(!initial_key) + to_chat(user, SPAN_WARNING("Unable to identify the author of the bug report.")) + return FALSE + if(admin_user) + if(user.client == admin_user) + to_chat(user, SPAN_WARNING("This bug report review is already opened and accessed by you.")) + else + to_chat(user, SPAN_WARNING("Another administrator is currently accessing this report, please wait for them to finish before making any changes.")) + return FALSE + if(!CLIENT_IS_STAFF(user.client)) + message_admins("[user.ckey] has attempted to review [initial_key]'s bug report titled [bug_report_data["title"]] without proper authorization at [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")].") + return FALSE + + admin_user = user.client + return TRUE + +// returns the body payload +/datum/tgui_bug_report_form/proc/create_form() + var/datum/getrev/revdata = GLOB.revdata + var/test_merges + if(length(revdata.testmerge)) + test_merges = revdata.GetTestMergeInfo(header = FALSE) + + var/desc = {" +## Testmerges +[test_merges ? test_merges : "N/A"] + +## Round ID +[GLOB.round_id ? GLOB.round_id : "N/A"] + +## Description of the bug +[bug_report_data["description"]] + +## What's the difference with what should have happened? +[bug_report_data["expected_behavior"]] + +## How do we reproduce this bug? +[bug_report_data["steps"]] + +## Attached logs +``` +[bug_report_data["log"] ? bug_report_data["log"] : "N/A"] +``` + +## Additional details +- Author: [initial_key] +- Admin: [admin_user] +- Note: [bug_report_data["admin_note"] ? bug_report_data["admin_note"] : "None"] + "} + + return desc + +// the real deal, we are sending the request through the api. +/datum/tgui_bug_report_form/proc/send_request(payload_body, client/user) + // for any future changes see https://docs.github.com/en/rest/issues/issues + var/repo_name = CONFIG_GET(string/repo_name) + var/org = CONFIG_GET(string/org) + var/token = CONFIG_GET(string/github_app_api) + + if(!token || !org || !repo_name) + tgui_alert(user, "The configuration is not set for the external API.", "Issue not reported!") + external_link_prompt(user) + qdel(src) + return + + var/url = "https://api.github.com/repos/[org]/[repo_name]/issues" + var/list/headers = list() + headers["Authorization"] = "Bearer [token]" + headers["Content-Type"] = "text/markdown; charset=utf-8" + headers["Accept"] = "application/vnd.github+json" + + var/datum/http_request/request = new() + var/list/payload = list( + "title" = bug_report_data["title"], + "body" = payload_body, + "labels" = list("Bug") + ) + + request.prepare(RUSTG_HTTP_METHOD_POST, url, json_encode(payload), headers) + request.begin_async() + UNTIL_OR_TIMEOUT(request.is_complete(), 5 SECONDS) + + var/datum/http_response/response = request.into_response() + if(response.errored || response.status_code != STATUS_SUCCESS) + message_admins(SPAN_ADMINNOTICE("The GitHub API has failed to create the bug report titled [bug_report_data["title"]] approved by [admin_user], status code:[response.status_code]. Please paste this error code into the development channel on discord.")) + external_link_prompt(user) + else + message_admins("[user.ckey] has approved a bug report from [initial_key] titled [bug_report_data["title"]] at [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")].") + to_chat(initial_user, SPAN_WARNING("An admin has successfully submitted your report and it should now be visible on GitHub. Thanks again!")) + qdel(src)// approved and submitted, we no longer need the datum. + +// proc that creates a ticket for an admin to approve or deny a bug report request +/datum/tgui_bug_report_form/proc/bug_report_request() + to_chat(initial_user, SPAN_WARNING("Your bug report has been submitted, thank you!")) + GLOB.bug_reports += src + + var/general_message = "[initial_key] has created a bug report, you may find this report directly in the ticket panel. Feel free modify the issue to your liking before submitting it to GitHub." + GLOB.admin_help_ui_handler.perform_adminhelp(initial_user, general_message, urgent = FALSE) + + var/href_message = ADMIN_VIEW_BUG_REPORT(src) + initial_user.current_ticket.AddInteraction(href_message) + +/datum/tgui_bug_report_form/ui_act(action, list/params, datum/tgui/ui) + . = ..() + if (.) + return + var/mob/user = ui.user + switch(action) + if("confirm") + if(selected_confirm) // prevent someone from spamming the approve button + to_chat(user, SPAN_WARNING("you have already confirmed the submission, please wait a moment for the API to process your submission.")) + return + bug_report_data = sanitize_payload(params) + selected_confirm = TRUE + // bug report request is now waiting for admin approval + if(!awaiting_admin_approval) + bug_report_request() + awaiting_admin_approval = TRUE + else // otherwise it's been approved + var/payload_body = create_form() + send_request(payload_body, user.client) + if("cancel") + if(awaiting_admin_approval) // admin has chosen to reject the bug report + reject(user.client) + qdel(src) + ui.close() + . = TRUE + +/datum/tgui_bug_report_form/ui_data(mob/user) + . = list() + .["report_details"] = bug_report_data // only filled out once the user as submitted the form + .["awaiting_admin_approval"] = awaiting_admin_approval + +/datum/tgui_bug_report_form/proc/reject(client/user) + message_admins("[user.ckey] has rejected a bug report from [initial_key] titled [bug_report_data["title"]] at [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")].") + to_chat(initial_user, SPAN_WARNING("An admin has rejected your bug report, this can happen for several reasons. They will most likely get back to you shortly regarding your issue.")) + +#undef STATUS_SUCCESS diff --git a/code/datums/factions/uscm.dm b/code/datums/factions/uscm.dm index 927b6f937b8a..f7c49321f305 100644 --- a/code/datums/factions/uscm.dm +++ b/code/datums/factions/uscm.dm @@ -24,9 +24,9 @@ if(JOB_GENERAL) marine_rk = "general" if(JOB_CAS_PILOT) marine_rk = "gp" if(JOB_DROPSHIP_PILOT) marine_rk = "dp" + if(JOB_TANK_CREW) marine_rk = "tc" if(JOB_INTEL) marine_rk = "io" if(JOB_DROPSHIP_CREW_CHIEF) marine_rk = "dcc" - if(JOB_CREWMAN) marine_rk = "tc" if(JOB_MARINE_RAIDER) marine_rk = "soc" if(JOB_MARINE_RAIDER_SL) marine_rk = "soctl" if(JOB_MARINE_RAIDER_CMD) marine_rk = "soccmd" @@ -100,6 +100,8 @@ border_rk = "command" if(JOB_POLICE) marine_rk = "mp" + if(JOB_TANK_CREW) + marine_rk = "tc" if(JOB_WARDEN) marine_rk = "warden" border_rk = "command" diff --git a/code/datums/medal_awards.dm b/code/datums/medal_awards.dm index fcaef38c884c..f2dfc6a5c1d5 100644 --- a/code/datums/medal_awards.dm +++ b/code/datums/medal_awards.dm @@ -256,7 +256,7 @@ GLOBAL_LIST_INIT(human_medals, list(MARINE_CONDUCT_MEDAL, MARINE_BRONZE_HEART_ME return TRUE /proc/open_medal_panel(mob/living/carbon/human/user, obj/printer) - var/obj/item/card/id/card = user.wear_id + var/obj/item/card/id/card = user?.get_idcard() if(!card) to_chat(user, SPAN_WARNING("You must have an authenticated ID Card to award medals.")) return @@ -580,8 +580,8 @@ GLOBAL_DATUM_INIT(ic_medals_panel, /datum/ic_medal_panel, new) . = ..() if(.) return - var/mob/living/carbon/human/user = usr - var/obj/item/card/id/card = user.wear_id + var/mob/living/carbon/human/user = ui.user + var/obj/item/card/id/card = user?.get_idcard() if(!card) to_chat(user, SPAN_WARNING("You must have an authenticated ID Card to award medals.")) return diff --git a/code/datums/mob_hud.dm b/code/datums/mob_hud.dm index 975bd5d15cb9..603f9a05d702 100644 --- a/code/datums/mob_hud.dm +++ b/code/datums/mob_hud.dm @@ -18,7 +18,8 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( MOB_HUD_FACTION_CLF = new /datum/mob_hud/faction/clf(), MOB_HUD_FACTION_PMC = new /datum/mob_hud/faction/pmc(), MOB_HUD_HUNTER = new /datum/mob_hud/hunter_hud(), - MOB_HUD_HUNTER_CLAN = new /datum/mob_hud/hunter_clan() + MOB_HUD_HUNTER_CLAN = new /datum/mob_hud/hunter_clan(), + MOB_HUD_EXECUTE = new /datum/mob_hud/execute_hud(), )) /datum/mob_hud @@ -167,6 +168,9 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( /datum/mob_hud/xeno_hostile hud_icons = list(XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE) +/datum/mob_hud/execute_hud + hud_icons = list(XENO_EXECUTE) + /datum/mob_hud/hunter_clan hud_icons = list(HUNTER_CLAN) @@ -259,6 +263,11 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( var/datum/mob_hud/hostile_hud = GLOB.huds[MOB_HUD_XENO_HOSTILE] hostile_hud.remove_hud_from(src, src) + if (execute_hud) + execute_hud = FALSE + var/datum/mob_hud/execute = GLOB.huds[MOB_HUD_EXECUTE] + execute.remove_hud_from(src, src) + /mob/proc/refresh_huds(mob/source_mob) @@ -772,6 +781,16 @@ GLOBAL_DATUM(hud_icon_hudfocus, /image) var/image/holder = hud_list[HOLOCARD_HUD] holder.icon_state = holo_card_color ? "holo_card_[holo_card_color]" : "hudblank" +// Vampire Execute HUD +/mob/living/carbon/human/proc/update_execute_hud() + var/image/execute_holder = hud_list[XENO_EXECUTE] + + execute_holder.icon_state = "hudblank" + execute_holder.overlays.Cut() + + if(stat == UNCONSCIOUS || (stat != DEAD && HAS_TRAIT(src, TRAIT_KNOCKEDOUT))) + execute_holder.overlays += image('icons/mob/hud/hud.dmi', src, "prae_tag") + // Xeno "hostile" HUD /mob/living/carbon/human/proc/update_xeno_hostile_hud() var/image/acid_holder = hud_list[XENO_HOSTILE_ACID] diff --git a/code/datums/research_upgrade_datum.dm b/code/datums/research_upgrade_datum.dm index 1620543f6604..8b19bafad1cd 100644 --- a/code/datums/research_upgrade_datum.dm +++ b/code/datums/research_upgrade_datum.dm @@ -100,6 +100,7 @@ behavior = RESEARCH_UPGRADE_TIER_1 upgrade_type = ITEM_ACCESSORY_UPGRADE clearance_req = 4 + /datum/research_upgrades/item/nanosplints name = "Reinforced Fiber Splints" desc = "A set of splints made from durable carbon fiber sheets reinforced with flexible titanium lattice, comes in a stack of five." @@ -111,6 +112,28 @@ behavior = RESEARCH_UPGRADE_TIER_5 //adjust this to change amount of nanosplints in a stack, cant be higher than five, go change max_amount in the nanosplint itself, then change it. upgrade_type = ITEM_ACCESSORY_UPGRADE +/datum/research_upgrades/item/flamer_tank + name = "Upgraded Incinerator Tank" + desc = "An upgraded incinerator tank, with larger capacity and able to handle stronger fuels." + value_upgrade = 300 + clearance_req = 1 + change_purchase = 100 + minimum_price = 100 + maximum_price = 1000 + item_reference = /obj/item/ammo_magazine/flamer_tank/custom/upgraded + behavior = RESEARCH_UPGRADE_NULL + upgrade_type = ITEM_ACCESSORY_UPGRADE + +/datum/research_upgrades/item/flamer_tank/smoke + name = "Upgraded Incinerator Smoke Tank" + desc = "An upgraded incinerator smoke tank with a larger capacity." + value_upgrade = 100 //not useful enough to be expensive + clearance_req = 1 + item_reference = /obj/item/ammo_magazine/flamer_tank/smoke/upgraded + change_purchase = 50 + minimum_price = 100 + maximum_price = 500 + /datum/research_upgrades/armor name = "Armor" behavior = RESEARCH_UPGRADE_CATEGORY diff --git a/code/defines/procs/announcement.dm b/code/defines/procs/announcement.dm index bad07104db22..250c81dfc3dc 100644 --- a/code/defines/procs/announcement.dm +++ b/code/defines/procs/announcement.dm @@ -44,7 +44,8 @@ continue // If they have iff AND a marine headset they will recieve announcements - if ((FACTION_MARINE in H.wear_id?.faction_group) && (istype(H.wear_l_ear, /obj/item/device/radio/headset/almayer) || istype(H.wear_r_ear, /obj/item/device/radio/headset/almayer))) + var/obj/item/card/id/card = H.get_idcard() + if ((FACTION_MARINE in card?.faction_group) && (istype(H.wear_l_ear, /obj/item/device/radio/headset/almayer) || istype(H.wear_r_ear, /obj/item/device/radio/headset/almayer))) continue if((H.faction != faction_to_display && !add_PMCs) || (H.faction != faction_to_display && add_PMCs && !(H.faction in FACTION_LIST_WY)) && !(faction_to_display in H.faction_group)) //faction checks diff --git a/code/game/area/BigRed.dm b/code/game/area/BigRed.dm index 8675655fe949..c5e96c78175a 100644 --- a/code/game/area/BigRed.dm +++ b/code/game/area/BigRed.dm @@ -515,27 +515,35 @@ is_resin_allowed = FALSE ceiling_muffle = FALSE base_muffle = MUFFLE_LOW + is_landing_zone = TRUE /area/bigredv2/outside/telecomm/lz2_cave name = "\improper Central Grounds Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/n_cave name = "\improper North Cave Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/warehouse name = "\improper Warehouse Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/security name = "\improper Security Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/store name = "\improper General Store Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/admin name = "\improper Administrative Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/telecomm/engi name = "\improper Engineering Communications Relay" + is_landing_zone = FALSE /area/bigredv2/outside/engineering diff --git a/code/game/area/Corsat.dm b/code/game/area/Corsat.dm index f93745c3055c..7d2a55fac97f 100644 --- a/code/game/area/Corsat.dm +++ b/code/game/area/Corsat.dm @@ -523,7 +523,6 @@ /area/corsat/omega/hangar name = "\improper Landing Bay Omega" icon_state = "omega_hangar" - is_landing_zone = TRUE /area/corsat/omega/hangar/office name = "\improper Omega Hangar Office" diff --git a/code/game/area/DesertDam.dm b/code/game/area/DesertDam.dm index 96e5eb1f62e5..9f53494b1bbf 100644 --- a/code/game/area/DesertDam.dm +++ b/code/game/area/DesertDam.dm @@ -216,6 +216,7 @@ /area/desert_dam/building/substation/northwest name = "Command Substation" icon_state = "northewestern_ss" + is_landing_zone = TRUE /area/desert_dam/building/substation/northeast name = "Command Substation" icon_state = "northeastern_ss" diff --git a/code/game/area/LV522_Chances_Claim.dm b/code/game/area/LV522_Chances_Claim.dm index ffd6a5897e4e..c3e5c96ad4d7 100644 --- a/code/game/area/LV522_Chances_Claim.dm +++ b/code/game/area/LV522_Chances_Claim.dm @@ -48,6 +48,11 @@ name = "Chance's Claim - Landing Zone One Tunnels" ceiling = CEILING_METAL +/area/lv522/landing_zone_1/tunnel/far + name = "Chance's Claim - Landing Zone One Tunnels" + ceiling = CEILING_METAL + is_landing_zone = FALSE + /area/shuttle/drop1/lv522 name = "Chance's Claim - Dropship Alamo Landing Zone" icon_state = "shuttle" diff --git a/code/game/area/Prison_Station_FOP.dm b/code/game/area/Prison_Station_FOP.dm index 0edc23556bf5..b1bfbc093c16 100644 --- a/code/game/area/Prison_Station_FOP.dm +++ b/code/game/area/Prison_Station_FOP.dm @@ -90,6 +90,7 @@ /area/prison/security/checkpoint/hangar name = "\improper Main Hangar Traffic Control" is_resin_allowed = FALSE + is_landing_zone = TRUE /area/prison/storage icon_state = "engine_storage" @@ -211,6 +212,7 @@ name = "\improper Hangar-Barracks Maintenance" icon_state = "maint_e_shuttle" is_resin_allowed = FALSE + is_landing_zone = TRUE /area/prison/canteen name = "\improper Canteen" @@ -457,6 +459,7 @@ /area/prison/monorail/east name = "\improper East Monorail Station" is_resin_allowed = FALSE + is_landing_zone = TRUE /area/prison/monorail/west name = "\improper West Monorail Station" @@ -467,10 +470,12 @@ /area/prison/hanger/main name = "\improper Main Hanger" icon_state = "hangar_alpha" + is_landing_zone = TRUE /area/prison/hanger/research name = "\improper Research Hanger" icon_state = "hangar_beta" + is_landing_zone = TRUE /area/prison/hangar_storage/main name = "\improper Main Hangar Storage" @@ -480,9 +485,11 @@ name = "\improper Research Hangar Storage" icon_state = "toxstorage" is_resin_allowed = FALSE + is_landing_zone = TRUE /area/prison/hangar_storage/research/shuttle name = "Corporate Shuttle" + is_landing_zone = FALSE /area/prison/telecomms name = "\improper Telecommunications" diff --git a/code/game/area/Sulaco.dm b/code/game/area/Sulaco.dm index ae197537143a..a3d02b78636c 100644 --- a/code/game/area/Sulaco.dm +++ b/code/game/area/Sulaco.dm @@ -14,6 +14,7 @@ flags_area = AREA_NOTUNNEL is_landing_zone = TRUE ceiling = CEILING_REINFORCED_METAL + base_lighting_alpha = 0 /area/shuttle/drop1/Enter(atom/movable/O, atom/oldloc) if(istype(O, /obj/structure/barricade)) @@ -24,6 +25,7 @@ name = "\improper Dropship Alamo" icon_state = "shuttlered" base_muffle = MUFFLE_HIGH + base_lighting_alpha = 255 /area/shuttle/drop1/LV624 name = "\improper Dropship Alamo" @@ -71,11 +73,13 @@ flags_area = AREA_NOTUNNEL is_landing_zone = TRUE ceiling = CEILING_REINFORCED_METAL + base_lighting_alpha = 0 /area/shuttle/drop2/sulaco name = "\improper Dropship Normandy" icon_state = "shuttle" base_muffle = MUFFLE_HIGH + base_lighting_alpha = 255 /area/shuttle/drop2/LV624 name = "\improper Dropship Normandy" diff --git a/code/game/area/kutjevo.dm b/code/game/area/kutjevo.dm index a5a12cd5b999..d0a4a30118b0 100644 --- a/code/game/area/kutjevo.dm +++ b/code/game/area/kutjevo.dm @@ -203,12 +203,14 @@ icon_state = "Colony_int" ceiling = CEILING_METAL is_resin_allowed = FALSE + is_landing_zone = TRUE /area/kutjevo/interior/complex/Northwest_Flight_Control name = "Kutjevo Complex - Northwest Flight Control Room" icon_state = "Colony_int" ceiling = CEILING_METAL is_resin_allowed = FALSE + is_landing_zone = TRUE /area/kutjevo/interior/complex/Northwest_Security_Checkpoint name = "Kutjevo Complex - Northwest Security Checkpoint" @@ -216,6 +218,7 @@ ceiling = CEILING_METAL is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_SEC + is_landing_zone = TRUE //Out buildings + foremans /area/kutjevo/interior/power diff --git a/code/game/area/prison.dm b/code/game/area/prison.dm index e22581658ee5..3ee209a6940b 100644 --- a/code/game/area/prison.dm +++ b/code/game/area/prison.dm @@ -57,6 +57,7 @@ name = "\improper control room" icon_state = "bridge" minimap_color = MINIMAP_AREA_COMMAND + is_landing_zone = TRUE /area/prison/hallway/central_ring name = "\improper central ring" diff --git a/code/game/area/prison_v3_fiorina.dm b/code/game/area/prison_v3_fiorina.dm index 9c60f8173ab8..c02ed0310816 100644 --- a/code/game/area/prison_v3_fiorina.dm +++ b/code/game/area/prison_v3_fiorina.dm @@ -183,6 +183,7 @@ /area/fiorina/station/telecomm/lz1_tram name = "Fiorina - LZ1 Aux Port Communications Relay" + is_landing_zone = TRUE /area/fiorina/station/telecomm/lz1_engineering name = "Fiorina - Engineering Primary Communications Relay" diff --git a/code/game/area/shiva.dm b/code/game/area/shiva.dm index 89d8074030ac..fc7424f8146b 100644 --- a/code/game/area/shiva.dm +++ b/code/game/area/shiva.dm @@ -239,6 +239,10 @@ name = "Shiva's Snowball - Blue Warehouse" icon_state = "hangars1" +/area/shiva/interior/warehouse/caves + name = "Shiva's Snowball - Blue Warehouse Ice Cave" + icon_state = "caves1" + /area/shiva/interior/valley_huts name = "Shiva's Snowball - Valley Bunker 1" icon_state = "hangars1" @@ -251,10 +255,6 @@ name = "Shiva's Snowball - Valley Disposals" icon_state = "hangars3" -/area/shiva/interior/warehouse/caves - name = "Shiva's Snowball - Blue Warehouse Ice Cave" - icon_state = "caves1" - /area/shiva/interior/garage name = "Shiva's Snowball - Cargo Tug Repair Station" icon_state = "hangars2" @@ -262,6 +262,7 @@ /area/shiva/interior/lz2_habs name = "Shiva's Snowball - Argentinian Research Headquarters" icon_state = "bar1" + is_landing_zone = TRUE /area/shiva/interior/aux_power name = "Shiva's Snowball - Auxiliary Generator Station" diff --git a/code/game/area/varadero.dm b/code/game/area/varadero.dm index 682f3ded1c66..aac37bdf942a 100644 --- a/code/game/area/varadero.dm +++ b/code/game/area/varadero.dm @@ -84,6 +84,7 @@ requires_power = FALSE is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_LZ + is_landing_zone = TRUE /area/varadero/exterior/lz1_console/two name = "New Varadero - Palm Airfield" @@ -98,12 +99,14 @@ icon_state = "lz1" is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_LZ + is_landing_zone = TRUE /area/varadero/exterior/lz2_near name = "New Varadero - Palm Airfield" icon_state = "lz2" is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_LZ + is_landing_zone = TRUE /area/varadero/exterior/pontoon_beach name = "New Varadero - Rockabilly Beach" @@ -111,6 +114,9 @@ is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_JUNGLE +/area/varadero/exterior/pontoon_beach/lz + is_landing_zone = TRUE + /area/varadero/exterior/eastbeach name = "New Varadero - East Beach" is_resin_allowed = FALSE @@ -157,6 +163,7 @@ is_resin_allowed = FALSE minimap_color = MINIMAP_AREA_JUNGLE sound_environment = SOUND_ENVIRONMENT_ROOM + is_landing_zone = TRUE /area/varadero/interior/cargo name = "New Varadero - Cargo" diff --git a/code/game/gamemodes/colonialmarines/colonialmarines.dm b/code/game/gamemodes/colonialmarines/colonialmarines.dm index ddb6e10ba319..796bf71c3a8e 100644 --- a/code/game/gamemodes/colonialmarines/colonialmarines.dm +++ b/code/game/gamemodes/colonialmarines/colonialmarines.dm @@ -1,5 +1,6 @@ #define HIJACK_EXPLOSION_COUNT 5 -#define MARINE_MAJOR_ROUND_END_DELAY 3 MINUTES +#define MARINE_MAJOR_ROUND_END_DELAY (3 MINUTES) +#define LZ_HAZARD_START (3 MINUTES) /datum/game_mode/colonialmarines name = "Distress Signal" @@ -16,6 +17,7 @@ var/next_research_allocation = 0 var/next_stat_check = 0 var/list/running_round_stats = list() + var/list/lz_smoke = list() //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// @@ -120,9 +122,122 @@ addtimer(CALLBACK(src, PROC_REF(ares_online)), 5 SECONDS) addtimer(CALLBACK(src, PROC_REF(map_announcement)), 20 SECONDS) + addtimer(CALLBACK(src, PROC_REF(start_lz_hazards)), LZ_HAZARD_START) return ..() +/datum/game_mode/colonialmarines/ds_first_landed(obj/docking_port/stationary/marine_dropship) + . = ..() + clear_lz_hazards() // This shouldn't normally do anything, but is here just in case + + // Assumption: Shuttle origin is its center + // Assumption: dwidth is atleast 2 and dheight is atleast 4 otherwise there will be overlap + var/list/options = list() + var/list/structures_to_break = list(/obj/structure/barricade, /obj/structure/surface/table, /obj/structure/bed) + var/bottom = marine_dropship.y - marine_dropship.dheight - 2 + var/top = marine_dropship.y + marine_dropship.dheight + 2 + var/left = marine_dropship.x - marine_dropship.dwidth - 2 + var/right = marine_dropship.x + marine_dropship.dwidth + 2 + var/z = marine_dropship.z + + // Bottom left + options += get_valid_sentry_turfs(left, bottom, z, width=5, height=2, structures_to_ignore=structures_to_break) + options += get_valid_sentry_turfs(left, bottom + 2, z, width=2, height=6, structures_to_ignore=structures_to_break) + spawn_lz_sentry(pick(options), structures_to_break) + + // Bottom right + options.Cut() + options += get_valid_sentry_turfs(right-4, bottom, z, width=5, height=2, structures_to_ignore=structures_to_break) + options += get_valid_sentry_turfs(right-1, bottom + 2, z, width=2, height=6, structures_to_ignore=structures_to_break) + spawn_lz_sentry(pick(options), structures_to_break) + + // Top left + options.Cut() + options += get_valid_sentry_turfs(left, top-1, z, width=5, height=2, structures_to_ignore=structures_to_break) + options += get_valid_sentry_turfs(left, top-7, z, width=2, height=6, structures_to_ignore=structures_to_break) + spawn_lz_sentry(pick(options), structures_to_break) + + // Top right + options.Cut() + options += get_valid_sentry_turfs(right-4, top-1, z, width=5, height=2, structures_to_ignore=structures_to_break) + options += get_valid_sentry_turfs(right-1, top-7, z, width=2, height=6, structures_to_ignore=structures_to_break) + spawn_lz_sentry(pick(options), structures_to_break) + +///Returns a list of non-dense turfs using the given block arguments ignoring the provided structure types +/datum/game_mode/colonialmarines/proc/get_valid_sentry_turfs(left, bottom, z, width, height, list/structures_to_ignore) + var/valid_turfs = list() + for(var/turf/turf as anything in block(left, bottom, z, left+width-1, bottom+height-1)) + if(turf.density) + continue + var/structure_blocking = FALSE + for(var/obj/structure/existing_structure in turf) + if(!existing_structure.density) + continue + if(!is_type_in_list(existing_structure, structures_to_ignore)) + structure_blocking = TRUE + break + if(structure_blocking) + continue + valid_turfs += turf + return valid_turfs + +///Spawns a droppod with a temporary defense sentry at the given turf +/datum/game_mode/colonialmarines/proc/spawn_lz_sentry(turf/target, list/structures_to_break) + var/obj/structure/droppod/equipment/sentry_holder/droppod = new(target, /obj/structure/machinery/sentry_holder/landing_zone) + droppod.special_structures_to_damage = structures_to_break + droppod.special_structure_damage = 500 + droppod.drop_time = 0 + droppod.launch(target) + +///Creates an OB warning at each LZ to warn of the miasma and then spawns the miasma +/datum/game_mode/colonialmarines/proc/start_lz_hazards() + if(SSobjectives.first_drop_complete) + return // Just for sanity + INVOKE_ASYNC(src, PROC_REF(warn_lz_hazard), locate(/obj/structure/machinery/computer/shuttle/dropship/flight/lz1)) + INVOKE_ASYNC(src, PROC_REF(warn_lz_hazard), locate(/obj/structure/machinery/computer/shuttle/dropship/flight/lz2)) + addtimer(CALLBACK(src, PROC_REF(spawn_lz_hazards)), OB_TRAVEL_TIMING + 1 SECONDS) + +///Creates an OB warning at each LZ to warn of the incoming miasma +/datum/game_mode/colonialmarines/proc/warn_lz_hazard(lz) + if(!lz) + return + var/turf/target = get_turf(lz) + if(!target) + return + var/obj/structure/ob_ammo/warhead/explosive/warhead = new + warhead.name = "\improper CN20-X miasma warhead" + warhead.clear_power = 0 + warhead.clear_falloff = 400 + warhead.standard_power = 0 + warhead.standard_falloff = 30 + warhead.clear_delay = 3 + warhead.double_explosion_delay = 6 + warhead.warhead_impact(target) // This is a blocking call + playsound(target, 'sound/effects/smoke.ogg', vol=50, vary=1, sound_range=75) + +///Spawns miasma smoke in landing zones +/datum/game_mode/colonialmarines/proc/spawn_lz_hazards() + var/datum/cause_data/new_cause_data = create_cause_data("CN20-X miasma") + for(var/area/area in GLOB.all_areas) + if(!area.is_landing_zone) + continue + if(!is_ground_level(area.z)) + continue + for(var/turf/turf in area) + if(turf.density) + if(!istype(turf, /turf/closed/wall)) + continue + var/turf/closed/wall/wall = turf + if(wall.hull) + continue + lz_smoke += new /obj/effect/particle_effect/smoke/miasma(turf, null, new_cause_data) + +///Clears miasma smoke in landing zones +/datum/game_mode/colonialmarines/proc/clear_lz_hazards() + for(var/obj/effect/particle_effect/smoke/miasma/smoke as anything in lz_smoke) + smoke.time_to_live = rand(1, 5) + lz_smoke.Cut() + #define MONKEYS_TO_TOTAL_RATIO 1/32 /datum/game_mode/colonialmarines/proc/spawn_smallhosts() @@ -289,6 +404,7 @@ /datum/game_mode/colonialmarines/ds_first_drop(obj/docking_port/mobile/marine_dropship) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(show_blurb_uscm)), DROPSHIP_DROP_MSG_DELAY) add_current_round_status_to_end_results("First Drop") + clear_lz_hazards() /////////////////////////// //Checks to see who won/// diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm index c5b25d3e1538..e7a43debb5fc 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm @@ -18,7 +18,7 @@ /datum/job/civilian/synthetic/whiskey = JOB_SYNTH, /datum/job/command/warrant/whiskey = JOB_CHIEF_POLICE, /datum/job/command/bridge/whiskey = JOB_SO, - /datum/job/command/tank_crew/whiskey = JOB_CREWMAN, + /datum/job/command/tank_crew/whiskey = JOB_TANK_CREW, /datum/job/command/police/whiskey = JOB_POLICE, /datum/job/command/pilot/whiskey = JOB_CAS_PILOT, /datum/job/logistics/requisition/whiskey = JOB_CHIEF_REQUISITION, diff --git a/code/game/jobs/job/command/auxiliary/tank_crew.dm b/code/game/jobs/job/command/auxiliary/tank_crew.dm new file mode 100644 index 000000000000..88b289d48ace --- /dev/null +++ b/code/game/jobs/job/command/auxiliary/tank_crew.dm @@ -0,0 +1,28 @@ +/datum/job/command/tank_crew + title = JOB_TANK_CREW + total_positions = 2 + spawn_positions = 2 + allow_additional = TRUE + scaled = TRUE + supervisors = "the acting commanding officer" + flags_startup_parameters = ROLE_ADD_TO_DEFAULT + gear_preset = /datum/equipment_preset/uscm/tank + entry_message_body = "Your job is to operate and maintain the ship's armored vehicles. You are in charge of representing the armored presence amongst the marines during the operation, as well as maintaining and repairing your own vehicles." + +/datum/job/command/tank_crew/set_spawn_positions(count) + if (length(GLOB.clients) >= 200) + spawn_positions = 2 + else + spawn_positions = 0 + +/datum/job/command/tank_crew/get_total_positions(latejoin = FALSE) + if(SStechtree.trees[TREE_MARINE].get_node(/datum/tech/arc).unlocked) + return 0 + if(length(GLOB.clients) >= 200 || total_positions_so_far > 0) + return 2 + + return 0 + +/obj/effect/landmark/start/tank_crew + name = JOB_TANK_CREW + job = /datum/job/command/tank_crew diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 1a04c3cafeb5..d758e187ce70 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -176,7 +176,7 @@ var/datum/money_account/generated_account //Give them an account in the database. if(!(flags_startup_parameters & ROLE_NO_ACCOUNT)) - var/obj/item/card/id/card = account_user.wear_id + var/obj/item/card/id/card = account_user.get_idcard() var/user_has_preexisting_account = account_user.mind?.initial_account if(card && !user_has_preexisting_account) var/datum/paygrade/account_paygrade = GLOB.paygrades[card.paygrade] diff --git a/code/game/jobs/job/marine/squads.dm b/code/game/jobs/job/marine/squads.dm index 756369c8eb5b..3285e75e45c3 100644 --- a/code/game/jobs/job/marine/squads.dm +++ b/code/game/jobs/job/marine/squads.dm @@ -452,7 +452,7 @@ var/obj/item/card/id/C = ID if(!C) - C = M.wear_id + C = M.get_idcard() if(!C) C = M.get_active_hand() if(!istype(C)) @@ -554,7 +554,7 @@ return //not assigned to the correct squad var/obj/item/card/id/C = ID if(!istype(C)) - C = M.wear_id + C = M.get_idcard() if(!istype(C)) return FALSE //Abort, no ID found @@ -637,9 +637,9 @@ R.keys -= key qdel(key) R.recalculateChannels() - if(istype(old_lead.wear_id, /obj/item/card/id)) - var/obj/item/card/id/ID = old_lead.wear_id - ID.access -= ACCESS_MARINE_LEADER + var/obj/item/card/id/card = old_lead.get_idcard() + if(card) + card.access -= ACCESS_MARINE_LEADER REMOVE_TRAITS_IN(old_lead, TRAIT_SOURCE_SQUAD_LEADER) old_lead.hud_set_squad() old_lead.update_inv_head() //updating marine helmet leader overlays diff --git a/code/game/jobs/role_authority.dm b/code/game/jobs/role_authority.dm index 58c9ad5b5092..a9017e2cc8d3 100644 --- a/code/game/jobs/role_authority.dm +++ b/code/game/jobs/role_authority.dm @@ -61,7 +61,6 @@ GLOBAL_VAR_INIT(players_preassigned, 0) /datum/job/special/uaac, /datum/job/special/uaac/tis, /datum/job/special/uscm, - /datum/job/command/tank_crew //Rip VC ) var/squads_all[] = typesof(/datum/squad) - /datum/squad var/castes_all[] = subtypesof(/datum/caste_datum) diff --git a/code/game/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm index 02695e2e6d4b..0316274774be 100644 --- a/code/game/machinery/ARES/ARES_interface.dm +++ b/code/game/machinery/ARES/ARES_interface.dm @@ -251,8 +251,8 @@ authentication = get_ares_access(idcard) last_login = idcard.registered_name else if(operator.wear_id) - idcard = operator.wear_id - if(istype(idcard)) + idcard = operator.get_idcard() + if(idcard) authentication = get_ares_access(idcard) last_login = idcard.registered_name else diff --git a/code/game/machinery/ARES/ARES_interface_apollo.dm b/code/game/machinery/ARES/ARES_interface_apollo.dm index 243ecdf1355f..93637f39d1a7 100644 --- a/code/game/machinery/ARES/ARES_interface_apollo.dm +++ b/code/game/machinery/ARES/ARES_interface_apollo.dm @@ -175,8 +175,8 @@ authentication = get_ares_access(idcard) last_login = idcard.registered_name else if(user.wear_id) - idcard = user.wear_id - if(istype(idcard)) + idcard = user.get_idcard() + if(idcard) authentication = get_ares_access(idcard) last_login = idcard.registered_name else @@ -317,8 +317,8 @@ if(istype(idcard)) has_id = TRUE else if(user.wear_id) - idcard = user.wear_id - if(istype(idcard)) + idcard = user.get_idcard() + if(idcard) has_id = TRUE if(!has_id) to_chat(user, SPAN_WARNING("You require an ID card to request an access ticket!")) diff --git a/code/game/machinery/ARES/ARES_step_triggers.dm b/code/game/machinery/ARES/ARES_step_triggers.dm index 2c6d605bcc9b..77a53200ddd3 100644 --- a/code/game/machinery/ARES/ARES_step_triggers.dm +++ b/code/game/machinery/ARES/ARES_step_triggers.dm @@ -33,9 +33,10 @@ return FALSE if(ishuman(passer)) var/mob/living/carbon/human/trespasser = passer - if(pass_accesses && (trespasser.wear_id)) + var/obj/item/card/id/card = trespasser.get_idcard() + if(pass_accesses && card) for(var/tag in pass_accesses) - if(tag in trespasser.wear_id.access) + if(tag in card.access) return FALSE Trigger(passer) return TRUE @@ -123,11 +124,9 @@ var/check_contents = TRUE if(ishuman(passer)) var/mob/living/carbon/human/human_passer = passer - idcard = human_passer.wear_id - if(istype(idcard)) + idcard = human_passer.get_idcard() + if(idcard) check_contents = FALSE - else - idcard = null if(istype(passer, /obj/item/card/id)) idcard = passer diff --git a/code/game/machinery/ARES/apollo_pda.dm b/code/game/machinery/ARES/apollo_pda.dm index 787b194ffb44..7b92b869daeb 100644 --- a/code/game/machinery/ARES/apollo_pda.dm +++ b/code/game/machinery/ARES/apollo_pda.dm @@ -198,8 +198,8 @@ authentication = get_ares_access(idcard) last_login = idcard.registered_name else if(user.wear_id) - idcard = user.wear_id - if(istype(idcard)) + idcard = user.get_idcard() + if(idcard) authentication = get_ares_access(idcard) last_login = idcard.registered_name else @@ -343,8 +343,8 @@ if(istype(idcard)) has_id = TRUE else if(user.wear_id) - idcard = user.wear_id - if(istype(idcard)) + idcard = user.get_idcard() + if(idcard) has_id = TRUE if(!has_id) to_chat(user, SPAN_WARNING("You require an ID card to request an access ticket!")) diff --git a/code/game/machinery/computer/almayer_control.dm b/code/game/machinery/computer/almayer_control.dm index 0090a6673961..8cd043e23998 100644 --- a/code/game/machinery/computer/almayer_control.dm +++ b/code/game/machinery/computer/almayer_control.dm @@ -139,7 +139,7 @@ var/obj/item/card/id/idcard = human_user.get_active_hand() var/bio_fail = FALSE if(!istype(idcard)) - idcard = human_user.wear_id + idcard = human_user.get_idcard() if(!istype(idcard)) bio_fail = TRUE else if(!idcard.check_biometrics(human_user)) @@ -198,8 +198,8 @@ var/obj/item/card/id/idcard = human_user.get_active_hand() var/bio_fail = FALSE if(!istype(idcard)) - idcard = human_user.wear_id - if(!istype(idcard)) + idcard = human_user.get_idcard() + if(!idcard) bio_fail = TRUE else if(!idcard.check_biometrics(human_user)) bio_fail = TRUE diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 6ed2a8c7be64..dec523ccc5b2 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -81,8 +81,8 @@ if(ACCESS_MARINE_SENIOR in I.access) authenticated = 2 else - I = C.wear_id - if(istype(I)) + I = C.get_idcard() + if(I) if(check_access(I)) authenticated = 1 if(ACCESS_MARINE_SENIOR in I.access) authenticated = 2 @@ -117,8 +117,8 @@ var/obj/item/card/id/idcard = human_user.get_active_hand() var/bio_fail = FALSE if(!istype(idcard)) - idcard = human_user.wear_id - if(!istype(idcard)) + idcard = human_user.get_idcard() + if(idcard) bio_fail = TRUE else if(!idcard.check_biometrics(human_user)) bio_fail = TRUE @@ -171,8 +171,8 @@ var/obj/item/card/id/idcard = human_user.get_active_hand() var/bio_fail = FALSE if(!istype(idcard)) - idcard = human_user.wear_id - if(!istype(idcard)) + idcard = human_user.get_idcard() + if(!idcard) bio_fail = TRUE else if(!idcard.check_biometrics(human_user)) bio_fail = TRUE diff --git a/code/game/machinery/computer/dropship_weapons.dm b/code/game/machinery/computer/dropship_weapons.dm index 5d61ed536618..abd3ab50b75c 100644 --- a/code/game/machinery/computer/dropship_weapons.dm +++ b/code/game/machinery/computer/dropship_weapons.dm @@ -621,7 +621,8 @@ . = list() var/datum/cas_iff_group/cas_group = GLOB.cas_groups[faction] for(var/datum/cas_signal/LT as anything in cas_group.cas_signals) - if(!istype(LT) || !LT.valid_signal()) + var/obj/object = LT.signal_loc + if(!istype(LT) || !LT.valid_signal() || !is_ground_level(object.z)) continue var/area/laser_area = get_area(LT.signal_loc) . += list( diff --git a/code/game/machinery/computer/groundside_operations.dm b/code/game/machinery/computer/groundside_operations.dm index 6866905abc58..591c63a76bee 100644 --- a/code/game/machinery/computer/groundside_operations.dm +++ b/code/game/machinery/computer/groundside_operations.dm @@ -153,12 +153,11 @@ if(A) area_name = sanitize_area(A.name) + var/obj/item/card/id/card = H.get_idcard() if(H.job) role = H.job - else if(istype(H.wear_id, /obj/item/card/id)) //decapitated marine is mindless, - var/obj/item/card/id/ID = H.wear_id //we use their ID to get their role. - if(ID.rank) - role = ID.rank + else if(card?.rank) //decapitated marine is mindless, + role = card.rank switch(H.stat) if(CONSCIOUS) @@ -216,8 +215,8 @@ var/obj/item/card/id/idcard = human_user.get_active_hand() var/bio_fail = FALSE if(!istype(idcard)) - idcard = human_user.wear_id - if(!istype(idcard)) + idcard = human_user.get_idcard() + if(!idcard) bio_fail = TRUE else if(!idcard.check_biometrics(human_user)) bio_fail = TRUE @@ -244,8 +243,8 @@ var/signed = null if(ishuman(usr)) var/mob/living/carbon/human/H = usr - var/obj/item/card/id/id = H.wear_id - if(istype(id)) + var/obj/item/card/id/id = H.get_idcard() + if(id) var/paygrade = get_paygrades(id.paygrade, FALSE, H.gender) signed = "[paygrade] [id.registered_name]" @@ -322,8 +321,8 @@ var/obj/item/card/id/idcard = human_user.get_active_hand() var/bio_fail = FALSE if(!istype(idcard)) - idcard = human_user.wear_id - if(!istype(idcard)) + idcard = human_user.get_idcard() + if(!idcard) bio_fail = TRUE else if(!idcard.check_biometrics(human_user)) bio_fail = TRUE diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index c2aac2cf9e75..61972f2f6c46 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -193,6 +193,11 @@ var/is_on = on && operable() icon_state = "[icon_state]-[is_on ? "on" : "off"]-[occupant ? "occupied" : "empty"]" +/obj/structure/machinery/cryo_cell/Destroy() + if(occupant) + go_out() + . = ..() + /obj/structure/machinery/cryo_cell/proc/process_occupant() if(!occupant) return diff --git a/code/game/machinery/fuelcell_recycler.dm b/code/game/machinery/fuelcell_recycler.dm index 89024adb41fb..12ae7c40f80f 100644 --- a/code/game/machinery/fuelcell_recycler.dm +++ b/code/game/machinery/fuelcell_recycler.dm @@ -3,7 +3,6 @@ desc = "A large machine with whirring fans and two cylindrical holes in the top. Used to regenerate fuel cells." icon = 'icons/obj/structures/machinery/fusion_eng.dmi' icon_state = "recycler" - density = TRUE active_power_usage = 15000 unslashable = TRUE unacidable = TRUE @@ -21,6 +20,11 @@ QDEL_NULL(cell_left) QDEL_NULL(cell_right) +/obj/structure/machinery/fuelcell_recycler/ex_act(severity) + if(indestructible) + return + . = ..() + /obj/structure/machinery/fuelcell_recycler/get_examine_text(mob/user) . = ..() . += SPAN_INFO("It is [machine_processing ? "online" : "offline"].") @@ -151,11 +155,6 @@ return icon_state = "recycler_on" -/obj/structure/machinery/fuelcell_recycler/ex_act(severity) - if(indestructible) - return - . = ..() - /obj/structure/machinery/fuelcell_recycler/proc/turn_off() visible_message(SPAN_NOTICE("[src] stops whirring as it turns off.")) stop_processing() diff --git a/code/game/machinery/sentry_holder.dm b/code/game/machinery/sentry_holder.dm index d9215e98c2e4..27cfe0cfcec8 100644 --- a/code/game/machinery/sentry_holder.dm +++ b/code/game/machinery/sentry_holder.dm @@ -148,3 +148,41 @@ /obj/structure/machinery/sentry_holder/almayer/mini/aicore/attack_hand(mob/user) to_chat(user, SPAN_WARNING("[src] can only be deployed remotely.")) return + +/obj/structure/machinery/sentry_holder/landing_zone + icon_state = "floor_sentry_installed" // TODO: More appropriate sprites + turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone + base_icon_state = "floor_sentry" // TODO: More appropriate sprites + layer = HATCH_LAYER // Needs to not hide barricades + +/obj/structure/machinery/sentry_holder/landing_zone/attack_hand(mob/user) + var/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone/turret = deployed_turret + if(!istype(turret)) + to_chat(user, SPAN_WARNING("[src] is unresponsive.")) + return + + if(deployment_cooldown > world.time) + to_chat(user, SPAN_WARNING("[src] is busy.")) + return + + if(deployed_turret.loc == src) //not deployed + if(turret.battery_state == TURRET_BATTERY_STATE_DEAD) + to_chat(user, SPAN_WARNING("[src] is non-functional.")) + return + + if(require_red_alert && (seclevel2num(get_security_level()) < SEC_LEVEL_RED)) + to_chat(user, SPAN_WARNING("[src] can only be activated in emergencies.")) + return + + to_chat(user, SPAN_NOTICE("You deploy [src].")) + deploy_sentry() + msg_admin_niche("[key_name(user)] deployed [turret] at [get_location_in_text(src)] [ADMIN_JMP(loc)]") + return + + to_chat(user, SPAN_NOTICE("You retract [src].")) + msg_admin_niche("[key_name(user)] retracted [turret] at [get_location_in_text(src)] [ADMIN_JMP(loc)]") + undeploy_sentry() + return + +/obj/structure/machinery/sentry_holder/landing_zone/update_use_power(new_use_power) + return diff --git a/code/game/machinery/vending/cm_vending.dm b/code/game/machinery/vending/cm_vending.dm index 76a2b6df8e45..afce800b0af4 100644 --- a/code/game/machinery/vending/cm_vending.dm +++ b/code/game/machinery/vending/cm_vending.dm @@ -574,8 +574,8 @@ GLOBAL_LIST_EMPTY(vending_products) to_chat(user, SPAN_WARNING("That set is already taken.")) vend_fail() return FALSE - var/obj/item/card/id/ID = human_user.wear_id - if(!istype(ID) || !ID.check_biometrics(user)) + var/obj/item/card/id/card = human_user.get_idcard() + if(!card?.check_biometrics(user)) to_chat(user, SPAN_WARNING("You must be wearing your [SPAN_INFO("dog tags")] to select a specialization!")) return FALSE var/specialist_assignment @@ -604,8 +604,8 @@ GLOBAL_LIST_EMPTY(vending_products) to_chat(user, SPAN_WARNING("Something bad occurred with [src], tell a Dev.")) vend_fail() return FALSE - ID.set_assignment((human_user.assigned_squad ? (human_user.assigned_squad.name + " ") : "") + JOB_SQUAD_SPECIALIST + " ([specialist_assignment])") - GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), ID.assignment) + card.set_assignment((human_user.assigned_squad ? (human_user.assigned_squad.name + " ") : "") + JOB_SQUAD_SPECIALIST + " ([specialist_assignment])") + GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), card.assignment) GLOB.available_specialist_sets -= p_name else if(vendor_role.Find(JOB_SYNTH)) if(user.job != JOB_SYNTH) @@ -807,8 +807,8 @@ GLOBAL_LIST_EMPTY(vending_products) return FALSE var/mob/living/carbon/human/human_user = user - var/obj/item/card/id/idcard = human_user.wear_id - if(!istype(idcard)) + var/obj/item/card/id/idcard = human_user.get_idcard() + if(!idcard) if(display) to_chat(user, SPAN_WARNING("Access denied. No ID card detected")) vend_fail() @@ -1406,10 +1406,11 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( if(vend_flags & VEND_UNIFORM_RANKS) if(insignas_override) var/obj/item/clothing/under/underclothes = new_item + var/obj/item/card/id/card = user.get_idcard() //Gives ranks to the ranked - if(istype(underclothes) && user.wear_id && user.wear_id.paygrade) - var/rankpath = get_rank_pins(user.wear_id.paygrade) + if(istype(underclothes) && card?.paygrade) + var/rankpath = get_rank_pins(card.paygrade) if(rankpath) var/obj/item/clothing/accessory/ranks/rank_insignia = new rankpath() var/obj/item/clothing/accessory/patch/uscmpatch = new() diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index a5e166451457..1ece8d353d4f 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -5,7 +5,7 @@ desc = "An automated gear rack hooked up to a colossal storage of various medical and engineering supplies. Can be accessed only by synthetic units." icon_state = "gear" req_access = list(ACCESS_MARINE_SYNTH) - vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR) + vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR, JOB_UPP_SUPPORT_SYNTH, JOB_CMB_SYN, JOB_PMC_SYNTH) listed_products = list( list("ENGINEER SUPPLIES", 0, null, null, null), @@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list( name = "\improper ColMarTech Synthetic Equipment Rack" desc = "An automated rack hooked up to a colossal storage of various equipment. Can be accessed only by synthetic units." req_access = list(ACCESS_MARINE_SYNTH) - vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR) + vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR, JOB_UPP_SUPPORT_SYNTH, JOB_CMB_SYN, JOB_PMC_SYNTH) /obj/structure/machinery/cm_vending/clothing/synth/get_listed_products(mob/user) return GLOB.cm_vending_clothing_synth @@ -273,6 +273,27 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Corpsman Helmet", 12, /obj/item/clothing/head/helmet/marine/medic, null, VENDOR_ITEM_REGULAR), list("Attachable Helmet Shield", 12, /obj/item/prop/helmetgarb/riot_shield, null, VENDOR_ITEM_REGULAR), + list("MASK", 0, null, null, null), + list("Surgical Mask", 12, /obj/item/clothing/mask/surgical, null, VENDOR_ITEM_REGULAR), + list("Rebreather", 12, /obj/item/clothing/mask/rebreather, null, VENDOR_ITEM_REGULAR), + list("Skull Balaclava, Blue", 12, /obj/item/clothing/mask/rebreather/skull, null, VENDOR_ITEM_REGULAR), + list("Skull balaclava, Black", 12, /obj/item/clothing/mask/rebreather/skull/black, null, VENDOR_ITEM_REGULAR), + list("Balaclava", 12, /obj/item/clothing/mask/rebreather/scarf, null, VENDOR_ITEM_REGULAR), + list("Balaclava (Green)", 12, /obj/item/clothing/mask/rebreather/scarf/green, null, VENDOR_ITEM_REGULAR), + list("Balaclava (Tan)", 12, /obj/item/clothing/mask/rebreather/scarf/tan, null, VENDOR_ITEM_REGULAR), + list("Balaclava (Grey)", 12, /obj/item/clothing/mask/rebreather/scarf/gray, null, VENDOR_ITEM_REGULAR), + list("Wrap (Grey)", 12, /obj/item/clothing/mask/rebreather/scarf/tacticalmask, null, VENDOR_ITEM_REGULAR), + list("Wrap (Red)", 12, /obj/item/clothing/mask/rebreather/scarf/tacticalmask/red, null, VENDOR_ITEM_REGULAR), + list("Wrap (Green)", 12, /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, null, VENDOR_ITEM_REGULAR), + list("Wrap (Tan)", 12, /obj/item/clothing/mask/rebreather/scarf/tacticalmask/tan, null, VENDOR_ITEM_REGULAR), + list("Wrap (Black)", 12, /obj/item/clothing/mask/rebreather/scarf/tacticalmask/black, null, VENDOR_ITEM_REGULAR), + list("Scarf", 12, /obj/item/clothing/mask/tornscarf, null, VENDOR_ITEM_REGULAR), + list("Scarf (Green)", 12, /obj/item/clothing/mask/tornscarf/green, null, VENDOR_ITEM_REGULAR), + list("Scarf (Snow)", 12, /obj/item/clothing/mask/tornscarf/snow, null, VENDOR_ITEM_REGULAR), + list("Scarf (Desert)", 12, /obj/item/clothing/mask/tornscarf/desert, null, VENDOR_ITEM_REGULAR), + list("Scarf (Urban)", 12, /obj/item/clothing/mask/tornscarf/urban, null, VENDOR_ITEM_REGULAR), + list("Scarf (Black)", 12, /obj/item/clothing/mask/tornscarf/black, null, VENDOR_ITEM_REGULAR), + list("SUIT", 0, null, null, null), list("Bomber Jacket, Brown", 12, /obj/item/clothing/suit/storage/bomber, null, VENDOR_ITEM_REGULAR), list("Bomber Jacket, Black", 12, /obj/item/clothing/suit/storage/bomber/alt, null, VENDOR_ITEM_REGULAR), @@ -337,7 +358,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( use_snowflake_points = TRUE vendor_theme = VENDOR_THEME_COMPANY req_access = list(ACCESS_MARINE_SYNTH) - vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR, JOB_WORKING_JOE) + vendor_role = list(JOB_SYNTH, JOB_SYNTH_SURVIVOR, JOB_WORKING_JOE, JOB_UPP_SUPPORT_SYNTH, JOB_CMB_SYN, JOB_PMC_SYNTH) vend_delay = 1 SECONDS diff --git a/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm b/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm index 0586f4b72fa5..53853f7d4e8b 100644 --- a/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm +++ b/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm @@ -7,7 +7,7 @@ icon_state = "vehicle_gear" req_access = list(ACCESS_MARINE_CREWMAN) - vendor_role = list(JOB_CREWMAN) + vendor_role = list(JOB_TANK_CREW) bound_width = 64 unslashable = TRUE @@ -56,30 +56,27 @@ UnregisterSignal(SSdcs, COMSIG_GLOB_VEHICLE_ORDERED) if(!selected_vehicle) - selected_vehicle = "APC" // The whole thing seems to be based upon the assumption you unlock tank as an override, defaulting to APC - if(selected_vehicle == "APC") - available_categories &= ~(VEHICLE_ARMOR_AVAILABLE|VEHICLE_INTEGRAL_AVAILABLE) //APC lacks these, so we need to remove these flags to be able to access spare parts section + selected_vehicle = "TANK" // The whole thing seems to be based upon the assumption you unlock tank as an override, defaulting to APC + if(selected_vehicle == "TANK") + available_categories &= ~(VEHICLE_INTEGRAL_AVAILABLE) //APC lacks these, so we need to remove these flags to be able to access spare parts section + marine_announcement("A tank is being sent up to reinforce this operation.") /obj/structure/machinery/cm_vending/gear/vehicle_crew/get_listed_products(mob/user) var/list/display_list = list() if(!user) display_list += GLOB.cm_vending_vehicle_crew_tank - display_list += GLOB.cm_vending_vehicle_crew_tank_spare display_list += GLOB.cm_vending_vehicle_crew_apc - display_list += GLOB.cm_vending_vehicle_crew_apc_spare return display_list if(selected_vehicle == "TANK") if(available_categories) display_list = GLOB.cm_vending_vehicle_crew_tank - else - display_list = GLOB.cm_vending_vehicle_crew_tank_spare else if(selected_vehicle == "ARC") display_list = GLOB.cm_vending_vehicle_crew_arc - else if(selected_vehicle == "APC") + else if(selected_vehicle == "TANK") if(available_categories) display_list = GLOB.cm_vending_vehicle_crew_apc else //APC stuff costs more to prevent 4000 points spent on shitton of ammunition @@ -150,64 +147,11 @@ GLOBAL_LIST_INIT(cm_vending_vehicle_crew_tank, list( list("Overdrive Enhancer", 0, /obj/item/hardpoint/support/overdrive_enhancer, VEHICLE_SUPPORT_AVAILABLE, VENDOR_ITEM_RECOMMENDED), list("ARMOR", 0, null, null, null), - list("Ballistic Armor", 0, /obj/item/hardpoint/armor/ballistic, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_RECOMMENDED), - list("Caustic Armor", 0, /obj/item/hardpoint/armor/caustic, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR), - list("Concussive Armor", 0, /obj/item/hardpoint/armor/concussive, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR), - list("Paladin Armor", 0, /obj/item/hardpoint/armor/paladin, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR), list("Snowplow", 0, /obj/item/hardpoint/armor/snowplow, VEHICLE_ARMOR_AVAILABLE, VENDOR_ITEM_REGULAR), list("TREADS", 0, null, null, null), list("Reinforced Treads", 0, /obj/item/hardpoint/locomotion/treads/robust, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_REGULAR), - list("Treads", 0, /obj/item/hardpoint/locomotion/treads, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_RECOMMENDED))) - -GLOBAL_LIST_INIT(cm_vending_vehicle_crew_tank_spare, list( - list("SPARE PARTS SELECTION:", 0, null, null, null), - - list("INTEGRAL PARTS", 0, null, null, null), - list("M34A2-A Multipurpose Turret", 500, /obj/item/hardpoint/holder/tank_turret, null, VENDOR_ITEM_REGULAR), - - list("SUPPORT AMMUNITION", 0, null, null, null), - list("Turret Smoke Screen Magazine", 50, /obj/item/ammo_magazine/hardpoint/turret_smoke, null, VENDOR_ITEM_REGULAR), - - list("PRIMARY WEAPON", 0, null, null, null), - list("AC3-E Autocannon", 200, /obj/item/hardpoint/primary/autocannon, null, VENDOR_ITEM_REGULAR), - list("DRG-N Offensive Flamer Unit", 200, /obj/item/hardpoint/primary/flamer, null, VENDOR_ITEM_REGULAR), - list("LTAA-AP Minigun", 200, /obj/item/hardpoint/primary/minigun, null, VENDOR_ITEM_REGULAR), - list("LTB Cannon", 400, /obj/item/hardpoint/primary/cannon, null, VENDOR_ITEM_RECOMMENDED), - - list("PRIMARY AMMUNITION", 0, null, null, null), - list("AC3-E Autocannon Magazine", 100, /obj/item/ammo_magazine/hardpoint/ace_autocannon, null, VENDOR_ITEM_REGULAR), - list("DRG-N Offensive Flamer Unit Fuel Tank", 100, /obj/item/ammo_magazine/hardpoint/primary_flamer, null, VENDOR_ITEM_REGULAR), - list("LTAA-AP Minigun Magazine", 100, /obj/item/ammo_magazine/hardpoint/ltaaap_minigun, null, VENDOR_ITEM_REGULAR), - list("LTB Cannon Magazine", 100, /obj/item/ammo_magazine/hardpoint/ltb_cannon, null, VENDOR_ITEM_REGULAR), - - list("SECONDARY WEAPON", 0, null, null, null), - list("M92T Grenade Launcher", 200, /obj/item/hardpoint/secondary/grenade_launcher, null, VENDOR_ITEM_REGULAR), - list("M56 Cupola", 200, /obj/item/hardpoint/secondary/m56cupola, null, VENDOR_ITEM_REGULAR), - list("LZR-N Flamer Unit", 200, /obj/item/hardpoint/secondary/small_flamer, null, VENDOR_ITEM_REGULAR), - list("TOW Launcher", 300, /obj/item/hardpoint/secondary/towlauncher, null, VENDOR_ITEM_REGULAR), - - list("SECONDARY AMMUNITION", 0, null, null, null), - list("M92T Grenade Launcher Magazine", 50, /obj/item/ammo_magazine/hardpoint/tank_glauncher, null, VENDOR_ITEM_REGULAR), - list("M56 Cupola Magazine", 50, /obj/item/ammo_magazine/hardpoint/m56_cupola, null, VENDOR_ITEM_REGULAR), - list("LZR-N Flamer Unit Fuel Tank", 50, /obj/item/ammo_magazine/hardpoint/secondary_flamer, null, VENDOR_ITEM_REGULAR), - list("TOW Launcher Magazine", 50, /obj/item/ammo_magazine/hardpoint/towlauncher, null, VENDOR_ITEM_REGULAR), - - list("SUPPORT MODULE", 0, null, null, null), - list("Artillery Module", 300, /obj/item/hardpoint/support/artillery_module, null, VENDOR_ITEM_REGULAR), - list("Integrated Weapons Sensor Array", 200, /obj/item/hardpoint/support/weapons_sensor, null, VENDOR_ITEM_REGULAR), - list("Overdrive Enhancer", 200, /obj/item/hardpoint/support/overdrive_enhancer, null, VENDOR_ITEM_REGULAR), - - list("ARMOR", 0, null, null, null), - list("Ballistic Armor", 300, /obj/item/hardpoint/armor/ballistic, null, VENDOR_ITEM_REGULAR), - list("Caustic Armor", 300, /obj/item/hardpoint/armor/caustic, null, VENDOR_ITEM_REGULAR), - list("Concussive Armor", 300, /obj/item/hardpoint/armor/concussive, null, VENDOR_ITEM_REGULAR), - list("Paladin Armor", 300, /obj/item/hardpoint/armor/paladin, null, VENDOR_ITEM_REGULAR), - list("Snowplow", 200, /obj/item/hardpoint/armor/snowplow, null, VENDOR_ITEM_REGULAR), - - list("TREADS", 0, null, null, null), - list("Reinforced Treads", 200, /obj/item/hardpoint/locomotion/treads/robust, null, VENDOR_ITEM_REGULAR), - list("Treads", 200, /obj/item/hardpoint/locomotion/treads, null, VENDOR_ITEM_REGULAR))) + list("Treads", 0, /obj/item/hardpoint/locomotion/treads, VEHICLE_TREADS_AVAILABLE, VENDOR_ITEM_REGULAR))) GLOBAL_LIST_INIT(cm_vending_vehicle_crew_apc, list( list("STARTING KIT SELECTION:", 0, null, null, null), @@ -261,7 +205,7 @@ GLOBAL_LIST_INIT(cm_vending_vehicle_crew_arc, list( desc = "An automated weapon rack hooked up to a small storage of standard-issue weapons. Can be accessed only by the Vehicle Crewmen." icon_state = "guns" req_access = list(ACCESS_MARINE_CREWMAN) - vendor_role = list(JOB_CREWMAN) + vendor_role = list(JOB_TANK_CREW) vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND listed_products = list( @@ -400,7 +344,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_vehicle_crew, list( name = "\improper ColMarTech Vehicle Crewman Equipment Rack" desc = "An automated rack hooked up to a colossal storage of Vehicle Crewmen standard-issue equipment." req_access = list(ACCESS_MARINE_CREWMAN) - vendor_role = list(JOB_CREWMAN) + vendor_role = list(JOB_TANK_CREW) /obj/structure/machinery/cm_vending/clothing/vehicle_crew/get_listed_products(mob/user) return GLOB.cm_vending_clothing_vehicle_crew diff --git a/code/game/machinery/vending/vendor_types/dress.dm b/code/game/machinery/vending/vendor_types/dress.dm index d49361d912a0..68809c10003f 100644 --- a/code/game/machinery/vending/vendor_types/dress.dm +++ b/code/game/machinery/vending/vendor_types/dress.dm @@ -45,11 +45,11 @@ return var/mob/living/carbon/human/H = user - var/obj/item/card/id/id_card = H.wear_id + var/obj/item/card/id/id_card = H.get_idcard() var/list/role_specific_uniforms var/list/vended_items var/list/display_list = list() - if(istype(id_card)) + if(id_card) role_specific_uniforms = id_card.uniform_sets vended_items = id_card.vended_items for(var/category_type in GLOB.uniform_categories) @@ -83,9 +83,9 @@ /obj/structure/machinery/cm_vending/clothing/dress/ui_data(mob/user) var/mob/living/carbon/human/H = user - var/obj/item/card/id/id_card = H.wear_id + var/obj/item/card/id/id_card = H.get_idcard() var/list/vended_items - if(istype(id_card)) + if(id_card) vended_items = id_card.vended_items var/list/data = list() @@ -120,9 +120,9 @@ var/item_path = L[3] - var/obj/item/card/id/id_card = H.wear_id + var/obj/item/card/id/id_card = H.get_idcard() - if(!istype(id_card)) //not wearing an ID + if(!id_card) //not wearing an ID to_chat(H, SPAN_WARNING("Access denied. No ID card detected")) return diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm index b1961ae9e75b..8fca3b5a0fdd 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm @@ -128,7 +128,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( GLOBAL_LIST_INIT(cm_vending_clothing_medic, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine/medic, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine/medic), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("Combat Sterile Gloves", 0, /obj/item/clothing/gloves/marine/medical, MARINE_CAN_BUY_KIT, VENDOR_ITEM_REGULAR), + list("Combat Sterile Gloves", 0, /obj/item/clothing/gloves/marine/medical, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_REGULAR), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm index b703654cd51a..35b059ac9611 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm @@ -412,3 +412,105 @@ /obj/item/clothing/suit/storage/marine/heavy/skull, /obj/item/clothing/suit/storage/marine/heavy/smooth, ) + +//------------MARINE CIVILIAN CLOTHING--------------- + +GLOBAL_LIST_INIT(cm_vending_clothing_marine_snowflake, list( + list("SHIRTS AND UNIFORMS", 0, null, null, null), + list("White T-Shirt and Brown Jeans", 12, /obj/item/clothing/under/tshirt/w_br, null, VENDOR_ITEM_REGULAR), + list("Gray T-Shirt and Blue Jeans", 12, /obj/item/clothing/under/tshirt/gray_blu, null, VENDOR_ITEM_REGULAR), + list("Red T-Shirt and Black Jeans", 12, /obj/item/clothing/under/tshirt/r_bla, null, VENDOR_ITEM_REGULAR), + list("Frontier Jumpsuit", 12, /obj/item/clothing/under/rank/synthetic/frontier, null, VENDOR_ITEM_REGULAR), + list("UA Grey Jumpsuit", 12, /obj/item/clothing/under/colonist/ua_civvies, null, VENDOR_ITEM_REGULAR), + list("UA Brown Jumpsuit", 12, /obj/item/clothing/under/colonist/wy_davisone, null, VENDOR_ITEM_REGULAR), + list("UA Green Utility Uniform", 12, /obj/item/clothing/under/rank/synthetic/utility, null, VENDOR_ITEM_REGULAR), + list("Grey Utilities", 12, /obj/item/clothing/under/rank/synthetic/utility/yellow, null, VENDOR_ITEM_REGULAR), + list("Grey Utilities and Blue Jeans", 12, /obj/item/clothing/under/rank/synthetic/utility/red, null, VENDOR_ITEM_REGULAR), + list("Blue Utilities and Brown Jeans", 12, /obj/item/clothing/under/rank/synthetic/utility/blue, null, VENDOR_ITEM_REGULAR), + list("White Service Uniform", 12, /obj/item/clothing/under/colonist/white_service, null, VENDOR_ITEM_REGULAR), + list("Steward Clothes", 12, /obj/item/clothing/under/colonist/wy_joliet_shopsteward, null, VENDOR_ITEM_REGULAR), + list("Red Dress Skirt", 12, /obj/item/clothing/under/blackskirt, null, VENDOR_ITEM_REGULAR), + list("Blue Suit Pants", 12, /obj/item/clothing/under/liaison_suit/blue, null, VENDOR_ITEM_REGULAR), + list("Brown Suit Pants", 12, /obj/item/clothing/under/liaison_suit/brown, null, VENDOR_ITEM_REGULAR), + list("White Suit Pants", 12, /obj/item/clothing/under/liaison_suit/corporate_formal, null, VENDOR_ITEM_REGULAR), + list("Working Joe Uniform", 36, /obj/item/clothing/under/rank/synthetic/joe, null, VENDOR_ITEM_REGULAR), + + list("GLASSES", 0, null, null, null), + list("Marine RPG Glasses", 12, /obj/item/clothing/glasses/regular, null, VENDOR_ITEM_REGULAR), + list("Sunglasses", 12, /obj/item/clothing/glasses/sunglasses, null, VENDOR_ITEM_REGULAR), + + list("SHOES", 0, null, null, null), + list("Boots", 12, /obj/item/clothing/shoes/marine, null, VENDOR_ITEM_REGULAR), + list("Shoes, Black", 12, /obj/item/clothing/shoes/black, null, VENDOR_ITEM_REGULAR), + list("Shoes, Blue", 12, /obj/item/clothing/shoes/blue, null, VENDOR_ITEM_REGULAR), + list("Shoes, Brown", 12, /obj/item/clothing/shoes/brown, null, VENDOR_ITEM_REGULAR), + list("Shoes, Green", 12, /obj/item/clothing/shoes/green, null, VENDOR_ITEM_REGULAR), + list("Shoes, Purple", 12, /obj/item/clothing/shoes/purple, null, VENDOR_ITEM_REGULAR), + list("Shoes, Red", 12, /obj/item/clothing/shoes/red, null, VENDOR_ITEM_REGULAR), + list("Shoes, White", 12, /obj/item/clothing/shoes/white, null, VENDOR_ITEM_REGULAR), + list("Shoes, Yellow", 12, /obj/item/clothing/shoes/yellow, null, VENDOR_ITEM_REGULAR), + + list("HEADWEAR", 0, null, null, null), + list("Beanie", 12, /obj/item/clothing/head/beanie, null, VENDOR_ITEM_REGULAR), + list("Beret, Engineering", 12, /obj/item/clothing/head/beret/eng, null, VENDOR_ITEM_REGULAR), + list("Beret, Purple", 12, /obj/item/clothing/head/beret/jan, null, VENDOR_ITEM_REGULAR), + list("Beret, Red", 12, /obj/item/clothing/head/beret/cm/red, null, VENDOR_ITEM_REGULAR), + list("Beret, Standard", 12, /obj/item/clothing/head/beret/cm, null, VENDOR_ITEM_REGULAR), + list("Beret, Tan", 12, /obj/item/clothing/head/beret/cm/tan, null, VENDOR_ITEM_REGULAR), + list("Beret, Green", 12, /obj/item/clothing/head/beret/cm, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Beret, Black", 12, /obj/item/clothing/head/beret/cm/black, null, VENDOR_ITEM_REGULAR), + list("Beret, White", 12, /obj/item/clothing/head/beret/cm/white, null, VENDOR_ITEM_REGULAR), + list("Ushanka", 12, /obj/item/clothing/head/ushanka, null, VENDOR_ITEM_REGULAR), + list("Cap", 12, /obj/item/clothing/head/cmcap, null, VENDOR_ITEM_REGULAR), + list("Fedora", 12, /obj/item/clothing/head/fedora, null, VENDOR_ITEM_REGULAR), + + list("SUIT", 0, null, null, null), + list("Bomber Jacket, Brown", 12, /obj/item/clothing/suit/storage/bomber, null, VENDOR_ITEM_REGULAR), + list("Bomber Jacket, Black", 12, /obj/item/clothing/suit/storage/bomber/alt, null, VENDOR_ITEM_REGULAR), + list("External Webbing", 12, /obj/item/clothing/suit/storage/webbing, null, VENDOR_ITEM_REGULAR), + list("Utility Vest", 12, /obj/item/clothing/suit/storage/utility_vest, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Orange)", 12, /obj/item/clothing/suit/storage/hazardvest, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Blue)", 12, /obj/item/clothing/suit/storage/hazardvest/blue, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Yellow)", 12, /obj/item/clothing/suit/storage/hazardvest/yellow, null, VENDOR_ITEM_REGULAR), + list("Hazard Vest(Black)", 12, /obj/item/clothing/suit/storage/hazardvest/black, null, VENDOR_ITEM_REGULAR), + list("USCM Service Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/service, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Brown", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_brown, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Grey", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_gray, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Green", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_green, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, First Responder", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_fr, null, VENDOR_ITEM_REGULAR), + list("Windbreaker, Exploration", 12, /obj/item/clothing/suit/storage/windbreaker/windbreaker_covenant, null, VENDOR_ITEM_REGULAR), + list("Black Suit Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/corporate/black, null, VENDOR_ITEM_REGULAR), + list("Brown Suit Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/corporate/brown, null, VENDOR_ITEM_REGULAR), + list("Blue Suit Jacket", 12, /obj/item/clothing/suit/storage/jacket/marine/corporate/blue, null, VENDOR_ITEM_REGULAR), + list("Brown Vest", 12, /obj/item/clothing/suit/storage/jacket/marine/vest, null, VENDOR_ITEM_REGULAR), + list("Tan Vest", 12, /obj/item/clothing/suit/storage/jacket/marine/vest/tan, null, VENDOR_ITEM_REGULAR), + list("Grey Vest", 12, /obj/item/clothing/suit/storage/jacket/marine/vest/grey, null, VENDOR_ITEM_REGULAR), + + list("BACKPACK", 0, null, null, null), + list("Backpack, Industrial", 12, /obj/item/storage/backpack/industrial, null, VENDOR_ITEM_REGULAR), + list("Satchel, Leather", 12, /obj/item/storage/backpack/satchel, null, VENDOR_ITEM_REGULAR), + list("Satchel, Medical", 12, /obj/item/storage/backpack/satchel/med, null, VENDOR_ITEM_REGULAR), + + list("OTHER", 0, null, null, null), + list("Red Armband", 6, /obj/item/clothing/accessory/armband, null, VENDOR_ITEM_REGULAR), + list("Purple Armband", 6, /obj/item/clothing/accessory/armband/science, null, VENDOR_ITEM_REGULAR), + list("Yellow Armband", 6, /obj/item/clothing/accessory/armband/engine, null, VENDOR_ITEM_REGULAR), + list("Green Armband", 6, /obj/item/clothing/accessory/armband/medgreen, null, VENDOR_ITEM_REGULAR), + list("Dress Gloves", 6, /obj/item/clothing/gloves/marine/dress, null, VENDOR_ITEM_REGULAR), + +)) + +/obj/structure/machinery/cm_vending/clothing/marine/snowflake + name = "\improper Personal Civilian Clothing Storage Unit" + desc = "The vendor where all of your personal civilian clothing is stored while you are on-duty." + icon_state = "snowflake" + show_points = TRUE + use_snowflake_points = TRUE + vendor_theme = VENDOR_THEME_COMPANY + req_access = list() + vendor_role = list() + + vend_delay = 1 SECONDS + +/obj/structure/machinery/cm_vending/clothing/marine/snowflake/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_marine_snowflake diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 311c2ebc7253..10d4e8d098fb 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -106,14 +106,16 @@ // Humans? if(isliving(atm)) //For extinguishing mobs on fire var/mob/living/M = atm - M.ExtinguishMob() + + if(M != cause_data.resolve_mob()) + M.ExtinguishMob() + if(M.stat == DEAD) // NO. DAMAGING. DEAD. MOBS. continue if (iscarbon(M)) var/mob/living/carbon/C = M if (C.ally_of_hivenumber(hivenumber)) continue - apply_spray(M) M.apply_armoured_damage(get_xeno_damage_acid(M, damage_amount), ARMOR_BIO, BURN) // Deal extra damage when first placing ourselves down. @@ -144,6 +146,9 @@ /obj/effect/xenomorph/spray/Crossed(AM as mob|obj) ..() + if(AM == cause_data.resolve_mob()) + return + if(isliving(AM)) var/mob/living/living_mob = AM if(living_mob.ally_of_hivenumber(hivenumber)) diff --git a/code/game/objects/effects/effect_system/chemsmoke.dm b/code/game/objects/effects/effect_system/chemsmoke.dm index 10c0bc7acd22..eea302f29325 100644 --- a/code/game/objects/effects/effect_system/chemsmoke.dm +++ b/code/game/objects/effects/effect_system/chemsmoke.dm @@ -263,7 +263,13 @@ return -/obj/effect/particle_effect/smoke/chem/affect(mob/living/carbon/M) - if(reagents.reagent_list.len) - for(var/datum/reagent/reagent in reagents.reagent_list) - reagent.reaction_mob(M, volume = reagent.volume * POTENCY_MULTIPLIER_LOW, permeable = FALSE) +/obj/effect/particle_effect/smoke/chem/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE + if(!length(reagents?.reagent_list)) + return FALSE + + for(var/datum/reagent/reagent in reagents.reagent_list) + reagent.reaction_mob(affected_mob, volume = reagent.volume * POTENCY_MULTIPLIER_LOW, permeable = FALSE) + return TRUE diff --git a/code/game/objects/effects/effect_system/smoke.dm b/code/game/objects/effects/effect_system/smoke.dm index 5deeff9617ca..d4152bdee37e 100644 --- a/code/game/objects/effects/effect_system/smoke.dm +++ b/code/game/objects/effects/effect_system/smoke.dm @@ -25,10 +25,15 @@ pixel_x = -32 pixel_y = -32 -/obj/effect/particle_effect/smoke/Initialize(mapload, oldamount, new_cause_data) +/obj/effect/particle_effect/smoke/Initialize(mapload, oldamount, datum/cause_data/new_cause_data) . = ..() if(oldamount) amount = oldamount - 1 + if(!istype(new_cause_data)) + if(new_cause_data) + new_cause_data = create_cause_data(new_cause_data) + else + new_cause_data = create_cause_data(name) cause_data = new_cause_data time_to_live += rand(-1,1) START_PROCESSING(SSeffects, src) @@ -62,61 +67,65 @@ if(prob(severity/EXPLOSION_THRESHOLD_LOW * 100)) qdel(src) -/obj/effect/particle_effect/smoke/Crossed(atom/movable/M) +/obj/effect/particle_effect/smoke/Crossed(atom/movable/moveable) ..() - if(istype(M, /obj/projectile/beam)) - var/obj/projectile/beam/B = M - B.damage = (B.damage/2) - if(iscarbon(M)) - affect(M) + if(istype(moveable, /obj/projectile/beam)) + var/obj/projectile/beam/beam = moveable + beam.damage /= 2 + if(iscarbon(moveable)) + affect(moveable) -/obj/effect/particle_effect/smoke/proc/apply_smoke_effect(turf/T) - for(var/mob/living/L in T) - affect(L) +/obj/effect/particle_effect/smoke/proc/apply_smoke_effect(turf/cur_turf) + for(var/mob/living/affected_mob in cur_turf) + affect(affected_mob) /obj/effect/particle_effect/smoke/proc/spread_smoke(direction) set waitfor = 0 + sleep(spread_speed) - if(QDELETED(src)) return - var/turf/U = get_turf(src) - if(!U) return + if(QDELETED(src)) + return + + var/turf/start_turf = get_turf(src) + if(!start_turf) + return for(var/i in GLOB.cardinals) if(direction && i != direction) continue - var/turf/T = get_step(U, i) - if(check_airblock(U,T)) //smoke can't spread that way + var/turf/cur_turf = get_step(start_turf, i) + if(check_airblock(start_turf, cur_turf)) //smoke can't spread that way continue - var/obj/effect/particle_effect/smoke/foundsmoke = locate() in T // Check for existing smoke and act accordingly + var/obj/effect/particle_effect/smoke/foundsmoke = locate() in cur_turf // Check for existing smoke and act accordingly if(foundsmoke) if(foundsmoke.smokeranking <= src.smokeranking) qdel(foundsmoke) else continue - var/obj/effect/particle_effect/smoke/S = new type(T, amount, cause_data) - S.setDir(pick(GLOB.cardinals)) - S.time_to_live = time_to_live - if(S.amount>0) - S.spread_smoke() + var/obj/effect/particle_effect/smoke/smoke = new type(cur_turf, amount, cause_data) + smoke.setDir(pick(GLOB.cardinals)) + smoke.time_to_live = time_to_live + if(smoke.amount > 0) + smoke.spread_smoke() //proc to check if smoke can expand to another turf -/obj/effect/particle_effect/smoke/proc/check_airblock(turf/U, turf/T) - if(!T) +/obj/effect/particle_effect/smoke/proc/check_airblock(turf/start_turf, turf/cur_turf) + if(!cur_turf) return FALSE - if(T.density) + if(cur_turf.density) return TRUE if(prob(BOILER_GAS_CADE_BLOCK_CHANCE)) var/move_dir = 0 - for(var/obj/structure/obstacle in T) - move_dir = get_dir(src, T) + for(var/obj/structure/obstacle in cur_turf) + move_dir = get_dir(src, cur_turf) if(obstacle.BlockedPassDirs(src, move_dir)) return TRUE -/obj/effect/particle_effect/smoke/proc/affect(mob/living/carbon/M) - if (istype(M)) - return 0 - return 1 +/obj/effect/particle_effect/smoke/proc/affect(mob/living/carbon/affected_mob) + if(!istype(affected_mob)) + return FALSE + return TRUE ///////////////////////////////////////////// // Bad smoke @@ -128,22 +137,110 @@ /obj/effect/particle_effect/smoke/bad/Move() . = ..() - for(var/mob/living/carbon/M in get_turf(src)) - affect(M) + for(var/mob/living/carbon/affected_mob in get_turf(src)) + affect(affected_mob) -/obj/effect/particle_effect/smoke/bad/affect(mob/living/carbon/M) +/obj/effect/particle_effect/smoke/bad/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE + if(affected_mob.internal != null && affected_mob.wear_mask && (affected_mob.wear_mask.flags_inventory & ALLOWINTERNALS)) + return FALSE + if(issynth(affected_mob)) + return FALSE + + if(prob(20)) + affected_mob.drop_held_item() + affected_mob.apply_damage(1, OXY) + + if(affected_mob.coughedtime < world.time && !affected_mob.stat) + affected_mob.coughedtime = world.time + 2 SECONDS + if(ishuman(affected_mob)) //Humans only to avoid issues + affected_mob.emote("cough") + return TRUE + +///////////////////////////////////////////// +// Miasma smoke (for LZs) +///////////////////////////////////////////// + +/obj/effect/particle_effect/smoke/miasma + name = "CN20-X miasma" + amount = 1 + time_to_live = INFINITY + smokeranking = SMOKE_RANK_MAX + opacity = FALSE + alpha = 75 + color = "#301934" + /// How much damage to deal per affect() + var/burn_damage = 4 + /// Multiplier to burn_damage for xenos and yautja + var/xeno_yautja_multiplier = 3 + /// Time required for damage to actually apply + var/active_time + +/obj/effect/particle_effect/smoke/miasma/Initialize(mapload, oldamount, datum/cause_data/new_cause_data) + . = ..() + // Mimic dispersal without actually doing spread logic + alpha = 0 + active_time = world.time + 6 SECONDS + addtimer(VARSET_CALLBACK(src, alpha, initial(alpha)), rand(1, 6) SECONDS) + +/obj/effect/particle_effect/smoke/miasma/apply_smoke_effect(turf/cur_turf) ..() - if (M.internal != null && M.wear_mask && (M.wear_mask.flags_inventory & ALLOWINTERNALS)) - return - else - if(prob(20)) - M.drop_held_item() - M.apply_damage(1, OXY) - if(M.coughedtime != 1) - M.coughedtime = 1 - if(ishuman(M)) //Humans only to avoid issues - M.emote("cough") - addtimer(VARSET_CALLBACK(M, coughedtime, 0), 2 SECONDS) + // coffins + for(var/obj/structure/closet/container in cur_turf) + for(var/mob/living/carbon/mob in container) + affect(mob) + + // vehicles + var/obj/vehicle/multitile/car = locate() in cur_turf + var/datum/interior/car_interior = car?.interior + if(car_interior) + var/list/bounds = car_interior.get_bound_turfs() + for(var/turf/car_turf as anything in block(bounds[1], bounds[2])) + var/obj/effect/particle_effect/smoke/miasma/smoke = locate() in car_turf + if(!smoke) + smoke = new(car_turf) + smoke.time_to_live = rand(7, 12) + +/obj/effect/particle_effect/smoke/miasma/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE + if(affected_mob.stat == DEAD) + return FALSE + + var/active = world.time > active_time + var/damage = active ? burn_damage : 0 // A little buffer time to get out of it + if(isxeno(affected_mob)) + damage *= xeno_yautja_multiplier + else if(isyautja(affected_mob)) + if(prob(75)) + return FALSE + damage *= xeno_yautja_multiplier + + affected_mob.apply_damage(damage, BURN) + affected_mob.AdjustEyeBlur(0.75) + affected_mob.last_damage_data = cause_data + + if(affected_mob.coughedtime < world.time && !affected_mob.stat) + affected_mob.coughedtime = world.time + 2 SECONDS + if(ishuman(affected_mob)) //Humans only to avoid issues + if(issynth(affected_mob)) + affected_mob.visible_message(SPAN_DANGER("[affected_mob]'s skin is sloughing off!"),\ + SPAN_DANGER("Your skin is sloughing off!")) + else + if(prob(50)) + affected_mob.emote("cough") + else + affected_mob.emote("gasp") + if(prob(20)) + affected_mob.drop_held_item() + to_chat(affected_mob, SPAN_DANGER("Something is not right here...")) + return TRUE + +/obj/effect/particle_effect/smoke/miasma/ex_act(severity) + return ///////////////////////////////////////////// // Sleep smoke @@ -154,20 +251,26 @@ /obj/effect/particle_effect/smoke/sleepy/Move() . = ..() - for(var/mob/living/carbon/M in get_turf(src)) - affect(M) + for(var/mob/living/carbon/affected_mob in get_turf(src)) + affect(affected_mob) + +/obj/effect/particle_effect/smoke/sleepy/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE + if(affected_mob.stat == DEAD) + return FALSE + if(issynth(affected_mob)) + return FALSE -/obj/effect/particle_effect/smoke/sleepy/affect(mob/living/carbon/M as mob ) - if (!..()) - return 0 + affected_mob.drop_held_item() + affected_mob.sleeping++ - M.drop_held_item() - M:sleeping++ - if(M.coughedtime != 1) - M.coughedtime = 1 - if(ishuman(M)) //Humans only to avoid issues - M.emote("cough") - addtimer(VARSET_CALLBACK(M, coughedtime, 0), 2 SECONDS) + if(affected_mob.coughedtime < world.time && !affected_mob.stat) + affected_mob.coughedtime = world.time + 2 SECONDS + if(ishuman(affected_mob)) //Humans only to avoid issues + affected_mob.emote("cough") + return TRUE ///////////////////////////////////////////// // Mustard Gas @@ -185,17 +288,20 @@ affect(creature) /obj/effect/particle_effect/smoke/mustard/affect(mob/living/carbon/human/creature) - if(!istype(creature) || issynth(creature)) + . = ..() + if(!.) + return FALSE + if(issynth(creature)) return FALSE - creature.burn_skin(0.75) - if(creature.coughedtime != 1) - creature.coughedtime = 1 + if(creature.burn_skin(0.75)) + creature.last_damage_data = cause_data + + if(creature.coughedtime < world.time && !creature.stat) + creature.coughedtime = world.time + 2 SECONDS if(ishuman(creature)) //Humans only to avoid issues creature.emote("gasp") - addtimer(VARSET_CALLBACK(creature, coughedtime, 0), 2 SECONDS) - creature.updatehealth() - return + return TRUE ///////////////////////////////////////////// // Phosphorus Gas @@ -217,35 +323,41 @@ /obj/effect/particle_effect/smoke/phosphorus/Move() . = ..() - for(var/mob/living/carbon/M in get_turf(src)) - affect(M) + for(var/mob/living/carbon/affected_mob in get_turf(src)) + affect(affected_mob) -/obj/effect/particle_effect/smoke/phosphorus/affect(mob/living/carbon/M) - ..() - burn_damage = 40 - if(ishuman(M)) - if (M.internal != null && M.wear_mask && (M.wear_mask.flags_inventory & ALLOWINTERNALS)) - return - else - if(prob(20)) - M.drop_held_item() - M.apply_damage(1, OXY) - M.updatehealth() - if(M.coughedtime < world.time) - M.emote("cough") - M.coughedtime = world.time + next_cough +/obj/effect/particle_effect/smoke/phosphorus/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE - M.last_damage_data = cause_data + var/damage = burn_damage + if(ishuman(affected_mob)) + if(affected_mob.internal != null && affected_mob.wear_mask && (affected_mob.wear_mask.flags_inventory & ALLOWINTERNALS)) + return FALSE + + if(prob(20)) + affected_mob.drop_held_item() + affected_mob.apply_damage(1, OXY) + + if(affected_mob.coughedtime < world.time && !affected_mob.stat) + affected_mob.coughedtime = world.time + next_cough + if(issynth(affected_mob)) + affected_mob.visible_message(SPAN_DANGER("[affected_mob]'s skin is sloughing off!"),\ + SPAN_DANGER("Your skin is sloughing off!")) + else + affected_mob.emote("cough") - if(isyautja(M) || isxeno(M)) - burn_damage *= xeno_yautja_reduction + if(isyautja(affected_mob) || isxeno(affected_mob)) + damage *= xeno_yautja_reduction var/reagent = new /datum/reagent/napalm/ut() - M.burn_skin(burn_damage) - M.adjust_fire_stacks(applied_fire_stacks, reagent) - M.IgniteMob() - M.updatehealth() - + affected_mob.burn_skin(damage) + affected_mob.adjust_fire_stacks(applied_fire_stacks, reagent) + affected_mob.IgniteMob() + affected_mob.updatehealth() + affected_mob.last_damage_data = cause_data + return TRUE ///////////////////////////////////////////// // CN20 Nerve Gas @@ -274,14 +386,21 @@ affect(creature) /obj/effect/particle_effect/smoke/cn20/affect(mob/living/carbon/creature) + . = ..() + if(!.) + return FALSE + if(creature.stat == DEAD) + return FALSE + if(issynth(creature)) + return FALSE + var/mob/living/carbon/xenomorph/xeno_creature var/mob/living/carbon/human/human_creature if(isxeno(creature)) xeno_creature = creature else if(ishuman(creature)) human_creature = creature - if(!istype(creature) || issynth(creature) || creature.stat == DEAD) - return FALSE + if(!xeno_affecting && xeno_creature) return FALSE if(isyautja(creature) && prob(75)) @@ -299,22 +418,24 @@ xeno_creature.blinded = TRUE else creature.apply_damage(12, OXY) + creature.SetEarDeafness(max(creature.ear_deaf, floor(effect_amt*1.5))) //Paralysis of hearing system, aka deafness if(!xeno_creature && !creature.eye_blind) //Eye exposure damage to_chat(creature, SPAN_DANGER("Your eyes sting. You can't see!")) creature.SetEyeBlind(floor(effect_amt/3)) - if(!xeno_creature && creature.coughedtime != 1 && !creature.stat) //Coughing/gasping - creature.coughedtime = 1 + + if(human_creature && creature.coughedtime < world.time && !creature.stat) //Coughing/gasping + creature.coughedtime = world.time + 1.5 SECONDS if(prob(50)) creature.emote("cough") else creature.emote("gasp") - addtimer(VARSET_CALLBACK(creature, coughedtime, 0), 1.5 SECONDS) + var/stun_chance = 20 if(xeno_affecting) stun_chance = 35 if(prob(stun_chance)) - creature.apply_effect(2, WEAKEN) + creature.KnockDown(2) //Topical damage (neurotoxin on exposed skin) if(xeno_creature) @@ -376,61 +497,64 @@ return ..() -/obj/effect/particle_effect/smoke/xeno_burn/apply_smoke_effect(turf/T) +/obj/effect/particle_effect/smoke/xeno_burn/apply_smoke_effect(turf/cur_turf) ..() - for(var/obj/structure/barricade/B in T) - B.take_acid_damage(XENO_ACID_GAS_BARRICADE_DAMAGE) + for(var/obj/structure/barricade/barricade in cur_turf) + barricade.take_acid_damage(XENO_ACID_GAS_BARRICADE_DAMAGE) if(prob(75)) // anti sound spam playsound(src, pick("acid_sizzle", "acid_hit"), 25) - for(var/obj/vehicle/multitile/R in T) - R.take_damage_type(15, "acid") + for(var/obj/vehicle/multitile/vehicle in cur_turf) + vehicle.take_damage_type(15, "acid") - for(var/obj/structure/machinery/m56d_hmg/auto/H in T) - H.update_health(XENO_ACID_HMG_DAMAGE) + for(var/obj/structure/machinery/m56d_hmg/auto/gun in cur_turf) + gun.update_health(XENO_ACID_HMG_DAMAGE) //No effect when merely entering the smoke turf, for balance reasons -/obj/effect/particle_effect/smoke/xeno_burn/Crossed(mob/living/carbon/M as mob) +/obj/effect/particle_effect/smoke/xeno_burn/Crossed(mob/living/carbon/affected_mob as mob) return -/obj/effect/particle_effect/smoke/xeno_burn/affect(mob/living/carbon/M) - ..() - - if(M.ally_of_hivenumber(hivenumber)) - return - - if(isyautja(M) && prob(75)) - return - if(M.stat == DEAD) - return - if(HAS_TRAIT(M, TRAIT_NESTED) && M.status_flags & XENO_HOST) - return - - M.last_damage_data = cause_data +/obj/effect/particle_effect/smoke/xeno_burn/affect(mob/living/carbon/affected_mob) + . = ..() + if(!.) + return FALSE + if(affected_mob.stat == DEAD) + return FALSE + if(affected_mob.ally_of_hivenumber(hivenumber)) + return FALSE + if(isyautja(affected_mob) && prob(75)) + return FALSE + if(HAS_TRAIT(affected_mob, TRAIT_NESTED) && affected_mob.status_flags & XENO_HOST) + return FALSE - M.apply_damage(3, OXY) //Basic oxyloss from "can't breathe" + affected_mob.last_damage_data = cause_data + affected_mob.apply_damage(3, OXY) //Basic oxyloss from "can't breathe" - if(isxeno(M)) - M.apply_damage(gas_damage * XVX_ACID_DAMAGEMULT, BURN) //Inhalation damage + if(isxeno(affected_mob)) + affected_mob.apply_damage(gas_damage * XVX_ACID_DAMAGEMULT, BURN) //Inhalation damage else - M.apply_damage(gas_damage, BURN) //Inhalation damage + affected_mob.apply_damage(gas_damage, BURN) //Inhalation damage - if(M.coughedtime != 1 && !M.stat && ishuman(M)) //Coughing/gasping - M.coughedtime = 1 - if(prob(50)) - M.emote("cough") + if(affected_mob.coughedtime < world.time && !affected_mob.stat && ishuman(affected_mob)) //Coughing/gasping + affected_mob.coughedtime = world.time + 1.5 SECONDS + if(issynth(affected_mob)) + affected_mob.visible_message(SPAN_DANGER("[affected_mob]'s skin is sloughing off!"),\ + SPAN_DANGER("Your skin is sloughing off!")) else - M.emote("gasp") - addtimer(VARSET_CALLBACK(M, coughedtime, 0), 1.5 SECONDS) + if(prob(50)) + affected_mob.emote("cough") + else + affected_mob.emote("gasp") //Topical damage (acid on exposed skin) - to_chat(M, SPAN_DANGER("Your skin feels like it is melting away!")) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.apply_armoured_damage(amount*rand(15, 20), ARMOR_BIO, BURN) //Burn damage, randomizes between various parts //Amount corresponds to upgrade level, 1 to 2.5 + to_chat(affected_mob, SPAN_DANGER("Your skin feels like it is melting away!")) + if(ishuman(affected_mob)) + var/mob/living/carbon/human/human = affected_mob + human.apply_armoured_damage(amount*rand(15, 20), ARMOR_BIO, BURN) //Burn damage, randomizes between various parts //Amount corresponds to upgrade level, 1 to 2.5 else - M.burn_skin(5) //Failsafe for non-humans - M.updatehealth() + affected_mob.burn_skin(5) //Failsafe for non-humans + affected_mob.last_damage_data = cause_data + return TRUE //Xeno neurotox smoke. /obj/effect/particle_effect/smoke/xeno_weak @@ -448,24 +572,27 @@ return /obj/effect/particle_effect/smoke/xeno_weak/affect(mob/living/carbon/moob) // This applies every tick someone is in the smoke - ..() + . = ..() + if(!.) + return FALSE + if(moob.stat == DEAD) + return FALSE if(isxeno(moob)) - return + return FALSE if(isyautja(moob)) - neuro_dose = neuro_dose*2 // Yautja get half effects - msg = "You resist the tingling smoke's effects!" - return - if(moob.stat == DEAD) - return + return FALSE if(HAS_TRAIT(moob, TRAIT_NESTED) && moob.status_flags & XENO_HOST) - return + return FALSE + + var/mob/living/carbon/human/human_moob if(ishuman(moob)) - var/mob/living/carbon/human/H = moob - if(H.chem_effect_flags & CHEM_EFFECT_RESIST_NEURO) - return + human_moob = moob + if(human_moob.chem_effect_flags & CHEM_EFFECT_RESIST_NEURO) + return FALSE + var/effect_amt = floor(6 + amount*6) moob.eye_blurry = max(moob.eye_blurry, effect_amt) - moob.apply_effect(max(moob.eye_blurry, effect_amt), EYE_BLUR) + moob.EyeBlur(max(moob.eye_blurry, effect_amt)) moob.apply_damage(5, OXY) // Base "I can't breath oxyloss" Slightly more longer lasting then stamina damage // reworked code below if(!issynth(moob)) @@ -474,18 +601,18 @@ neuro_effect = new(moob, cause_data.resolve_mob()) neuro_effect.strength = effect_amt neuro_effect.duration += neuro_dose - if(moob.coughedtime != 1 && !moob.stat) //Coughing/gasping - moob.coughedtime = 1 + if(human_moob && moob.coughedtime < world.time && !moob.stat) //Coughing/gasping + moob.coughedtime = world.time + 1.5 SECONDS if(prob(50)) moob.Slow(1) moob.emote("cough") else moob.emote("gasp") - addtimer(VARSET_CALLBACK(moob, coughedtime, 0), 1.5 SECONDS) else msg = "You are consumed by the harmless gas, it is hard to navigate in!" - moob.apply_effect(SLOW,1) + moob.Slow(1) to_chat(moob, SPAN_DANGER(msg)) + return TRUE /obj/effect/particle_effect/smoke/xeno_weak_fire time_to_live = 16 @@ -503,16 +630,21 @@ . = ..() /obj/effect/particle_effect/smoke/xeno_weak_fire/affect(mob/living/carbon/moob) - ..() - + . = ..() + if(!.) + return FALSE + if(moob.stat == DEAD) + return FALSE if(isxeno(moob)) - return + return FALSE if(isyautja(moob) && prob(75)) - return - if(moob.stat == DEAD) - return + return FALSE if(HAS_TRAIT(moob, TRAIT_NESTED) && moob.status_flags & XENO_HOST) - return + return FALSE + + var/mob/living/carbon/human/human_moob + if(ishuman(moob)) + human_moob = moob var/effect_amt = floor(6 + amount*6) @@ -521,56 +653,60 @@ if(!moob.eye_blind) //Eye exposure damage to_chat(moob, SPAN_DANGER("Your eyes sting. You can't see!")) moob.SetEyeBlind(floor(effect_amt/3)) - if(moob.coughedtime != 1 && !moob.stat) //Coughing/gasping - moob.coughedtime = 1 - if(prob(50)) - moob.emote("cough") - else - moob.emote("gasp") - addtimer(VARSET_CALLBACK(moob, coughedtime, 0), 1.5 SECONDS) - if (prob(20)) - moob.apply_effect(1, WEAKEN) + + if(human_moob && moob.coughedtime < world.time && !moob.stat) //Coughing/gasping + moob.coughedtime = world.time + 1.5 SECONDS + if(!issynth(moob)) + if(prob(50)) + moob.emote("cough") + else + moob.emote("gasp") + + if(prob(20)) + moob.KnockDown(1) //Topical damage (neurotoxin on exposed skin) to_chat(moob, SPAN_DANGER("Your body is going numb, almost as if paralyzed!")) if(prob(40 + floor(amount*15))) //Highly likely to drop items due to arms/hands seizing up moob.drop_held_item() - if(ishuman(moob)) - var/mob/living/carbon/human/Human = moob - Human.temporary_slowdown = max(Human.temporary_slowdown, 4) //One tick every two second - Human.recalculate_move_delay = TRUE + if(human_moob) + human_moob.temporary_slowdown = max(human_moob.temporary_slowdown, 4) //One tick every two second + human_moob.recalculate_move_delay = TRUE + return TRUE /obj/effect/particle_effect/smoke/xeno_weak_fire/spread_smoke(direction) set waitfor = 0 sleep(spread_speed) - if(QDELETED(src)) return - var/turf/U = get_turf(src) - if(!U) return + if(QDELETED(src)) + return + var/turf/start_turf = get_turf(src) + if(!start_turf) + return for(var/i in GLOB.cardinals) if(direction && i != direction) continue - var/turf/T = get_step(U, i) - if(check_airblock(U,T)) //smoke can't spread that way + var/turf/cur_turf = get_step(start_turf, i) + if(check_airblock(start_turf, cur_turf)) //smoke can't spread that way continue - var/obj/effect/particle_effect/smoke/foundsmoke = locate() in T // Check for existing smoke and act accordingly + var/obj/effect/particle_effect/smoke/foundsmoke = locate() in cur_turf // Check for existing smoke and act accordingly if(foundsmoke) - if(foundsmoke.smokeranking <= src.smokeranking) + if(foundsmoke.smokeranking <= smokeranking) qdel(foundsmoke) else continue - var/obj/effect/particle_effect/smoke/S = new type(T, amount, cause_data) + var/obj/effect/particle_effect/smoke/smoke = new type(cur_turf, amount, cause_data) - for (var/atom/A in T) - if (istype(A, /mob/living)) - var/mob/living/M = A - M.ExtinguishMob() - if(istype(A, /obj/flamer_fire)) - qdel(A) + for (var/atom/cur_atom in cur_turf) + if (istype(cur_atom, /mob/living)) + var/mob/living/affected_mob = cur_atom + affected_mob.ExtinguishMob() + if(istype(cur_atom, /obj/flamer_fire)) + qdel(cur_atom) - S.setDir(pick(GLOB.cardinals)) - S.time_to_live = time_to_live - if(S.amount>0) - S.spread_smoke() + smoke.setDir(pick(GLOB.cardinals)) + smoke.time_to_live = time_to_live + if(smoke.amount > 0) + smoke.spread_smoke() ///////////////////////////////////////////// @@ -604,11 +740,11 @@ /datum/effect_system/smoke_spread/start() if(holder) location = get_turf(holder) - var/obj/effect/particle_effect/smoke/S = new smoke_type(location, amount+1, cause_data) + var/obj/effect/particle_effect/smoke/smoke = new smoke_type(location, amount+1, cause_data) if(lifetime) - S.time_to_live = lifetime - if(S.amount) - S.spread_smoke(direction) + smoke.time_to_live = lifetime + if(smoke.amount > 0) + smoke.spread_smoke(direction) /datum/effect_system/smoke_spread/bad smoke_type = /obj/effect/particle_effect/smoke/bad @@ -645,16 +781,16 @@ /datum/effect_system/smoke_spread/xeno_extinguish_fire/start() if(holder) location = get_turf(holder) - var/obj/effect/particle_effect/smoke/S = new smoke_type(location, amount+1, cause_data) + var/obj/effect/particle_effect/smoke/smoke = new smoke_type(location, amount+1, cause_data) - for (var/atom/A in location) - if (istype(A, /mob/living)) - var/mob/living/M = A - M.ExtinguishMob() - if(istype(A, /obj/flamer_fire)) - qdel(A) + for (var/atom/cur_atom in location) + if (istype(cur_atom, /mob/living)) + var/mob/living/affected_mob = cur_atom + affected_mob.ExtinguishMob() + if(istype(cur_atom, /obj/flamer_fire)) + qdel(cur_atom) if(lifetime) - S.time_to_live = lifetime - if(S.amount) - S.spread_smoke(direction) + smoke.time_to_live = lifetime + if(smoke.amount > 0) + smoke.spread_smoke(direction) diff --git a/code/game/objects/items/devices/cictablet.dm b/code/game/objects/items/devices/cictablet.dm index de03f1779f2b..597886a0cb85 100644 --- a/code/game/objects/items/devices/cictablet.dm +++ b/code/game/objects/items/devices/cictablet.dm @@ -46,7 +46,8 @@ /obj/item/device/cotablet/attack_self(mob/living/carbon/human/user as mob) ..() - if(src.allowed(user) && user.wear_id?.check_biometrics(user)) + var/obj/item/card/id/card = user.get_idcard() + if(allowed(user) && card?.check_biometrics(user)) tgui_interact(user) else to_chat(user, SPAN_DANGER("Access denied.")) @@ -109,8 +110,8 @@ var/signed = null if(ishuman(user)) var/mob/living/carbon/human/human_user = user - var/obj/item/card/id/id = human_user.wear_id - if(istype(id)) + var/obj/item/card/id/id = human_user.get_idcard() + if(id) var/paygrade = get_paygrades(id.paygrade, FALSE, human_user.gender) signed = "[paygrade] [id.registered_name]" diff --git a/code/game/objects/items/devices/defibrillator.dm b/code/game/objects/items/devices/defibrillator.dm index 4a5ad7cc13ed..518fdb1a9591 100644 --- a/code/game/objects/items/devices/defibrillator.dm +++ b/code/game/objects/items/devices/defibrillator.dm @@ -199,8 +199,10 @@ playsound(get_turf(src), 'sound/items/defib_failed.ogg', 25, 0) if(heart && heart.organ_status >= ORGAN_BROKEN) user.visible_message(SPAN_WARNING("[icon2html(src, viewers(src))] \The [src] buzzes: Defibrillation failed. Patient's heart is too damaged. Immediate surgery is advised.")) + msg_admin_niche("[key_name_admin(user)] failed an attempt to revive [key_name_admin(H)] with [src] because of heart damage.") return user.visible_message(SPAN_WARNING("[icon2html(src, viewers(src))] \The [src] buzzes: Defibrillation failed. Patient's general condition does not allow reviving.")) + msg_admin_niche("[key_name_admin(user)] failed an attempt to revive [key_name_admin(H)] with [src].") return if(!H.client) //Freak case, no client at all. This is a braindead mob (like a colonist) @@ -227,6 +229,7 @@ break if(H.health > HEALTH_THRESHOLD_DEAD) user.visible_message(SPAN_NOTICE("[icon2html(src, viewers(src))] \The [src] beeps: Defibrillation successful.")) + msg_admin_niche("[key_name_admin(user)] successfully revived [key_name_admin(H)] with [src].") playsound(get_turf(src), 'sound/items/defib_success.ogg', 25, 0) user.track_life_saved(user.job) user.life_revives_total++ @@ -239,6 +242,7 @@ window_flash(H.client) else user.visible_message(SPAN_WARNING("[icon2html(src, viewers(src))] \The [src] buzzes: Defibrillation failed. Vital signs are too weak, repair damage and try again.")) //Freak case + msg_admin_niche("[key_name_admin(user)] failed an attempt to revive [key_name_admin(H)] with [src] because of weak vitals.") playsound(get_turf(src), 'sound/items/defib_failed.ogg', 25, 0) if(heart && prob(25)) heart.take_damage(rand(min_heart_damage_dealt, max_heart_damage_dealt), TRUE) // Make death and revival leave lasting consequences diff --git a/code/game/objects/items/devices/portable_vendor.dm b/code/game/objects/items/devices/portable_vendor.dm index f45eeadee5b7..3dd8533a046d 100644 --- a/code/game/objects/items/devices/portable_vendor.dm +++ b/code/game/objects/items/devices/portable_vendor.dm @@ -58,8 +58,8 @@ to_chat(user, SPAN_WARNING("Access denied.")) return - var/obj/item/card/id/idcard = human_user.wear_id - if(!istype(idcard)) //not wearing an ID + var/obj/item/card/id/idcard = human_user.get_idcard() + if(!idcard) //not wearing an ID to_chat(human_user, SPAN_WARNING("Access denied. No ID card detected")) return diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 52f8bd76e894..b9b7e94d9ae5 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -414,10 +414,10 @@ var/mob/living/carbon/human/wearer = usr if(!istype(wearer)) return - var/obj/item/card/id/id_card = wearer.wear_id?.GetID() - if(!istype(id_card)) + var/obj/item/card/id/id_card = wearer.get_idcard() + if(!id_card) return - + var/datum/paygrade/paygrade_actual = GLOB.paygrades[id_card.paygrade] if(!paygrade_actual) return diff --git a/code/game/objects/items/pamphlets.dm b/code/game/objects/items/pamphlets.dm index 027ea796c73b..d8bbb2a01432 100644 --- a/code/game/objects/items/pamphlets.dm +++ b/code/game/objects/items/pamphlets.dm @@ -80,8 +80,8 @@ to_chat(user, SPAN_WARNING("Only squad riflemen can use this.")) return - var/obj/item/card/id/ID = user.wear_id - if(!istype(ID)) //not wearing an ID + var/obj/item/card/id/ID = user.get_idcard() + if(!ID) //not wearing an ID to_chat(user, SPAN_WARNING("You should wear your ID before doing this.")) return FALSE if(!ID.check_biometrics(user)) @@ -95,7 +95,7 @@ user.rank_fallback = "ass" user.hud_set_squad() - var/obj/item/card/id/ID = user.wear_id + var/obj/item/card/id/ID = user.get_idcard() ID.set_assignment((user.assigned_squad ? (user.assigned_squad.name + " ") : "") + "Spotter") GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), "Spotter") diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 4882db3b83ea..baa91db19396 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -154,7 +154,7 @@ //Returns true if the user's id matches the lock's /obj/item/storage/backpack/proc/compare_id(mob/living/carbon/human/H) - var/obj/item/card/id/card = H.wear_id + var/obj/item/card/id/card = H.get_idcard() if(!card || locking_id.registered_name != card.registered_name) return FALSE else return TRUE diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 314628bab9a3..f9f5983c925d 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -683,8 +683,8 @@ to_chat(user, SPAN_NOTICE("It must have some kind of ID lock...")) return FALSE - var/obj/item/card/id/idcard = human_user.wear_id - if(!istype(idcard)) //not wearing an ID + var/obj/item/card/id/idcard = human_user.get_idcard() + if(!idcard) //not wearing an ID to_chat(human_user, SPAN_NOTICE("It must have some kind of ID lock...")) return FALSE diff --git a/code/game/objects/items/storage/large_holster.dm b/code/game/objects/items/storage/large_holster.dm index 8bcd471277bd..220bf4e86d1e 100644 --- a/code/game/objects/items/storage/large_holster.dm +++ b/code/game/objects/items/storage/large_holster.dm @@ -195,16 +195,13 @@ can_hold = list(/obj/item/weapon/gun/flamer/M240T) has_gamemode_skin = TRUE -/obj/item/storage/large_holster/fuelpack/Initialize(mapload, obj/item/weapon/gun/flamer/M240T/linked_flamer) +/obj/item/storage/large_holster/fuelpack/Initialize() . = ..() fuel = new /obj/item/ammo_magazine/flamer_tank/large() fuelB = new /obj/item/ammo_magazine/flamer_tank/large/B() fuelX = new /obj/item/ammo_magazine/flamer_tank/large/X() active_fuel = fuel flamer_overlay = overlay_image('icons/obj/items/clothing/backpacks.dmi', "+m240t") - if(linked_flamer) - linked_flamer.fuelpack = src - src.linked_flamer = linked_flamer /obj/item/storage/large_holster/fuelpack/Destroy() QDEL_NULL(active_fuel) diff --git a/code/game/objects/items/storage/smartpack.dm b/code/game/objects/items/storage/smartpack.dm index d012e773617b..3763064aa333 100644 --- a/code/game/objects/items/storage/smartpack.dm +++ b/code/game/objects/items/storage/smartpack.dm @@ -1,5 +1,5 @@ #define BACKPACK_LIGHT_LEVEL 6 -#define PROTECTIVE_COST 50 +#define PROTECTIVE_COST 150 #define REPAIR_COST 100 #define IMMOBILE_COST 20 diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm index 75fb2ab2b377..7b616b275793 100644 --- a/code/game/objects/items/storage/storage.dm +++ b/code/game/objects/items/storage/storage.dm @@ -773,7 +773,7 @@ W is always an item. stop_warning prevents messaging. user may be null.**/ playsound(user.loc, "rustle", 15, TRUE, 6) return TRUE -/obj/item/storage/Initialize(mapload, ...) +/obj/item/storage/Initialize() . = ..() if (!(storage_flags & STORAGE_QUICK_GATHER)) verbs -= /obj/item/storage/verb/toggle_gathering_mode diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index e65d28e96f33..6391eeefb498 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -45,37 +45,37 @@ src.req_access += pick(get_access(ACCESS_LIST_MARINE_MAIN)) /obj/structure/closet/secure_closet/proc/togglelock(mob/living/user) - if(src.opened) + if(opened) to_chat(user, SPAN_NOTICE("Close the locker first.")) return - if(src.broken) + if(broken) to_chat(user, SPAN_WARNING("The locker appears to be broken.")) return if(user.loc == src) to_chat(user, SPAN_NOTICE("You can't reach the lock from inside.")) return - if(src.allowed(user)) + if(allowed(user)) if(slotlocked && ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.wear_id) - var/obj/item/card/id/I = H.wear_id - if(I.claimedgear) + var/mob/living/carbon/human/human = user + var/obj/item/card/id/card = human.get_idcard() + if(card) + if(card.claimedgear) return switch(slotlocktype) if("engi") - if(H.job != "Squad Combat Technician") + if(human.job != "Squad Combat Technician") return // stop people giving medics engineer prep access or IDs somehow if("medic") - if(H.job != "Squad Hospital Corpsman") + if(human.job != "Squad Hospital Corpsman") return // same here - I.claimedgear = 1 // you only get one locker, all other roles have this set 1 by default - slotlocked = 0 // now permanently unlockable + card.claimedgear = TRUE // you only get one locker, all other roles have this set 1 by default + slotlocked = FALSE // now permanently unlockable else return // they have no ID on, fuck them. - src.locked = !src.locked - for(var/mob/O in viewers(user, 3)) - if((O.client && !( O.blinded ))) - to_chat(O, SPAN_NOTICE("The locker has been [locked ? null : "un"]locked by [user].")) + locked = !locked + for(var/mob/mob in viewers(user, 3)) + if((mob.client && !( mob.blinded ))) + to_chat(mob, SPAN_NOTICE("The locker has been [locked ? null : "un"]locked by [user].")) update_icon() else to_chat(user, SPAN_NOTICE("Access Denied")) diff --git a/code/game/objects/structures/misc.dm b/code/game/objects/structures/misc.dm index 89bc3da6ab23..0ab3e98356d5 100644 --- a/code/game/objects/structures/misc.dm +++ b/code/game/objects/structures/misc.dm @@ -7,6 +7,20 @@ anchored = TRUE health = 250 +/obj/structure/showcase/attack_alien(mob/living/carbon/xenomorph/xeno) + if(xeno.a_intent == INTENT_HARM) + if(unslashable) + return + xeno.animation_attack_on(src) + playsound(loc, 'sound/effects/metalhit.ogg', 25, 1) + xeno.visible_message(SPAN_DANGER("[xeno] slices [src] apart!"), + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + deconstruct(FALSE) + return XENO_ATTACK_ACTION + else + attack_hand(xeno) + return XENO_NONCOMBAT_ACTION + /obj/structure/showcase/initialize_pass_flags(datum/pass_flags_container/PF) ..() if (PF) @@ -273,7 +287,7 @@ . = ..() if(over_object != usr || !Adjacent(usr)) return - + if(!ishuman(usr)) return diff --git a/code/game/objects/structures/props.dm b/code/game/objects/structures/props.dm index 745dd7ed40fc..16ab0fed895f 100644 --- a/code/game/objects/structures/props.dm +++ b/code/game/objects/structures/props.dm @@ -686,6 +686,20 @@ health = 75 density = TRUE +/obj/structure/prop/ice_colony/dense/attack_alien(mob/living/carbon/xenomorph/xeno) + if(xeno.a_intent == INTENT_HARM) + if(unslashable) + return + xeno.animation_attack_on(src) + playsound(loc, 'sound/effects/metalhit.ogg', 25, 1) + xeno.visible_message(SPAN_DANGER("[xeno] slices [src] apart!"), + SPAN_DANGER("We slice [src] apart!"), null, 5, CHAT_TYPE_XENO_COMBAT) + deconstruct(FALSE) + return XENO_ATTACK_ACTION + else + attack_hand(xeno) + return XENO_NONCOMBAT_ACTION + /obj/structure/prop/ice_colony/dense/ice_tray name = "ice slab tray" icon_state = "ice_tray" diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 3e61939cb1ca..c1d0352766a6 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -1323,9 +1323,9 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) req_access = list(ACCESS_MARINE_CREWMAN) circuit = /obj/item/circuitboard/computer/supplycomp/vehicle // Can only retrieve one vehicle per round - var/spent = TRUE - var/tank_unlocked = FALSE - var/list/allowed_roles = list(JOB_CREWMAN) + var/spent = FALSE + var/tank_unlocked = TRUE + var/list/allowed_roles = list(JOB_TANK_CREW) var/list/vehicles @@ -1384,9 +1384,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) . = ..() vehicles = list( - new /datum/vehicle_order/apc(), - new /datum/vehicle_order/apc/med(), - new /datum/vehicle_order/apc/cmd(), + new /datum/vehicle_order/tank/plain ) if(!GLOB.VehicleElevatorConsole) @@ -1477,7 +1475,6 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) if(VO?.has_vehicle_lock()) return - spent = TRUE ordered_vehicle = new VO.ordered_vehicle(middle_turf) SSshuttle.vehicle_elevator.request(SSshuttle.getDock("almayer vehicle")) diff --git a/code/modules/admin/player_panel/actions/punish.dm b/code/modules/admin/player_panel/actions/punish.dm index 1b7d313b6121..5d2298fc8fc2 100644 --- a/code/modules/admin/player_panel/actions/punish.dm +++ b/code/modules/admin/player_panel/actions/punish.dm @@ -267,11 +267,12 @@ GLOB.data_core.manifest_modify(new_name, WEAKREF(target_mob)) if(ishuman(target_mob)) var/mob/living/carbon/human/target_human = target_mob - if(target_human.wear_id && target_human.wear_id.registered_ref == WEAKREF(target_human)) - target_human.wear_id.name = "[target_human.real_name]'s ID Card" - target_human.wear_id.registered_name = "[target_human.real_name]" - if(target_human.wear_id.assignment) - target_human.wear_id.name += " ([target_human.wear_id.assignment])" + var/obj/item/card/id/card = target_human.get_idcard() + if(card?.registered_ref == WEAKREF(target_human)) + card.name = "[target_human.real_name]'s ID Card" + card.registered_name = "[target_human.real_name]" + if(card.assignment) + card.name += " ([card.assignment])" target_mob.client.prefs.real_name = new_name target_mob.client.prefs.save_character() diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index 656314469066..69395e6e69e9 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -499,8 +499,8 @@ if(random_names) var/random_name = "[lowertext(H.species.name)] ([rand(1, 999)])" H.change_real_name(H, random_name) - if(H.wear_id) - var/obj/item/card/id/card = H.wear_id + var/obj/item/card/id/card = H.get_idcard() + if(card) card.registered_name = H.real_name card.name = "[card.registered_name]'s ID Card ([card.assignment])" diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm index 000d94e70866..f3af6ed440e9 100644 --- a/code/modules/admin/topic/topic.dm +++ b/code/modules/admin/topic/topic.dm @@ -2248,6 +2248,21 @@ return return remove_tagged_datum(datum_to_remove) + if(href_list["view_bug_report"]) + if(!check_rights(R_ADMIN|R_MOD)) + return + + var/datum/tgui_bug_report_form/bug_report = locate(href_list["view_bug_report"]) + if(!istype(bug_report) || QDELETED(bug_report)) + to_chat(usr, SPAN_WARNING("This bug report is no longer available.")) + return + + if(!bug_report.assign_admin(usr)) + return + + bug_report.tgui_interact(usr) + return + if(href_list["show_tags"]) if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 60c2092d8dc3..83e12be9c574 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -200,14 +200,14 @@ return if (istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M - if (H.wear_id) - var/obj/item/card/id/id = H.wear_id + var/obj/item/card/id/id = H.get_idcard() + if(id) id.icon_state = "gold" - id:access = get_access(ACCESS_LIST_GLOBAL) + id.access = get_access(ACCESS_LIST_GLOBAL) else - var/obj/item/card/id/id = new/obj/item/card/id(M); + id = new(M) id.icon_state = "gold" - id:access = get_access(ACCESS_LIST_GLOBAL) + id.access = get_access(ACCESS_LIST_GLOBAL) id.registered_name = H.real_name id.registered_ref = WEAKREF(H) id.assignment = "Captain" @@ -266,7 +266,7 @@ var/datum/paygrade/account_paygrade = GLOB.paygrades[custom_paygrade] - var/obj/item/card/id/card = account_user.wear_id + var/obj/item/card/id/card = account_user.get_idcard() generated_account = create_account(account_user.real_name, starting_amount, account_paygrade) if(card) card.associated_account_number = generated_account.account_number diff --git a/code/modules/admin/verbs/mob_verbs.dm b/code/modules/admin/verbs/mob_verbs.dm index abb43461c2fe..3b4de192e78f 100644 --- a/code/modules/admin/verbs/mob_verbs.dm +++ b/code/modules/admin/verbs/mob_verbs.dm @@ -370,7 +370,7 @@ message_admins("[key_name(src)] changed hivenumber of [H] to [H.hivenumber].") -/client/proc/cmd_admin_change_their_name(mob/living/carbon/X) +/client/proc/cmd_admin_change_their_name(mob/living/carbon/carbon) set name = "Change Name" set category = null @@ -378,19 +378,20 @@ if(!newname) return - if(!X) + if(!carbon) to_chat(usr, "This mob no longer exists") return - var/old_name = X.name - X.change_real_name(X, newname) - if(istype(X, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = X - if(H.wear_id) - H.wear_id.name = "[H.real_name]'s ID Card" - H.wear_id.registered_name = "[H.real_name]" - if(H.wear_id.assignment) - H.wear_id.name += " ([H.wear_id.assignment])" + var/old_name = carbon.name + carbon.change_real_name(carbon, newname) + if(ishuman(carbon)) + var/mob/living/carbon/human/human = carbon + var/obj/item/card/id/card = human.get_idcard() + if(card) + card.name = "[human.real_name]'s ID Card" + card.registered_name = "[human.real_name]" + if(card.assignment) + card.name += " ([card.assignment])" message_admins("[key_name(src)] changed name of [old_name] to [newname].") diff --git a/code/modules/admin/verbs/select_equipment.dm b/code/modules/admin/verbs/select_equipment.dm index 7e78652c5c35..90269f70c1aa 100644 --- a/code/modules/admin/verbs/select_equipment.dm +++ b/code/modules/admin/verbs/select_equipment.dm @@ -10,15 +10,15 @@ var/newrank = tgui_input_list(usr, "Select new rank for [H]", "Change the mob's rank and skills", rank_list) if (!newrank) return - if(!H) + if(QDELETED(H)) return - var/obj/item/card/id/I = H.wear_id + var/obj/item/card/id/I = H.get_idcard() if(GLOB.RoleAuthority.roles_by_name[newrank]) var/datum/job/J = GLOB.RoleAuthority.roles_by_name[newrank] H.comm_title = J.get_comm_title() H.set_skills(J.get_skills()) - if(istype(I)) + if(I) I.access = J.get_access() I.rank = J.title I.assignment = J.disp_title @@ -48,7 +48,7 @@ if(!newskillset || newskillset == "Keep Skillset") return - if(!H) + if(QDELETED(H)) return var/datum/job/J = GLOB.RoleAuthority.roles_by_name[newskillset] @@ -58,25 +58,25 @@ var/newcommtitle = input("Write the custom title appearing on comms chat (e.g. Spc)", "Comms title") as null|text if(!newcommtitle) return - if(!H) + if(QDELETED(H)) return H.comm_title = newcommtitle - if(!istype(I) || I != H.wear_id) + if(!I || I != H.get_idcard()) to_chat(usr, "The mob has no id card, unable to modify ID and chat title.") else var/newchattitle = input("Write the custom title appearing in chat (e.g. SGT)", "Chat title") as null|text if(!newchattitle) return - if(!H || I != H.wear_id) + if(QDELETED(H) || I != H.get_idcard()) return I.paygrade = newchattitle var/IDtitle = input("Write the custom title on your ID (e.g. Squad Specialist)", "ID title") as null|text if(!IDtitle) return - if(!H || I != H.wear_id) + if(QDELETED(H) || I != H.get_idcard()) return I.rank = IDtitle @@ -92,7 +92,7 @@ if(!newskillset) return - if(!H) + if(QDELETED(H)) return var/datum/job/J = GLOB.RoleAuthority.roles_by_name[newskillset] diff --git a/code/modules/character_traits/biology_traits.dm b/code/modules/character_traits/biology_traits.dm index a78dd0d38464..2220f8f82fd2 100644 --- a/code/modules/character_traits/biology_traits.dm +++ b/code/modules/character_traits/biology_traits.dm @@ -82,7 +82,7 @@ /datum/character_trait/biology/bad_leg/New() . = ..() // Not on definition as several lists are added - inapplicable_roles = list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL, JOB_ORDNANCE_TECH, JOB_MARINE) + JOB_SQUAD_ROLES_LIST + JOB_MARINE_RAIDER_ROLES_LIST + JOB_ERT_GRUNT_LIST + inapplicable_roles = list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_TANK_CREW, JOB_INTEL, JOB_ORDNANCE_TECH, JOB_MARINE) + JOB_SQUAD_ROLES_LIST + JOB_MARINE_RAIDER_ROLES_LIST + JOB_ERT_GRUNT_LIST bad_cane_roles = list(JOB_SURVIVOR, JOB_STOWAWAY) fancy_cane_roles = list(JOB_CO_SURVIVOR, CORPORATE_SURVIVOR, JOB_CMO, JOB_CORPORATE_LIAISON, JOB_SEA, JOB_CHIEF_ENGINEER) + JOB_COMMAND_ROLES_LIST inapplicable_species = list(SPECIES_SYNTHETIC, SPECIES_YAUTJA) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 12111e12be3a..1971deba6356 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -667,7 +667,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( * * width - Screen' width. * * height - Screen's height. */ -/datum/preferences/proc/SetChoices(mob/user, limit = 20, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750) +/datum/preferences/proc/SetChoices(mob/user, limit = 21, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750) if(!GLOB.RoleAuthority) return @@ -785,7 +785,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( * * width - Screen' width. * * height - Screen's height. */ -/datum/preferences/proc/set_job_slots(mob/user, limit = 20, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750) +/datum/preferences/proc/set_job_slots(mob/user, limit = 21, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750) if(!GLOB.RoleAuthority) return diff --git a/code/modules/cm_aliens/structures/egg.dm b/code/modules/cm_aliens/structures/egg.dm index 889359bb7eef..4e22f1b5e6ba 100644 --- a/code/modules/cm_aliens/structures/egg.dm +++ b/code/modules/cm_aliens/structures/egg.dm @@ -55,6 +55,10 @@ . = ..() if(isxeno(user) && status == EGG_GROWN) . += "Ctrl + Click egg to retrieve child into your empty hand if you can carry it." + if(isobserver(user) && status == EGG_GROWN) + var/datum/hive_status/hive = GLOB.hive_datum[hivenumber] + var/current_hugger_count = hive.get_current_playable_facehugger_count(); + . += "There are currently [SPAN_NOTICE("[current_hugger_count]")] facehuggers in the hive. The hive can support [SPAN_NOTICE("[hive.playable_hugger_limit]")] facehuggers." /obj/effect/alien/egg/attack_alien(mob/living/carbon/xenomorph/M) if(status == EGG_BURST || status == EGG_DESTROYED) diff --git a/code/modules/cm_aliens/structures/special/egg_morpher.dm b/code/modules/cm_aliens/structures/special/egg_morpher.dm index e24ff8d167d8..32cf0ee591b5 100644 --- a/code/modules/cm_aliens/structures/special/egg_morpher.dm +++ b/code/modules/cm_aliens/structures/special/egg_morpher.dm @@ -44,6 +44,9 @@ . = ..() if(isxeno(user) || isobserver(user)) . += "It has [stored_huggers] facehuggers within, with [huggers_to_grow] more to grow (reserved: [huggers_reserved])." + if(isobserver(user)) + var/current_hugger_count = linked_hive.get_current_playable_facehugger_count(); + . += "There are currently [SPAN_NOTICE("[current_hugger_count]")] facehuggers in the hive. The hive can support [SPAN_NOTICE("[linked_hive.playable_hugger_limit]")] facehuggers." /obj/effect/alien/resin/special/eggmorph/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/grab)) diff --git a/code/modules/cm_aliens/structures/special/pylon_core.dm b/code/modules/cm_aliens/structures/special/pylon_core.dm index b0270848950b..ae3be4d55bef 100644 --- a/code/modules/cm_aliens/structures/special/pylon_core.dm +++ b/code/modules/cm_aliens/structures/special/pylon_core.dm @@ -62,6 +62,9 @@ /obj/effect/alien/resin/special/pylon/get_examine_text(mob/user) . = ..() + if(!isobserver(user) && !isxeno(user)) + return + var/lesser_count = 0 for(var/mob/living/carbon/xenomorph/lesser_drone/lesser in linked_hive.totalXenos) lesser_count++ diff --git a/code/modules/cm_marines/equipment/kit_boxes.dm b/code/modules/cm_marines/equipment/kit_boxes.dm index ebd9ca9dcbd9..cbc7deffcd07 100644 --- a/code/modules/cm_marines/equipment/kit_boxes.dm +++ b/code/modules/cm_marines/equipment/kit_boxes.dm @@ -129,8 +129,8 @@ /obj/item/storage/box/spec/pyro/fill_preset_inventory() new /obj/item/clothing/suit/storage/marine/M35(src) new /obj/item/clothing/head/helmet/marine/pyro(src) - var/obj/item/weapon/gun/flamer/M240T/flamer = new(src) - new /obj/item/storage/large_holster/fuelpack(src, flamer) + new /obj/item/storage/large_holster/fuelpack(src) + new /obj/item/weapon/gun/flamer/M240T(src) new /obj/item/ammo_magazine/flamer_tank/large(src) new /obj/item/storage/pouch/flamertank(src) new /obj/item/tool/extinguisher(src) @@ -257,8 +257,8 @@ if(!GLOB.available_specialist_kit_boxes[selection] || GLOB.available_specialist_kit_boxes[selection] <= 0) to_chat(user, SPAN_WARNING("No more kits of this type may be chosen!")) return FALSE - var/obj/item/card/id/ID = user.wear_id - if(!istype(ID) || ID.registered_ref != WEAKREF(user)) + var/obj/item/card/id/card = user.get_idcard() + if(!card || card.registered_ref != WEAKREF(user)) to_chat(user, SPAN_WARNING("You must be wearing your [SPAN_INFO("ID card")] or [SPAN_INFO("dog tags")] to select a specialization!")) return var/turf/T = get_turf(loc) @@ -297,8 +297,8 @@ user.skills.set_skill(SKILL_ENGINEER, SKILL_ENGINEER_TRAINED) if(specialist_assignment) user.put_in_hands(spec_box) - ID.set_assignment((user.assigned_squad && squad_assignment_update ? (user.assigned_squad.name + " ") : "") + ID.assignment + " ([specialist_assignment])") - GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), ID.assignment) + card.set_assignment((user.assigned_squad && squad_assignment_update ? (user.assigned_squad.name + " ") : "") + card.assignment + " ([specialist_assignment])") + GLOB.data_core.manifest_modify(user.real_name, WEAKREF(user), card.assignment) return TRUE return FALSE diff --git a/code/modules/cm_marines/marines_consoles.dm b/code/modules/cm_marines/marines_consoles.dm index 6d1aba4aca70..93ef0e21e8cb 100644 --- a/code/modules/cm_marines/marines_consoles.dm +++ b/code/modules/cm_marines/marines_consoles.dm @@ -942,6 +942,7 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor) JOB_DROPSHIP_PILOT = 23, JOB_DROPSHIP_CREW_CHIEF = 24, JOB_INTEL = 25, + JOB_TANK_CREW = 26, // 30-39: Security JOB_CHIEF_POLICE = 30, JOB_PROVOST_TML = 30, diff --git a/code/modules/cm_marines/orbital_cannon.dm b/code/modules/cm_marines/orbital_cannon.dm index ce69115cee48..a4286b043eba 100644 --- a/code/modules/cm_marines/orbital_cannon.dm +++ b/code/modules/cm_marines/orbital_cannon.dm @@ -512,15 +512,13 @@ GLOBAL_LIST_EMPTY(orbital_cannon_cancellation) var/distance = 18 var/fire_level = 70 var/burn_level = 80 - var/fire_color = null + var/fire_color = LIGHT_COLOR_CYAN var/fire_type = "white" /obj/structure/ob_ammo/warhead/incendiary/warhead_impact(turf/target) . = ..() if (!.) return - if(fire_color) - fire_type = "dynamic" new /obj/effect/overlay/temp/blinking_laser (target) sleep(10) diff --git a/code/modules/cm_marines/overwatch.dm b/code/modules/cm_marines/overwatch.dm index 8dfd1dc3f929..84a27622959a 100644 --- a/code/modules/cm_marines/overwatch.dm +++ b/code/modules/cm_marines/overwatch.dm @@ -184,13 +184,11 @@ if(is_ground_level(current_turf.z)) continue + var/obj/item/card/id/card = marine_human.get_idcard() if(marine_human.job) role = marine_human.job - else if(istype(marine_human.wear_id, /obj/item/card/id)) //decapitated marine is mindless, - var/obj/item/card/id/ID = marine_human.wear_id //we use their ID to get their role. - if(ID.rank) - role = ID.rank - + else if(card?.rank) //decapitated marine is mindless, + role = card.rank if(current_squad.squad_leader) if(marine_human == current_squad.squad_leader) @@ -249,15 +247,14 @@ if(JOB_SQUAD_SPECIALIST) spec_count++ if(marine_human) - if(istype(marine_human.wear_id, /obj/item/card/id)) //decapitated marine is mindless, - var/obj/item/card/id/ID = marine_human.wear_id //we use their ID to get their role. - if(ID.assignment) - if(specialist_type) - specialist_type = "MULTIPLE" - else - var/list/spec_type = splittext(ID.assignment, "(") - if(islist(spec_type) && (length(spec_type) > 1)) - specialist_type = splittext(spec_type[2], ")")[1] + var/obj/item/card/id/card = marine_human.get_idcard() + if(card?.assignment) //decapitated marine is mindless, + if(specialist_type) + specialist_type = "MULTIPLE" + else + var/list/spec_type = splittext(card.assignment, "(") + if(islist(spec_type) && (length(spec_type) > 1)) + specialist_type = splittext(spec_type[2], ")")[1] else if(!specialist_type) specialist_type = "UNKNOWN" if(mob_state != "Dead") @@ -589,9 +586,9 @@ if(sl_headset) sl_headset.keys += new /obj/item/device/encryptionkey/squadlead/acting(sl_headset) sl_headset.recalculateChannels() - if(istype(selected_sl.wear_id, /obj/item/card/id)) - var/obj/item/card/id/ID = selected_sl.wear_id - ID.access += ACCESS_MARINE_LEADER + var/obj/item/card/id/card = selected_sl.get_idcard() + if(card) + card.access += ACCESS_MARINE_LEADER selected_sl.hud_set_squad() selected_sl.update_inv_head() //updating marine helmet leader overlays selected_sl.update_inv_wear_suit() @@ -696,7 +693,8 @@ to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("[transfer_marine] is KIA.")]") return - if(!istype(transfer_marine.wear_id, /obj/item/card/id)) + var/obj/item/card/id/card = transfer_marine.get_idcard() + if(!card) to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Transfer aborted. [transfer_marine] isn't wearing an ID.")]") return @@ -713,7 +711,8 @@ to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("[transfer_marine] is KIA.")]") return - if(!istype(transfer_marine.wear_id, /obj/item/card/id)) + card = transfer_marine.get_idcard() + if(!card) to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Transfer aborted. [transfer_marine] isn't wearing an ID.")]") return @@ -726,7 +725,7 @@ to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Transfer aborted. [new_squad] can't have another [transfer_marine.job].")]") return - . = transfer_marine_to_squad(transfer_marine, new_squad, old_squad) + . = transfer_marine_to_squad(transfer_marine, new_squad, old_squad, card) if(.) visible_message("[icon2html(src, viewers(src))] [SPAN_BOLDNOTICE("[transfer_marine] has been transfered from squad '[old_squad]' to squad '[new_squad]'. Logging to enlistment file.")]") to_chat(transfer_marine, "[icon2html(src, transfer_marine)] \[Overwatch\]: You've been transfered to [new_squad]!") diff --git a/code/modules/cm_marines/radar.dm b/code/modules/cm_marines/radar.dm index 80b3bb7bcb0c..aa332d601395 100644 --- a/code/modules/cm_marines/radar.dm +++ b/code/modules/cm_marines/radar.dm @@ -205,12 +205,12 @@ continue var/crewmember_name = "Unknown" var/crewmember_rank = "Unknown" - if(humanoid.wear_id) - var/obj/item/card/id/ID = humanoid.wear_id.GetID() - if(ID?.registered_name) - crewmember_name = ID.registered_name - if(ID?.assignment) - crewmember_rank = ID.assignment + var/obj/item/card/id/card = humanoid.get_idcard() + if(card) + if(card.registered_name) + crewmember_name = card.registered_name + if(card.assignment) + crewmember_rank = card.assignment switch(humanoid.stat) if(CONSCIOUS) crewmember_name = "[crewmember_name] ([crewmember_rank]) (Conscious)" diff --git a/code/modules/cm_tech/droppod/equipment.dm b/code/modules/cm_tech/droppod/equipment.dm index 727bfccf0e28..da8392a1517e 100644 --- a/code/modules/cm_tech/droppod/equipment.dm +++ b/code/modules/cm_tech/droppod/equipment.dm @@ -27,11 +27,22 @@ equipment_to_spawn.forceMove(loc) /obj/structure/droppod/equipment/sentry/spawn_equipment(equipment, mob/M) - var/obj/structure/machinery/defenses/sentry/S = ..() - S.owner_mob = M - return S + var/obj/structure/machinery/defenses/sentry/sentry = ..() + sentry.owner_mob = M + return sentry /obj/structure/droppod/equipment/sentry/move_equipment() ..() - var/obj/structure/machinery/defenses/sentry/S = equipment_to_spawn - S.power_on() + var/obj/structure/machinery/defenses/sentry/sentry = equipment_to_spawn + sentry.power_on() + +/obj/structure/droppod/equipment/sentry_holder/spawn_equipment(equipment, mob/M) + var/obj/structure/machinery/sentry_holder/holder = ..() + var/obj/structure/machinery/defenses/sentry/sentry = holder.deployed_turret + sentry.owner_mob = M + return holder + +/obj/structure/droppod/equipment/sentry_holder/move_equipment() + ..() + var/obj/structure/machinery/sentry_holder/holder = equipment_to_spawn + holder.deploy_sentry() diff --git a/code/modules/cm_tech/implements/tank.dm b/code/modules/cm_tech/implements/tank.dm index ec1b81e9f675..9cd8a5c6a804 100644 --- a/code/modules/cm_tech/implements/tank.dm +++ b/code/modules/cm_tech/implements/tank.dm @@ -18,7 +18,7 @@ name = "tank coupon" desc = "We're done playing! This coupon allows the ship crew to retrieve a complete Longstreet tank from Vehicle ASRS. Make sure to send the ASRS lift down so it can be retrieved. One use only. LTB not included. Comes with free friendly fire." vehicle_type = /datum/vehicle_order/tank/broken - vehicle_category = "TANK" + vehicle_category = "LONGSTREET" /obj/item/vehicle_coupon/attack_self(mob/user) if(QDELETED(src)) diff --git a/code/modules/cm_tech/techs/marine/tier1/arc.dm b/code/modules/cm_tech/techs/marine/tier1/arc.dm index dc02762cc5f0..1e3a193626c4 100644 --- a/code/modules/cm_tech/techs/marine/tier1/arc.dm +++ b/code/modules/cm_tech/techs/marine/tier1/arc.dm @@ -12,6 +12,19 @@ flags = TREE_FLAG_MARINE + +/datum/tech/arc/can_unlock(mob/unlocking_mob) + . = ..() + + var/obj/structure/machinery/cm_vending/gear/vehicle_crew/gearcomp = GLOB.VehicleGearConsole + + if(gearcomp.selected_vehicle == "TANK") + to_chat(unlocking_mob, SPAN_WARNING ("A vehicle has already been selected for this operation.")) + return FALSE + + return TRUE + + /datum/tech/arc/on_unlock() . = ..() diff --git a/code/modules/cm_tech/techtree.dm b/code/modules/cm_tech/techtree.dm index 689600fcc5f2..fbad30478081 100644 --- a/code/modules/cm_tech/techtree.dm +++ b/code/modules/cm_tech/techtree.dm @@ -180,6 +180,7 @@ /// `tech`: a typepath to a tech /datum/techtree/proc/get_node(tech) + RETURN_TYPE(/datum/tech) return techs_by_type[tech] /datum/techtree/proc/on_node_gained(obj/structure/resource_node/RN) diff --git a/code/modules/defenses/defenses.dm b/code/modules/defenses/defenses.dm index 61c5a80a2473..af4e497862fa 100644 --- a/code/modules/defenses/defenses.dm +++ b/code/modules/defenses/defenses.dm @@ -81,7 +81,7 @@ if(ishuman(user)) message += SPAN_INFO("A multitool can be used to disassemble it.") message += "\n" - message += SPAN_INFO("The turret is currently [locked? "locked" : "unlocked"] to non-engineers.") + message += SPAN_INFO("It is currently [locked? "locked" : "unlocked"] to non-engineers.") message += "\n" message += SPAN_INFO("It has [SPAN_HELPFUL("[health]/[health_max]")] health.") message += "\n" diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index 11b53fd4a317..492482f19416 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -468,7 +468,7 @@ fire(target) /obj/structure/machinery/defenses/sentry/premade - name = "UA-577 Gauss Turret" + name = "\improper UA-577 Gauss Turret" immobile = TRUE turned_on = TRUE icon_state = "premade" //for the map editor only @@ -497,14 +497,14 @@ return /obj/structure/machinery/defenses/sentry/premade/dumb - name = "Modified UA-577 Gauss Turret" + name = "modified UA-577 Gauss Turret" desc = "A deployable, semi-automated turret with AI targeting capabilities. Armed with an M30 Autocannon and a high-capacity drum magazine. This one's IFF system has been disabled, and it will open fire on any targets within range." faction_group = null ammo = new /obj/item/ammo_magazine/sentry/premade/dumb //the turret inside a static sentry deployment system /obj/structure/machinery/defenses/sentry/premade/deployable - name = "UA-633 Static Gauss Turret" + name = "\improper UA-633 Static Gauss Turret" desc = "A fully-automated defence turret with mid-range targeting capabilities. Armed with a modified M32-S Autocannon and an internal belt feed." density = TRUE faction_group = FACTION_LIST_MARINE @@ -544,13 +544,13 @@ selected_categories[SENTRY_CATEGORY_IFF] = SENTRY_FACTION_COLONY /obj/structure/machinery/defenses/sentry/premade/deployable/almayer - name = "UA-635C Static Gauss Turret" + name = "\improper UA-635C Static Gauss Turret" desc = "A fully-automated defence turret with mid-range targeting capabilities. Armed with a modified M32-S Autocannon and an internal belt feed and modified for UA warship use." fire_delay = 0.4 SECONDS omni_directional = TRUE /obj/structure/machinery/defenses/sentry/premade/deployable/almayer/mini - name = "UA 512-S mini sentry" + name = "\improper UA 512-S mini sentry" desc = "A fully-automated defence turret with mid-range targeting capabilities. Armed with a modified M30 Autocannon and an internal belt feed and modified for UA warship use." defense_type = "Mini" fire_delay = 0.25 SECONDS @@ -563,6 +563,68 @@ handheld_type = /obj/item/defenses/handheld/sentry/mini composite_icon = FALSE +/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone + name = "\improper UA-577 Spaceborne Gauss Turret" + fire_delay = 2 + sentry_range = 10 + omni_directional = TRUE + /// How long the battery for this turret lasts. Will warn low at 70% and critical at 90% use. + var/battery_duration = 20 MINUTES + /// The current battery state + var/battery_state = TURRET_BATTERY_STATE_OK + +/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone/Initialize() + . = ..() + + var/low_battery_time = ceil(battery_duration * 0.7) + var/critical_battery_time = ceil(battery_duration * 0.9) + addtimer(CALLBACK(src, PROC_REF(set_battery_state), TURRET_BATTERY_STATE_LOW), low_battery_time) + addtimer(CALLBACK(src, PROC_REF(set_battery_state), TURRET_BATTERY_STATE_CRITICAL), critical_battery_time) + addtimer(CALLBACK(src, PROC_REF(set_battery_state), TURRET_BATTERY_STATE_DEAD), battery_duration) + +/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone/get_examine_text(mob/user) + . = ..() + switch(battery_state) + if(TURRET_BATTERY_STATE_OK) + . += SPAN_INFO("Its battery indictor is green, fully charged.") + if(TURRET_BATTERY_STATE_LOW) + . += SPAN_INFO("Its battery indictor is flashing yellow.") + if(TURRET_BATTERY_STATE_CRITICAL) + . += SPAN_INFO("Its battery indictor is flashing red.") + if(TURRET_BATTERY_STATE_DEAD) + . += SPAN_INFO("It appears to be offline.") + +/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone/proc/set_battery_state(state) + battery_state = state + switch(state) + if(TURRET_BATTERY_STATE_LOW) + playsound(loc, 'sound/weapons/smg_empty_alarm.ogg', 15, 1) + visible_message(SPAN_WARNING("[name] beeps steadily as its battery is getting low.")) + if(TURRET_BATTERY_STATE_CRITICAL) + playsound(loc, 'sound/weapons/smg_empty_alarm.ogg', 20, 1) + visible_message(SPAN_WARNING("[name] beeps steadily as its battery gets critically low.")) + if(TURRET_BATTERY_STATE_DEAD) + playsound(loc, 'sound/machines/terminal_shutdown.ogg', 35, 1) + turned_on = FALSE + power_off_action() + update_icon() + +/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone/set_range() + var/range = sentry_range - 1 + var/dbl_range = range * 2 + + if(omni_directional) + range_bounds = RECT(x, y, dbl_range, dbl_range) + return + switch(dir) + if(EAST) + range_bounds = RECT(x+range, y, dbl_range, dbl_range) + if(WEST) + range_bounds = RECT(x-range, y, dbl_range, dbl_range) + if(NORTH) + range_bounds = RECT(x, y+range, dbl_range, dbl_range) + if(SOUTH) + range_bounds = RECT(x, y-range, dbl_range, dbl_range) //the turret inside the shuttle sentry deployment system /obj/structure/machinery/defenses/sentry/premade/dropship @@ -583,7 +645,7 @@ #define SENTRY_SNIPER_RANGE 10 /obj/structure/machinery/defenses/sentry/dmr - name = "UA 725-D Sniper Sentry" + name = "\improper UA 725-D Sniper Sentry" desc = "A fully-automated defence turret with long-range targeting capabilities. Armed with a modified M32-S Autocannon and an internal belt feed." defense_type = "DMR" health = 150 @@ -620,7 +682,7 @@ #undef SENTRY_SNIPER_RANGE /obj/structure/machinery/defenses/sentry/shotgun - name = "UA 12-G Shotgun Sentry" + name = "\improper UA 12-G Shotgun Sentry" defense_type = "Shotgun" health = 250 health_max = 250 @@ -651,7 +713,7 @@ L.apply_effect(1, WEAKEN) /obj/structure/machinery/defenses/sentry/mini - name = "UA 512-M mini sentry" + name = "\improper UA 512-M mini sentry" defense_type = "Mini" fire_delay = 0.15 SECONDS health = 150 diff --git a/code/modules/economy/ATM.dm b/code/modules/economy/ATM.dm index f4aaf7c06560..e7ac5d767dab 100644 --- a/code/modules/economy/ATM.dm +++ b/code/modules/economy/ATM.dm @@ -428,26 +428,28 @@ log transactions //stolen wholesale and then edited a bit from newscasters, which are awesome and by Agouri /obj/structure/machinery/atm/proc/scan_user(mob/living/carbon/human/human_user as mob) + if(authenticated_account) + return + var/obj/item/card/id/card = human_user.get_idcard() + if(!card) + return + + authenticated_account = attempt_account_access(card.associated_account_number) if(!authenticated_account) - if(human_user.wear_id) - var/obj/item/card/id/I - if(istype(human_user.wear_id, /obj/item/card/id)) - I = human_user.wear_id - if(I) - authenticated_account = attempt_account_access(I.associated_account_number) - if(authenticated_account) - to_chat(human_user, SPAN_NOTICE("[icon2html(src, human_user)] Access granted. Welcome user '[authenticated_account.owner_name].'")) - - //create a transaction log entry - var/datum/transaction/T = new() - T.target_name = authenticated_account.owner_name - T.purpose = "Remote terminal access" - T.source_terminal = machine_id - T.date = GLOB.current_date_string - T.time = worldtime2text() - authenticated_account.transaction_log.Add(T) - - view_screen = NO_SCREEN + return + + to_chat(human_user, SPAN_NOTICE("[icon2html(src, human_user)] Access granted. Welcome user '[authenticated_account.owner_name].'")) + + //create a transaction log entry + var/datum/transaction/log = new() + log.target_name = authenticated_account.owner_name + log.purpose = "Remote terminal access" + log.source_terminal = machine_id + log.date = GLOB.current_date_string + log.time = worldtime2text() + authenticated_account.transaction_log.Add(log) + + view_screen = NO_SCREEN // put the currently held id on the ground or in the hand of the user /obj/structure/machinery/atm/proc/release_held_id(mob/living/carbon/human/human_user as mob) diff --git a/code/modules/gear_presets/cmb.dm b/code/modules/gear_presets/cmb.dm index 8be44f94a2e8..45c06776a4a8 100644 --- a/code/modules/gear_presets/cmb.dm +++ b/code/modules/gear_presets/cmb.dm @@ -460,9 +460,6 @@ /datum/equipment_preset/uscm/cmb/leader name = "USCM Anchorpoint Station Team Leader" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE -/datum/equipment_preset/uscm/cmb/leader/New() - . = ..() - assignment = "Anchorpoint Station Marine Team Leader" rank = JOB_SQUAD_LEADER paygrade = PAY_SHORT_ME6 @@ -505,9 +502,6 @@ /datum/equipment_preset/uscm/cmb/rto name = "USCM Anchorpoint Station Technical Specialist" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE -/datum/equipment_preset/uscm/cmb/rto/New() - . = ..() - assignment = "Anchorpoint Station Marine Technical Specialist" rank = JOB_SQUAD_TEAM_LEADER paygrade = PAY_SHORT_ME4 @@ -550,9 +544,6 @@ /datum/equipment_preset/uscm/cmb/medic name = "USCM Anchorpoint Station Corpsman" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE -/datum/equipment_preset/uscm/cmb/medic/New() - . = ..() - assignment = "Anchorpoint Station Hospital Corpsman" rank = JOB_SQUAD_MEDIC paygrade = PAY_SHORT_ME3 @@ -611,9 +602,6 @@ /datum/equipment_preset/uscm/cmb/smartgunner name = "USCM Anchorpoint Station Smartgunner" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE -/datum/equipment_preset/uscm/cmb/smartgunner/New() - . = ..() - assignment = "Anchorpoint Station Marine Smartgunner" rank = JOB_SQUAD_SMARTGUN paygrade = PAY_SHORT_ME3 diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm index b8330e0e4c70..7bf9592a6209 100644 --- a/code/modules/gear_presets/corpses.dm +++ b/code/modules/gear_presets/corpses.dm @@ -529,6 +529,9 @@ //Colonial Supervisor +/datum/equipment_preset/corpse/wy + flags = EQUIPMENT_PRESET_STUB + /datum/equipment_preset/corpse/wy/manager name = "Corpse - Corporate Supervisor" assignment = "Colony Supervisor" diff --git a/code/modules/gear_presets/other.dm b/code/modules/gear_presets/other.dm index f51a5bfe5f76..9ea05749fe0d 100644 --- a/code/modules/gear_presets/other.dm +++ b/code/modules/gear_presets/other.dm @@ -881,8 +881,8 @@ flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/dogtag - assignment = JOB_CREWMAN - rank = JOB_CREWMAN + assignment = JOB_TANK_CREW + rank = JOB_TANK_CREW paygrade = PAY_SHORT_ME4 role_comm_title = "CRMN" minimum_age = 30 @@ -968,6 +968,7 @@ new_human.nutrition = NUTRITION_LOW /datum/equipment_preset/tutorial/fed + name = "Tutorial (Fed)" underfed = FALSE diff --git a/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm b/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm index 3fdbe72c05be..c09e6eee9385 100644 --- a/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm +++ b/code/modules/gear_presets/survivors/fiorina_sciannex/riot_in_progress_insert_fiorina_nightmare.dm @@ -83,7 +83,10 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/mp5, WEAR_IN_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/mp5, WEAR_IN_R_STORE) -// cmb synth +// cmb synth (of note /datum/equipment_preset/synth/survivor/cmb_synth also exists) +/datum/equipment_preset/synth/survivor/cmb + flags = EQUIPMENT_PRESET_STUB + /datum/equipment_preset/synth/survivor/cmb/synth name = "Survivor - Synthetic - CMB Investigative Synthetic(Riot Response)" paygrade = PAY_SHORT_CMBS diff --git a/code/modules/gear_presets/survivors/misc.dm b/code/modules/gear_presets/survivors/misc.dm index 5b010a8cb8ea..329bac97a89f 100644 --- a/code/modules/gear_presets/survivors/misc.dm +++ b/code/modules/gear_presets/survivors/misc.dm @@ -204,8 +204,8 @@ Everything below isn't used or out of place. // ----- Mercenary Survivors -// after double check pmc/miner/one isn't being used anywhere. -/datum/equipment_preset/survivor/pmc/miner/one +// after double check pmc/miner isn't being used anywhere. +/datum/equipment_preset/survivor/pmc/miner name = "Survivor - Mercenary" flags = EQUIPMENT_PRESET_START_OF_ROUND @@ -214,7 +214,7 @@ Everything below isn't used or out of place. flags = EQUIPMENT_PRESET_START_OF_ROUND access = list(ACCESS_CIVILIAN_PUBLIC) -/datum/equipment_preset/survivor/pmc/miner/one/load_gear(mob/living/carbon/human/new_human) +/datum/equipment_preset/survivor/pmc/miner/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/mercenary/miner, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/mercenary/miner, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/mercenary/miner, WEAR_HEAD) @@ -293,6 +293,7 @@ Everything below isn't used or out of place. /// used in Shivas Snowball /datum/equipment_preset/survivor/clf/cold + name = "CLF Survivor (Cold)" //children of spawn rebel shoes proc /datum/equipment_preset/survivor/clf/cold/spawn_rebel_suit(mob/living/carbon/human/human) diff --git a/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm b/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm index 44d029d44c87..124bf2772be5 100644 --- a/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm +++ b/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm @@ -45,7 +45,6 @@ /datum/equipment_preset/survivor/pmc/medic name = "Survivor - PMC Medic" assignment = JOB_PMC_MEDIC - rank = JOB_PMC_MEDIC paygrade = PAY_SHORT_PMC_MS skills = /datum/skills/civilian/survivor/pmc/medic @@ -65,7 +64,6 @@ /datum/equipment_preset/survivor/pmc/engineer name = "Survivor - PMC Engineer" assignment = JOB_PMC_ENGINEER - rank = JOB_PMC_ENGINEER paygrade = PAY_SHORT_PMC_TEC skills = /datum/skills/civilian/survivor/pmc/engineer @@ -152,42 +150,42 @@ role_comm_title = "WY Syn" /datum/equipment_preset/synth/survivor/pmc/load_race(mob/living/carbon/human/new_human) - new_human.set_species(SYNTH_GEN_THREE) + new_human.set_species(SYNTH_GEN_THREE) /datum/equipment_preset/synth/survivor/pmc/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc, WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/droppouch, WEAR_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/scalpel/manager, WEAR_IN_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/weylandyutani, WEAR_IN_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_ACCESSORY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth, WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/nailgun, WEAR_IN_JACKET) - - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc, WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/pmc/command/hvh, WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE) - - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) - - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/white, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/upgraded, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/tool/crew_monitor, WEAR_IN_BACK) - - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full/dutch, WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/nailgun/compact, WEAR_J_STORE) - - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver/tactical, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/wirecutters/tactical, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/wrench, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/device/multitool, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank, WEAR_IN_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/pmc, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/droppouch, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/scalpel/manager, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/weylandyutani, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/nailgun, WEAR_IN_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/pmc/command/hvh, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc, WEAR_FACE) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/veteran/pmc/knife, WEAR_FEET) + + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/white, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/upgraded, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/tool/crew_monitor, WEAR_IN_BACK) + + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full/dutch, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/nailgun/compact, WEAR_J_STORE) + + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/screwdriver/tactical, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/wirecutters/tactical, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/wrench, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/stack/cable_coil, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/multitool, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank, WEAR_IN_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE) diff --git a/code/modules/gear_presets/synths.dm b/code/modules/gear_presets/synths.dm index 9bfa2335e94a..2fde67e931b9 100644 --- a/code/modules/gear_presets/synths.dm +++ b/code/modules/gear_presets/synths.dm @@ -147,6 +147,9 @@ . = ..() access = get_access(ACCESS_LIST_WY_PMC) +/datum/equipment_preset/synth/survivor/wy + flags = EQUIPMENT_PRESET_STUB + /datum/equipment_preset/synth/survivor/wy/New() . = ..() access = get_access(ACCESS_LIST_COLONIAL_ALL) + get_region_accesses(2) + get_region_accesses(4) + ACCESS_MARINE_RESEARCH + ACCESS_WY_GENERAL // for WY synths - admin building and wy fax machines access @@ -268,6 +271,9 @@ survivor_variant = ENGINEERING_SURVIVOR +/datum/equipment_preset/synth/survivor/corporate_synth + name = "Survivor - Synthetic - Corporate Synth" + /datum/equipment_preset/synth/survivor/corporate_synth/load_gear(mob/living/carbon/human/new_human) ..() add_random_cl_survivor_loot(new_human) @@ -473,6 +479,7 @@ ) survivor_variant = SECURITY_SURVIVOR + flags = EQUIPMENT_PRESET_EXTRA /datum/equipment_preset/synth/survivor/wy/protection_synth name = "Survivor - Synthetic - Corporate Protection Synth" @@ -495,6 +502,7 @@ ) survivor_variant = SECURITY_SURVIVOR + flags = EQUIPMENT_PRESET_EXTRA /datum/equipment_preset/synth/survivor/wy/corporate_synth name = "Survivor - Synthetic - Corporate Clerical Synth" @@ -517,6 +525,7 @@ ) survivor_variant = CORPORATE_SURVIVOR + flags = EQUIPMENT_PRESET_EXTRA /datum/equipment_preset/synth/survivor/icc_synth name = "Survivor - Synthetic - Interstellar Commerce Commission Synthetic" diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm index eec3b6157877..4b018eea1d50 100644 --- a/code/modules/gear_presets/uscm.dm +++ b/code/modules/gear_presets/uscm.dm @@ -35,13 +35,13 @@ if(!GLOB.data_core.manifest_modify(new_human.real_name, WEAKREF(new_human), assignment, rank)) GLOB.data_core.manifest_inject(new_human) - var/obj/item/card/id/ID = new_human.wear_id + var/obj/item/card/id/ID = new_human.get_idcard() var/datum/money_account/acct = create_account(new_human, rand(30, 50), GLOB.paygrades[ID.paygrade]) ID.associated_account_number = acct.account_number var/datum/squad/auto_squad = get_squad_by_name(auto_squad_name) if(auto_squad) - transfer_marine_to_squad(new_human, auto_squad, new_human.assigned_squad, new_human.wear_id) + transfer_marine_to_squad(new_human, auto_squad, new_human.assigned_squad, ID) if(!ert_squad && !auto_squad.active) auto_squad.engage_squad(FALSE) @@ -131,7 +131,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/uscm/sg/full - name = "USCM Squad Smartgunner" + name = "USCM Squad Smartgunner (Full)" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE /datum/equipment_preset/uscm/sg/full/load_gear(mob/living/carbon/human/new_human) @@ -161,8 +161,8 @@ ACCESS_MARINE_CHARLIE, ACCESS_MARINE_DELTA, ) - assignment = JOB_CREWMAN - rank = JOB_CREWMAN + assignment = JOB_TANK_CREW + rank = JOB_TANK_CREW paygrade = PAY_SHORT_ME4 role_comm_title = "CRMN" minimum_age = 30 diff --git a/code/modules/gear_presets/uscm_event.dm b/code/modules/gear_presets/uscm_event.dm index eb206c8259bf..1a03dc3f6b22 100644 --- a/code/modules/gear_presets/uscm_event.dm +++ b/code/modules/gear_presets/uscm_event.dm @@ -104,10 +104,6 @@ new_human.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) -/datum/equipment_preset/uscm_event/general/o7 - name = "USCM O-7 - Brigadier General (High Command)" - paygrade = PAY_SHORT_MO7 - /datum/equipment_preset/uscm_event/general/o8 name = "USCM O-8 - Major General (High Command)" paygrade = PAY_SHORT_MO8 diff --git a/code/modules/gear_presets/uscm_medical.dm b/code/modules/gear_presets/uscm_medical.dm index 019095f9ce38..75152268326c 100644 --- a/code/modules/gear_presets/uscm_medical.dm +++ b/code/modules/gear_presets/uscm_medical.dm @@ -62,7 +62,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/uscm_ship/uscm_medical/doctor - name = "USCM Surgeon" + name = "USCM Doctor" assignment = JOB_DOCTOR rank = JOB_DOCTOR @@ -85,7 +85,7 @@ //Surgeon this part of the code is to change the name on your ID /datum/equipment_preset/uscm_ship/uscm_medical/doctor/surgeon - + name = "USCM Surgeon" assignment = JOB_SURGEON /datum/equipment_preset/uscm_ship/uscm_medical/doctor/surgeon/load_gear(mob/living/carbon/human/new_human) diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm index 9bccf2a2ec78..a53504fec0c9 100644 --- a/code/modules/gear_presets/uscm_ship.dm +++ b/code/modules/gear_presets/uscm_ship.dm @@ -102,7 +102,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/uscm_ship/reporter - name = "Combat Correspondent" + name = "Combat Correspondent (Press)" flags = EQUIPMENT_PRESET_START_OF_ROUND access = list( @@ -586,7 +586,6 @@ flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE idtype = /obj/item/card/id/silver - access assignment = JOB_SEA rank = JOB_SEA paygrade = PAY_SHORT_ME7 diff --git a/code/modules/gear_presets/whiteout.dm b/code/modules/gear_presets/whiteout.dm index b9ca1a6e02d4..75e8e013c03f 100644 --- a/code/modules/gear_presets/whiteout.dm +++ b/code/modules/gear_presets/whiteout.dm @@ -270,7 +270,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/pmc/w_y_whiteout/low_threat/medic - name = "Whiteout Team Medic" + name = "Whiteout Team Operative Medic" /datum/equipment_preset/pmc/w_y_whiteout/low_threat/medic/load_gear(mob/living/carbon/human/new_human) // back diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index c97e4344cabf..34582a6612d4 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -131,3 +131,5 @@ else if(death_data?.cause_name == "existing") // Corpses spawn as gibbed true to avoid sfx, even though they aren't actually gibbed... AddComponent(/datum/component/weed_food) + + update_execute_hud() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index eb19593bde46..6db31ea6451a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1704,3 +1704,18 @@ item.showoff(src) return TRUE return ..() + +/mob/living/carbon/human/on_knockedout_trait_gain(datum/source) + . = ..() + + update_execute_hud() + + return . + +/mob/living/carbon/human/on_knockedout_trait_loss(datum/source) + . = ..() + + update_execute_hud() + + return . + diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 9eac835dccba..e44106d90abb 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -60,7 +60,7 @@ var/obj/item/head = null var/obj/item/wear_l_ear = null var/obj/item/wear_r_ear = null - var/obj/item/card/id/wear_id = null + var/obj/item/wear_id = null var/obj/item/r_store = null var/obj/item/l_store = null var/obj/item/s_store = null @@ -137,7 +137,7 @@ var/last_chew = 0 //taken from human.dm - hud_possible = list(HEALTH_HUD, STATUS_HUD, STATUS_HUD_OOC, STATUS_HUD_XENO_INFECTION, STATUS_HUD_XENO_CULTIST, ID_HUD, WANTED_HUD, ORDER_HUD, XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE, HUNTER_CLAN, HUNTER_HUD, FACTION_HUD, HOLOCARD_HUD) + hud_possible = list(HEALTH_HUD, STATUS_HUD, STATUS_HUD_OOC, STATUS_HUD_XENO_INFECTION, STATUS_HUD_XENO_CULTIST, ID_HUD, WANTED_HUD, ORDER_HUD, XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE, XENO_EXECUTE, HUNTER_CLAN, HUNTER_HUD, FACTION_HUD, HOLOCARD_HUD) var/embedded_flag //To check if we've need to roll for damage on movement while an item is imbedded in us. var/allow_gun_usage = TRUE var/melee_allowed = TRUE diff --git a/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm b/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm index 0d850a47f73e..0772d952d082 100644 --- a/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm +++ b/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm @@ -40,9 +40,9 @@ else clear_fullscreen("oxy") - //Fire and Brute damage overlay (BSSR) - var/hurtdamage = src.getBruteLoss() + src.getFireLoss() + damageoverlaytemp + var/max_health_normalisation = (species ? species.total_health : 100) / 100 + var/hurtdamage = (getBruteLoss() + getFireLoss()) / max_health_normalisation + damageoverlaytemp damageoverlaytemp = 0 // We do this so we can detect if someone hits us or not. if(hurtdamage) var/severity = 0 diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 9a0cd177e885..dfb903368503 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -345,8 +345,11 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate, client.add_to_screen(wear_id) wear_id.screen_loc = hud_used.ui_datum.hud_slot_offset(wear_id, hud_used.ui_datum.ui_id) - if(!wear_id.pinned_on_uniform || (w_uniform && w_uniform.displays_id && !(w_uniform.flags_jumpsuit & UNIFORM_JACKET_REMOVED))) - var/image/id_overlay = wear_id.get_mob_overlay(src, WEAR_ID) + var/obj/item/card/id/card = get_idcard() + if(!card) + return + if(!card.pinned_on_uniform || (w_uniform && w_uniform.displays_id && !(w_uniform.flags_jumpsuit & UNIFORM_JACKET_REMOVED))) + var/image/id_overlay = card.get_mob_overlay(src, WEAR_ID) id_overlay.layer = -ID_LAYER overlays_standing[ID_LAYER] = id_overlay apply_overlay(ID_LAYER) diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm index 2cbb2af2ce86..b07f766b179d 100644 --- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm +++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm @@ -218,6 +218,7 @@ ////////////////////////////////////////////////////////////////// var/xeno_mobhud = FALSE //whether the xeno mobhud is activated or not. var/xeno_hostile_hud = FALSE // 'Hostile' HUD - the verb Xenos use to see tags, etc on humans + var/execute_hud = FALSE // Crit HUD, only visible to vampire lurkers var/list/plasma_types = list() //The types of plasma the caste contains var/list/xeno_shields = list() // List of /datum/xeno_shield that holds all active shields on the Xeno. var/acid_splash_cooldown = 5 SECONDS //Time it takes between acid splash retaliate procs diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm index 51f23f22a09f..094732300a1f 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm @@ -267,10 +267,10 @@ if(iscarbon(hit_target) && !xeno.can_not_harm(hit_target) && hit_target.stat != DEAD) if(targeted_atom == hit_target) //reward for a direct hit - to_chat(xeno, SPAN_XENOHIGHDANGER("We directly slam [hit_target] with our tail, throwing it back after impaling it on our tail!")) + to_chat(xeno, SPAN_XENOHIGHDANGER("We attack [hit_target], with our tail, piercing their body!")) hit_target.apply_armoured_damage(15, ARMOR_MELEE, BRUTE, "chest") else - to_chat(xeno, SPAN_XENODANGER("We attack [hit_target] with our tail, throwing it back after stabbing it with our tail!")) + to_chat(xeno, SPAN_XENODANGER("We attack [hit_target], slashing them with our tail!")) else xeno.visible_message(SPAN_XENOWARNING("\The [xeno] swipes their tail through the air!"), SPAN_XENOWARNING("We swipe our tail through the air!")) apply_cooldown(cooldown_modifier = 0.2) @@ -282,9 +282,18 @@ stab_direction = turn(get_dir(xeno, targeted_atom), 180) playsound(hit_target,'sound/weapons/alien_tail_attack.ogg', 50, TRUE) - if(hit_target.mob_size < MOB_SIZE_BIG) - step_away(hit_target, xeno) + var/direction = Get_Compass_Dir(xeno, targeted_atom) //More precise than get_dir. + + if(!step(hit_target, direction)) + playsound(hit_target.loc, "punch", 25, 1) + hit_target.visible_message(SPAN_DANGER("[hit_target] slams into an obstacle!"), + isxeno(hit_target) ? SPAN_XENODANGER("We slam into an obstacle!") : SPAN_HIGHDANGER("You slam into an obstacle!"), null, 4, CHAT_TYPE_TAKING_HIT) + hit_target.apply_damage(MELEE_FORCE_TIER_2) + if (hit_target.mob_size < MOB_SIZE_BIG) + hit_target.KnockDown(0.5) + else + hit_target.Slow(0.5) /// To reset the direction if they haven't moved since then in below callback. var/last_dir = xeno.dir @@ -296,11 +305,7 @@ addtimer(CALLBACK(src, PROC_REF(reset_direction), xeno, last_dir, new_dir), 0.5 SECONDS) hit_target.apply_armoured_damage(get_xeno_damage_slash(hit_target, xeno.caste.melee_damage_upper), ARMOR_MELEE, BRUTE, "chest") - - if(hit_target.mob_size < MOB_SIZE_BIG) - hit_target.apply_effect(0.5, WEAKEN) - else - hit_target.apply_effect(0.5, SLOW) + hit_target.Slow(0.5) hit_target.last_damage_data = create_cause_data(xeno.caste_type, xeno) log_attack("[key_name(xeno)] attacked [key_name(hit_target)] with Tail Jab") @@ -341,6 +346,12 @@ if(xeno.action_busy) return + if(target_carbon.status_flags & XENO_HOST) + for(var/obj/item/alien_embryo/embryo in target_carbon) + if(HIVE_ALLIED_TO_HIVE(xeno.hivenumber, embryo.hivenumber)) + to_chat(xeno, SPAN_WARNING("We should not harm this host! It has a sister inside.")) + return + xeno.visible_message(SPAN_DANGER("[xeno] grabs [target_carbon]’s head aggressively."), \ SPAN_XENOWARNING("We grab [target_carbon]’s head aggressively.")) diff --git a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm index 2576d0bc599b..de0cefeea76d 100644 --- a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm +++ b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm @@ -504,7 +504,7 @@ //Slashing fences /obj/structure/fence/attack_alien(mob/living/carbon/xenomorph/M) M.animation_attack_on(src) - var/damage_dealt = 5 + var/damage_dealt = 25 M.visible_message(SPAN_DANGER("[M] mangles [src]!"), \ SPAN_DANGER("We mangle [src]!"), \ SPAN_DANGER("We hear twisting metal!"), 5, CHAT_TYPE_XENO_COMBAT) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm b/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm index 35d500b15816..532f77d1bec2 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm @@ -415,6 +415,14 @@ make_combat_effective() AddComponent(/datum/component/footstep, 2 , 35, 11, 4, "alien_footstep_large") + RegisterSignal(src, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(check_block)) + +/mob/living/carbon/xenomorph/queen/proc/check_block(mob/queen, turf/new_loc) + SIGNAL_HANDLER + for(var/mob/living/carbon/xenomorph/xeno in new_loc.contents) + if(xeno.hivenumber == hivenumber) + xeno.KnockDown((5 DECISECONDS) / GLOBAL_STATUS_MULTIPLIER) + playsound(src, 'sound/weapons/alien_knockdown.ogg', 25, 1) /mob/living/carbon/xenomorph/queen/generate_name() if(!nicknumber) diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status.dm b/code/modules/mob/living/carbon/xenomorph/hive_status.dm index e7e1fab0dd45..4782bcd8b288 100644 --- a/code/modules/mob/living/carbon/xenomorph/hive_status.dm +++ b/code/modules/mob/living/carbon/xenomorph/hive_status.dm @@ -874,6 +874,13 @@ return TRUE +/datum/hive_status/proc/get_current_playable_facehugger_count() + var/count = 0 + for(var/mob/mob as anything in totalXenos) + if(isfacehugger(mob)) + count++ + return count + /datum/hive_status/proc/spawn_as_hugger(mob/dead/observer/user, atom/A) var/mob/living/carbon/xenomorph/facehugger/hugger = new /mob/living/carbon/xenomorph/facehugger(A.loc, null, hivenumber) user.mind.transfer_to(hugger, TRUE) diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm index 34dfcc325943..820aa662c919 100644 --- a/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm @@ -25,4 +25,8 @@ lurker.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL lurker.attack_speed_modifier -= 2 + var/datum/mob_hud/execute_hud = GLOB.huds[MOB_HUD_EXECUTE] + execute_hud.add_hud_to(lurker, lurker) + lurker.execute_hud = TRUE + lurker.recalculate_everything() diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index b76935c4c158..182bc2525c17 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -77,6 +77,7 @@ src.icon_dead = "mouse_[body_color]_splat" src.icon_state = "mouse_[body_color]_splat" layer = ABOVE_LYING_MOB_LAYER + set_body_position(LYING_DOWN) if(client) client.time_died_as_mouse = world.time diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index caf47b2824bb..652ee4c44024 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -56,6 +56,8 @@ black_market_value = 25 dead_black_market_value = 0 + mobility_flags = MOBILITY_FLAGS_LYING_CAPABLE_DEFAULT + /mob/living/simple_animal/Initialize() . = ..() SSmob.living_misc_mobs += src @@ -210,6 +212,7 @@ SSmob.living_misc_mobs -= src icon_state = icon_dead black_market_value = dead_black_market_value + set_body_position(LYING_DOWN) /mob/living/simple_animal/gib(datum/cause_data/cause = create_cause_data("gibbing", src)) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 93c991d26c29..4c2c83d18257 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -260,6 +260,8 @@ return /datum/equipment_preset/uscm/intel/full if(JOB_CAS_PILOT) return /datum/equipment_preset/uscm_ship/gp/full + if(JOB_TANK_CREW) + return /datum/equipment_preset/uscm/tank/full if(JOB_DROPSHIP_PILOT) return /datum/equipment_preset/uscm_ship/dp/full if(JOB_DROPSHIP_CREW_CHIEF) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 69a458a983d0..db7a163f7536 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -872,6 +872,8 @@ User can be passed as null, (a gun reloading itself for instance), so we need to if(!current_mag || QDELETED(current_mag) || (current_mag.loc != src && !loc_override)) cock(user) + current_mag = null + update_icon() return if(drop_override || !user) //If we want to drop it on the ground or there's no user. diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm index d1aff8a33969..92eabd62daa2 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -3235,7 +3235,7 @@ Defined in conflicts.dm of the #defines folder. ammo_datum.flamer_reagent_id = flamer_reagent.id P.generate_bullet(ammo_datum) P.icon_state = "naptha_ball" - P.color = flamer_reagent.color + P.color = flamer_reagent.burncolor P.hit_effect_color = flamer_reagent.burncolor P.fire_at(target, user, user, max_range, AMMO_SPEED_TIER_2, null) var/turf/user_turf = get_turf(user) diff --git a/code/modules/projectiles/guns/revolvers.dm b/code/modules/projectiles/guns/revolvers.dm index d031074dabd7..1c2adc2360a3 100644 --- a/code/modules/projectiles/guns/revolvers.dm +++ b/code/modules/projectiles/guns/revolvers.dm @@ -6,7 +6,7 @@ w_class = SIZE_MEDIUM matter = list("metal" = 2000) - fire_sound = 'sound/weapons/gun_44mag_v3.ogg' + fire_sound = 'sound/weapons/gun_44mag_v4.ogg' reload_sound = 'sound/weapons/gun_44mag_speed_loader.wav' cocked_sound = 'sound/weapons/gun_revolver_spun.ogg' unload_sound = 'sound/weapons/gun_44mag_open_chamber.wav' diff --git a/code/modules/projectiles/magazines/flamer.dm b/code/modules/projectiles/magazines/flamer.dm index feaaf7bc0a79..8a453beb90b4 100644 --- a/code/modules/projectiles/magazines/flamer.dm +++ b/code/modules/projectiles/magazines/flamer.dm @@ -249,3 +249,24 @@ matter = list("metal" = 3750) flamer_chem = null custom = TRUE + +//tanks printable by the research biomass machine +/obj/item/ammo_magazine/flamer_tank/custom/upgraded + name = "Upgraded custom incinerator tank" + desc = "A fuel tank used to store fuel for use in the M240 incinerator unit. This one has been modified with a larger and more sophisticated internal propellant tank, allowing for bigger capacity and stronger fuels." + matter = list("metal" = 50) // no free metal + flamer_chem = null + max_rounds = 200 + max_range = 7 + fuel_pressure = 1 + max_duration = 50 + max_intensity = 60 + custom = TRUE + +/obj/item/ammo_magazine/flamer_tank/smoke/upgraded + name = "Large custom incinerator smoke tank" + desc = "A tank holding powdered smoke that expands when exposed to an open flame and carries any chemicals along with it. This one has been outfitted with an upgraded internal compressor, allowing for bigger capacity." + matter = list("metal" = 50) //no free metal + flamer_chem = null + custom = TRUE + max_rounds = 150 diff --git a/code/modules/reagents/chemistry_properties/prop_positive.dm b/code/modules/reagents/chemistry_properties/prop_positive.dm index d469daff494c..0f51b816d034 100644 --- a/code/modules/reagents/chemistry_properties/prop_positive.dm +++ b/code/modules/reagents/chemistry_properties/prop_positive.dm @@ -492,7 +492,7 @@ var/obj/item/alien_embryo/embryo = content if(embryo && istype(embryo)) if(embryo.counter > 0) - embryo.counter = embryo.counter - potency + embryo.counter = embryo.counter - (potency * delta_time) current_human.take_limb_damage(0,POTENCY_MULTIPLIER_MEDIUM*potency) else embryo.stage-- @@ -728,6 +728,11 @@ holder.durationfire = max(holder.durationfire, 1) holder.intensityfire = max(holder.intensityfire, 1) + if(holder.intensityfire >= 50 && istype(holder, /datum/reagent/generated)) + holder.burncolor = "#ffffff" + else + holder.burncolor = holder.color + /datum/chem_property/positive/fire/fueling name = PROPERTY_FUELING code = "FUL" diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 2b3407fa9414..00dcd987f089 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -382,7 +382,13 @@ return var/mob/living/carbon/human/human_user = user - if(!(ACCESS_MARINE_SENIOR in human_user.wear_id?.access) && !(ACCESS_MARINE_DROPSHIP in human_user.wear_id?.access)) + var/obj/item/card/id/card = human_user.get_idcard() + + if(!card) + to_chat(user, SPAN_NOTICE("[src]'s screen says \"Unauthorized access. Please inform your supervisor\".")) + return + + if(!(ACCESS_MARINE_SENIOR in card.access) && !(ACCESS_MARINE_DROPSHIP in card.access)) to_chat(user, SPAN_NOTICE("[src]'s screen says \"Unauthorized access. Please inform your supervisor\".")) return diff --git a/code/modules/vehicles/apc/apc.dm b/code/modules/vehicles/apc/apc.dm index 78219e439832..b7d35f21fbe3 100644 --- a/code/modules/vehicles/apc/apc.dm +++ b/code/modules/vehicles/apc/apc.dm @@ -87,7 +87,7 @@ GLOBAL_LIST_EMPTY(command_apc_list) /obj/vehicle/multitile/apc/load_role_reserved_slots() var/datum/role_reserved_slots/RRS = new RRS.category_name = "Crewmen" - RRS.roles = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) + RRS.roles = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) RRS.total = 2 role_reserved_slots += RRS diff --git a/code/modules/vehicles/apc/apc_command.dm b/code/modules/vehicles/apc/apc_command.dm index 54647279ec3b..8d056daec2ea 100644 --- a/code/modules/vehicles/apc/apc_command.dm +++ b/code/modules/vehicles/apc/apc_command.dm @@ -68,7 +68,7 @@ /obj/vehicle/multitile/apc/command/load_role_reserved_slots() var/datum/role_reserved_slots/RRS = new RRS.category_name = "Crewmen" - RRS.roles = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) + RRS.roles = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) RRS.total = 2 role_reserved_slots += RRS diff --git a/code/modules/vehicles/apc/apc_medical.dm b/code/modules/vehicles/apc/apc_medical.dm index f8809bedaa73..7d462e7da27b 100644 --- a/code/modules/vehicles/apc/apc_medical.dm +++ b/code/modules/vehicles/apc/apc_medical.dm @@ -32,7 +32,7 @@ /obj/vehicle/multitile/apc/medical/load_role_reserved_slots() var/datum/role_reserved_slots/RRS = new RRS.category_name = "Crewmen" - RRS.roles = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) + RRS.roles = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) RRS.total = 2 role_reserved_slots += RRS diff --git a/code/modules/vehicles/hardpoints/armor/snowplow.dm b/code/modules/vehicles/hardpoints/armor/snowplow.dm index 84e589658029..a1b1a9dc800c 100644 --- a/code/modules/vehicles/hardpoints/armor/snowplow.dm +++ b/code/modules/vehicles/hardpoints/armor/snowplow.dm @@ -6,7 +6,7 @@ disp_icon = "tank" disp_icon_state = "snowplow" - health = 600 + health = 150 activatable = 1 /obj/item/hardpoint/armor/snowplow/livingmob_interact(mob/living/M) diff --git a/code/modules/vehicles/hardpoints/holder/tank_turret.dm b/code/modules/vehicles/hardpoints/holder/tank_turret.dm index bdf106aecac3..2a01098de523 100644 --- a/code/modules/vehicles/hardpoints/holder/tank_turret.dm +++ b/code/modules/vehicles/hardpoints/holder/tank_turret.dm @@ -27,7 +27,7 @@ slot = HDPT_TURRET // big beefy chonk of metal - health = 750 + health = 450 damage_multiplier = 0.05 accepted_hardpoints = list( diff --git a/code/modules/vehicles/hardpoints/wheels/treads.dm b/code/modules/vehicles/hardpoints/wheels/treads.dm index b718d1c8e897..dd819ea2af03 100644 --- a/code/modules/vehicles/hardpoints/wheels/treads.dm +++ b/code/modules/vehicles/hardpoints/wheels/treads.dm @@ -8,7 +8,7 @@ slot = HDPT_TREADS - health = 500 + health = 300 //with this settings, takes 3 tiles to reach top speed move_delay = 3.8 @@ -20,7 +20,7 @@ name = "Reinforced Treads" desc = "These treads are made of a tougher material and are more durable. However, the extra weight slows the tank down slightly." - health = 750 + health = 500 acid_resistant = TRUE move_max_momentum = 5 //same top speed, but takes 5 tiles to reach it diff --git a/code/modules/vehicles/interior/interactable/vehicle_locker.dm b/code/modules/vehicles/interior/interactable/vehicle_locker.dm index 5571995594f0..1ad6fb5bb8df 100644 --- a/code/modules/vehicles/interior/interactable/vehicle_locker.dm +++ b/code/modules/vehicles/interior/interactable/vehicle_locker.dm @@ -15,7 +15,7 @@ unslashable = TRUE indestructible = TRUE - var/list/role_restriction = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) + var/list/role_restriction = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) var/obj/item/storage/internal/container diff --git a/code/modules/vehicles/tank/tank.dm b/code/modules/vehicles/tank/tank.dm index 147e359471df..1cc1174c43fe 100644 --- a/code/modules/vehicles/tank/tank.dm +++ b/code/modules/vehicles/tank/tank.dm @@ -90,7 +90,7 @@ /obj/vehicle/multitile/tank/load_role_reserved_slots() var/datum/role_reserved_slots/RRS = new RRS.category_name = "Crewmen" - RRS.roles = list(JOB_CREWMAN, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) + RRS.roles = list(JOB_TANK_CREW, JOB_WO_CREWMAN, JOB_UPP_CREWMAN, JOB_PMC_CREWMAN) RRS.total = 2 role_reserved_slots += RRS @@ -165,6 +165,39 @@ return TRUE +/obj/vehicle/multitile/tank/MouseDrop_T(mob/dropped, mob/user) + . = ..() + if((dropped != user) || !isxeno(user)) + return + + if(health > 0) + to_chat(user, SPAN_XENO("We can't jump over [src] until it is destroyed!")) + return + + var/turf/current_turf = get_turf(user) + var/dir_to_go = get_dir(current_turf, src) + for(var/i in 1 to 3) + current_turf = get_step(current_turf, dir_to_go) + if(!(current_turf in locs)) + break + + if(current_turf.density) + to_chat(user, SPAN_XENO("The path over [src] is obstructed!")) + return + + // Now we check to make sure the turf on the other side of the tank isn't dense too + current_turf = get_step(current_turf, dir_to_go) + if(current_turf.density) + to_chat(user, SPAN_XENO("The path over [src] is obstructed!")) + return + + to_chat(user, SPAN_XENO("We begin to jump over [src]...")) + if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) + to_chat(user, SPAN_XENO("We stop jumping over [src].")) + return + + user.forceMove(current_turf) + to_chat(user, SPAN_XENO("We jump to the other side of [src].")) /* ** PRESETS SPAWNERS */ diff --git a/colonialmarines.dme b/colonialmarines.dme index 9bce54ec30d8..5193cd3571cb 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -332,6 +332,7 @@ #include "code\datums\ASRS.dm" #include "code\datums\beam.dm" #include "code\datums\browser.dm" +#include "code\datums\bug_report.dm" #include "code\datums\callback.dm" #include "code\datums\changelog.dm" #include "code\datums\combat_personalized.dm" @@ -805,6 +806,7 @@ #include "code\game\jobs\job\command\auxiliary\dropship_pilot.dm" #include "code\game\jobs\job\command\auxiliary\intel.dm" #include "code\game\jobs\job\command\auxiliary\senior.dm" +#include "code\game\jobs\job\command\auxiliary\tank_crew.dm" #include "code\game\jobs\job\command\cic\captain.dm" #include "code\game\jobs\job\command\cic\executive.dm" #include "code\game\jobs\job\command\cic\staffofficer.dm" diff --git a/config/example/config.txt b/config/example/config.txt index 0aff7ee6def9..d63e6822465c 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -253,3 +253,8 @@ GAMEMODE_DEFAULT Extended CLIENT_ERROR_VERSION 514 #CLIENT_ERROR_BUILD 1589 #CLIENT_ERROR_MESSAGE Your version of BYOND is too old, may have issues, and is blocked from accessing this server. + +## GITHUB API +#GITHUB_APP_API +#REPO_NAME cmss13 +#ORG cmss13-devs \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6327.yml b/html/changelogs/AutoChangeLog-pr-6327.yml deleted file mode 100644 index 60ce99f80c65..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6327.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Comxy" -delete-after: True -changes: - - rscadd: "Adds W-Y branded sentries." - - imageadd: "Adds W-Y defenses sprites." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6374.yml b/html/changelogs/AutoChangeLog-pr-6374.yml deleted file mode 100644 index 8e7517420a2a..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6374.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "AndroBetel" -delete-after: True -changes: - - balance: "Pistol mag pouch now has 4 slots instead of 3." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6383.yml b/html/changelogs/AutoChangeLog-pr-6383.yml deleted file mode 100644 index fbae59970bbe..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6383.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: "Zonespace, Zydras" -delete-after: True -changes: - - bugfix: "Vehicle elevator no longer incorrectly rotates vehicles" - - rscadd: "New ARC exterior and interior" - - balance: "ARC now fits 5 humans instead of 7" - - balance: "ARC now fits 4 xenos intead of 5" - - balance: "ARC's RE700 turret armor pen 10->15" - - balance: "On account of the smaller size, the ARC no longer has a nanomed." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6396.yml b/html/changelogs/AutoChangeLog-pr-6396.yml deleted file mode 100644 index 72102a2279a9..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6396.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "harryob" -delete-after: True -changes: - - bugfix: "the preview window in character setup now remains visible when looking at it as a ghost" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6437.yml b/html/changelogs/AutoChangeLog-pr-6437.yml deleted file mode 100644 index 45618bc2b382..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6437.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Zonespace27" -delete-after: True -changes: - - bugfix: "Pyro spec flamer should be linked to its tank more consistently." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6440.yml b/html/changelogs/AutoChangeLog-pr-6440.yml deleted file mode 100644 index 4f64202d853f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6440.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Blundir" -delete-after: True -changes: - - imageadd: "resprite of spearhead cmb revolver" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6445.yml b/html/changelogs/AutoChangeLog-pr-6445.yml deleted file mode 100644 index 694311d57f85..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6445.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fixed Queen Mother being unable to award a Queen" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6446.yml b/html/changelogs/AutoChangeLog-pr-6446.yml deleted file mode 100644 index 501a49639c3a..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6446.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - rscadd: "Added preference for toggling the fax machine received sound as an observer" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6448.yml b/html/changelogs/AutoChangeLog-pr-6448.yml deleted file mode 100644 index 02a85debf028..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6448.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Zonespace27" -delete-after: True -changes: - - qol: "Added some missing objectives to the xenomorph - basic tutorial." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6451.yml b/html/changelogs/AutoChangeLog-pr-6451.yml deleted file mode 100644 index 2879e1dd9836..000000000000 --- a/html/changelogs/AutoChangeLog-pr-6451.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheGamerdk" -delete-after: True -changes: - - bugfix: "Fixes small issue allowing medals to teleport" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6517.yml b/html/changelogs/AutoChangeLog-pr-6517.yml new file mode 100644 index 000000000000..e5f733bd2989 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6517.yml @@ -0,0 +1,4 @@ +author: "Drathek" +delete-after: True +changes: + - bugfix: "Fixed LZ gas not penetrating destructible walls" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6521.yml b/html/changelogs/AutoChangeLog-pr-6521.yml new file mode 100644 index 000000000000..9e951e645e8e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6521.yml @@ -0,0 +1,4 @@ +author: "iloveloopers" +delete-after: True +changes: + - balance: "Custom research chemicals with an intensityfire above or equal to 50 will now burn white." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6522.yml b/html/changelogs/AutoChangeLog-pr-6522.yml new file mode 100644 index 000000000000..e7f1af56ac95 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6522.yml @@ -0,0 +1,4 @@ +author: "ihatethisengine2" +delete-after: True +changes: + - bugfix: "simple animals don't block projectiles after death anymore" \ No newline at end of file diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml index 88cb6d1c551f..fee8c5d01853 100644 --- a/html/changelogs/archive/2024-06.yml +++ b/html/changelogs/archive/2024-06.yml @@ -108,3 +108,127 @@ - balance: all OB 10 -> 5 intel points, one shell and five fuel fira: - rscadd: Added a Tutorial for tending to the Requisitions Line +2024-06-15: + AndroBetel: + - balance: Pistol mag pouch now has 4 slots instead of 3. + Blundir: + - imageadd: resprite of spearhead cmb revolver + Comxy: + - rscadd: Adds W-Y branded sentries. + - imageadd: Adds W-Y defenses sprites. + Drathek: + - bugfix: Fixed Queen Mother being unable to award a Queen + - rscadd: Added preference for toggling the fax machine received sound as an observer + TheGamerdk: + - bugfix: Fixes small issue allowing medals to teleport + Zonespace, Zydras: + - bugfix: Vehicle elevator no longer incorrectly rotates vehicles + - rscadd: New ARC exterior and interior + - balance: ARC now fits 5 humans instead of 7 + - balance: ARC now fits 4 xenos intead of 5 + - balance: ARC's RE700 turret armor pen 10->15 + - balance: On account of the smaller size, the ARC no longer has a nanomed. + Zonespace27: + - bugfix: Pyro spec flamer should be linked to its tank more consistently. + - qol: Added some missing objectives to the xenomorph - basic tutorial. + harryob: + - bugfix: the preview window in character setup now remains visible when looking + at it as a ghost +2024-06-16: + Drathek: + - bugfix: Fixed wallets as IDs breaking many things + - admin: Added niche logging for revival attempts +2024-06-17: + GrrrKitten: + - bugfix: fixes a bug that fully jammed guns being used in akimbo + Steelpoint: + - mapadd: Civilian Clothing Storage Vendors have been added to the Gym on the USS + Almayer. These allow anyone to vend civilian clothes. These vendors require + CIC access to unlock however. + TheGamerdk: + - bugfix: The game no longer tricks predators and synths into thinking they're more + damaged than they actually are. + - rscadd: Special insert synthetics on most maps will now be able to gain access + to synthetic equipment vendors, provided they're given access by USCM command + staff. (Synth access on their ID) + coldironwarrior: + - bugfix: fixed corpsmen gloves and the map being mutually exclusive in the corpsman + vendor + - bugfix: incen OB fire now makes blue light. + iloveloopers: + - qol: Grow boxes can now be destroyed by xenos. + realforest2001: + - bugfix: Medical cryo tubes no longer delete their occupant when destroyed. + vero5123: + - bugfix: fixes vampire being able to execute hugged marines + - bugfix: fixes cas being able to target shipside signals +2024-06-19: + Diegoflores31: + - bugfix: Fixes CO being unable to award medals. + Drathek: + - bugfix: Fixed various equipment_presets not getting cached or looked up correctly + Git-Nivrak: + - qol: Dir-assist will now prioritize non-xenos over xenos. + Red-byte3D: + - balance: Synthetic Protective Form now takes 150 charge instead of 50. + TheGamerdk: + - rscadd: Overwatch console shows dead marines by default. + VileBeggar: + - soundadd: The M44 combat revolver has had its firing sound changed. + wshuwshuwshi: + - bugfix: Adds a 1.5x modifier to the amount taken from larva timer based on chem + property level + - bugfix: swaps the 1.5 multiplier for a delta_time multiplier + - bugfix: improved the formatting of the code to have proper spacing +2024-06-20: + Drathek cuberound: + - balance: After three minutes from round start, landing zones will be covered in + a deadly gas + - balance: First dropship deployment will clear gas, and first dropship arrival + will deploy 4 sentries that last 20 minutes + - refactor: Refactored smoke code + - maptweak: Expanded LZ areas on Trijent Dam and Kutjevo Refinery + - maptweak: Shrunk LZ1 on Shivas Snowball and LZ2 on LV624 slightly + - maptweak: Removed fog on Chances Claim since it will be replaced by smoke and + tweaked southern tunnel area to not be considered a LZ + - bugfix: Fixed weird LZ lighting on some maps + - spellcheck: Replaced/removed synth coughing emotes in smoke + Git-Nivrak: + - qol: Added an hud icon for vampires that lets them know when an enemy can be executed. + Nomoresolvalou: + - rscadd: Added masks to synth snowflake vendor + Red-byte3D: + - balance: Re-adds Vehicle Crewmen + - balance: Tank now unlocks at 200 pop. + - balance: Re-adds tank and its attachements back to the tank-bay. + - balance: You can no longer have the ARC & TANK in the same round. if the arc is + bought the tank is unavailable and vice versa. + Zonespace27: + - rscdel: Pyro flamers now start unlinked from their tanks again + iloveloopers: + - rscadd: Added new upgraded incinerator fuel tanks printable by the biomass analyzer. + vero5123: + - rscadd: Adds the ability for users to make bug reports in-game + - ui: New bug report system ui + zzzmike: + - qol: examining eggs/morphers tells you current number of huggers and the limit +2024-06-21: + Drathek: + - bugfix: Fixed the core showing lesser drone counts to humans when examined + Git-Nivrak: + - balance: You can no longer extinguish yourself with your own acid spray. + - balance: Queen will now briefly shove xenos if they are in a tile she is trying + to move to, preventing bodyblock. + cuberound: + - balance: patting fire on ground harms the xeno, more intense fire means more harm + iloveloopers: + - balance: Fence health nerfed, now can be 2 tapped by xenos + - qol: Fuel cell recyclers no longer block movement + - qol: Showcases are now slashable by xenos + zzzmike: + - bugfix: more survivors now listed in survivor category on observe menu +2024-06-22: + Red-byte3D: + - balance: Vampire tail jab now only stuns if you knockback an enemy into an obstacle. + - spellcheck: Vampire lurkers no longer "throw it back" after hitting somebody with + their Tail Jab diff --git a/interface/interface.dm b/interface/interface.dm index c9112160d94f..5b30eaa53bf7 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -62,14 +62,11 @@ set name = "Submit Bug" set desc = "Submit a bug." set hidden = TRUE - - if(tgui_alert(src, "Please search for the bug first to make sure you aren't posting a duplicate.", "No dupe bugs please", list("OK", "Cancel")) != "OK") - return - - if(tgui_alert(src, "This will open the GitHub in your browser. Are you sure?", "Confirm", list("Yes", "No")) != "Yes") + if(!usr) return + var/datum/tgui_bug_report_form/report = new(usr) - src << link(CONFIG_GET(string/githuburl)) + report.tgui_interact(usr) return /client/verb/set_fps() diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm index 0c33d3d251f8..ec598eebd59c 100644 --- a/maps/map_files/DesertDam/Desert_Dam.dmm +++ b/maps/map_files/DesertDam/Desert_Dam.dmm @@ -141,7 +141,7 @@ icon_state = "road_edge_decal11" }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aaB" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal9" @@ -307,13 +307,13 @@ dir = 4; icon_state = "desert_transition_edge1" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "abb" = ( /obj/structure/flora/bush/desert{ icon_state = "tree_3" }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "abc" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 @@ -370,7 +370,7 @@ dir = 6; icon_state = "desert_transition_edge1" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "abk" = ( /turf/closed/wall/hangar{ name = "reinforced metal wall" @@ -551,7 +551,7 @@ dir = 5; icon_state = "desert_transition_edge1" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "abO" = ( /obj/structure/surface/rack, /turf/open/floor/prison, @@ -1032,7 +1032,7 @@ /turf/open/asphalt/cement_sunbleached{ icon_state = "cement_sunbleached1" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "adr" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 6 @@ -1273,7 +1273,7 @@ /turf/open/asphalt/cement_sunbleached{ icon_state = "cement_sunbleached1" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aeh" = ( /obj/effect/blocker/toxic_water/Group_2, /turf/open/desert/desert_shore/shore_edge1{ @@ -1569,7 +1569,7 @@ "aeY" = ( /obj/structure/prop/dam/boulder/boulder1, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aeZ" = ( /obj/structure/bed/chair/office/light{ dir = 4 @@ -1745,7 +1745,7 @@ /turf/open/asphalt{ icon_state = "tile" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "afz" = ( /turf/open/desert/rock/deep/transition{ dir = 9 @@ -4391,7 +4391,7 @@ /turf/open/asphalt{ icon_state = "tile" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "ani" = ( /obj/structure/closet/crate/trashcart, /turf/open/asphalt/cement_sunbleached{ @@ -5021,11 +5021,6 @@ icon_state = "whitepurplecorner" }, /area/desert_dam/interior/lab_northeast/east_lab_central_hallway) -"apa" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached4" - }, -/area/desert_dam/exterior/valley/valley_northwest) "apb" = ( /obj/structure/machinery/computer/shuttle/elevator_controller/elevator_call/trijent/lz1{ pixel_y = 32 @@ -5254,7 +5249,7 @@ "apP" = ( /obj/structure/flora/grass/desert/lightgrass_7, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "apR" = ( /obj/effect/decal/sand_overlay/sand1/corner1, /turf/open/desert/desert_shore/desert_shore1, @@ -5353,7 +5348,7 @@ dir = 4 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aqg" = ( /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_northwest) @@ -5610,7 +5605,7 @@ dir = 1 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aqU" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ dir = 1; @@ -10195,7 +10190,7 @@ unacidable = 1 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aEH" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -11271,7 +11266,7 @@ "aHW" = ( /obj/structure/flora/grass/desert/lightgrass_4, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aHX" = ( /obj/structure/machinery/light{ dir = 1 @@ -12854,7 +12849,7 @@ icon_state = "S" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aMK" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, @@ -12875,7 +12870,7 @@ icon_state = "tree_3" }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aMN" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -12930,13 +12925,13 @@ icon_state = "W" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aMU" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aMV" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 4 @@ -13019,7 +13014,7 @@ icon_state = "N" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aNf" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/floor/plating, @@ -13069,7 +13064,7 @@ icon_state = "N" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aNn" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal9" @@ -13152,7 +13147,7 @@ icon_state = "W" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aNy" = ( /turf/open/floor/prison{ dir = 10; @@ -13162,14 +13157,14 @@ "aNz" = ( /obj/effect/decal/sand_overlay/sand1, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aNA" = ( /obj/effect/decal/sand_overlay/sand1, /obj/structure/machinery/conveyor_switch{ id = "cargo_landing" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aNB" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/phoron{ @@ -13768,7 +13763,7 @@ icon_state = "tree_2" }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "aPL" = ( /obj/structure/machinery/shower{ dir = 1 @@ -14541,7 +14536,7 @@ /turf/open/asphalt/cement_sunbleached{ icon_state = "cement_sunbleached19" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aSe" = ( /turf/open/floor{ dir = 1; @@ -15004,7 +14999,7 @@ dir = 5; icon_state = "desert_transition_edge1" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aTF" = ( /turf/open/desert/rock/deep/transition{ dir = 5 @@ -15331,7 +15326,7 @@ /turf/open/asphalt/cement_sunbleached{ icon_state = "cement_sunbleached9" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aUK" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison{ @@ -15464,7 +15459,7 @@ /turf/open/asphalt/cement_sunbleached{ icon_state = "cement_sunbleached1" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "aVm" = ( /turf/closed/wall/r_wall, /area/desert_dam/building/administration/office) @@ -15559,14 +15554,6 @@ icon_state = "cement_sunbleached15" }, /area/desert_dam/exterior/landing_pad_one) -"aVH" = ( -/obj/effect/decal/sand_overlay/sand1{ - dir = 8 - }, -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached15" - }, -/area/desert_dam/exterior/valley/valley_northwest) "aVI" = ( /turf/closed/wall/r_wall, /area/desert_dam/building/administration/control_room) @@ -17275,7 +17262,7 @@ icon_state = "stop_decal5" }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "baX" = ( /obj/effect/decal/cleanable/dirt, /turf/open/asphalt/cement_sunbleached{ @@ -17763,7 +17750,7 @@ }, /obj/structure/desertdam/decals/road_stop, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "bcD" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 8 @@ -18815,7 +18802,7 @@ dir = 5; icon_state = "desert_transition_edge1" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "bgf" = ( /obj/structure/platform_decoration{ dir = 8 @@ -19158,6 +19145,10 @@ /obj/structure/surface/table, /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/control_room) +"bhp" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "bhq" = ( /turf/open/floor/prison, /area/desert_dam/building/water_treatment_two/control_room) @@ -26357,6 +26348,12 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/landing_pad_one) +"bFC" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 9 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "bFD" = ( /turf/open/floor/prison{ dir = 10; @@ -36823,7 +36820,7 @@ dir = 4 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "cnB" = ( /obj/structure/platform{ dir = 8 @@ -40528,7 +40525,7 @@ dir = 8; icon_state = "desert_transition_corner1" }, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "czB" = ( /obj/structure/platform, /obj/effect/blocker/toxic_water/Group_1, @@ -41767,9 +41764,6 @@ icon_state = "darkbrown2" }, /area/desert_dam/building/mining/workshop_foyer) -"cCY" = ( -/turf/open/desert/dirt, -/area/desert_dam/exterior/rock) "cCZ" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 4 @@ -43119,7 +43113,7 @@ dir = 5; icon_state = "desert_transition_edge1" }, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "cGS" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, /turf/open/asphalt/cement_sunbleached{ @@ -45890,7 +45884,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "cQd" = ( /obj/item/trash/cheesie, /obj/effect/landmark/objective_landmark/close, @@ -46085,7 +46079,7 @@ dir = 10 }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "cQN" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -46507,6 +46501,12 @@ icon_state = "cement_sunbleached15" }, /area/desert_dam/exterior/valley/valley_civilian) +"cSn" = ( +/turf/open/desert/dirt{ + dir = 8; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_one) "cSo" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/eastleft{ @@ -46707,7 +46707,7 @@ dir = 5 }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "cTa" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ dir = 4; @@ -47725,7 +47725,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "cXD" = ( /turf/open/floor/prison{ icon_state = "darkbrown2" @@ -48278,7 +48278,7 @@ icon_state = "W" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "dax" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -48373,9 +48373,6 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) -"daU" = ( -/turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) "daX" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -48403,7 +48400,7 @@ id = "cargo_landing" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "dbd" = ( /obj/structure/machinery/light{ dir = 8 @@ -49335,7 +49332,7 @@ }, /obj/effect/landmark/railgun_camera_pos, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "deA" = ( /obj/structure/largecrate/random, /turf/open/floor/prison{ @@ -49455,13 +49452,13 @@ icon_state = "S" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "deV" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /turf/open/floor/plating, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "deW" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -49945,7 +49942,7 @@ "dgG" = ( /obj/structure/prop/dam/large_boulder/boulder2, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "dgH" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -50260,6 +50257,12 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) +"dja" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 8 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "djg" = ( /obj/item/paper_bin, /obj/item/tool/stamp, @@ -51765,7 +51768,7 @@ dir = 1 }, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "dvZ" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 9 @@ -53108,7 +53111,7 @@ /turf/open/desert/dirt{ icon_state = "desert_transition_edge1" }, -/area/desert_dam/exterior/valley/valley_northwest) +/area/desert_dam/exterior/landing_pad_one) "dDD" = ( /obj/structure/surface/table/reinforced, /obj/item/clothing/head/welding, @@ -60135,6 +60138,12 @@ icon_state = "cement_sunbleached9" }, /area/desert_dam/exterior/valley/bar_valley_dam) +"ekN" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "emt" = ( /obj/effect/decal/sand_overlay/sand1/corner1{ dir = 1 @@ -60160,6 +60169,12 @@ icon_state = "whitered" }, /area/desert_dam/building/medical/surgery_room_one) +"erF" = ( +/turf/open/desert/dirt{ + dir = 5; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_two) "esG" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -60200,7 +60215,7 @@ }, /obj/effect/decal/sand_overlay/sand1/corner1, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "eCK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/liquid_fuel, @@ -60242,6 +60257,18 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) +"eRL" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal2" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) +"eRX" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "eTi" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/close, @@ -60311,6 +60338,15 @@ icon_state = "cement_sunbleached14" }, /area/desert_dam/exterior/valley/valley_civilian) +"eZC" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal2" + }, +/obj/effect/decal/sand_overlay/sand1{ + dir = 8 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "eZE" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal2" @@ -60320,6 +60356,12 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) +"eZN" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal10" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "faE" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 1 @@ -60426,6 +60468,12 @@ }, /turf/closed/wall/rock/orange, /area/desert_dam/exterior/rock) +"fqj" = ( +/turf/open/desert/dirt{ + dir = 8; + icon_state = "desert_transition_corner1" + }, +/area/desert_dam/exterior/landing_pad_one) "fqt" = ( /turf/open/desert/dirt{ dir = 9; @@ -60581,7 +60629,7 @@ "fSc" = ( /obj/structure/flora/grass/desert/lightgrass_12, /turf/open/desert/dirt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "fTk" = ( /obj/structure/sink/kitchen, /obj/structure/surface/table/reinforced, @@ -60600,6 +60648,10 @@ icon_state = "cement_sunbleached4" }, /area/desert_dam/exterior/valley/valley_hydro) +"fYz" = ( +/obj/structure/flora/grass/tallgrass/desert/corner, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "fYS" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, @@ -60806,6 +60858,16 @@ icon_state = "whiteyellow" }, /area/desert_dam/interior/dam_interior/garage) +"gBQ" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal4" + }, +/obj/structure/desertdam/decals/road_stop{ + dir = 8; + icon_state = "stop_decal5" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "gBV" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, @@ -60883,6 +60945,12 @@ dir = 10 }, /area/desert_dam/interior/dam_interior/garage) +"gLg" = ( +/turf/open/desert/dirt{ + dir = 1; + icon_state = "desert_transition_corner1" + }, +/area/desert_dam/exterior/landing_pad_two) "gLl" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 1 @@ -61050,6 +61118,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) +"hjz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) +"hjW" = ( +/turf/open/desert/dirt{ + dir = 9; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_two) "hmA" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin, @@ -61095,6 +61175,11 @@ icon_state = "cement_sunbleached1" }, /area/desert_dam/exterior/valley/south_valley_dam) +"htc" = ( +/turf/open/desert/dirt{ + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_two) "hvD" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f10" @@ -61173,6 +61258,10 @@ "hCf" = ( /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/south_valley_dam) +"hCY" = ( +/obj/structure/flora/grass/desert/lightgrass_3, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "hDT" = ( /obj/structure/flora/bush/desert/cactus{ icon_state = "cactus_4" @@ -61242,6 +61331,12 @@ icon_state = "bright_clean" }, /area/desert_dam/building/mining/workshop) +"hTf" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 6 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "hTg" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor{ @@ -61260,6 +61355,10 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/r_wall/chigusa, /area/desert_dam/interior/lab_northeast/east_lab_west_hallway) +"hVV" = ( +/obj/structure/flora/grass/desert/lightgrass_9, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "hWz" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/medium, @@ -61349,6 +61448,12 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) +"ign" = ( +/turf/open/desert/dirt{ + dir = 10; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_one) "ihT" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, @@ -61521,6 +61626,12 @@ icon_state = "desert_transition_edge1" }, /area/desert_dam/exterior/valley/valley_wilderness) +"iHF" = ( +/turf/open/desert/dirt{ + dir = 10; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_two) "iIB" = ( /obj/structure/surface/table/reinforced, /obj/effect/landmark/objective_landmark/far, @@ -61533,6 +61644,10 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison, /area/desert_dam/exterior/valley/south_valley_dam) +"iKp" = ( +/obj/structure/desertdam/decals/road_edge, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "iNg" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 2; @@ -61622,11 +61737,19 @@ icon_state = "cement_sunbleached18" }, /area/desert_dam/exterior/valley/bar_valley_dam) +"iZY" = ( +/obj/structure/flora/grass/desert/heavygrass_3, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "jbx" = ( /turf/open/asphalt{ icon_state = "tile" }, /area/desert_dam/exterior/valley/bar_valley_dam) +"jcb" = ( +/obj/structure/flora/grass/desert/lightgrass_6, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "jci" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/close, @@ -61662,6 +61785,15 @@ icon_state = "cement_sunbleached14" }, /area/desert_dam/exterior/valley/valley_hydro) +"jqU" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal2" + }, +/obj/effect/decal/sand_overlay/sand1{ + dir = 8 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "jre" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor/prison{ @@ -62031,6 +62163,12 @@ }, /turf/open/floor/sandstone/runed, /area/desert_dam/interior/caves/temple) +"kPo" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal4" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "kPs" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/desert/dirt, @@ -62241,6 +62379,11 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) +"lzs" = ( +/turf/open/desert/dirt{ + icon_state = "rock1" + }, +/area/desert_dam/exterior/landing_pad_two) "lzZ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -62277,6 +62420,9 @@ icon_state = "whiteyellowfull" }, /area/desert_dam/interior/lab_northeast/east_lab_lobby) +"lIt" = ( +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "lIK" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal4" @@ -62285,7 +62431,7 @@ dir = 1 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "lJM" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 9 @@ -62383,6 +62529,12 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_crashsite) +"lZP" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 9 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "mar" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, @@ -62430,6 +62582,13 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_civilian) +"mfH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "mfK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62459,6 +62618,12 @@ icon_state = "sterile_white" }, /area/desert_dam/interior/dam_interior/workshop) +"mjR" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "mkd" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" @@ -62500,6 +62665,12 @@ icon_state = "green" }, /area/desert_dam/interior/dam_interior/atmos_storage) +"moq" = ( +/turf/open/desert/dirt{ + dir = 6; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_one) "mqM" = ( /obj/effect/landmark/monkey_spawn, /turf/open/desert/rock, @@ -62530,6 +62701,10 @@ icon_state = "multi_tiles" }, /area/desert_dam/interior/caves/temple) +"muj" = ( +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "myx" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/prison{ @@ -62566,6 +62741,19 @@ }, /turf/open/gm/river/desert/shallow, /area/desert_dam/exterior/river/riverside_south) +"mBO" = ( +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) +"mDd" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal12" + }, +/obj/effect/decal/sand_overlay/sand1{ + dir = 10 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "mDz" = ( /obj/effect/decal/cleanable/dirt, /turf/open/asphalt/cement_sunbleached{ @@ -62707,6 +62895,9 @@ icon_state = "kitchen" }, /area/desert_dam/building/cafeteria/cafeteria) +"mZb" = ( +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "mZj" = ( /obj/effect/decal/sand_overlay/sand1{ dir = 4 @@ -62737,6 +62928,12 @@ "ncm" = ( /turf/open/desert/rock/deep, /area/desert_dam/interior/dam_interior/east_tunnel_entrance) +"ndF" = ( +/turf/open/desert/dirt{ + dir = 1; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_one) "ndP" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -62762,6 +62959,12 @@ icon_state = "cement_sunbleached13" }, /area/desert_dam/exterior/valley/south_valley_dam) +"niN" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 1 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "nji" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -62808,6 +63011,12 @@ icon_state = "sterile_white" }, /area/desert_dam/building/dorms/restroom) +"nnv" = ( +/turf/open/desert/dirt{ + dir = 9; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_one) "nsf" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal12" @@ -63009,6 +63218,11 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/valley/valley_crashsite) +"ogc" = ( +/turf/open/desert/dirt{ + icon_state = "rock1" + }, +/area/desert_dam/exterior/landing_pad_one) "oit" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/desert/dirt{ @@ -63022,6 +63236,10 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) +"onm" = ( +/obj/structure/flora/grass/desert/lightgrass_4, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "onA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -63151,6 +63369,10 @@ icon_state = "desert_transition_edge1" }, /area/desert_dam/exterior/valley/valley_hydro) +"oJT" = ( +/obj/structure/flora/grass/desert/lightgrass_2, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "oJW" = ( /obj/structure/machinery/light{ dir = 8 @@ -63163,6 +63385,12 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) +"oMz" = ( +/turf/open/desert/dirt{ + dir = 4; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_one) "oNS" = ( /obj/structure/stairs, /obj/structure/platform{ @@ -63326,7 +63554,7 @@ dir = 1 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "ppS" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, @@ -63388,6 +63616,14 @@ icon_state = "white" }, /area/desert_dam/interior/dam_interior/garage) +"pzk" = ( +/obj/effect/decal/sand_overlay/sand1/corner1{ + dir = 1 + }, +/turf/open/asphalt/cement_sunbleached{ + icon_state = "cement_sunbleached18" + }, +/area/desert_dam/exterior/landing_pad_one) "pzv" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal5" @@ -63450,6 +63686,13 @@ /obj/structure/window/framed/hangar/reinforced, /turf/open/floor/plating, /area/desert_dam/interior/dam_interior/garage) +"pHs" = ( +/obj/structure/desertdam/decals/road_stop{ + dir = 8; + icon_state = "stop_decal5" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "pHU" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -63498,6 +63741,11 @@ icon_state = "cement_sunbleached3" }, /area/desert_dam/exterior/valley/valley_civilian) +"pRD" = ( +/turf/open/desert/dirt{ + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_one) "pSM" = ( /obj/effect/landmark/nightmare{ insert_tag = "purple-new-bridge" @@ -63562,6 +63810,12 @@ dir = 6 }, /area/desert_dam/interior/caves/temple) +"qkz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "qkJ" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal4" @@ -63575,6 +63829,10 @@ icon_state = "cement12" }, /area/desert_dam/exterior/telecomm/lz1_south) +"qlr" = ( +/obj/structure/flora/grass/desert/heavygrass_4, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "qlx" = ( /obj/effect/decal/sand_overlay/sand1, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -63696,6 +63954,12 @@ icon_state = "cement_sunbleached18" }, /area/desert_dam/exterior/valley/south_valley_dam) +"qDl" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/asphalt/cement_sunbleached{ + icon_state = "cement_sunbleached9" + }, +/area/desert_dam/exterior/landing_pad_one) "qEJ" = ( /obj/structure/desertdam/decals/road_edge, /obj/effect/decal/cleanable/dirt, @@ -63714,6 +63978,12 @@ /obj/structure/flora/grass/tallgrass/desert/corner, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) +"qHh" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 10 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "qHt" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, @@ -63725,6 +63995,10 @@ /obj/structure/flora/grass/desert/lightgrass_10, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/bar_valley_dam) +"qIC" = ( +/obj/structure/flora/tree/joshua, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "qJI" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -63762,6 +64036,12 @@ icon_state = "squareswood" }, /area/desert_dam/interior/caves/temple) +"qLE" = ( +/turf/open/desert/dirt{ + dir = 5; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_one) "qLT" = ( /obj/structure/showcase{ desc = "An ancient, dusty tomb with strange alien writing. It's best not to touch it."; @@ -64142,6 +64422,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) +"sav" = ( +/turf/open/desert/dirt{ + icon_state = "desert_transition_corner1" + }, +/area/desert_dam/exterior/landing_pad_two) +"saQ" = ( +/obj/structure/fence, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) +"saS" = ( +/obj/structure/flora/grass/desert/heavygrass_9, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "sbP" = ( /obj/effect/decal/sand_overlay/sand1, /obj/effect/decal/cleanable/liquid_fuel, @@ -64325,6 +64618,22 @@ icon_state = "cement_sunbleached4" }, /area/desert_dam/exterior/valley/valley_hydro) +"sAm" = ( +/turf/open/desert/dirt{ + dir = 1; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_two) +"sAZ" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) +"sCW" = ( +/obj/structure/largecrate/random/secure, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "sDf" = ( /obj/effect/decal/cleanable/generic, /turf/open/floor/prison{ @@ -64403,7 +64712,7 @@ dir = 6 }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "sOu" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/chem_dispenser/soda{ @@ -64431,6 +64740,14 @@ icon_state = "desert_transition_corner1" }, /area/desert_dam/interior/caves/temple) +"sQE" = ( +/obj/effect/decal/sand_overlay/sand1/corner1{ + dir = 4 + }, +/turf/open/asphalt/cement_sunbleached{ + icon_state = "cement_sunbleached18" + }, +/area/desert_dam/exterior/landing_pad_one) "sRl" = ( /obj/effect/landmark/nightmare{ insert_tag = "uppcrash" @@ -64451,6 +64768,14 @@ "sUr" = ( /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) +"sUF" = ( +/obj/effect/decal/sand_overlay/sand1{ + dir = 8 + }, +/turf/open/asphalt{ + icon_state = "tile" + }, +/area/desert_dam/exterior/landing_pad_one) "sWS" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -64565,7 +64890,7 @@ icon_state = "road_edge_decal3" }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "tni" = ( /obj/effect/decal/sand_overlay/sand1, /turf/open/asphalt{ @@ -64608,6 +64933,12 @@ icon_state = "bright_clean" }, /area/desert_dam/interior/dam_interior/garage) +"txr" = ( +/turf/open/desert/dirt{ + dir = 4; + icon_state = "desert_transition_corner1" + }, +/area/desert_dam/exterior/landing_pad_one) "txD" = ( /obj/structure/toilet{ dir = 8 @@ -64792,6 +65123,15 @@ /obj/structure/flora/grass/tallgrass/desert, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) +"ucS" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal2" + }, +/obj/effect/decal/sand_overlay/sand1/corner1{ + dir = 4 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "uez" = ( /turf/closed/wall/hangar{ name = "reinforced metal wall" @@ -64823,6 +65163,10 @@ dir = 1 }, /area/desert_dam/interior/caves/temple) +"uic" = ( +/obj/structure/machinery/colony_floodlight, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "uis" = ( /obj/effect/decal/sand_overlay/sand1, /turf/open/asphalt/cement_sunbleached{ @@ -64874,6 +65218,15 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/south_valley_dam) +"urC" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal9" + }, +/obj/effect/decal/sand_overlay/sand1{ + dir = 9 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "uso" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" @@ -64955,6 +65308,12 @@ icon_state = "dirt2" }, /area/desert_dam/exterior/valley/valley_crashsite) +"uHx" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "uHT" = ( /obj/structure/machinery/camera/autoname/lz_camera, /turf/open/floor/plating, @@ -64967,6 +65326,10 @@ icon_state = "whitegreenfull" }, /area/desert_dam/building/medical/treatment_room) +"uJl" = ( +/obj/structure/flora/grass/desert/lightgrass_9, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "uKo" = ( /obj/structure/platform/mineral/sandstone/runed{ dir = 4 @@ -64995,6 +65358,10 @@ }, /turf/open/desert/rock, /area/desert_dam/exterior/valley/valley_crashsite) +"uME" = ( +/obj/structure/flora/grass/desert/lightgrass_2, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "uMG" = ( /obj/structure/platform{ dir = 1 @@ -65036,6 +65403,11 @@ /obj/structure/flora/grass/desert/lightgrass_9, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) +"uSv" = ( +/turf/open/asphalt{ + icon_state = "tile" + }, +/area/desert_dam/exterior/landing_pad_two) "uTo" = ( /obj/structure/flora/grass/tallgrass/desert, /turf/open/desert/dirt, @@ -65051,6 +65423,11 @@ /obj/effect/decal/remains/human, /turf/open/desert/rock, /area/desert_dam/interior/caves/temple) +"uWt" = ( +/turf/closed/wall/hangar{ + name = "reinforced metal wall" + }, +/area/desert_dam/exterior/landing_pad_two) "uWT" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -65072,6 +65449,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) +"uZr" = ( +/turf/open/desert/dirt{ + icon_state = "desert_transition_corner1" + }, +/area/desert_dam/exterior/landing_pad_one) "vfr" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/desert/dirt{ @@ -65116,6 +65498,10 @@ /obj/structure/fence, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) +"vjO" = ( +/obj/structure/flora/grass/desert/lightgrass_12, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "vnf" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -65263,6 +65649,12 @@ icon_state = "cement_sunbleached3" }, /area/desert_dam/exterior/telecomm/lz2_storage) +"vGu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "vHj" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -65338,6 +65730,12 @@ icon_state = "cement_sunbleached19" }, /area/desert_dam/exterior/valley/bar_valley_dam) +"vTA" = ( +/turf/open/desert/dirt{ + dir = 6; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_two) "vTR" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal4" @@ -65434,6 +65832,12 @@ /obj/effect/decal/cleanable/dirt, /turf/closed/wall/r_wall/bunker, /area/desert_dam/interior/dam_interior/garage) +"wpr" = ( +/obj/effect/decal/sand_overlay/sand1, +/turf/open/asphalt{ + icon_state = "tile" + }, +/area/desert_dam/exterior/landing_pad_one) "wpW" = ( /obj/structure/flora/grass/desert/lightgrass_6, /turf/open/desert/dirt, @@ -65487,6 +65891,12 @@ /obj/structure/desertdam/decals/road_edge, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) +"wuV" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "wya" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -65519,6 +65929,16 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_telecoms) +"wDC" = ( +/obj/structure/prop/dam/large_boulder/boulder1, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) +"wEy" = ( +/turf/open/desert/dirt{ + dir = 1; + icon_state = "desert_transition_corner1" + }, +/area/desert_dam/exterior/landing_pad_one) "wFv" = ( /obj/structure/surface/table/reinforced, /turf/open/floor/prison{ @@ -65682,6 +66102,12 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_hydro) +"xbA" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal12" + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_one) "xcG" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3" @@ -65988,6 +66414,12 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_civilian) +"xOm" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 5 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_two) "xOK" = ( /obj/effect/blocker/toxic_water/Group_2, /obj/structure/disposalpipe/segment, @@ -66024,6 +66456,12 @@ icon_state = "tile" }, /area/desert_dam/exterior/valley/valley_labs) +"xUS" = ( +/turf/open/desert/dirt{ + dir = 4; + icon_state = "desert_transition_edge1" + }, +/area/desert_dam/exterior/landing_pad_two) "xUU" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/body, /turf/open/floor/corsat{ @@ -66031,6 +66469,12 @@ icon_state = "squareswood" }, /area/desert_dam/interior/caves/temple) +"xWj" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 6 + }, +/turf/open/desert/dirt, +/area/desert_dam/exterior/landing_pad_one) "xYb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -66066,6 +66510,13 @@ }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_labs) +"ybW" = ( +/obj/structure/desertdam/decals/road_edge, +/obj/effect/decal/sand_overlay/sand1{ + dir = 4 + }, +/turf/open/asphalt, +/area/desert_dam/exterior/landing_pad_two) "ydw" = ( /obj/structure/window/framed/hangar/reinforced, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -66133,7 +66584,7 @@ icon_state = "E" }, /turf/open/asphalt, -/area/desert_dam/exterior/valley/valley_cargo) +/area/desert_dam/exterior/landing_pad_two) "ylT" = ( /obj/structure/machinery/light{ dir = 4 @@ -68236,7 +68687,7 @@ dTs dTs dTs dTs -cuH +lzs dTs dTs dTs @@ -68244,7 +68695,7 @@ dTs dTs dTs dTs -cuH +lzs dTs dTs dTs @@ -68468,18 +68919,18 @@ dTs dTs dTs dTs -csA -crq -csA -crq +gLg +sav +gLg +sav dTs dTs dTs -cwB -cwB -crq -csA -crq +xUS +xUS +sav +gLg +sav dTs dTs dTs @@ -68695,27 +69146,27 @@ dTs dTs dTs dTs -csA -cwB -crq +gLg +xUS +sav dTs dTs -csA -cwB -csD -crr -csD -crr -cwB -cwB -csD -doE -doE -crr -csD -crr -crq -cuH +gLg +xUS +vTA +erF +vTA +erF +xUS +xUS +vTA +lIt +lIt +erF +vTA +erF +sav +lzs dTs dTs dTs @@ -68922,35 +69373,35 @@ dTs dTs dTs dTs -csA -cwB -crq +gLg +xUS +sav dTs dTs -csA -cwB -csD -doE -cxV -csB -crr -csD -doE -doE -doE +gLg +xUS +vTA +lIt +sAm +htc +erF +vTA +lIt +lIt +lIt aMM -doE -doE -doE -doE -doE -doE -doE -doE -doE +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt cGR -cwB -crq +xUS +sav dTs dTs dTs @@ -69154,55 +69605,295 @@ dTs dTs dTs dTs -cuH -csA -csD -doE -crr -cwB -crq -csB -doE -doE -doE +lzs +gLg +vTA +lIt +erF +xUS +sav +htc +lIt +lIt +lIt cGR -csD -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE +vTA +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +sAm +dTs +dTs +dTs +dTs +acu +"} +(14,1,1) = {" +acu +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +dTs +afD +afk +cEl +aTQ +cxj +awh +afD +dTs +dTs +afD +afD +afD +awi +awi +awi +bPO +bPO +cdh +cdh +ceD +ceD +cwl +ceA +ceA +ceA +axk +ceA +aSI +chG +ceA +acs +acs +aya +aya +aya +aya +acs +acs +cjO +aTH +aTU +cjO +aTZ +aUe +aUe +aUe +aTZ +aTZ +aUe +aUe +aUe +aTZ +ceA +ceA +cId +ceA +bPA +bSv +bSG +bYR +beN +aUm +jLI +cez +jZZ +dTs +dTs +dTs +dTs +cfE +cfe +cgm +cgt +cgZ +cih +cih +cjI +cih +cqd +cqd +cqd +cqd +cqd +cqd +cqd +cih +cvF +cwx +cxN +cmm +cUg doE doE doE doE doE +cPG +cTD +cYY +cUf cxV dTs dTs +xUS +xUS +vTA +lIt +lIt +lIt +lIt +erF +vTA +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +lIt +urC +ybW +ybW +mDd +lIt +lIt +erF +sav +dTs dTs dTs acu "} -(14,1,1) = {" +(15,1,1) = {" acu dTs dTs dTs dTs dTs +wEy dTs dTs +wEy +oMz +uZr +ogc dTs dTs dTs +uZr dTs dTs dTs @@ -69222,249 +69913,9 @@ dTs dTs dTs dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -afD -afk -cEl -aTQ -cxj -awh -afD -dTs -dTs -afD -afD -afD -awi -awi -awi -bPO -bPO -cdh -cdh -ceD -ceD -cwl -ceA -ceA -ceA -axk -ceA -aSI -chG -ceA -acs -acs -aya -aya -aya -aya -acs -acs -cjO -aTH -aTU -cjO -aTZ -aUe -aUe -aUe -aTZ -aTZ -aUe -aUe -aUe -aTZ -ceA -ceA -cId -ceA -bPA -bSv -bSG -bYR -beN -aUm -jLI -cez -jZZ -dTs -dTs -dTs -dTs -cfE -cfe -cgm -cgt -cgZ -cih -cih -cjI -cih -cqd -cqd -cqd -cqd -cqd -cqd -cqd -cih -cvF -cwx -cxN -cmm -cUg -doE -doE -doE -doE -doE -cPG -cTD -cYY -cUf -cxV -dTs -dTs -cwB -cwB -csD -doE -doE -doE -doE -crr -csD -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -doE -cuL -crw -crw -cuz -doE -doE -crr -crq -dTs -dTs -dTs -acu -"} -(15,1,1) = {" -acu -dTs -dTs -dTs -dTs -dTs -air -dTs -dTs -air -amP -apt -ahu -dTs -dTs -dTs -apt -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -dTs -ahu -air -apt +ogc +wEy +uZr dTs dTs dTs @@ -69620,7 +70071,7 @@ cCO ctK dTs dTs -cwz +iHF aKY cMq cGu @@ -69647,14 +70098,14 @@ cGu cMq cQn lIK -crx -crx +dws +dws tlh -doE -doE +lIt +lIt dgG -cxV -cuH +sAm +lzs dTs dTs acu @@ -69665,25 +70116,25 @@ dTs dTs dTs dTs -ahu -ais -apu +ogc +pRD +qLE aba abj cSZ abN -apt -ahu -air -aiY -apu -apt -ahu +uZr +ogc +wEy +moq +qLE +uZr +ogc dTs dTs dTs dTs -air +wEy dTs dTs dTs @@ -69695,14 +70146,14 @@ dTs dTs dTs dTs -air -amP -aiY -axZ -ahu +wEy +oMz +moq +ndF +ogc dTs -amP -apt +oMz +uZr dTs dTs dTs @@ -69854,7 +70305,7 @@ cCU cAa dTs dTs -csD +vTA alh cMC aav @@ -69880,14 +70331,14 @@ cGG cDL cMC cgh -cUl -cvJ -crz +kPo +qkz +hjz tlh -doE -doE -doE -cxV +lIt +lIt +lIt +sAm dTs dTs dTs @@ -69897,30 +70348,30 @@ acu acu dTs dTs -ahu -ahu -air -aiY -aqz -cQf -nzB -nzB +ogc +ogc +wEy +moq +uJl +xWj +mBO +mBO cSZ aTC -amP -aiY -aiZ -aiZ -apu -apt -ahu +oMz +moq +mZb +mZb +qLE +uZr +ogc dTs dTs -air -aiY -apu -amP -apt +wEy +moq +qLE +oMz +uZr dTs dTs dTs @@ -69929,15 +70380,15 @@ dTs dTs dTs dTs -aiY -apc +moq +oJT apP -apu -apt -ait -aja -apu -apt +qLE +uZr +txr +ign +qLE +uZr dTs dTs dTs @@ -70114,15 +70565,15 @@ tcB cDY cMD cBS -cUl -crx -crx +kPo +dws +dws tlh -doE -doE -doE -crr -crq +lIt +lIt +lIt +erF +sav dTs dTs acu @@ -70130,52 +70581,52 @@ acu (18,1,1) = {" acu dTs -air -amP -amP -aiY -aiZ -aiZ +wEy +oMz +oMz +moq +mZb +mZb cQL -cRc -nzB +dja +mBO dvW apP -aiZ -aiZ -aiZ -aiZ -aiZ -apu -apt -air -amP -aiY -aiZ -aJm -aiZ -apu -amP -apt -ahu +mZb +mZb +mZb +mZb +mZb +qLE +uZr +wEy +oMz +moq +mZb +qIC +mZb +qLE +oMz +uZr +ogc dTs dTs -aiY -axZ -ait -aja -aiZ -apc -aiZ -apu -amP -aiY -aiZ -apu -apt -ahu -air -apt +moq +ndF +txr +ign +mZb +oJT +mZb +qLE +oMz +moq +mZb +qLE +uZr +ogc +wEy +uZr dTs dTs dTs @@ -70348,69 +70799,69 @@ cDY cDY cML cBS -cUl -crx -crx +kPo +dws +dws tlh -doE -cuO -doE -doE -cxV -cuH +lIt +uic +lIt +lIt +sAm +lzs dTs acu "} (19,1,1) = {" acu dTs -ais -aiZ -aJm -aiZ -aiZ +pRD +mZb +qIC +mZb +mZb aQS -anF +vjO aHW cQL -dvZ -aqz -aiZ -aiZ -aiZ +lZP +uJl +mZb +mZb +mZb aQS -aqz -aiZ -apu -aiY -aiZ -aiZ -aiZ -aiZ -aiZ -aiZ +uJl +mZb +qLE +moq +mZb +mZb +mZb +mZb +mZb +mZb aQS -apu -amP -aiY -aiZ -aiZ -apu -amP -aiY -aiZ -aiZ +qLE +oMz +moq +mZb +mZb +qLE +oMz +moq +mZb +mZb ben -aiZ -aiZ -aiZ -aiZ -aiZ +mZb +mZb +mZb +mZb +mZb bge -amP -aiY -apu -amP +oMz +moq +qLE +oMz bht bht bht @@ -70582,15 +71033,15 @@ cDY cDY cNb cRB -cUl -cvJ -crz +kPo +qkz +hjz tlh -doE -doE -doE -doE -cxV +lIt +lIt +lIt +lIt +sAm dTs dTs acu @@ -70598,9 +71049,9 @@ acu (20,1,1) = {" acu dTs -ais -aiZ -aiZ +pRD +mZb +mZb aPA aQe aQT @@ -70816,14 +71267,14 @@ cDY cDY cNh djl -daD -crx -crx +sAZ +dws +dws tlh -doE -doE -csE -cxU +lIt +lIt +uME +hjW dTs dTs dTs @@ -70832,9 +71283,9 @@ acu (21,1,1) = {" acu dTs -ait -aja -aiZ +txr +ign +mZb aPB aQf aQU @@ -71024,7 +71475,7 @@ cRM cRM dFn doE -cCY +doE cDb abS cDY @@ -71050,15 +71501,15 @@ cDY cDY cNi dws -crx -crx -crx +dws +dws +dws tlh -crv -drL -drO -crr -crq +onm +hTf +xOm +erF +sav dTs dTs acu @@ -71067,8 +71518,8 @@ acu acu dTs dTs -ait -aja +txr +ign aPB aQg aQV @@ -71284,15 +71735,15 @@ cDY cDY cNx dws -crx -cvJ -crz +dws +qkz +hjz tlh fSc -dsE -drT -cru -cxV +fYz +niN +hCY +sAm dTs dTs acu @@ -71302,7 +71753,7 @@ acu dTs dTs dTs -ais +pRD aPB aQg aQV @@ -71518,15 +71969,15 @@ cDY cDY cPI dws -crx -crx -crx +dws +dws +dws tlh -drL -uTo -drN -doE -crr +hTf +muj +bFC +lIt +erF dTs dTs acu @@ -71536,7 +71987,7 @@ acu dTs dTs dTs -ais +pRD aPB aQg aQV @@ -71752,15 +72203,15 @@ cDY cDY cPW djk -cUk -crx -crx +eRX +dws +dws tlh -duc -drN -cAd -doE -cxU +qHh +bFC +hVV +lIt +hjW czA dTs acu @@ -71770,7 +72221,7 @@ acu dTs dTs dTs -ais +pRD aPB aQg aQV @@ -71986,14 +72437,14 @@ cDY cDY cMD cRE -cUl -cvJ -crz +kPo +qkz +hjz tlh -csE -cxT -doE -doE +uME +jcb +lIt +lIt dTs dTs dTs @@ -72004,7 +72455,7 @@ acu dTs dTs dTs -ais +pRD aPB aQg aQV @@ -72220,15 +72671,15 @@ cDY cDY cML cBS -cUl -crx -crx +kPo +dws +dws tlh -cru -csE -doE -doE -cxV +hCY +uME +lIt +lIt +sAm dTs dTs acu @@ -72237,8 +72688,8 @@ acu acu dTs dTs -air -aiY +wEy +moq aPB aQh aQW @@ -72454,15 +72905,15 @@ tcB cDY cNb cBS -cUl -crx -crx +kPo +dws +dws tlh -drL -drO -doE -doE -cxV +hTf +xOm +lIt +lIt +sAm dTs dTs acu @@ -72472,7 +72923,7 @@ acu dTs dTs dDB -aiZ +mZb aPC aQi aQX @@ -72688,15 +73139,15 @@ cFP cLL cMC cgh -cUl -cvJ -crz +kPo +qkz +hjz tlh -dsE -drT -cru -doE -cxV +fYz +niN +hCY +lIt +sAm dTs dTs acu @@ -72705,9 +73156,9 @@ acu acu dTs dTs -ais -aiZ -aiZ +pRD +mZb +mZb aQj aQY aQZ @@ -72922,14 +73373,14 @@ cDX cDX cES cRB -cUl -crx -crx +kPo +dws +dws tlh -duc -drN -csE -cxU +qHh +bFC +uME +hjW dTs dTs dTs @@ -72939,9 +73390,9 @@ acu acu tZQ aad -aiY -aiZ -aiZ +moq +mZb +mZb aQj aQZ aQZ @@ -73132,38 +73583,38 @@ cEa crw crw poM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -cRM -daD -crx -crx +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +djl +sAZ +dws +dws tlh -csE -cAd -doE -cxV +uME +hVV +lIt +sAm dTs dTs dTs @@ -73177,15 +73628,15 @@ aqf aqf aqf aqT -auy -auy -auy -aPJ -aql -ara -asc -auy -arZ +iKp +iKp +iKp +ekN +aSY +aQg +mjR +iKp +xbA aLa aWh aWh @@ -73366,38 +73817,38 @@ crx crx crx ylS -crx -crx +dws +dws ylS -crx -crx +dws +dws ylS -dvo -dvo +bhp +bhp ylS -crx -crx +dws +dws ylS -dvo -dvo +bhp +bhp cXA -crx -crx +dws +dws ylS -crx -crx +dws +dws ylS -crx -crx +dws +dws ylS -crx -cvJ -crz +dws +qkz +hjz tlh -doE -cuO +lIt +uic aPK -cxV +sAm dTs dTs dTs @@ -73405,21 +73856,21 @@ acu "} (32,1,1) = {" acu -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aqg -agV -aqg -asa +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQV +beT +aQV +aUi qoJ aWh aWh @@ -73599,39 +74050,39 @@ crx crx crx crx -cvG -crx -crx -cvG -crx -crx -cvG -crx -dvo -cKL -dvo -dvo -cKL -dvo -crx -cvG -crx -crx -cvG -crx -crx -cvG -crx -crx -cvG -crx -crx -crx +vGu +dws +dws +vGu +dws +dws +vGu +dws +bhp +mfH +bhp +bhp +mfH +bhp +dws +vGu +dws +dws +vGu +dws +dws +vGu +dws +dws +vGu +dws +dws +dws tlh -csE -doE -doE -cxV +uME +lIt +lIt +sAm dTs dTs dTs @@ -73639,21 +74090,21 @@ acu "} (33,1,1) = {" acu -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aqg -agV -aqg -asa +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQV +beT +aQV +aUi abQ aWh aWh @@ -73833,38 +74284,38 @@ cuJ cuJ cuJ cuJ -cuJ +jqU cnA -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ -cUk -crx -dvo +djk +djk +djk +djk +djk +djk +eRX +dws +bhp cQc -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ -cMJ +djk +djk +djk +djk +djk +djk +djk +djk +djk +djk eCk -cuJ -cuJ -cuJ -cuJ -cuJ +jqU +jqU +jqU +jqU +jqU sNX -doE -doE -doE +lIt +lIt +lIt dTs dTs dTs @@ -73873,21 +74324,21 @@ acu "} (34,1,1) = {" acu -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aSc -aIJ -aql -ara -agV -aqg -asa +eZC +eZC +eZC +eZC +eZC +eZC +eZC +eZC +ucS +uHx +aSY +aQg +beT +aQV +aUi cEc aWh aWh @@ -74086,18 +74537,18 @@ cNo bvA daw deU -cQm -cQm +uSv +uSv aMT aNx -cKp -doE -doE -doE -doE -doE -doE -doE +uWt +lIt +lIt +lIt +lIt +lIt +lIt +lIt dTs dTs dTs @@ -74110,18 +74561,18 @@ acu tZQ tZQ dTs -ars -aja -aiZ -aiZ -aFu +cSn +ign +mZb +mZb +wDC aSd -apz -aqg -aqg -aqg -aqg -asa +aSx +aQV +aQV +aQV +aQV +aUi aLa aWh aWh @@ -74318,20 +74769,20 @@ cVH cVH cXD bvA -daU +cDY deV -cQm -cQm +uSv +uSv aMU aNz -cKr -doE -doE -doE -doE -doE +saQ +lIt +lIt +lIt +lIt +lIt dTs -doE +lIt dTs dTs dTs @@ -74345,17 +74796,17 @@ dTs dTs dTs dTs -ait -aja -aiZ -aiZ -aIa -apz -aqg -aqg -agV -aqg -asa +txr +ign +mZb +mZb +aPB +aSx +aQV +aQV +beT +aQV +aUi qoJ aWh aWh @@ -74552,17 +75003,17 @@ cVH cVH cXN bvA -daU +cDY aMJ -cQm -cQm +uSv +uSv aNe aNz -cKr -doE -doE -doE -doE +saQ +lIt +lIt +lIt +lIt dTs dTs dTs @@ -74580,16 +75031,16 @@ dTs dTs dTs dTs -ais -aiZ -aiZ -aIa -apz -aql -ara -agV -aqg -asa +pRD +mZb +mZb +aPB +aSx +aSY +aQg +beT +aQV +aUi abQ aWh aWh @@ -74788,14 +75239,14 @@ aMw aMI dbc aMJ -cQm -cQm +uSv +uSv aNm aNA -cKr -doE -doE -doE +saQ +lIt +lIt +lIt dTs dTs dTs @@ -74814,16 +75265,16 @@ dTs dTs dTs dTs -ait -aja -aiZ -aIa -apz -aqg -aqg -agV -aqg -asa +txr +ign +mZb +aPB +aSx +aQV +aQV +beT +aQV +aUi cEc aWh aWh @@ -75027,8 +75478,8 @@ bvA ddJ bvA bvA -doE -doE +lIt +lIt dTs dTs dTs @@ -75049,14 +75500,14 @@ dTs dTs dTs dTs -ais +pRD abb -aIa -apz -aqg -aqg -asd -auz +aPB +aSx +aQV +aQV +wuV +eRL aaA aLa aWh @@ -75283,13 +75734,13 @@ dTs dTs dTs dTs -ait -aja -aIa -apz -aql -ara -asa +txr +ign +aPB +aSx +aSY +aQg +aUi aUD aVg acJ @@ -75516,14 +75967,14 @@ dTs dTs dTs dTs -ahu -ahu -ais -aIa -apz -aqg -aqg -asa +ogc +ogc +pRD +aPB +aSx +aQV +aQV +aUi aUD aVh aQY @@ -75749,15 +76200,15 @@ dTs dTs dTs dTs -ahu -ahu -air -aiY -aIa -apz -aqg -aqg -asa +ogc +ogc +wEy +moq +aPB +aSx +aQV +aQV +aUi aUE aVj aQX @@ -75987,38 +76438,38 @@ aOc aOc aOc aOc -aoD -apz -aql -ara -asc -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy -auy +pzk +aSx +aSY +aQg +mjR +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp +iKp aQg aQV aQV @@ -76221,38 +76672,38 @@ aPD byX iqK aOc -aoE -apz -aqg -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg -aDb -aqg -aqg +aSa +aSx +aQV +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV +aQW +aQV +aQV aQg aQV aSY @@ -76455,38 +76906,38 @@ aPD aPD iqK aau -aoE -apz -aqg -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg -aDc -aqg -aqg +aSa +aSx +aQV +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV +aQU +aQV +aQV aQg aQV aSY @@ -76689,38 +77140,38 @@ aPE pDd aPE aau -aoE -aIK -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -auz -aIJ -aqg -aqg -asd -auz -auz -auz -auz +aSa +eZN +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +eRL +uHx +aQV +aQV +wuV +eRL +eRL +eRL +eRL aQg aQV aQV @@ -76923,38 +77374,38 @@ rFz aPF aRc aOc -akz -aNp -aNp -aNp -aNp -alo -alo -alo -alo -alo -alo -alo -alo -alo -aNp -aNp -alo -alo -aNp -aNp -aNp -aNp -aNp -apO -apA +aUE +aQX +aQX +aQX +aQX +aVg +aVg +aVg +aVg +aVg +aVg +aVg +aVg +aVg +aQX +aQX +aVg +aVg +aQX +aQX +aQX +aQX +aQX +aRZ +gBQ dez -aNL +pHs baW -aky -aNp -aNp -apO +aUC +aQX +aQX +aRZ bfn aQW aQW @@ -77170,24 +77621,24 @@ aVk adq aeg aVk -aVH -aoe +bhh +sUF afy -apa -aoG +aUD +aVh anh -aoe -aoe -aoe -aoe -bco +sUF +sUF +sUF +sUF +sQE bcC -aNL -aNL +pHs +pHs baW -aoE +aSa anh -aoe +sUF aUH bfo bfo @@ -77396,41 +77847,41 @@ rFz rFz bzU aOc -bej -bfp -bej -aiZ -acW -aiZ -aiZ -aiZ +iZY +saS +iZY +mZb +sCW +mZb +mZb +mZb aeY -aiZ -ajS -bvh -avC -aDe -beD -aiZ -aiZ -aiZ -aIa -apz -aql -ara -asa -aoE -aDe -aiZ -aqy -aja -aiZ -aqy -ars -aja -aiZ -aiZ -aqy +mZb +aQj +qDl +aVG +wpr +qlr +mZb +mZb +mZb +aPB +aSx +aSY +aQg +aUi +aSa +wpr +mZb +nnv +ign +mZb +nnv +cSn +ign +mZb +mZb +nnv dTs dTs dTs @@ -77630,8 +78081,8 @@ rFz rFz aRc aau -aja -bej +ign +iZY aVI aVI aVI @@ -77655,15 +78106,15 @@ aqg asa bdV bep -aqy -axY -ait -ars +nnv +fqj +txr +cSn dTs dTs -ait -ars -ars +txr +cSn +cSn dTs dTs dTs @@ -77864,8 +78315,8 @@ aPF aPF aRc aau -ait -aja +txr +ign aVI azf aYu @@ -77889,14 +78340,14 @@ aqg asa bdW aiZ -axZ -ahu +ndF +ogc dTs dTs dTs dTs dTs -ahu +ogc dTs dTs dTs @@ -78098,8 +78549,8 @@ aRD aTg aTh aOc -ahu -ait +ogc +txr aVI aNs aWl diff --git a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm index 7cd4120ce4a4..fc8a5f896be1 100644 --- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm +++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm @@ -1942,7 +1942,7 @@ }, /obj/item/stack/snow, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "aje" = ( /obj/structure/machinery/light/double{ dir = 4; @@ -2015,7 +2015,7 @@ }, /obj/item/tool/shovel/snow, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "ajF" = ( /obj/item/tool/shovel/etool, /turf/open/auto_turf/snow/layer3, @@ -3767,7 +3767,7 @@ dir = 1 }, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "avz" = ( /obj/structure/surface/rack, /obj/item/bodybag/tarp/snow{ @@ -6661,10 +6661,6 @@ opacity = 0 }, /area/shiva/interior/aerodrome) -"bcM" = ( -/obj/structure/flora/bush/ausbushes/lavendergrass, -/turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) "bcV" = ( /obj/structure/platform/strata{ dir = 1 @@ -7244,7 +7240,7 @@ dir = 8 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "bHN" = ( /obj/item/ammo_magazine/rifle/boltaction{ pixel_x = -7; @@ -9396,7 +9392,7 @@ dir = 1 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "eit" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/auto_turf/ice/layer1, @@ -9955,7 +9951,7 @@ "eSN" = ( /obj/vehicle/train/cargo/engine, /turf/open/floor/plating/plating_catwalk/shiva, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "eTV" = ( /obj/structure/flora/bush/ausbushes/lavendergrass{ icon_state = "lavendergrass_2" @@ -12418,7 +12414,7 @@ dir = 8 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "hyu" = ( /turf/open/floor/shiva{ icon_state = "bluefull" @@ -13037,10 +13033,6 @@ dir = 1 }, /area/shiva/interior/colony/deck) -"idG" = ( -/obj/structure/flora/tree/dead/tree_4, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "idR" = ( /obj/structure/platform_decoration/strata{ dir = 1 @@ -13255,10 +13247,6 @@ /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/auto_turf/snow/layer0, /area/shiva/interior/warehouse) -"ipc" = ( -/obj/vehicle/train/cargo/trolley, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) "ipP" = ( /obj/structure/machinery/colony_floodlight, /turf/open/auto_turf/snow/layer3, @@ -13694,7 +13682,7 @@ dir = 8 }, /turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "iHN" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/shiva{ @@ -13770,7 +13758,7 @@ dir = 4 }, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "iLf" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = 12; @@ -13839,7 +13827,7 @@ pixel_y = 28 }, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "iPg" = ( /turf/open/floor/shiva{ dir = 8; @@ -14105,7 +14093,7 @@ dir = 4 }, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "jay" = ( /turf/open/floor/shiva{ dir = 1; @@ -14191,7 +14179,7 @@ dir = 8 }, /turf/open/auto_turf/snow/layer4, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "jhq" = ( /turf/open/floor/shiva{ icon_state = "radiator_tile" @@ -15125,7 +15113,7 @@ dir = 4 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "khz" = ( /obj/item/device/flashlight, /turf/open/floor/shiva, @@ -18470,7 +18458,7 @@ "nAs" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "nAY" = ( /turf/open/floor/shiva{ icon_state = "yellowcorners" @@ -18543,13 +18531,6 @@ icon_state = "yellowfull" }, /area/shiva/interior/aux_power) -"nEH" = ( -/obj/effect/landmark/monkey_spawn, -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/floor/plating, -/area/shiva/exterior/lz1_valley) "nEQ" = ( /obj/structure/inflatable, /turf/open/auto_turf/snow/layer2, @@ -20544,7 +20525,7 @@ "pKK" = ( /obj/item/lightstick/red/variant, /turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "pKP" = ( /obj/structure/surface/table, /obj/item/device/flashlight/lamp/green{ @@ -21261,7 +21242,7 @@ "que" = ( /obj/item/lightstick/red/variant/planted, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "qvr" = ( /obj/structure/machinery/alarm{ dir = 8; @@ -22362,6 +22343,10 @@ /obj/structure/prop/ice_colony/soil_net, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard) +"rNY" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/auto_turf/snow/layer0, +/area/shiva/exterior/junkyard) "rNZ" = ( /obj/structure/prop/ice_colony/dense/planter_box{ dir = 9 @@ -22668,7 +22653,7 @@ dir = 4 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "scN" = ( /obj/structure/surface/table, /obj/item/device/assembly/infra, @@ -22901,10 +22886,6 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/junkyard/cp_bar) -"sqb" = ( -/obj/item/lightstick/red/variant/planted, -/turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) "sqy" = ( /obj/item/wrapping_paper, /obj/structure/surface/table/reinforced/prison, @@ -23055,7 +23036,7 @@ dir = 4 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "sAe" = ( /obj/structure/machinery/light/double{ dir = 4; @@ -23837,7 +23818,7 @@ /area/shiva/interior/caves/cp_camp) "tpg" = ( /turf/open/floor/plating/plating_catwalk/shiva, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "tpL" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" @@ -25752,10 +25733,6 @@ icon_state = "kitchen" }, /area/shiva/interior/colony/central) -"vdk" = ( -/obj/vehicle/train/cargo/engine, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/lz1_valley) "vdw" = ( /obj/item/lightstick/red/spoke/planted{ layer = 2.99; @@ -25983,7 +25960,7 @@ dir = 8 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "voH" = ( /obj/structure/machinery/landinglight/ds2/spoke{ pixel_x = 1; @@ -26021,7 +25998,7 @@ dir = 9 }, /turf/open/auto_turf/snow/layer2, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "vrm" = ( /obj/structure/bed/chair/office/light{ dir = 4 @@ -27183,7 +27160,7 @@ dir = 4 }, /turf/open/auto_turf/snow/layer1, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "wOq" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/shiva{ @@ -27679,12 +27656,16 @@ icon_state = "multi_tiles" }, /area/shiva/interior/colony/research_hab) +"xwk" = ( +/obj/item/lightstick/red/variant, +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/junkyard) "xwo" = ( /obj/structure/platform/shiva/catwalk{ dir = 8 }, /turf/open/auto_turf/snow/layer3, -/area/shiva/exterior/lz1_valley) +/area/shiva/exterior/junkyard) "xwL" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, @@ -34636,7 +34617,7 @@ mcH mcH mcH mcH -nEH +mcH mcH mcH mcH @@ -34952,22 +34933,22 @@ pvv pvv fRg uji -aDM -uqb -uqb -uqb -kLM -kLM -iQq -iQq -iQq -iQq -kLM -kLM -sqb -lNg -aDM -aDM +ofw +kop +kop +kop +tHd +tHd +kyD +kyD +kyD +kyD +tHd +tHd +rtZ +jMf +ofw +ofw huz huz huz @@ -35114,22 +35095,22 @@ pvv pvv fRg hGj -kLM -iOu -uqb -kJQ -uqb -iQq -iQq -iQq -iQq -kLM -iQq -kLM -uqb -kLM +tHd +xvp +kop +xwk +kop +kyD +kyD +kyD +kyD +tHd +kyD +tHd +kop +tHd que -aDM +ofw huz kys pef @@ -35276,22 +35257,22 @@ pvv pvv fRg hGj -kLM -iQq -kLM -uqb -kLM -iQq -iQq -iQq -iQq -iQq -kLM -iQq -iQq -kLM -kLM -kLM +tHd +kyD +tHd +kop +tHd +kyD +kyD +kyD +kyD +kyD +tHd +kyD +kyD +tHd +tHd +tHd huz krU axJ @@ -35438,22 +35419,22 @@ pvv pvv gxK hGj -iQq -iQq -iQq -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq -kLM -kLM -iQq -iQq -iQq +kyD +kyD +kyD +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD +tHd +tHd +kyD +kyD +kyD huz axJ axJ @@ -35600,21 +35581,21 @@ dbH fhv fRg hGj -kLM -kLM -iQq -iQq -kLM -vdk -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq +tHd +tHd +kyD +kyD +tHd +fHx +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD +kyD tpg exX qIr @@ -35762,21 +35743,21 @@ aUA gIQ fRg hGj -uqb -uqb -uqb -kLM -iQq -ipc -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq -iQq +kop +kop +kop +tHd +kyD +dyt +kyD +kyD +kyD +rNY +kyD +kyD +kyD +kyD +kyD eSN akF alS @@ -35924,21 +35905,21 @@ deV eVG fRg hGj -uqb -kLM -kLM -iQq -iQq -ipc -iQq -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq +kop +tHd +tHd +kyD +kyD +dyt +kyD +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD tpg exX qIr @@ -36086,21 +36067,21 @@ dKR pvv fRg hGj -kLM -iQq -iQq -iQq -iQq -iQq -kLM -kLM -uqb -kLM -iQq -iQq -iQq -iQq -iQq +tHd +kyD +kyD +kyD +kyD +kyD +tHd +tHd +kop +tHd +kyD +kyD +kyD +kyD +kyD tpg exX qIr @@ -36248,22 +36229,22 @@ pvv pvv fRg hGj -iQq -iQq -iQq -iQq -iQq -iQq -kLM -aDM -kLM -iQq -iQq -iQq -iQq -iQq -iQq -iQq +kyD +kyD +kyD +kyD +kyD +kyD +tHd +ofw +tHd +kyD +kyD +kyD +kyD +kyD +kyD +kyD huz aut rdS @@ -36410,22 +36391,22 @@ pvv pvv fRg hGj -iQq -iOu -kLM -iOu -kLM -kLM -iQq -kLM -iQq -iQq -iQq -iQq +kyD +xvp +tHd +xvp +tHd +tHd +kyD +tHd +kyD +kyD +kyD +kyD pKK -iQq -iOu -kLM +kyD +xvp +tHd huz rdS axJ @@ -36577,12 +36558,12 @@ khx jac khx iHu -idG -kLM -iQq -iQq -kLM -kLM +jXD +tHd +kyD +kyD +tHd +tHd huz huz huz @@ -36739,12 +36720,12 @@ iMA iMA uKZ ehV -aDM -kTP -iQq -iQq -kLM -uqb +ofw +aQJ +kyD +kyD +tHd +kop huz cio ieD @@ -36902,10 +36883,10 @@ cLq iMA avx voo -kLM -iQq -iQq -kLM +tHd +kyD +kyD +tHd tpg exX qIr @@ -37063,11 +37044,11 @@ fRg xQa iMA avx -uqb -kLM -iQq -iQq -kLM +kop +tHd +kyD +kyD +tHd tpg exX alW @@ -37225,12 +37206,12 @@ fRg uKZ uKZ vqV -kLM -kLM -iQq -iQq -iQq -kLM +tHd +tHd +kyD +kyD +kyD +tHd huz pJM ayZ @@ -37387,12 +37368,12 @@ fRg iMA nIA scp -kLM -iQq -iQq -kLM -iQq -iQq +tHd +kyD +kyD +tHd +kyD +kyD huz aQq axJ @@ -37548,13 +37529,13 @@ pvv oCG kjM oCG -iQq -iQq -iQq -kLM -aDM -kLM -iQq +kyD +kyD +kyD +tHd +ofw +tHd +kyD huz huz avz @@ -37710,14 +37691,14 @@ pvv oCG wRm oCG -iQq -iQq -iQq +kyD +kyD +kyD szU -kLM -iQq -iQq -uqb +tHd +kyD +kyD +kop ncS pTp pTp @@ -37873,13 +37854,13 @@ fRg iMA tLC hye -kLM -iQq -kLM -iQq -iQq -kLM -uqb +tHd +kyD +tHd +kyD +kyD +tHd +kop ncS mRc rdS @@ -38035,13 +38016,13 @@ iMA uKZ uKZ ehV -kLM -iQq -iQq -iQq -kLM -kLM -uqb +tHd +kyD +kyD +kyD +tHd +tHd +kop ncS bWB auh @@ -38197,12 +38178,12 @@ obb vHX iMA ehV -kLM -iQq -iQq -kLM -uqb -uqb +tHd +kyD +kyD +tHd +kop +kop huz huz auh @@ -38359,11 +38340,11 @@ krm iXx iMA ehV -uqb -kLM -iQq +kop +tHd +kyD nAs -uqb +kop ajE huz qSW @@ -38521,11 +38502,11 @@ iMA iMA uKZ ehV -uqb -kLM -iQq -iQq -kLM +kop +tHd +kyD +kyD +tHd ajd huz fjS @@ -38683,11 +38664,11 @@ jhm bHC bHC iKW -kLM -iQq -iQq -iQq -iQq +tHd +kyD +kyD +kyD +kyD qIr oWk qIr @@ -38840,16 +38821,16 @@ pvv pvv fRg hvZ -kLM -iOu -kLM -iOu -kLM -iQq -kLM -iQq -iQq -iQq +tHd +xvp +tHd +xvp +tHd +kyD +tHd +kyD +kyD +kyD qIr oWk qIr @@ -39002,16 +38983,16 @@ aSA pvv fRg hvZ -kLM -iQq -iQq -iQq -iQq -kLM -iQq -iQq -iQq -iQq +tHd +kyD +kyD +kyD +kyD +tHd +kyD +kyD +kyD +kyD qIr akF alS @@ -39164,16 +39145,16 @@ wTz pvv fRg hvZ -iQq -kLM -iQq -iQq -iQq -iQq -iQq -kLM -iQq -iQq +kyD +tHd +kyD +kyD +kyD +kyD +kyD +tHd +kyD +kyD qIr exX qIr @@ -39326,16 +39307,16 @@ dbH wvx fRg hvZ -kLM -iQq -kLM -iQq -iQq -iQq -kLM -snN -kTP -iQq +tHd +kyD +tHd +kyD +kyD +kyD +tHd +rli +aQJ +kyD huz huz kLi @@ -39488,16 +39469,16 @@ dCS eoH fRg hvZ -iQq -iQq -kLM -iQq -iQq -kLM -bcM -aDM -lNg -kLM +kyD +kyD +tHd +kyD +kyD +tHd +qLS +ofw +jMf +tHd huz huz dLi @@ -39650,16 +39631,16 @@ deV uyI fRg hvZ -iQq -iQq -iQq -iQq -iQq -iQq -kLM -aDM -uqb -iQq +kyD +kyD +kyD +kyD +kyD +kyD +tHd +ofw +kop +kyD huz huz huz @@ -39812,17 +39793,17 @@ pti pvv fRg hvZ -kLM -iQq -iQq -iQq -iQq -iQq -kLM -lNg -kLM -iQq -iQq +tHd +kyD +kyD +kyD +kyD +kyD +tHd +jMf +tHd +kyD +kyD huz huz huz @@ -39974,18 +39955,18 @@ pvv pvv fRg hvZ -kLM -kLM -iQq -iQq -iQq -iQq -iQq -kLM -kLM -iQq -iQq -iQq +tHd +tHd +kyD +kyD +kyD +kyD +kyD +tHd +tHd +kyD +kyD +kyD lXQ cwZ kAw @@ -40136,18 +40117,18 @@ pvv pvv fRg hvZ -kLM -iOu -kLM -iOu -kLM -kLM -iQq -kLM -iQq -iQq -kLM -iQq +tHd +xvp +tHd +xvp +tHd +tHd +kyD +tHd +kyD +kyD +tHd +kyD jWh cwZ kAw @@ -40299,17 +40280,17 @@ pvv fWq uji iOA -aDM -lNg -kLM -uqb -uqb -iQq -iQq -kLM -kLM -kLM -kLM +ofw +jMf +tHd +kop +kop +kyD +kyD +tHd +tHd +tHd +tHd fpF wSv kAw diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm index b1beb0dfc2b1..f61ed5ee3597 100644 --- a/maps/map_files/Kutjevo/Kutjevo.dmm +++ b/maps/map_files/Kutjevo/Kutjevo.dmm @@ -244,7 +244,7 @@ "arh" = ( /obj/item/prop/alien/hugger, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "arr" = ( /obj/structure/blocker/invisible_wall, /obj/structure/platform/kutjevo{ @@ -541,7 +541,7 @@ "aIy" = ( /obj/structure/largecrate/black_market/confiscated_equipment, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "aIF" = ( /obj/structure/prop/dam/boulder/boulder1, /turf/open/auto_turf/sand/layer1, @@ -767,7 +767,7 @@ /turf/open/floor/kutjevo/tan/alt_edge{ dir = 1 }, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "bde" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 10 @@ -1139,10 +1139,13 @@ pixel_y = 4 }, /turf/open/floor/almayer/research/containment/floor1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "bEp" = ( /turf/closed/wall/kutjevo/rock, /area/kutjevo/exterior/scrubland) +"bEt" = ( +/turf/open/floor/kutjevo/multi_tiles, +/area/kutjevo/exterior/lz_pad) "bEH" = ( /turf/open/auto_turf/sand/layer2, /area/kutjevo/interior/colony_north) @@ -1180,7 +1183,7 @@ "bGi" = ( /obj/item/stack/sheet/wood, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "bGv" = ( /obj/item/reagent_container/food/drinks/cans/waterbottle, /turf/open/auto_turf/sand/layer0, @@ -1423,7 +1426,7 @@ icon_state = "tree_3" }, /turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "bXc" = ( /obj/structure/surface/rack, /obj/effect/landmark/objective_landmark/close, @@ -1481,7 +1484,7 @@ dir = 4 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "ccu" = ( /turf/open/floor/kutjevo/tan/grey_inner_edge{ dir = 8 @@ -1595,6 +1598,10 @@ }, /turf/open/floor/kutjevo/colors/cyan/tile, /area/kutjevo/interior/complex/med/operating) +"cou" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/kutjevo/multi_tiles, +/area/kutjevo/exterior/lz_pad) "coF" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -1645,6 +1652,12 @@ dir = 6 }, /area/kutjevo/interior/complex/botany) +"cpD" = ( +/obj/structure/flora/bush/desert{ + icon_state = "tree_3" + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/lz_pad) "cqc" = ( /obj/structure/surface/table/almayer, /obj/item/ammo_magazine/shotgun/buckshot{ @@ -1692,7 +1705,7 @@ "ctA" = ( /obj/structure/largecrate, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "ctD" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_30" @@ -1982,6 +1995,10 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/lz_dunes) +"cLr" = ( +/obj/item/stack/sheet/metal, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/lz_pad) "cLQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" @@ -2243,7 +2260,7 @@ "cYb" = ( /obj/structure/largecrate/supply/floodlights, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "cZt" = ( /obj/effect/decal/cleanable/blood, /obj/structure/machinery/door_control/brbutton{ @@ -2397,7 +2414,7 @@ dir = 4 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dib" = ( /turf/open/gm/river/desert/shallow_edge, /area/kutjevo/exterior/runoff_river) @@ -2437,6 +2454,9 @@ dir = 10 }, /area/kutjevo/interior/colony_South/power2) +"dmy" = ( +/turf/open/asphalt/cement_sunbleached, +/area/kutjevo/exterior/lz_pad) "dnd" = ( /turf/open/gm/river/desert/shallow_edge{ dir = 8 @@ -2484,11 +2504,11 @@ dir = 1 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dpH" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dql" = ( /obj/structure/prop/dam/wide_boulder/boulder1, /turf/open/auto_turf/sand/layer1, @@ -2649,7 +2669,7 @@ /turf/open/desert/desert_shore/shore_edge1{ dir = 8 }, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dzd" = ( /obj/item/storage/briefcase, /turf/open/auto_turf/sand/layer0, @@ -2694,6 +2714,9 @@ dir = 8 }, /area/kutjevo/exterior/runoff_river) +"dBj" = ( +/turf/open/floor/kutjevo/plate, +/area/kutjevo/exterior/lz_pad) "dBt" = ( /obj/structure/flora/bush/ausbushes/grassybush{ pixel_x = -8; @@ -2746,7 +2769,7 @@ /area/kutjevo/exterior/Northwest_Colony) "dDL" = ( /turf/open/gm/river/desert/shallow, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dEI" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds1/delayone, @@ -2914,7 +2937,7 @@ pixel_y = 14 }, /turf/open/desert/desert_shore/desert_shore1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "dQq" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 5 @@ -3255,7 +3278,7 @@ dir = 8 }, /turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "ejP" = ( /obj/structure/bed/sofa/south/grey/left, /turf/open/floor/kutjevo/multi_tiles, @@ -3398,7 +3421,7 @@ /obj/structure/surface/rack, /obj/item/tool/crowbar/red, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "era" = ( /obj/structure/closet/crate/freezer/rations, /obj/item/defenses/handheld/tesla_coil, @@ -3650,7 +3673,7 @@ /turf/open/desert/desert_shore/desert_shore1{ dir = 1 }, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "eFX" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -3673,7 +3696,7 @@ "eGL" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "eHX" = ( /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/telecomm/lz1_south) @@ -3910,7 +3933,7 @@ /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "eVv" = ( /obj/structure/machinery/light{ dir = 1 @@ -4188,7 +4211,7 @@ /area/kutjevo/exterior/stonyfields) "fmN" = ( /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "fmR" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/drinks/bottle/vodka, @@ -4617,7 +4640,7 @@ /obj/structure/surface/table/gamblingtable, /obj/item/toy/handcard/aceofspades, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "fTk" = ( /turf/open/floor/kutjevo/multi_tiles{ dir = 4 @@ -4687,7 +4710,7 @@ dir = 4 }, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "fYI" = ( /turf/open/gm/river/desert/shallow_corner{ dir = 4 @@ -4839,7 +4862,7 @@ "gmA" = ( /obj/item/stack/sheet/wood, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "gmS" = ( /obj/structure/machinery/shower{ dir = 1; @@ -5344,7 +5367,7 @@ "gTO" = ( /obj/structure/surface/rack, /turf/open/floor/kutjevo/plate, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "gUa" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -5555,7 +5578,7 @@ dir = 4 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "hnE" = ( /obj/structure/platform/kutjevo/rock{ dir = 4 @@ -6167,7 +6190,7 @@ "iiy" = ( /obj/item/weapon/twohanded/folded_metal_chair, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "iiG" = ( /turf/open/gm/river/desert/deep, /area/kutjevo/interior/complex/botany/east_tech) @@ -6318,6 +6341,10 @@ dir = 4 }, /area/kutjevo/interior/complex/med/triage) +"izY" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/lz_pad) "iBa" = ( /turf/open/floor/kutjevo/colors/orange/inner_corner{ dir = 1 @@ -6377,7 +6404,7 @@ /obj/structure/flora/grass/desert/lightgrass_9, /obj/effect/decal/cleanable/blood/oil, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "iDz" = ( /obj/structure/flora/grass/tallgrass/desert/corner, /turf/open/auto_turf/sand/layer1, @@ -6974,7 +7001,7 @@ "juC" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "juH" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 6; @@ -7162,6 +7189,9 @@ dir = 6 }, /area/kutjevo/interior/power) +"jGF" = ( +/turf/open/floor/almayer/research/containment/floor2, +/area/kutjevo/exterior/lz_pad) "jGX" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/kutjevo/colors, @@ -7302,7 +7332,7 @@ dir = 8 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "jUP" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 1; @@ -7789,7 +7819,7 @@ /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "kBz" = ( /obj/effect/landmark/monkey_spawn, /turf/open/auto_turf/sand/layer1, @@ -7822,7 +7852,7 @@ anchored = 0 }, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "kDS" = ( /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) @@ -8071,7 +8101,7 @@ "kVA" = ( /obj/structure/largecrate/supply/supplies/metal, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "kVH" = ( /obj/structure/flora/grass/desert/lightgrass_11, /turf/open/auto_turf/sand/layer1, @@ -8096,6 +8126,9 @@ dir = 1 }, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) +"kWX" = ( +/turf/open/auto_turf/sand/layer2, +/area/kutjevo/exterior/lz_pad) "kYb" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/atmospipes, @@ -8435,7 +8468,7 @@ "lxN" = ( /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "lyD" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 8; @@ -8466,6 +8499,9 @@ dir = 4 }, /area/kutjevo/interior/power/comms) +"lzD" = ( +/turf/open/floor/almayer/research/containment/floor1, +/area/kutjevo/exterior/lz_pad) "lAn" = ( /obj/structure/machinery/light{ dir = 4 @@ -8584,6 +8620,9 @@ dir = 1 }, /area/kutjevo/interior/foremans_office) +"lKk" = ( +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/lz_pad) "lKR" = ( /obj/structure/platform_decoration/kutjevo, /turf/open/floor/kutjevo/colors/purple/edge{ @@ -8654,7 +8693,7 @@ dir = 1 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "lNt" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/item/stack/sheet/metal/medium_stack, @@ -8805,7 +8844,7 @@ "mao" = ( /obj/structure/prop/dam/large_boulder/boulder1, /turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "mar" = ( /turf/open/floor/kutjevo/tan/multi_tiles{ dir = 1 @@ -8913,7 +8952,7 @@ "mfk" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "mfD" = ( /obj/structure/prop/dam/truck/mining, /turf/open/auto_turf/sand/layer1, @@ -9004,7 +9043,7 @@ /turf/open/desert/desert_shore/shore_edge1{ dir = 1 }, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "mkJ" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/colors/orange, @@ -9191,6 +9230,11 @@ /obj/item/storage/pill_bottle/dexalin/skillless, /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/complex/med) +"mAb" = ( +/turf/open/floor/kutjevo/tan/multi_tiles{ + dir = 1 + }, +/area/kutjevo/exterior/lz_pad) "mAD" = ( /obj/structure/barricade/wooden{ dir = 1; @@ -9433,7 +9477,7 @@ "mIT" = ( /obj/structure/machinery/landinglight/ds2/delayone, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "mJq" = ( /obj/structure/machinery/computer/cameras/telescreen/entertainment{ icon_state = "ai_bsod"; @@ -9922,6 +9966,12 @@ }, /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/interior/complex/botany) +"nvi" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 9 + }, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/lz_pad) "nvG" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor/kutjevo/colors/red, @@ -10695,7 +10745,7 @@ "oun" = ( /obj/structure/barricade/wooden, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "ouR" = ( /obj/structure/blocker/invisible_wall, /obj/structure/xenoautopsy/tank/larva, @@ -10888,7 +10938,7 @@ /area/kutjevo/interior/complex/botany/east_tech) "oJE" = ( /turf/open/floor/kutjevo/tan/alt_edge, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "oJV" = ( /obj/structure/machinery/light{ dir = 1 @@ -10897,7 +10947,7 @@ /area/kutjevo/exterior/scrubland) "oKx" = ( /turf/closed/wall/kutjevo/rock, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "oKA" = ( /obj/item/storage/toolbox/electrical, /turf/open/floor/kutjevo/colors/orange, @@ -10931,6 +10981,10 @@ "oMZ" = ( /turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/foremans_office) +"oNE" = ( +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/lz_pad) "oNG" = ( /turf/closed/wall/kutjevo/rock, /area/kutjevo/exterior/construction) @@ -11795,7 +11849,7 @@ dir = 8 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "pPJ" = ( /turf/open/gm/river/desert/shallow, /area/kutjevo/exterior/lz_dunes) @@ -11827,7 +11881,7 @@ "pRL" = ( /obj/structure/largecrate, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "pRS" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/kutjevo/multi_tiles{ @@ -11866,7 +11920,7 @@ pixel_y = 14 }, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "pVd" = ( /obj/structure/platform/kutjevo{ dir = 1 @@ -12035,7 +12089,7 @@ /turf/open/floor/kutjevo/tan/alt_edge{ dir = 1 }, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "qny" = ( /turf/open/desert/desert_shore/shore_corner2{ dir = 1 @@ -12289,7 +12343,7 @@ /turf/open/floor/kutjevo/tan/alt_edge{ dir = 4 }, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "qEq" = ( /turf/open/floor/kutjevo/tan/alt_inner_edge{ dir = 4 @@ -12500,7 +12554,7 @@ dir = 1 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "qTN" = ( /obj/structure/platform/kutjevo/smooth{ dir = 1 @@ -12510,7 +12564,7 @@ "qUC" = ( /obj/structure/surface/rack, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "qUZ" = ( /obj/item/stack/sheet/metal, /turf/open/floor/kutjevo/tan/alt_edge{ @@ -12607,7 +12661,7 @@ "rdx" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "rej" = ( /obj/structure/prop/dam/large_boulder/boulder1, /turf/open/auto_turf/sand/layer0, @@ -12617,7 +12671,7 @@ /turf/open/desert/desert_shore/desert_shore1{ dir = 4 }, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "rfE" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/kutjevo/colony/reinforced, @@ -12735,12 +12789,16 @@ dir = 4 }, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "rme" = ( /turf/open/floor/kutjevo/multi_tiles{ dir = 4 }, /area/kutjevo/interior/complex/botany) +"rmg" = ( +/obj/structure/flora/grass/tallgrass/desert, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/lz_pad) "rmo" = ( /obj/structure/platform/kutjevo/rock, /obj/structure/platform/kutjevo/rock{ @@ -12808,6 +12866,10 @@ }, /turf/open/floor/kutjevo/colors/purple, /area/kutjevo/interior/construction) +"rst" = ( +/obj/structure/prop/dam/boulder/boulder1, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/lz_pad) "rsM" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -13167,7 +13229,7 @@ /turf/open/floor/kutjevo/tan/alt_edge{ dir = 8 }, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "rTi" = ( /obj/structure/platform_decoration/kutjevo/rock{ dir = 1 @@ -13306,7 +13368,7 @@ "saK" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "sbb" = ( /obj/structure/stairs/perspective/kutjevo{ icon_state = "p_stair_ew_full_cap" @@ -13823,7 +13885,7 @@ /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/landinglight/ds2/delayone, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "sLx" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/kutjevo/colors/orange, @@ -13943,7 +14005,7 @@ "sUt" = ( /obj/structure/machinery/landinglight/ds2/delaythree, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "sUC" = ( /obj/structure/blocker/invisible_wall, /obj/structure/filtration/coagulation_arm, @@ -13985,6 +14047,10 @@ /obj/effect/landmark/queen_spawn, /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_N_East) +"sWR" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/asphalt/cement_sunbleached, +/area/kutjevo/exterior/lz_pad) "sXj" = ( /obj/structure/largecrate/random/case/small, /obj/effect/spawner/random/toolbox{ @@ -14050,6 +14116,12 @@ "tax" = ( /turf/open/gm/river/desert/shallow_edge, /area/kutjevo/exterior/runoff_dunes) +"tbk" = ( +/obj/structure/flora/grass/tallgrass/desert/corner{ + dir = 10 + }, +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/lz_pad) "tbx" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 9 @@ -14220,7 +14292,7 @@ /turf/open/desert/desert_shore/shore_edge1{ dir = 4 }, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "tnM" = ( /obj/structure/machinery/light{ dir = 1 @@ -14510,13 +14582,16 @@ "tGE" = ( /obj/structure/machinery/floodlight/landing, /turf/open/floor/kutjevo/plate, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) +"tHh" = ( +/turf/open/auto_turf/sand/layer0, +/area/kutjevo/exterior/lz_pad) "tHI" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "tIh" = ( /turf/open/gm/river/desert/shallow_edge{ dir = 4 @@ -14547,7 +14622,7 @@ /area/kutjevo/exterior/runoff_dunes) "tIY" = ( /turf/open/desert/desert_shore/shore_edge1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "tKC" = ( /obj/structure/bed/sofa/vert/white, /turf/open/floor/kutjevo/tan, @@ -15474,7 +15549,7 @@ "uTr" = ( /obj/structure/largecrate, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "uWk" = ( /obj/structure/platform/kutjevo/rock{ dir = 1 @@ -15817,7 +15892,7 @@ "vrB" = ( /obj/structure/machinery/floodlight, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "vse" = ( /obj/structure/bed/stool, /turf/open/auto_turf/sand/layer0, @@ -16166,7 +16241,7 @@ /area/kutjevo/interior/complex/botany) "vPm" = ( /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "vPE" = ( /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib1" @@ -16295,6 +16370,9 @@ }, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/scrubland) +"wax" = ( +/turf/closed/wall/kutjevo/colony, +/area/kutjevo/exterior/lz_pad) "waP" = ( /obj/structure/stairs/perspective/kutjevo{ icon_state = "p_stair_ew_full_cap_butt" @@ -16423,7 +16501,7 @@ "wlg" = ( /obj/structure/surface/rack, /turf/open/floor/kutjevo/tan, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wlq" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/engineering_construction, @@ -16496,7 +16574,7 @@ dir = 4 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wrO" = ( /turf/open/gm/river/desert/shallow_edge{ dir = 1 @@ -16566,7 +16644,7 @@ "wvg" = ( /obj/item/stack/sheet/metal, /turf/open/floor/almayer/research/containment/floor1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wvr" = ( /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_South) @@ -16586,7 +16664,7 @@ "wvX" = ( /obj/structure/machinery/landinglight/ds2, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wwc" = ( /obj/structure/prop/wooden_cross{ desc = "A wooden grave marker. The name 'Richard' is carved into the wood."; @@ -16598,7 +16676,7 @@ pixel_y = -2 }, /turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wwd" = ( /obj/item/stool, /turf/open/floor/kutjevo/colors/green/tile, @@ -16731,7 +16809,7 @@ pixel_y = 13 }, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wFa" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, @@ -16910,7 +16988,7 @@ dir = 1 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "wXy" = ( /obj/effect/landmark/static_comms/net_two, /turf/open/auto_turf/sand/layer2, @@ -16985,7 +17063,7 @@ "xcG" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "xcI" = ( /obj/structure/barricade/wooden{ dir = 4 @@ -17197,7 +17275,7 @@ "xrT" = ( /obj/structure/flora/grass/desert/lightgrass_8, /turf/open/auto_turf/sand/layer1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "xti" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 4; @@ -17299,7 +17377,7 @@ dir = 4 }, /turf/open/floor/almayer/research/containment/floor1, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "xBb" = ( /obj/structure/platform/kutjevo{ dir = 4 @@ -17321,7 +17399,7 @@ dir = 8 }, /turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "xDY" = ( /obj/item/weapon/gun/rifle/m16, /turf/open/floor/kutjevo/colors/orange, @@ -17337,7 +17415,7 @@ /obj/structure/surface/rack, /obj/item/packageWrap, /turf/open/floor/almayer/research/containment/floor2, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "xGF" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 4; @@ -17652,7 +17730,7 @@ /turf/open/desert/desert_shore/desert_shore1{ dir = 8 }, -/area/kutjevo/exterior/Northwest_Colony) +/area/kutjevo/exterior/lz_pad) "yfo" = ( /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_central) @@ -18510,9 +18588,9 @@ dxF dxF dxF nTw -huR -huR -huR +dmy +dmy +dmy nTw dxF sWF @@ -18677,10 +18755,10 @@ dxF dxF dxF dxF -huR -huR -huR -xBm +dmy +dmy +dmy +jGF sWF sWF nJp @@ -18844,9 +18922,9 @@ dxF dxF dxF dxF -huR -huR -huR +dmy +dmy +dmy oun wwQ oca @@ -19011,9 +19089,9 @@ dxF dxF dxF dxF -huR -huR -huR +dmy +dmy +dmy oun wwQ oFX @@ -19178,9 +19256,9 @@ dxF dxF dxF dxF -huR -huR -huR +dmy +dmy +dmy oun wwQ oFX @@ -19326,13 +19404,13 @@ dxF dxF dxF dxF -ybV -ybV -ybV -ybV -ybV -ybV -ybV +oNE +oNE +oNE +oNE +oNE +oNE +oNE dxF dxF dxF @@ -19345,10 +19423,10 @@ dxF dxF dxF dxF -huR -huR -huR -xBm +dmy +dmy +dmy +jGF sWF bQk opQ @@ -19491,17 +19569,17 @@ dxF dxF dxF wwc -hrz -arM -ybV -mSG -ybV -mSG -mSG -mSG -ybV -ybV -ybV +tHh +tbk +oNE +rmg +oNE +rmg +rmg +rmg +oNE +oNE +oNE dxF dxF dxF @@ -19512,10 +19590,10 @@ dxF dxF dxF dxF -huR -huR -huR -xBm +dmy +dmy +dmy +jGF qzj sOF swq @@ -19650,17 +19728,17 @@ dxF dxF dxF dxF -hrz +tHh dxF dxF dxF dxF -hrz -hrz -hrz -hrz -hrz -arM +tHh +tHh +tHh +tHh +tHh +tbk eiX eiX eiX @@ -19669,7 +19747,7 @@ eiX eiX eiX eiX -ksW +nvi dxF dxF dxF @@ -19679,10 +19757,10 @@ dxF dxF dxF dxF -huR -huR -huR -xBm +dmy +dmy +dmy +jGF qzj qfw rwL @@ -19817,28 +19895,28 @@ dxF mjW yfc tIY -hrz +tHh dxF dxF dxF -hrz +tHh bWA -hrz -hrz -hrz -sVF -iin -iin -hrz -hrz -hrz -hrz -hrz -hrz -hrz -hrz -hrz -hrz +tHh +tHh +tHh +lKk +kWX +kWX +tHh +tHh +tHh +tHh +tHh +tHh +tHh +tHh +tHh +tHh dxF dxF dxF @@ -19846,10 +19924,10 @@ dxF dxF dxF dxF -huR -huR -huR -xBm +dmy +dmy +dmy +jGF wwQ eur opQ @@ -19984,39 +20062,39 @@ dxF eFy dDL dOU -hrz -hrz -hrz -hrz -hrz -hrz -sVF -sVF -sVF -sVF -sVF -iin -iin -hrz -hrz -bNG -hrz -hrz -sVF -sVF -sVF -hrz -hrz +tHh +tHh +tHh +tHh +tHh +tHh +lKk +lKk +lKk +lKk +lKk +kWX +kWX +tHh +tHh +rst +tHh +tHh +lKk +lKk +lKk +tHh +tHh bWA -hrz +tHh dxF dxF dxF dxF -iin -huR -huR -xBm +kWX +dmy +dmy +jGF sWF sWF khW @@ -20151,40 +20229,40 @@ dxF tnI rfz dyW -sVF -sVF -sVF -iin -iin -sVF -sVF -hrz -hrz -hrz -sVF -iin -iin -iin -hrz -hrz -hrz -hrz -sVF -hrz -hrz -hrz -hrz -hrz -hrz -hrz -iin -iin -sVF -sVF -huR -huR -xBm -aUF +lKk +lKk +lKk +kWX +kWX +lKk +lKk +tHh +tHh +tHh +lKk +kWX +kWX +kWX +tHh +tHh +tHh +tHh +lKk +tHh +tHh +tHh +tHh +tHh +tHh +tHh +kWX +kWX +lKk +lKk +dmy +dmy +jGF +bEt sWF sWF sWF @@ -20316,50 +20394,50 @@ dxF dxF dxF dxF -iin -hrz -hrz -hrz -hrz -sVF -hrz -hrz -hrz -iin -hrz -hrz -hrz -hrz -hrz -hrz -hrz -sVF -sVF -sVF -sVF -sVF -sVF -sVF -hrz -hrz -hrz -hrz -hrz -sVF -sVF -sVF -huR -huR -lRy -dht -dht -dht -dht -dht -dht -dht -dht -dht +kWX +tHh +tHh +tHh +tHh +lKk +tHh +tHh +tHh +kWX +tHh +tHh +tHh +tHh +tHh +tHh +tHh +lKk +lKk +lKk +lKk +lKk +lKk +lKk +tHh +tHh +tHh +tHh +tHh +lKk +lKk +lKk +dmy +dmy +dBj +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD rzh dxF dxF @@ -20484,49 +20562,49 @@ dxF dxF dxF dxF -hrz -hrz -iin -sVF +tHh +tHh +kWX +lKk qDH qDH qDH -iin -iin -iin -iin -iin -sVF +kWX +kWX +kWX +kWX +kWX +lKk qDH qDH -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk qDH qDH qDH -sVF -sVF -huR -huR -sVF -sVF -sVF -iin -iin -iin -sVF -sVF -sVF -sVF +lKk +lKk +dmy +dmy +lKk +lKk +lKk +kWX +kWX +kWX +lKk +lKk +lKk +lKk dxF dxF dxF @@ -20651,49 +20729,49 @@ dxF dxF dxF dxF -hrz -iin -iin -sVF -lRy -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -lRy -huR -huR -huR -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF +tHh +kWX +kWX +lKk +dBj +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +dBj +dmy +dmy +dmy +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk dxF dxF dxF @@ -20818,11 +20896,11 @@ dxF dxF dxF dxF -hrz -iin -sVF +tHh +kWX +lKk oJE -xBm +jGF tGE hnq dhL @@ -20847,19 +20925,19 @@ ccs hnq dhL tGE -xBm -huR -huR -huR -sVF -sVF +jGF +dmy +dmy +dmy +lKk +lKk qDH qDH qDH qDH qDH -sVF -sVF +lKk +lKk dxF dxF dxF @@ -20985,11 +21063,11 @@ dxF dxF dxF dxF -iin -sVF -hrz -sVF -xBm +kWX +lKk +tHh +lKk +jGF wvX hzN wqk @@ -21014,17 +21092,17 @@ wqk hzN hzN dpt -xBm -huR -huR -huR -sVF +jGF +dmy +dmy +dmy +lKk oJE -lRy -dht -dht -dht -lRy +dBj +lzD +lzD +lzD +dBj qnd xrT dxF @@ -21151,12 +21229,12 @@ dxF dxF dxF dxF -iin -iin -sVF -hrz -sVF -xBm +kWX +kWX +lKk +tHh +lKk +jGF sUt hzN hzN @@ -21181,19 +21259,19 @@ hzN ppX hzN lNl -xBm -huR -huR -huR -sVF +jGF +dmy +dmy +dmy +lKk oJE -xBm +jGF uTr mfk mfk -xBm +jGF qnd -sVF +lKk dxF dxF dxF @@ -21318,12 +21396,12 @@ dxF dxF dxF dxF -iin -bGg -sVF -hrz +kWX +cpD +lKk +tHh oJE -xBm +jGF saK hzN hzN @@ -21348,20 +21426,20 @@ hzN ppX hzN qTI -xBm -huR -huR -sVF -sVF +jGF +dmy +dmy +lKk +lKk oJE -xBm +jGF rlI pRL vrB -xBm +jGF qnd -sVF -pkP +lKk +wax pkP pkP hrz @@ -21485,12 +21563,12 @@ dxF dxF dxF dxF -iin -sVF -sVF -sVF +kWX +lKk +lKk +lKk oJE -xBm +jGF sLf hzN ppX @@ -21515,20 +21593,20 @@ ppX ppX hzN wXf -xBm -huR -huR -sVF -iin +jGF +dmy +dmy +lKk +kWX oJE -xBm +jGF fmN fmN fmN -xBm +jGF qnd -sVF -mar +lKk +mAb ggC mar hrz @@ -21652,12 +21730,12 @@ dxF dxF dxF dxF -iin -sVF -sVF -sVF +kWX +lKk +lKk +lKk oJE -xBm +jGF wvX hzN ppX @@ -21682,20 +21760,20 @@ hzN eBI hzN dpt -xBm -huR -huR -sVF -iin +jGF +dmy +dmy +lKk +kWX oJE -xBm +jGF wlg vPm vPm -xBm +jGF qnd -sVF -mar +lKk +mAb ggC mar hrz @@ -21819,12 +21897,12 @@ dxF dxF dxF dxF -iin -iin -sVF -hrz +kWX +kWX +lKk +tHh oJE -xBm +jGF sUt hzN ppX @@ -21849,20 +21927,20 @@ hzN hzN hzN lNl -xBm -huR -huR -sVF -sVF +jGF +dmy +dmy +lKk +lKk oJE -xBm +jGF qUC kVA fmN -xBm +jGF qnd -sVF -mar +lKk +mAb ggC mar sVF @@ -21986,12 +22064,12 @@ dxF dxF dxF dxF -hrz -iin -hrz -iin -iin -xBm +tHh +kWX +tHh +kWX +kWX +jGF saK hzN ppX @@ -22016,20 +22094,20 @@ hzN hzN hzN qTI -xBm -huR -huR -sVF -sVF +jGF +dmy +dmy +lKk +lKk oJE -lRy -dht -dht -dht -lRy +dBj +lzD +lzD +lzD +dBj qnd -sVF -mar +lKk +mAb pkP mar iin @@ -22153,12 +22231,12 @@ dxF dxF dxF dxF -hrz -hrz -hrz -hrz +tHh +tHh +tHh +tHh oJE -xBm +jGF mIT hzN ppX @@ -22183,20 +22261,20 @@ ppX ppX hzN wXf -xBm -huR -huR -huR -sVF -sVF +jGF +dmy +dmy +dmy +lKk +lKk rSU rSU rSU rSU rSU -sVF -sVF -mar +lKk +lKk +mAb ggC mar hrz @@ -22320,12 +22398,12 @@ dxF dxF dxF dxF -hrz +tHh mao -hrz -iin +tHh +kWX oJE -xBm +jGF wvX hzN hzN @@ -22350,20 +22428,20 @@ hzN ppX eBI dpt -xBm -huR -huR -huR -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -bGg -mar +jGF +dmy +dmy +dmy +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +cpD +mAb ggC mar hrz @@ -22487,12 +22565,12 @@ dxF dxF dxF dxF -hrz -hrz -hrz -hrz -iin -xBm +tHh +tHh +tHh +tHh +kWX +jGF sUt hzN hzN @@ -22517,20 +22595,20 @@ hzN ppX eBI lNl -xBm -huR -huR -huR -sVF -hrz -sVF -sVF -sVF -sVF -tjJ -sVF -sVF -mar +jGF +dmy +dmy +dmy +lKk +tHh +lKk +lKk +lKk +lKk +izY +lKk +lKk +mAb ggC mar hrz @@ -22654,12 +22732,12 @@ dxF dxF dxF dxF -hrz -hrz -hrz -hrz +tHh +tHh +tHh +tHh oJE -xBm +jGF saK hzN wqk @@ -22684,18 +22762,18 @@ wqk hzN hzN qTI -xBm -huR -huR -huR -lRy -dht -dht -dht -dht -dht -dht -dht +jGF +dmy +dmy +dmy +dBj +lzD +lzD +lzD +lzD +lzD +lzD +lzD hoK hoK hoK @@ -22821,12 +22899,12 @@ dxF dxF dxF dxF -hrz -hrz -hrz -sVF +tHh +tHh +tHh +lKk oJE -xBm +jGF tGE pPz jUK @@ -22851,17 +22929,17 @@ tHI pPz jUK tGE -xBm -huR -huR -huR -xBm -aUF -aUF -aUF -aUF -aUF -aUF +jGF +dmy +dmy +dmy +jGF +bEt +bEt +bEt +bEt +bEt +bEt hoK hoK hbL @@ -22986,44 +23064,44 @@ dxF dxF dxF dxF -dxF -dxF -hrz -hrz -sVF -sVF +dxF +dxF +tHh +tHh +lKk +lKk oJE -lRy -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -dht -lRy -huR -huR -huR +dBj +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +lzD +dBj +dmy +dmy +dmy lxN -aUF +bEt hoK hoK dkW @@ -23155,42 +23233,42 @@ dxF dxF dxF dxF -hrz -iin -sVF -sVF -bGg +tHh +kWX +lKk +lKk +cpD rSU rSU rSU -sVF +lKk rSU rSU -sVF +lKk rSU rSU -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk rSU -sVF -huR -huR -huR -xBm -aUF +lKk +dmy +dmy +dmy +jGF +bEt hoK lOr iNY @@ -23321,43 +23399,43 @@ dxF dxF dxF dxF -iin -iin -iin -iin -sVF -hrz -sVF -sVF -sVF -sVF -sVF -sVF -sVF -sVF -hrz -sVF -sVF -hrz -hrz -hrz -hrz -iin -iin +kWX +kWX +kWX +kWX +lKk +tHh +lKk +lKk +lKk +lKk +lKk +lKk +lKk +lKk +tHh +lKk +lKk +tHh +tHh +tHh +tHh +kWX +kWX oKx oKx -sVF +lKk qDH qDH qDH qDH qDH -sVF -huR -huR -huR -xBm -aUF +lKk +dmy +dmy +dmy +jGF +bEt uAJ iZi nZK @@ -23489,42 +23567,42 @@ dxF dxF dxF dxF -iin -iin -iin -iin -iin -iin -iin -sVF -sVF -sVF -sVF -sVF -dFx -hrz -hrz -hrz -hrz -hrz -sVF -hrz -hrz -hrz -hrz +kWX +kWX +kWX +kWX +kWX +kWX +kWX +lKk +lKk +lKk +lKk +lKk +cLr +tHh +tHh +tHh +tHh +tHh +lKk +tHh +tHh +tHh +tHh oKx -sVF +lKk gTO -dht -dht -dht -lRy +lzD +lzD +lzD +dBj qnd -huR -huR -huR -xBm -aUF +dmy +dmy +dmy +jGF +bEt hEC ipy nZK @@ -23661,37 +23739,37 @@ dxF dxF dxF rzh -dht +lzD bEn bEn -dht -dht -dht +lzD +lzD +lzD xAr -dht +lzD xAr wvg -dht -dht -dht -dht -lRy -hrz -hrz -hrz -hrz +lzD +lzD +lzD +lzD +dBj +tHh +tHh +tHh +tHh eqQ xFN cYb gmA juC -xBm +jGF qnd -huR -huR -huR -xBm -aUF +dmy +dmy +dmy +jGF +bEt uAJ mbc nZK @@ -23840,25 +23918,25 @@ uzp acx jnV jnV -aUF -aUF -xBm -hrz -hrz -hrz -hrz +bEt +bEt +jGF +tHh +tHh +tHh +tHh oJE -xBm +jGF fmN vPm uTr kBm bdd -huR -huR -huR -xBm -gzb +dmy +dmy +dmy +jGF +cou hEC fEu nZK @@ -24008,24 +24086,24 @@ sjE pHR jnV jnV -aUF -xBm -sVF -hrz -hrz -hrz +bEt +jGF +lKk +tHh +tHh +tHh oJE -xBm +jGF kDD vPm vPm rdx bdd -huR -huR -huR -xBm -aUF +dmy +dmy +dmy +jGF +bEt hoK pLN fYE @@ -24176,23 +24254,23 @@ cWc hst jnV jnV -xBm -sVF +jGF +lKk fYF -hrz -hrz +tHh +tHh oJE -xBm +jGF fmN vPm fmN ctA qnd -huR -huR -huR -xBm -aUF +dmy +dmy +dmy +jGF +bEt hoK hoK ybd @@ -24343,23 +24421,23 @@ cWc cWc dfz jnV -xBm -sVF +jGF +lKk fSK -sVF -sVF +lKk +lKk oJE -xBm +jGF fmN vPm bGi -xBm +jGF bdd -huR -huR -huR -xBm -aUF +dmy +dmy +dmy +jGF +bEt hoK hoK nmw @@ -24511,22 +24589,22 @@ cWc kSy pma wEU -sVF +lKk iiy eGL -bGg -sVF -xBm +cpD +lKk +jGF xcG vPm fmN -xBm -iin -huR -huR -huR -xBm -aUF +jGF +kWX +dmy +dmy +dmy +jGF +bEt hoK yhV onC @@ -24678,22 +24756,22 @@ cWc jiX fto pUB -sVF +lKk arh -sVF -sVF -iin -xBm +lKk +lKk +kWX +jGF dpH aIy vPm -xBm -iin -huR -huR -huR -xBm -aUF +jGF +kWX +dmy +dmy +dmy +jGF +bEt uAJ uEr nZK @@ -24844,23 +24922,23 @@ lSc lSc fto jnV -xBm -sVF -sVF -sVF -sVF -iin -xBm +jGF +lKk +lKk +lKk +lKk +kWX +jGF eUJ aIy juC -xBm +jGF qnd -sVF -huR -kZV -xBm -aUF +lKk +dmy +sWR +jGF +bEt uAJ jOA nZK @@ -25011,23 +25089,23 @@ iXh ntz jnV jnV -xBm -sVF -sVF -sVF -sVF +jGF +lKk +lKk +lKk +lKk oJE -xBm +jGF fmN dpH juC -xBm +jGF qnd -iin -huR -huR -xBm -gzb +kWX +dmy +dmy +jGF +cou hEC fKD nZK @@ -25182,19 +25260,19 @@ rzh dxF dxF iCQ -sVF -sVF -lRy -dht -dht -dht -lRy +lKk +lKk +dBj +lzD +lzD +lzD +dBj qnd -iin -huR -huR -xBm -aUF +kWX +dmy +dmy +jGF +bEt uAJ iZi nZK @@ -25350,18 +25428,18 @@ dxF dxF dxF dxF -sVF +lKk rSU rSU rSU rSU rSU -sVF -sVF -huR -huR -xBm -aUF +lKk +lKk +dmy +dmy +jGF +bEt hoK xca pyZ diff --git a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm index 94c7420a6da4..93436ca83de0 100644 --- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm +++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @@ -331,10 +331,6 @@ icon_state = "marked" }, /area/lv522/indoors/b_block/bar) -"ait" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) "aiw" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -799,7 +795,7 @@ }, /obj/item/stack/sheet/metal, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "aut" = ( /turf/open/floor/corsat{ dir = 5; @@ -1090,7 +1086,6 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -1466,7 +1461,7 @@ /turf/open/floor/corsat{ icon_state = "marked" }, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "aQU" = ( /obj/structure/machinery/computer/cameras{ dir = 4; @@ -1496,7 +1491,7 @@ }, /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "aRH" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -3246,7 +3241,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "bLI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet/engineering_electrical, @@ -3404,7 +3399,7 @@ /area/lv522/outdoors/colony_streets/north_street) "bPJ" = ( /turf/closed/wall/strata_outpost, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "bPQ" = ( /obj/item/prop/helmetgarb/spacejam_tickets{ desc = "Two original, crisp, orange, tickets."; @@ -3446,7 +3441,7 @@ "bQA" = ( /obj/structure/largecrate/random, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "bQC" = ( /obj/structure/bed/chair{ dir = 1 @@ -4456,14 +4451,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/b_block/hydro) -"cpU" = ( -/obj/structure/machinery/floodlight/landing, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/lv522/landing_zone_1) "cpX" = ( /obj/item/toy/beach_ball/holoball, /obj/item/shard{ @@ -4893,7 +4880,7 @@ "czE" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "czG" = ( /obj/structure/sign/safety/radio_rad{ pixel_y = 26 @@ -5244,13 +5231,6 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor) -"cHY" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) "cIe" = ( /obj/structure/surface/rack, /obj/item/tool/minihoe{ @@ -5409,7 +5389,7 @@ }, /obj/item/stack/sheet/wood, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "cJW" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 @@ -6261,7 +6241,6 @@ }, /area/lv522/oob) "das" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1/delayone, /turf/open/floor/plating, /area/lv522/landing_zone_1) @@ -7046,7 +7025,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "dnQ" = ( /turf/open/floor/corsat{ icon_state = "browncorner" @@ -7171,7 +7150,6 @@ dir = 4; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "drg" = ( @@ -8925,7 +8903,7 @@ /obj/vehicle/train/cargo/trolley, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "edk" = ( /turf/open/floor/corsat{ dir = 8; @@ -8972,7 +8950,7 @@ pixel_y = 6 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "eeG" = ( /obj/structure/prop/ice_colony/dense/planter_box{ dir = 9 @@ -9250,7 +9228,6 @@ pixel_y = -6 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -9467,6 +9444,10 @@ icon_state = "marked" }, /area/lv522/atmos/east_reactor) +"enB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel/far) "enD" = ( /obj/structure/curtain/red, /turf/open/floor/prison{ @@ -9640,7 +9621,6 @@ /area/lv522/atmos/north_command_centre) "epN" = ( /obj/structure/closet/emcloset, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "epS" = ( @@ -9709,7 +9689,7 @@ "eqV" = ( /obj/structure/largecrate/random/barrel, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "erw" = ( /obj/vehicle/train/cargo/trolley, /obj/effect/landmark/objective_landmark/close, @@ -9854,10 +9834,9 @@ }, /obj/vehicle/train/cargo/engine, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "evg" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/power/apc/weak{ dir = 8 }, @@ -9874,7 +9853,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "evv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/reinforced/prison, @@ -9947,7 +9926,6 @@ /area/lv522/atmos/east_reactor) "ewn" = ( /obj/structure/platform, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -10011,7 +9989,6 @@ dir = 1 }, /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "exZ" = ( @@ -10054,7 +10031,6 @@ }, /area/lv522/outdoors/colony_streets/central_streets) "eyy" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1, /turf/open/floor/plating, /area/lv522/landing_zone_1) @@ -10995,6 +10971,9 @@ icon_state = "floor_plate" }, /area/lv522/landing_zone_2/ceiling) +"eSW" = ( +/turf/open/gm/river, +/area/lv522/landing_zone_1/tunnel/far) "eSY" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -11006,16 +10985,6 @@ icon_state = "plate" }, /area/lv522/atmos/reactor_garage) -"eTu" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "eTQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 @@ -11327,7 +11296,6 @@ phone_id = "LZ1 Service Tunnel"; pixel_y = 24 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "eZY" = ( @@ -11381,12 +11349,6 @@ }, /turf/open/floor/grass, /area/lv522/indoors/a_block/garden) -"fbh" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement1" - }, -/area/lv522/outdoors/colony_streets/south_west_street) "fbA" = ( /obj/structure/prop/invuln/ice_prefab/standalone{ icon_state = "white" @@ -12247,7 +12209,7 @@ dir = 8 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fvo" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/corsat{ @@ -12372,10 +12334,6 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/west) -"fxZ" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "fyl" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, @@ -12567,7 +12525,6 @@ }, /area/lv522/outdoors/colony_streets/east_central_street) "fBL" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1/delaytwo, /turf/open/floor/prison{ dir = 4; @@ -12610,7 +12567,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fCl" = ( /obj/structure/barricade/wooden{ dir = 1 @@ -12688,7 +12645,6 @@ /obj/item/tool/pen/blue/clicky, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -12734,7 +12690,6 @@ pixel_x = 5; registered_name = "John Forklift" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -12898,10 +12853,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/c_block/mining) -"fHB" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/south_west_street) "fHC" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -12990,7 +12941,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fKf" = ( /obj/structure/platform{ dir = 1 @@ -13072,7 +13023,6 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -13090,7 +13040,6 @@ pixel_x = 8; pixel_y = 12 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "fLP" = ( @@ -13262,12 +13211,6 @@ /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/outdoor_bot) -"fPt" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement2" - }, -/area/lv522/outdoors/colony_streets/south_west_street) "fPB" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, @@ -13391,7 +13334,6 @@ }, /area/lv522/atmos/sewer) "fSo" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1, /turf/open/floor/prison{ dir = 4; @@ -13532,7 +13474,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fVU" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 1 @@ -13693,7 +13635,7 @@ dir = 4 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fYP" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/floor/corsat{ @@ -13735,7 +13677,7 @@ }, /obj/structure/closet/firecloset/full, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "fZy" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 10 @@ -14001,7 +13943,6 @@ /area/lv522/atmos/east_reactor) "gej" = ( /obj/structure/platform, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -14097,7 +14038,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/platform, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "gfi" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/item/prop/alien/hugger{ @@ -14118,7 +14059,7 @@ /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "gfu" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp/green, @@ -14185,7 +14126,6 @@ }, /area/lv522/indoors/a_block/hallway) "ggS" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -14391,7 +14331,7 @@ /obj/structure/machinery/light/small, /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "gkY" = ( /obj/structure/closet/bombcloset, /turf/open/asphalt/cement, @@ -14804,7 +14744,7 @@ /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "guj" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; @@ -15557,7 +15497,7 @@ }, /obj/structure/platform, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "gJD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -15603,7 +15543,6 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -15900,7 +15839,6 @@ pixel_y = 6 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -16147,7 +16085,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "gWg" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/xeno_spawn, @@ -16202,7 +16140,6 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "gXc" = ( @@ -16414,7 +16351,6 @@ }, /area/lv522/indoors/b_block/bridge) "haf" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1/delaytwo, /turf/open/floor/plating, /area/lv522/landing_zone_1) @@ -16993,7 +16929,7 @@ dir = 4 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "hiV" = ( /obj/item/prop/alien/hugger, /obj/structure/pipes/standard/simple/hidden/green{ @@ -18193,6 +18129,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/atmos/outdoor) +"hHe" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/gm/river, +/area/lv522/landing_zone_1/tunnel/far) "hHh" = ( /obj/structure/platform{ dir = 4 @@ -18911,7 +18853,6 @@ /area/lv522/atmos/sewer) "hTW" = ( /obj/structure/largecrate/random/secure, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "hTX" = ( @@ -18960,7 +18901,6 @@ pixel_x = 7; pixel_y = 7 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "hUY" = ( @@ -19298,7 +19238,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/prop/alien/hugger, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "ici" = ( /obj/effect/decal/cleanable/vomit{ icon_state = "vomit_4" @@ -19718,7 +19658,6 @@ /area/lv522/indoors/c_block/mining) "ikb" = ( /obj/structure/surface/rack, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "ike" = ( @@ -19850,7 +19789,6 @@ pixel_y = 6 }, /obj/item/tool/pen/blue/clicky, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -20039,7 +19977,6 @@ /obj/structure/platform_decoration{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) "isa" = ( @@ -20223,7 +20160,6 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "ivj" = ( @@ -20346,7 +20282,7 @@ "ixV" = ( /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "ixW" = ( /obj/structure/stairs/perspective{ dir = 8; @@ -20772,7 +20708,7 @@ }, /obj/structure/machinery/light/small, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "iGF" = ( /obj/structure/bed/chair{ dir = 8 @@ -20865,7 +20801,6 @@ pixel_x = -6; pixel_y = 6 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "iIs" = ( @@ -21852,7 +21787,7 @@ dir = 8 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "jbd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -23183,7 +23118,6 @@ /area/lv522/landing_zone_2) "jxF" = ( /obj/structure/largecrate/guns/russian, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "jxI" = ( @@ -23466,7 +23400,6 @@ /area/lv522/outdoors/nw_rockies) "jCh" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -23657,7 +23590,7 @@ icon_state = "p_stair_full" }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "jFr" = ( /obj/structure/cargo_container/arious/rightmid, /turf/open/floor/prison, @@ -24187,7 +24120,6 @@ dir = 5; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "jPj" = ( @@ -24252,7 +24184,6 @@ "jQC" = ( /obj/structure/machinery/light, /obj/structure/machinery/disposal, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -24682,7 +24613,6 @@ dir = 6; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "jYZ" = ( @@ -24720,7 +24650,6 @@ }, /area/lv522/indoors/a_block/hallway) "jZD" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement3" }, @@ -24811,7 +24740,6 @@ "kbo" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/metal/medium_stack, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "kbq" = ( @@ -26527,7 +26455,7 @@ dir = 4 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "kEo" = ( /obj/structure/machinery/colony_floodlight{ layer = 4.3 @@ -26703,6 +26631,15 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/security) +"kHW" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel/far) "kHX" = ( /obj/structure/platform_decoration{ dir = 4 @@ -27087,7 +27024,6 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -27529,13 +27465,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"kWp" = ( -/obj/structure/window/framed/strata/reinforced, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/landing_zone_1/ceiling) "kWH" = ( /obj/structure/stairs/perspective{ dir = 8; @@ -27678,7 +27607,6 @@ /obj/structure/platform_decoration{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "kZs" = ( @@ -27690,18 +27618,6 @@ /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) -"kZJ" = ( -/obj/structure/window/framed/strata/reinforced, -/obj/structure/machinery/door/poddoor/almayer/closed{ - id = "LZ1_Lockdown_Lo"; - name = "Emergency Lockdown" - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/landing_zone_1/ceiling) "kZX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal{ @@ -28047,7 +27963,6 @@ /obj/structure/platform_decoration{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "lhb" = ( @@ -29054,10 +28969,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"lBl" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "lBu" = ( /obj/structure/machinery/light{ dir = 4 @@ -29490,7 +29401,6 @@ /area/lv522/atmos/filt) "lJq" = ( /obj/structure/largecrate/random/secure, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/shale/layer1, /area/lv522/landing_zone_1) "lJU" = ( @@ -29500,7 +29410,6 @@ pixel_y = 6 }, /obj/item/tool/pen/blue/clicky, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -30057,7 +29966,6 @@ /area/lv522/indoors/a_block/kitchen/glass) "lWj" = ( /obj/structure/platform, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "lWm" = ( @@ -30712,6 +30620,10 @@ icon_state = "floor_marked" }, /area/lv522/atmos/east_reactor/south) +"mlv" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel/far) "mly" = ( /obj/structure/closet/firecloset/full, /obj/effect/decal/cleanable/dirt, @@ -30818,7 +30730,6 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement1" }, @@ -30927,7 +30838,6 @@ /obj/structure/machinery/light{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -30945,7 +30855,6 @@ pixel_x = 8; pixel_y = 20 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -31266,7 +31175,6 @@ pixel_x = -8; pixel_y = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "muP" = ( @@ -31309,7 +31217,6 @@ /area/lv522/atmos/reactor_garage) "mvP" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "mvR" = ( @@ -31426,7 +31333,6 @@ /obj/structure/bed/chair{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "mxO" = ( @@ -31486,7 +31392,6 @@ dir = 8; pixel_y = 5 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -31506,7 +31411,6 @@ /obj/item/device/flashlight/lamp{ pixel_x = 6 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -31756,7 +31660,6 @@ }, /obj/effect/landmark/objective_landmark/close, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -31918,7 +31821,7 @@ }, /obj/vehicle/train/cargo/trolley, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "mJt" = ( /obj/structure/stairs/perspective{ dir = 9; @@ -32125,7 +32028,6 @@ /area/lv522/atmos/filt) "mMX" = ( /obj/structure/powerloader_wreckage, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "mNc" = ( @@ -32213,7 +32115,6 @@ /obj/item/device/flashlight/lamp{ pixel_x = -8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -32299,7 +32200,6 @@ name = "remote door-control"; pixel_y = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -32899,7 +32799,6 @@ }, /area/lv522/indoors/a_block/hallway) "naS" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /obj/structure/machinery/landinglight/ds1/delaythree, /turf/open/floor/plating, /area/lv522/landing_zone_1) @@ -33246,13 +33145,6 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor/plating, /area/lv522/atmos/filt) -"nhi" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/structure/machinery/landinglight/ds1/delaytwo{ - dir = 4 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_1) "nhs" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/decal/cleanable/dirt, @@ -33301,7 +33193,6 @@ /area/lv522/atmos/filt) "niA" = ( /obj/structure/largecrate/random/barrel/green, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement12" }, @@ -33566,7 +33457,6 @@ pixel_y = -8 }, /obj/effect/decal/strata_decals/grime/grime3, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison, /area/lv522/landing_zone_1/ceiling) "nnz" = ( @@ -33603,7 +33493,6 @@ /obj/item/weapon/twohanded/folded_metal_chair, /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison, /area/lv522/landing_zone_1/ceiling) "noD" = ( @@ -33907,7 +33796,6 @@ pixel_y = 5 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison, /area/lv522/landing_zone_1/ceiling) "nsv" = ( @@ -33991,7 +33879,6 @@ "ntT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/barrel/white, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "nud" = ( @@ -34044,7 +33931,6 @@ /obj/structure/machinery/light{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -34071,13 +33957,6 @@ }, /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/outdoor_bot) -"nvV" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) "nwj" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/a_block/dorms/glass) @@ -34121,7 +34000,6 @@ /area/lv522/indoors/a_block/admin) "nxF" = ( /obj/structure/machinery/light/small, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "nxJ" = ( @@ -34402,7 +34280,6 @@ }, /area/lv522/atmos/east_reactor/south) "nEq" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "nEX" = ( @@ -34461,7 +34338,6 @@ /area/lv522/atmos/filt) "nGe" = ( /obj/structure/cargo_container/kelland/left, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "nGq" = ( @@ -34497,7 +34373,6 @@ /area/lv522/atmos/filt) "nGJ" = ( /obj/structure/cargo_container/kelland/right, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/shale/layer1, /area/lv522/landing_zone_1) "nGU" = ( @@ -34729,7 +34604,6 @@ /area/lv522/indoors/a_block/dorm_north) "nMc" = ( /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/shale/layer1, /area/lv522/landing_zone_1) "nMd" = ( @@ -35164,7 +35038,7 @@ /obj/structure/largecrate/random/secure, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "nSm" = ( /obj/structure/surface/table/almayer, /obj/item/trash/plate, @@ -35181,7 +35055,6 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "nSA" = ( @@ -35328,7 +35201,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/closet/emcloset, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "nVN" = ( /obj/item/ammo_magazine/flamer_tank/empty, /obj/effect/decal/cleanable/liquid_fuel, @@ -35583,7 +35456,7 @@ "nYU" = ( /obj/effect/acid_hole, /turf/closed/wall/strata_outpost, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "nYW" = ( /obj/structure/machinery/space_heater/radiator/red{ dir = 1; @@ -35615,6 +35488,9 @@ icon_state = "floor_plate" }, /area/lv522/atmos/cargo_intake) +"nZP" = ( +/turf/open/floor/plating, +/area/lv522/landing_zone_1/tunnel/far) "oaa" = ( /turf/open/asphalt/cement{ icon_state = "cement14" @@ -35857,7 +35733,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "oeT" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/light{ @@ -35916,7 +35792,6 @@ pixel_x = -9; pixel_y = 12 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "ofZ" = ( @@ -36084,7 +35959,6 @@ dir = 9; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "oiD" = ( @@ -36118,7 +35992,6 @@ /turf/open/floor/plating, /area/lv522/atmos/cargo_intake) "oiY" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement14" }, @@ -36137,7 +36010,6 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -36259,7 +36131,6 @@ pixel_x = 9; pixel_y = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -36333,7 +36204,7 @@ }, /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "ooG" = ( /obj/structure/machinery/power/apc/weak{ dir = 1 @@ -36372,7 +36243,6 @@ }, /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -36495,6 +36365,12 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/hallway) +"orA" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/gm/river, +/area/lv522/landing_zone_1/tunnel/far) "orE" = ( /obj/item/prop/colony/used_flare, /turf/open/auto_turf/sand_white/layer0, @@ -36876,7 +36752,6 @@ /area/lv522/indoors/a_block/dorms) "oyY" = ( /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "ozk" = ( @@ -37006,7 +36881,6 @@ /obj/structure/machinery/light/small{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "oBx" = ( @@ -37391,7 +37265,6 @@ /obj/structure/platform_decoration{ dir = 10 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "oKI" = ( @@ -37667,7 +37540,6 @@ /obj/structure/bed/chair{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -37740,7 +37612,6 @@ /obj/structure/machinery/light{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -37941,7 +37812,6 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -38007,7 +37877,6 @@ name = "High Pressure Door"; unacidable = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -38116,11 +37985,6 @@ icon_state = "floor_plate" }, /area/lv522/atmos/way_in_command_centre) -"oYM" = ( -/obj/structure/platform_decoration, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "oYO" = ( /obj/structure/platform{ dir = 1 @@ -38180,7 +38044,6 @@ /area/lv522/indoors/a_block/admin) "paT" = ( /obj/structure/cargo_container/kelland/right, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "pbi" = ( @@ -38272,7 +38135,7 @@ dir = 8 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "pdq" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper B-Block - Hydroponics Airlock"; @@ -38376,7 +38239,6 @@ /area/lv522/atmos/way_in_command_centre) "pez" = ( /obj/structure/cargo_container/horizontal/blue/top, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "peM" = ( @@ -38384,7 +38246,7 @@ dir = 1 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "peS" = ( /obj/structure/surface/table/almayer{ dir = 1; @@ -38621,13 +38483,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"pid" = ( -/obj/structure/machinery/door/airlock/almayer/generic, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/landing_zone_1/ceiling) "pit" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/auto_turf/sand_white/layer0, @@ -38666,10 +38521,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"pjl" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/closed/wall/strata_ice/dirty, -/area/lv522/oob) "pjm" = ( /obj/structure/platform{ dir = 8 @@ -38738,13 +38589,6 @@ icon_state = "squares" }, /area/lv522/atmos/reactor_garage) -"pkH" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/lv522/landing_zone_1) "plb" = ( /obj/structure/machinery/door_display/research_cell{ dir = 4; @@ -39128,16 +38972,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) -"pvd" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/structure/machinery/landinglight/ds1/delayone{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/lv522/landing_zone_1) "pvz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, @@ -39208,17 +39042,7 @@ pixel_y = -6 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) -"pwH" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/structure/machinery/landinglight/ds1/delayone{ - dir = 8 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" - }, -/area/lv522/landing_zone_1) +/area/lv522/landing_zone_1/tunnel/far) "pwJ" = ( /obj/structure/prop/dam/crane/damaged, /turf/open/floor/prison{ @@ -39694,12 +39518,10 @@ /obj/structure/platform_decoration{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "pFw" = ( /obj/structure/cargo_container/horizontal/blue/middle, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "pFF" = ( @@ -39813,7 +39635,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "pHT" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat, @@ -39967,17 +39789,6 @@ }, /turf/open/floor/corsat, /area/lv522/atmos/cargo_intake) -"pLm" = ( -/obj/structure/platform, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 6 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "pLs" = ( /obj/structure/barricade/wooden{ dir = 4 @@ -40248,7 +40059,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/closet/firecloset/full, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "pQx" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/prison{ @@ -40269,7 +40080,6 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -40651,7 +40461,7 @@ "pXv" = ( /obj/item/prop/alien/hugger, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "pXx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -40699,7 +40509,6 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "pYu" = ( @@ -40815,10 +40624,9 @@ icon_state = "p_stair_full" }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "qbf" = ( /obj/structure/cargo_container/horizontal/blue/bottom, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "qbi" = ( @@ -41924,7 +41732,7 @@ "qxf" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/strata_outpost, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "qxg" = ( /obj/structure/surface/table/almayer, /obj/item/paper, @@ -42007,7 +41815,7 @@ }, /obj/item/stack/sheet/metal, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "qxX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -42264,11 +42072,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/bridges/corpo) -"qCs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "qCB" = ( /obj/structure/surface/rack, /obj/item/clothing/shoes/blue{ @@ -42356,7 +42159,6 @@ dir = 1; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "qDw" = ( @@ -42368,7 +42170,6 @@ dir = 5; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "qDL" = ( @@ -42739,7 +42540,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "qLa" = ( /obj/structure/barricade/wooden{ dir = 4 @@ -42764,12 +42565,10 @@ /area/lv522/outdoors/w_rockies) "qLk" = ( /obj/structure/closet/firecloset/full, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "qLu" = ( /obj/structure/platform, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) "qLy" = ( @@ -42834,13 +42633,6 @@ icon_state = "70" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"qMJ" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "qNg" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bedroom" @@ -43043,7 +42835,7 @@ pixel_y = 6 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "qPT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ @@ -43468,7 +43260,6 @@ /obj/structure/machinery/light/small{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "qWf" = ( @@ -43520,7 +43311,6 @@ "qXs" = ( /obj/structure/closet/firecloset/full, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "qXH" = ( @@ -43945,7 +43735,6 @@ /area/lv522/indoors/a_block/fitness/glass) "rcR" = ( /obj/structure/largecrate/random/barrel/white, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "rcV" = ( @@ -44182,7 +43971,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "rhh" = ( /obj/structure/bed/chair/wheelchair, /obj/effect/decal/cleanable/dirt, @@ -44405,7 +44194,6 @@ /obj/structure/bed/chair{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "rmD" = ( @@ -44485,7 +44273,6 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) "rnT" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement12" }, @@ -44707,7 +44494,7 @@ }, /obj/structure/largecrate/random/barrel, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "rsF" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -45060,7 +44847,6 @@ dir = 4; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "ryu" = ( @@ -45121,7 +44907,6 @@ /area/lv522/outdoors/colony_streets/north_west_street) "rzz" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -45160,7 +44945,6 @@ /area/lv522/indoors/a_block/dorms) "rAu" = ( /obj/structure/platform_decoration, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement2" }, @@ -45186,7 +44970,7 @@ "rAM" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "rAX" = ( /turf/open/floor{ dir = 4; @@ -45356,12 +45140,6 @@ icon_state = "51" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"rFw" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, -/area/lv522/outdoors/colony_streets/south_west_street) "rFT" = ( /obj/structure/machinery/landinglight/ds2, /turf/open/floor/plating, @@ -45472,7 +45250,6 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -45498,12 +45275,6 @@ icon_state = "floor_marked" }, /area/lv522/outdoors/colony_streets/north_east_street) -"rJv" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement15" - }, -/area/lv522/outdoors/colony_streets/south_west_street) "rJB" = ( /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" @@ -45829,7 +45600,6 @@ dir = 6; layer = 3.51 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/landing_zone_1) "rOD" = ( @@ -45870,13 +45640,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/t_comm) -"rPQ" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "rQd" = ( /obj/structure/closet/secure_closet/quartermaster, /turf/open/floor/prison{ @@ -46034,7 +45797,6 @@ /area/lv522/indoors/a_block/admin) "rSh" = ( /obj/structure/largecrate/random/barrel/white, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -46302,7 +46064,6 @@ /obj/structure/platform_decoration{ dir = 10 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) "rYu" = ( @@ -46440,7 +46201,6 @@ /area/lv522/oob) "saL" = ( /obj/structure/platform, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/landing_zone_1) "saQ" = ( @@ -46603,7 +46363,6 @@ /area/lv522/indoors/a_block/dorms) "sdN" = ( /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "sdR" = ( @@ -46672,7 +46431,6 @@ /obj/structure/platform_decoration{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement9" }, @@ -46886,7 +46644,6 @@ /obj/item/key/cargo_train{ icon_state = "keys" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -47216,10 +46973,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_street) -"spj" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/closed/wall/strata_outpost/reinforced, -/area/lv522/landing_zone_1/tunnel) "spm" = ( /obj/structure/bed/chair/comfy, /obj/effect/decal/cleanable/dirt, @@ -47455,12 +47208,6 @@ icon_state = "89" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"std" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/asphalt/cement{ - icon_state = "cement9" - }, -/area/lv522/outdoors/colony_streets/south_west_street) "stG" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, @@ -47695,7 +47442,6 @@ /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -47728,7 +47474,6 @@ /obj/structure/platform{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement1" }, @@ -47843,7 +47588,6 @@ dir = 9; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement3" }, @@ -47862,13 +47606,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/mining) -"sCk" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/structure/machinery/landinglight/ds1{ - dir = 8 - }, -/turf/open/floor/plating, -/area/lv522/landing_zone_1) "sCp" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "75" @@ -48114,7 +47851,7 @@ dir = 4 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "sHk" = ( /obj/structure/curtain/red, /turf/open/floor/corsat{ @@ -48180,7 +47917,6 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -48902,7 +48638,6 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -49189,7 +48924,6 @@ /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "tbl" = ( @@ -49454,7 +49188,6 @@ icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement3" }, @@ -49468,7 +49201,6 @@ "tfl" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/railgun_camera_pos, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ icon_state = "floor_plate" }, @@ -49778,7 +49510,7 @@ }, /obj/structure/platform, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "tlR" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine{ @@ -49834,7 +49566,6 @@ pixel_x = -1; pixel_y = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -50211,7 +49942,6 @@ dir = 1; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) "tue" = ( @@ -51065,7 +50795,6 @@ /area/lv522/atmos/reactor_garage) "tKS" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ icon_state = "floor_plate" }, @@ -51155,7 +50884,6 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorm_north) "tMq" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement2" }, @@ -51166,7 +50894,6 @@ dir = 10; icon_state = "p_stair_full" }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement3" }, @@ -51401,7 +51128,7 @@ }, /obj/structure/largecrate/random, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "tRI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/wooden_tv{ @@ -51413,7 +51140,6 @@ pixel_y = 4 }, /obj/structure/machinery/light, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -51559,7 +51285,6 @@ /obj/structure/surface/table/almayer, /obj/item/trash/plate, /obj/item/reagent_container/food/snacks/mushroompizzaslice, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -51586,7 +51311,6 @@ /area/lv522/atmos/way_in_command_centre) "tVj" = ( /obj/structure/largecrate/random/barrel/white, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 10; icon_state = "floor_marked" @@ -51689,7 +51413,7 @@ }, /obj/vehicle/train/cargo/trolley, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "tXd" = ( /obj/structure/prop/invuln/lattice_prop{ dir = 1; @@ -51727,7 +51451,6 @@ }, /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ icon_state = "floor_plate" }, @@ -51832,13 +51555,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) -"tZM" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/landing_zone_1) "tZP" = ( /obj/item/prop/alien/hugger, /obj/effect/decal/cleanable/dirt, @@ -52204,7 +51920,6 @@ pixel_y = 6 }, /obj/structure/machinery/light, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -52556,7 +52271,6 @@ /obj/structure/platform{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement3" }, @@ -52629,7 +52343,6 @@ pixel_x = -8; pixel_y = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -52647,12 +52360,10 @@ /area/lv522/indoors/c_block/cargo) "uol" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison, /area/lv522/landing_zone_1/ceiling) "uom" = ( /obj/structure/machinery/disposal, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -52704,7 +52415,6 @@ pixel_x = 6; pixel_y = 16 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -52730,7 +52440,6 @@ /area/lv522/indoors/b_block/hydro) "upX" = ( /obj/structure/machinery/disposal, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "upZ" = ( @@ -52750,7 +52459,6 @@ /obj/structure/machinery/power/apc/weak{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "uqo" = ( @@ -52890,7 +52598,6 @@ pixel_y = 4 }, /obj/effect/landmark/objective_landmark/close, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -52914,7 +52621,6 @@ /obj/item/trash/cigbutt{ pixel_x = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -52965,7 +52671,6 @@ /obj/structure/machinery/light/small{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "uul" = ( @@ -53073,7 +52778,7 @@ "uwe" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "uwk" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -53211,7 +52916,7 @@ }, /obj/structure/platform, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "uzD" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -53447,7 +53152,6 @@ dir = 1 }, /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "uEX" = ( @@ -53482,7 +53186,6 @@ /obj/structure/platform_decoration{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement14" }, @@ -53699,7 +53402,6 @@ /area/lv522/indoors/c_block/garage) "uIF" = ( /obj/structure/barricade/handrail, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "uIJ" = ( @@ -53729,7 +53431,7 @@ "uIY" = ( /obj/structure/platform_decoration, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "uIZ" = ( /obj/structure/window_frame/strata, /obj/item/stack/rods, @@ -53838,7 +53540,6 @@ /obj/structure/platform_decoration{ dir = 9 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/landing_zone_1) "uLk" = ( @@ -54027,7 +53728,6 @@ /obj/structure/platform_decoration{ dir = 5 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) "uOD" = ( @@ -54076,7 +53776,6 @@ /area/lv522/indoors/c_block/cargo) "uPo" = ( /obj/structure/largecrate/guns/russian, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 10; icon_state = "floor_marked" @@ -54245,7 +53944,6 @@ /obj/structure/platform{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/gm/river, /area/lv522/landing_zone_1/tunnel) "uSn" = ( @@ -54345,7 +54043,6 @@ /obj/structure/platform_decoration{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement1" }, @@ -54553,7 +54250,6 @@ /obj/structure/platform{ dir = 8 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/ceiling) "uXO" = ( @@ -54691,7 +54387,6 @@ }, /area/lv522/atmos/east_reactor/south) "vbu" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison, /area/lv522/landing_zone_1/ceiling) "vbF" = ( @@ -54848,7 +54543,6 @@ /obj/structure/platform_decoration{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/ceiling) "vdV" = ( @@ -54866,10 +54560,6 @@ }, /turf/open/floor/wood, /area/lv522/indoors/c_block/casino) -"veq" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/shale/layer1, -/area/lv522/landing_zone_1) "ves" = ( /obj/structure/machinery/light{ dir = 8 @@ -55186,7 +54876,6 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) "vjC" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/ceiling) "vjF" = ( @@ -55542,10 +55231,6 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/admin) -"vqw" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/auto_turf/shale/layer2, -/area/lv522/landing_zone_1) "vqF" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -55672,7 +55357,6 @@ /area/lv522/indoors/c_block/mining) "vso" = ( /obj/structure/largecrate/random/barrel/yellow, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 10; icon_state = "floor_marked" @@ -55759,7 +55443,6 @@ }, /area/lv522/indoors/a_block/kitchen) "vtN" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -55790,14 +55473,12 @@ /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, /area/lv522/landing_zone_1/ceiling) "vuH" = ( /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 10; icon_state = "floor_marked" @@ -56076,7 +55757,6 @@ }, /area/lv522/atmos/east_reactor) "vAW" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 10; icon_state = "floor_marked" @@ -56119,7 +55799,6 @@ /obj/structure/platform_decoration{ dir = 9 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/gm/river, /area/lv522/landing_zone_1/tunnel) "vBx" = ( @@ -56223,7 +55902,6 @@ pixel_y = 19; serial_number = 16 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_1/ceiling) "vCG" = ( @@ -56410,7 +56088,6 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) "vGo" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/asphalt/cement, /area/lv522/landing_zone_1) "vGp" = ( @@ -56862,8 +56539,6 @@ id = "LZ1_Lockdown_Lo"; name = "Emergency Lockdown" }, -/obj/effect/landmark/lv624/fog_blocker/short, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -57176,11 +56851,9 @@ "vTQ" = ( /obj/structure/barricade/handrail, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "vTT" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -57250,7 +56923,6 @@ /area/lv522/indoors/a_block/admin) "vUX" = ( /obj/structure/powerloader_wreckage/ft, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ icon_state = "floor_plate" }, @@ -57278,7 +56950,6 @@ /area/lv522/indoors/a_block/kitchen) "vVi" = ( /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -57426,7 +57097,6 @@ /obj/structure/machinery/computer/cameras/wooden_tv{ pixel_y = 6 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "vZm" = ( @@ -57458,7 +57128,6 @@ /area/lv522/indoors/toilet) "vZv" = ( /obj/structure/cargo_container/kelland/left, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -57519,7 +57188,6 @@ dir = 4 }, /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "waD" = ( @@ -57695,7 +57363,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate/random/case, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "wdd" = ( /obj/item/stack/sheet/wood, /obj/effect/decal/cleanable/dirt, @@ -57724,7 +57392,6 @@ /area/lv522/outdoors/colony_streets/central_streets) "wdI" = ( /obj/structure/cargo_container/kelland/right, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 10; icon_state = "floor_marked" @@ -57860,7 +57527,7 @@ icon_state = "p_stair_full" }, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "wfE" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -58174,7 +57841,6 @@ /area/lv522/indoors/c_block/cargo) "wlY" = ( /obj/structure/largecrate/random/secure, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 10; icon_state = "floor_marked" @@ -58226,7 +57892,6 @@ /obj/structure/machinery/space_heater/radiator/red{ dir = 4 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -59246,7 +58911,6 @@ }, /obj/item/clothing/head/hardhat/white, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -59431,7 +59095,7 @@ /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "wLN" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/drinks/coffee, @@ -60197,7 +59861,6 @@ pixel_x = -13; pixel_y = 2 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -60674,7 +60337,6 @@ /obj/structure/bed/chair{ dir = 1 }, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ icon_state = "floor_plate" }, @@ -60907,7 +60569,7 @@ /obj/structure/largecrate/random/barrel, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "xtb" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/a_block/fitness) @@ -61204,7 +60866,6 @@ pixel_y = 9 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -61642,7 +61303,6 @@ "xIK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/largecrate, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "xIW" = ( @@ -62346,7 +62006,7 @@ dir = 8 }, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) "xVI" = ( /obj/effect/spawner/gibspawner/xeno, /obj/structure/pipes/standard/simple/hidden/green, @@ -62560,11 +62220,6 @@ icon_state = "plate" }, /area/lv522/atmos/cargo_intake) -"xZN" = ( -/obj/structure/largecrate/random/secure, -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/open/floor/plating, -/area/lv522/landing_zone_1/tunnel) "xZP" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -63013,7 +62668,6 @@ }, /area/lv522/outdoors/colony_streets/south_street) "yhU" = ( -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ icon_state = "floor_plate" }, @@ -63255,7 +62909,6 @@ pixel_x = -7 }, /obj/effect/landmark/objective_landmark/close, -/obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ dir = 4; icon_state = "greenfull" @@ -63310,7 +62963,7 @@ "ymf" = ( /obj/structure/platform_decoration, /turf/open/gm/river, -/area/lv522/landing_zone_1/tunnel) +/area/lv522/landing_zone_1/tunnel/far) (1,1,1) = {" bMX @@ -64403,7 +64056,7 @@ nGe pez pFw qbf -lBl +pxb paT pxb pxb @@ -64627,11 +64280,11 @@ cpy cpy oyY paT -lBl -lBl -lBl -lBl -lBl +pxb +pxb +pxb +pxb +pxb pxb nQz tPf @@ -64853,12 +64506,12 @@ cpy cpy cpy hTW -lBl -vqw -lBl -lBl -lBl -oYM +pxb +xqp +pxb +pxb +pxb +nQz tPf oKc uZc @@ -65079,13 +64732,13 @@ cpy cpy cpy nGe -veq -veq -vqw -vqw -vqw -oYM -pLm +pwa +pwa +xqp +xqp +xqp +nQz +oKc ryU ryU ryU @@ -65306,12 +64959,12 @@ cpy cpy cpy nGJ -veq -veq -lBl -oYM -tZM -pLm +pwa +pwa +pxb +nQz +tPf +oKc ryU ryU uiM @@ -65533,10 +65186,10 @@ cpy cpy cpy nMc -lBl -oYM -tZM -pLm +pxb +nQz +tPf +oKc ryU ryU ryU @@ -65759,11 +65412,11 @@ cpy cpy cpy lJq -lBl -oYM -pLm -pkH -pkH +pxb +nQz +oKc +ryU +ryU ryU wuK xfW @@ -65986,11 +65639,11 @@ cpy cpy cpy lJq -oYM -pLm -pkH -pvd -nhi +nQz +oKc +ryU +rhk +uTd oyf tns fOc @@ -66212,9 +65865,9 @@ cpy cpy cpy cpy -veq +pwa lWj -cpU +uZc fSo nFj pRg @@ -66439,9 +66092,9 @@ tFx tFx tFx niA -veq +pwa oiC -pkH +ryU naS nFj nFj @@ -66666,9 +66319,9 @@ wnP evg syM rnT -lBl +pxb ttT -pkH +ryU haf nFj nFj @@ -66893,9 +66546,9 @@ mvP ggS tFx rnT -lBl +pxb ttT -pkH +ryU das sYH sYH @@ -67118,11 +66771,11 @@ tFx moI mxD uom -kWp +ymc rnT -lBl +pxb ttT -pkH +ryU eyy sYH sYH @@ -67158,11 +66811,11 @@ cpy eYM eYM eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV +sRM eYM eYM cpy @@ -67345,11 +66998,11 @@ tFx inm myQ myZ -kWp +ymc rnT -lBl +pxb ttT -pkH +ryU naS sYH sYH @@ -67385,12 +67038,12 @@ eYM eYM uqe pNa -fxZ -fxZ -fxZ +wfP +wfP +wfP pNa -nvV -ait +sRM +hTe eYM cpy cpy @@ -67574,9 +67227,9 @@ rIM rIM tFx rnT -lBl +pxb ttT -pkH +ryU haf sYH sYH @@ -67609,15 +67262,15 @@ pxb cpy eYM eYM -qCs -fxZ +jJF +wfP eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -67796,14 +67449,14 @@ qJy aRN ien mmw -fbh -fbh -fHB +veQ +veQ +fnA sSQ rnT -lBl +pxb ttT -pkH +ryU das sYH sYH @@ -67836,15 +67489,15 @@ pxb cpy eYM hUM -qCs -fxZ +jJF +wfP eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -68025,12 +67678,12 @@ tZh ofi ofi max -rFw +osN sSQ rnT -lBl +pxb ttT -pkH +ryU eyy nFj nFj @@ -68063,15 +67716,15 @@ cpy cpy eYM vYY -fxZ -fxZ +wfP +wfP eYM -qCs -fxZ -fxZ +jJF +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -68252,12 +67905,12 @@ hpq tZh ofi max -rFw +osN sSQ rnT -lBl +pxb jPg -pkH +ryU naS nFj nFj @@ -68291,14 +67944,14 @@ cpy eYM ofX rmC -fxZ +wfP eYM -qCs -fxZ -fxZ +jJF +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -68482,9 +68135,9 @@ max ien ien ien -lBl +pxb lWj -cpU +uZc fBL nFj pRg @@ -68518,14 +68171,14 @@ cpy eYM fLM rmC -fxZ +wfP eYM -qCs -fxZ -fxZ +jJF +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -68706,15 +68359,15 @@ hpq ofi ofi max -rFw +osN sSQ rnT -lBl +pxb lgY oKG -pkH -pwH -sCk +ryU +uEH +vJj jIk aGS dhP @@ -68745,14 +68398,14 @@ cpy eYM eYM ivb -fxZ +wfP eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -68933,15 +68586,15 @@ gpB ofi ofi max -rFw +osN sSQ rnT -lBl -lBl +pxb +pxb lgY oKG -pkH -pkH +ryU +ryU ryU tgq qcO @@ -68971,15 +68624,15 @@ pxb cpy eYM exQ -fxZ -fxZ +wfP +wfP eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV -ait +sRM +hTe eYM eYM cpy @@ -69163,11 +68816,11 @@ max ien ien ien -veq -lBl -lBl +pwa +pxb +pxb lgY -qMJ +udi oKG ryU ryU @@ -69198,16 +68851,16 @@ cpy cpy eYM eYM -fxZ -fxZ +wfP +wfP eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -nvV -ait -ait +sRM +hTe +hTe eYM cpy cpy @@ -69387,16 +69040,16 @@ hpq ofi tZh max -rFw +osN sSQ rnT -veq -veq -lBl -lBl -lBl +pwa +pwa +pxb +pxb +pxb lgY -qMJ +udi oKG ryU ryU @@ -69425,16 +69078,16 @@ cpy cpy eYM jxF -fxZ -xZN +wfP +mzi eYM -fxZ -fxZ +wfP +wfP nxF eYM -nvV -ait -ait +sRM +hTe +hTe eYM cpy cpy @@ -69614,16 +69267,16 @@ hpq ofi max max -rFw +osN sSQ rnT -veq -veq -veq -lBl -lBl -lBl -lBl +pwa +pwa +pwa +pxb +pxb +pxb +pxb lgY oKG ryU @@ -69656,12 +69309,12 @@ jCh eYM eYM ivb -fxZ -fxZ +wfP +wfP eYM vBm -cHY -ait +qxk +hTe eYM cpy cpy @@ -69841,7 +69494,7 @@ hpq max max max -rFw +osN sSQ vGo jZD @@ -69849,11 +69502,11 @@ jZD jZD jZD oiY -lBl -lBl -lBl +pxb +pxb +pxb lgY -qMJ +udi oKG uZc ryU @@ -69878,17 +69531,17 @@ pxb cpy eYM eYM -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -fxZ -fxZ -qCs +wfP +wfP +jJF eYM eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -70068,54 +69721,54 @@ hpq max max max -rFw +osN tFx -kWp +ymc tFx tFx -kWp +ymc tFx rnT -lBl -lBl -lBl -lBl -lBl +pxb +pxb +pxb +pxb +pxb lgY -qMJ +udi qDt -pkH -pkH -pkH +ryU +ryU +ryU taW -qMJ -rPQ -lBl -lBl -lBl -lBl -lBl -lBl -veq -veq -veq -vqw -vqw +udi +gVn +pxb +pxb +pxb +pxb +pxb +pxb +pwa +pwa +pwa +xqp +xqp cpy cpy eYM mMX -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -fxZ -fxZ -qCs +wfP +wfP +jJF xIK eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -70295,54 +69948,54 @@ xVV max max ofi -rFw +osN aFf wHo xzp ojb uom -kWp +ymc rnT -lBl -lBl -lBl -veq -veq -lBl -lBl +pxb +pxb +pxb +pwa +pwa +pxb +pxb qDD rys rys rys jYK -lBl -lBl -lBl -lBl -veq -veq -lBl -veq -veq -veq -lBl -vqw -vqw +pxb +pxb +pxb +pxb +pwa +pwa +pxb +pwa +pwa +pwa +pxb +xqp +xqp cpy cpy eYM mMX -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -fxZ -fxZ -fxZ -qCs +wfP +wfP +wfP +jJF eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -70522,54 +70175,54 @@ max max max ofi -rFw -kZJ +osN +aFf ggS uol uol rzz -kWp +ymc rnT -lBl -lBl -veq -veq -veq -veq -veq -veq -lBl -lBl -lBl -lBl -lBl -lBl -lBl -veq -veq -veq -veq -veq -veq -lBl -lBl -veq -vqw +pxb +pxb +pwa +pwa +pwa +pwa +pwa +pwa +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pwa +pwa +pwa +pwa +pwa +pwa +pxb +pxb +pwa +xqp cpy cpy eYM oBw -fxZ -fxZ -fxZ +wfP +wfP +wfP eYM -xZN -fxZ -fxZ -qCs +mzi +wfP +wfP +jJF eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -70749,7 +70402,7 @@ max max max ofi -rFw +osN kPJ ggS nEq @@ -70757,46 +70410,46 @@ nEq rzz syM rnT -lBl -veq -veq -veq -vqw -veq -veq -veq -veq -veq -veq -veq -lBl -lBl -veq -veq -veq -veq -veq -veq -lBl -lBl -lBl -lBl -lBl +pxb +pwa +pwa +pwa +xqp +pwa +pwa +pwa +pwa +pwa +pwa +pwa +pxb +pxb +pwa +pwa +pwa +pwa +pwa +pwa +pxb +pxb +pxb +pxb +pxb cpy cpy eYM sdN -fxZ -fxZ -qCs +wfP +wfP +jJF eYM xIK -fxZ -fxZ +wfP +wfP rcR eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -70976,31 +70629,31 @@ max max ofi tZh -rFw +osN aFf lJU uol vbu oPR -kWp +ymc rnT -veq -veq -veq -lBl -vqw -vqw -veq -veq -vqw -vqw -vqw -veq -veq -veq -veq -veq -veq +pwa +pwa +pwa +pxb +xqp +xqp +pwa +pwa +xqp +xqp +xqp +pwa +pwa +pwa +pwa +pwa +pwa tMq jZD jZD @@ -71013,17 +70666,17 @@ cpy cpy eYM kbo -fxZ -qCs -qCs +wfP +jJF +jJF eYM xIK -qCs -fxZ +jJF +wfP rcR eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -71203,22 +70856,22 @@ max max ofi tZh -rFw +osN aFf xdn rzz omG oRS -kWp +ymc rnT -veq -veq -lBl -cpy -lBl -lBl -lBl -veq +pwa +pwa +pxb +cpy +pxb +pxb +pxb +pwa rAu umK sCb @@ -71226,8 +70879,8 @@ tfb tMt umK uFp -veq -veq +pwa +pwa vtN tFx tFx @@ -71240,17 +70893,17 @@ cpy cpy eYM ikb -fxZ -qCs +wfP +jJF eYM eYM eYM ntT -fxZ -fxZ +wfP +wfP eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -71429,22 +71082,22 @@ max max max tZh -fPt -fHB +pAj +fnA tFx -kWp -pid -kWp +ymc +xXO +ymc tFx tFx rnT -lBl -lBl +pxb +pxb cpy cpy -lBl -lBl -lBl +pxb +pxb +pxb rAu rOw tFx @@ -71476,8 +71129,8 @@ eYM jCh eYM eYM -nvV -ait +sRM +hTe eYM cpy cpy @@ -71656,7 +71309,7 @@ cxv max max tZh -rFw +osN tFx tFx eiP @@ -71665,13 +71318,13 @@ jQC tFx tFx rnT -lBl -lBl -lBl -lBl -lBl -lBl -veq +pxb +pxb +pxb +pxb +pxb +pxb +pwa gej tFx tFx @@ -71693,17 +71346,17 @@ tFx eYM uEV sdN -fxZ -qCs -qCs +wfP +jJF +jJF eYM eYM eYM nSq -fxZ -qCs +wfP +jJF vTQ -nvV +sRM eYM eYM cpy @@ -71883,22 +71536,22 @@ kmq cxv max max -rFw +osN aFf mFm nnv vbu vbu rzz -kWp +ymc rnT -lBl -lBl -lBl -lBl -lBl -lBl -veq +pxb +pxb +pxb +pxb +pxb +pxb +pwa gej tFx ykU @@ -71919,18 +71572,18 @@ ggS tFx eZW pET -fxZ -fxZ -fxZ -qCs +wfP +wfP +wfP +jJF xIK eYM qXs -qCs -fxZ -fxZ +jJF +wfP +wfP vTQ -nvV +sRM eYM cpy cpy @@ -72110,7 +71763,7 @@ mBF hpq max max -rFw +osN aFf mOf nnW @@ -72119,13 +71772,13 @@ uol rzz syM rnT -lBl -lBl -lBl -lBl -lBl -veq -veq +pxb +pxb +pxb +pxb +pxb +pwa +pwa gej ymc gQy @@ -72145,19 +71798,19 @@ ggS rSh vNW pYj -fxZ -fxZ -fxZ -fxZ -fxZ +wfP +wfP +wfP +wfP +wfP waz eYM qLk -fxZ -fxZ -fxZ +wfP +wfP +wfP uIF -nvV +sRM eYM cpy cpy @@ -72337,14 +71990,14 @@ kbS hpq max max -rFw +osN aFf mOP nsr uol uol oVK -kWp +ymc vGo jZD ien @@ -72371,20 +72024,20 @@ nEq ggS tVj tFx -eTu +cLB kZq -qCs +jJF qVQ -qCs +jJF xIK eYM eYM epN -fxZ -qCs -qCs +wfP +jJF +jJF uIF -nvV +sRM eYM cpy cpy @@ -72564,7 +72217,7 @@ fnA dPP max max -rFw +osN tFx tFx nuU @@ -72607,11 +72260,11 @@ eYM eYM eYM epN -fxZ -fxZ -fxZ +wfP +wfP +wfP vTQ -nvV +sRM eYM cpy cpy @@ -72791,22 +72444,22 @@ mBF hpq max max -std -fHB +gMQ +fnA tFx rIM rIM rIM tFx -fHB -fbh -fbh +fnA +veQ +veQ ien -fbh -fbh -fbh +veQ +veQ +veQ ien -fbh +veQ qLu aFf fDF @@ -72825,25 +72478,25 @@ vAW tVj tFx tFx -pjl -pjl -pjl -pjl -pjl -pjl -pjl +cpy +cpy +cpy +cpy +cpy +cpy +cpy eYM eYM -qCs +jJF gXb -qCs -qCs +jJF +jJF eYM eYM -pjl -pjl -pjl -pjl +cpy +cpy +cpy +cpy bMX "} (43,1,1) = {" @@ -73019,13 +72672,13 @@ hpq max max max -std -fbh -fbh -fbh -fbh -fbh -rJv +gMQ +veQ +veQ +veQ +veQ +veQ +xVV ofi max max @@ -73051,23 +72704,23 @@ tFx tFx tFx tFx -pjl -pjl cpy cpy cpy cpy cpy -pjl -pjl -spj +cpy +cpy +cpy +cpy +eYM eYM eYM oWK eYM eYM -pjl -pjl +cpy +cpy cpy cpy cpy @@ -73270,16 +72923,17 @@ ufS tFx tFx cpy -fHB -fbh -fbh -fbh -fbh -fbh -fbh -fbh -fbh -fHB +fnA +veQ +veQ +veQ +veQ +veQ +veQ +veQ +veQ +fnA +cpy cpy cpy cpy @@ -73287,13 +72941,12 @@ cpy cpy cpy cpy -pjl -spj +eYM iIa drd uug -spj -pjl +eYM +cpy cpy cpy cpy @@ -73517,7 +73170,7 @@ bPJ bPJ bPJ aue -wfP +nZP dnO bPJ bPJ @@ -73745,7 +73398,7 @@ jba bPJ edi pXv -wfP +nZP pQq nVr bPJ @@ -73966,14 +73619,14 @@ ofi osN aQH qaT -hTe -hTe +eSW +eSW jFl aQH mJs czE -wfP -wfP +nZP +nZP wcY bPJ bPJ @@ -74193,15 +73846,15 @@ ofi osN bPJ fYD -qxk +orA ymf sHd bPJ eeb -wfP +nZP ixV -wfP -wfP +nZP +nZP uwe bPJ bPJ @@ -74426,11 +74079,11 @@ bPJ bPJ bPJ rAM -wfP -wfP -wfP -wfP -sRM +nZP +nZP +nZP +nZP +hHe bPJ cpy bMX @@ -74653,11 +74306,11 @@ cpy bPJ bPJ qxf -wfP -wfP -wfP +nZP +nZP +nZP pXv -sRM +hHe bPJ cpy bMX @@ -74880,10 +74533,10 @@ cpy cpy bPJ evu -wfP -wfP -wfP -jJF +nZP +nZP +nZP +enB hiL bPJ cpy @@ -75108,10 +74761,10 @@ cpy bPJ bPJ gfs -wfP -wfP +nZP +nZP gWc -wfP +nZP bPJ cpy bMX @@ -75562,9 +75215,9 @@ cpy cpy cpy bPJ -wfP -wfP -wfP +nZP +nZP +nZP iGD bPJ cpy @@ -75790,7 +75443,7 @@ cpy cpy bPJ bPJ -wfP +nZP ixV bPJ bPJ @@ -76017,8 +75670,8 @@ cpy cpy cpy bPJ -wfP -wfP +nZP +nZP ixV bPJ cpy @@ -76245,7 +75898,7 @@ cpy cpy bPJ ica -wfP +nZP fvn bPJ cpy @@ -76472,8 +76125,8 @@ bPJ bPJ bPJ qKV -jJF -sRM +enB +hHe bPJ cpy bMX @@ -76699,8 +76352,8 @@ fnA bPJ bPJ fCb -jJF -sRM +enB +hHe bPJ cpy bMX @@ -76926,7 +76579,7 @@ osN bPJ oeN rgS -wfP +nZP hiL bPJ cpy @@ -77153,8 +76806,8 @@ osN bPJ tXc fJr -wfP -wfP +nZP +nZP bPJ cpy bMX @@ -77380,7 +77033,7 @@ osN aQH euT fJr -wfP +nZP bPJ bPJ cpy @@ -77605,9 +77258,9 @@ max max osN bPJ -cLB +kHW cJF -wfP +nZP gkH bPJ cpy @@ -77834,7 +77487,7 @@ fnA bPJ bPJ aRB -jJF +enB bPJ bPJ cpy @@ -78061,8 +77714,8 @@ bPJ bPJ bPJ bLA -jJF -wfP +enB +nZP bPJ cpy bMX @@ -78287,8 +77940,8 @@ fnA cpy cpy bPJ -wfP -jJF +nZP +enB fvn bPJ cpy @@ -78514,9 +78167,9 @@ cpy cpy cpy bPJ -wfP +nZP uwe -sRM +hHe bPJ cpy bMX @@ -78741,9 +78394,9 @@ wIr cpy bPJ bPJ -wfP -wfP -sRM +nZP +nZP +hHe bPJ cpy bMX @@ -78968,8 +78621,8 @@ wIr wIr bPJ xsN -wfP -wfP +nZP +nZP bPJ bPJ cpy @@ -79196,7 +78849,7 @@ wIr wIr nRY uwe -wfP +nZP bPJ cpy cpy @@ -79423,7 +79076,7 @@ lBd wIr guh bQA -wfP +nZP bPJ cpy cpy @@ -79649,7 +79302,7 @@ hhI hLx wIr oox -mzi +mlv pXv bPJ cpy @@ -80104,7 +79757,7 @@ pfq wIr rsD bQA -wfP +nZP bPJ cpy cpy @@ -80329,9 +79982,9 @@ aPu mOJ wIr wIr -mzi -wfP -jJF +mlv +nZP +enB bPJ cpy cpy @@ -80556,9 +80209,9 @@ vDL wIr wIr evu -wfP -jJF -jJF +nZP +enB +enB bPJ cpy cpy @@ -80783,8 +80436,8 @@ wIr wIr qxf qxf -wfP -jJF +nZP +enB bPJ bPJ cpy @@ -81009,9 +80662,9 @@ vLI wIr bPJ wLw -wfP -wfP -wfP +nZP +nZP +nZP bPJ cpy cpy @@ -81236,9 +80889,9 @@ tOo bPJ bPJ fZo -wfP -wfP -wfP +nZP +nZP +nZP bPJ cpy cpy @@ -81463,9 +81116,9 @@ mnb ouj bPJ pdp -wfP -wfP -wfP +nZP +nZP +nZP bPJ cpy cpy @@ -81690,9 +81343,9 @@ mnb gmu nYU geT -wfP -jJF -jJF +nZP +enB +enB bPJ cpy cpy @@ -81917,8 +81570,8 @@ mnb gmu bPJ tlB -wfP -jJF +nZP +enB bPJ bPJ cpy @@ -82144,8 +81797,8 @@ mnb eDq bPJ gJr -wfP -wfP +nZP +nZP bPJ cpy cpy @@ -82371,7 +82024,7 @@ tOo bPJ bPJ pHi -wfP +nZP uIY bPJ cpy diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm index a9baa8a1efc7..ba8e782344ca 100644 --- a/maps/map_files/LV624/LV624.dmm +++ b/maps/map_files/LV624/LV624.dmm @@ -17330,10 +17330,6 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) -"kxo" = ( -/obj/effect/landmark/monkey_spawn, -/turf/open/gm/grass/grass1, -/area/lv624/lazarus/landing_zones/lz2) "kxv" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 1 @@ -22591,6 +22587,10 @@ }, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz1) +"tLe" = ( +/obj/effect/landmark/monkey_spawn, +/turf/open/gm/grass/grass1, +/area/lv624/ground/jungle/north_west_jungle) "tLQ" = ( /obj/structure/flora/bush/ausbushes/genericbush, /turf/open/gm/grass/grass1, @@ -30912,7 +30912,7 @@ avo aFQ xTM aAl -aDv +aAl aAp aAp nmO @@ -31140,7 +31140,7 @@ auf aFm aAl wXg -aDv +aAl aAp nmO aXX @@ -31368,7 +31368,7 @@ auf aFm aAl aAl -aDv +aAl aAp aXX aRG @@ -32507,7 +32507,7 @@ tka lCG cDQ oTJ -nuW +aAp aAp cIL nmO @@ -33191,7 +33191,7 @@ oTJ oTJ oTJ oTJ -nuW +aAp aAp nmO aXX @@ -35709,7 +35709,7 @@ aDv aDv aRx aXX -kxo +aXX aXX aXX aXX @@ -38432,7 +38432,7 @@ nuW psh psh psh -psh +tLe psh tLQ ado diff --git a/maps/map_files/New_Varadero/New_Varadero.dmm b/maps/map_files/New_Varadero/New_Varadero.dmm index 5c85b09864e1..6e4bfd4c3d1e 100644 --- a/maps/map_files/New_Varadero/New_Varadero.dmm +++ b/maps/map_files/New_Varadero/New_Varadero.dmm @@ -430,6 +430,21 @@ /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior/maintenance/security) +"apt" = ( +/obj/structure/platform/kutjevo/smooth{ + climb_delay = 1; + layer = 2.99 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 8; + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river{ + name = "shallow ocean"; + default_name = "shallow ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "apG" = ( /obj/structure/blocker/invisible_wall/water, /obj/item/lightstick/variant/planted, @@ -834,6 +849,23 @@ icon_state = "floor3" }, /area/varadero/interior/disposals) +"aBY" = ( +/obj/structure/barricade/handrail{ + desc = "Your platforms look pretty heavy king, let me support them for you."; + dir = 1; + icon_state = "hr_kutjevo"; + name = "support struts" + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 1; + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river{ + name = "shallow ocean"; + default_name = "shallow ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "aCd" = ( /obj/structure/barricade/handrail/wire{ layer = 3.1 @@ -1687,7 +1719,7 @@ name = "deep ocean"; default_name = "deep ocean" }, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "bak" = ( /obj/structure/prop/invuln/overhead_pipe{ dir = 4; @@ -2499,7 +2531,7 @@ name = "shallow ocean"; default_name = "shallow ocean" }, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "bDs" = ( /obj/item/weapon/gun/flare{ current_mag = null @@ -4030,7 +4062,7 @@ name = "shallow ocean"; default_name = "shallow ocean" }, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "cEu" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -6724,7 +6756,7 @@ layer = 2.99 }, /turf/open/gm/coast/beachcorner/south_west, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "evV" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -9167,7 +9199,7 @@ layer = 3.1 }, /turf/open/gm/coast/beachcorner2/north_west, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "fWR" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -10880,7 +10912,7 @@ "haR" = ( /obj/structure/prop/rock/brown, /turf/open/gm/coast/beachcorner2/north_west, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "haT" = ( /turf/open/floor/shiva{ icon_state = "multi_tiles" @@ -15468,7 +15500,7 @@ name = "shallow ocean"; default_name = "shallow ocean" }, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "kaY" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/pill_bottle/inaprovaline/skillless{ @@ -16575,6 +16607,17 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/auto_turf/sand_white/layer1, /area/varadero/exterior/lz2_near) +"kMe" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 4; + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river{ + name = "shallow ocean"; + default_name = "shallow ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "kMf" = ( /obj/structure/window/framed/colony/reinforced/tinted, /turf/open/floor/plating, @@ -18075,7 +18118,7 @@ name = "shallow ocean"; default_name = "shallow ocean" }, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "lIo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -18900,6 +18943,12 @@ }, /turf/open/floor/carpet, /area/varadero/interior/chapel) +"mfP" = ( +/turf/open/gm/river/ocean{ + name = "deep ocean"; + default_name = "deep ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "mgq" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, @@ -22013,7 +22062,7 @@ layer = 2.99 }, /turf/open/gm/coast/beachcorner2/south_west, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "ohM" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -22191,6 +22240,12 @@ }, /turf/open/floor/carpet, /area/varadero/interior/library) +"ooP" = ( +/turf/open/gm/river{ + name = "shallow ocean"; + default_name = "shallow ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "opd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/beerkeg, @@ -23809,6 +23864,13 @@ icon_state = "floor3" }, /area/varadero/interior/security) +"ppU" = ( +/obj/structure/flora/bush/ausbushes/var3/stalkybush, +/turf/open/gm/river/ocean{ + name = "deep ocean"; + default_name = "deep ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "pqf" = ( /obj/structure/window/phoronreinforced{ dir = 4; @@ -24259,6 +24321,17 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/caves/digsite) +"pEo" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8; + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river{ + name = "shallow ocean"; + default_name = "shallow ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "pEE" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24936,6 +25009,9 @@ }, /turf/open/floor/wood, /area/varadero/interior/bunks) +"pYH" = ( +/turf/open/gm/coast/beachcorner2/south_west, +/area/varadero/exterior/pontoon_beach/lz) "pYI" = ( /obj/effect/landmark/lv624/fog_blocker{ time_to_dispel = 25000 @@ -25792,7 +25868,7 @@ name = "shallow ocean"; default_name = "shallow ocean" }, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "qAS" = ( /obj/effect/landmark/corpsespawner/colonist/burst, /turf/open/auto_turf/sand_white/layer1, @@ -28848,6 +28924,15 @@ icon_state = "asteroidfloor" }, /area/varadero/exterior/lz1_near) +"ssw" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 1 + }, +/turf/open/gm/river{ + name = "shallow ocean"; + default_name = "shallow ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "ssZ" = ( /obj/item/storage/belt/marine, /turf/open/floor/carpet, @@ -29147,6 +29232,13 @@ icon_state = "multi_tiles" }, /area/varadero/interior/cargo) +"sAW" = ( +/obj/structure/prop/rock/brown, +/turf/open/gm/river/ocean{ + name = "deep ocean"; + default_name = "deep ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "sAY" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1; @@ -30286,7 +30378,7 @@ name = "shallow ocean"; default_name = "shallow ocean" }, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "tlq" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -10; @@ -30654,6 +30746,15 @@ icon_state = "floor3" }, /area/varadero/interior/medical) +"tyV" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 4 + }, +/turf/open/gm/river{ + name = "shallow ocean"; + default_name = "shallow ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "tzp" = ( /obj/structure/machinery/light{ dir = 8 @@ -31025,6 +31126,16 @@ icon_state = "asteroidplating" }, /area/varadero/interior/oob) +"tOB" = ( +/obj/structure/platform/kutjevo/smooth{ + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river{ + name = "shallow ocean"; + default_name = "shallow ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "tOK" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/camera{ @@ -33585,6 +33696,9 @@ icon_state = "red" }, /area/varadero/interior/security) +"vzi" = ( +/turf/closed/wall/rock/brown, +/area/varadero/exterior/pontoon_beach/lz) "vzq" = ( /obj/structure/machinery/storm_siren{ pixel_y = 5 @@ -34078,6 +34192,13 @@ icon_state = "darkredfull2" }, /area/varadero/interior/dock_control) +"vLI" = ( +/obj/structure/prop/rock/brown, +/turf/open/gm/river{ + name = "shallow ocean"; + default_name = "shallow ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "vLU" = ( /obj/structure/machinery/vending/security, /turf/open/floor/shiva{ @@ -34259,6 +34380,21 @@ }, /turf/open/floor/carpet, /area/varadero/interior/chapel) +"vQF" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8; + climb_delay = 1; + layer = 2.99 + }, +/obj/structure/platform/kutjevo/smooth{ + climb_delay = 1; + layer = 2.99 + }, +/turf/open/gm/river{ + name = "shallow ocean"; + default_name = "shallow ocean" + }, +/area/varadero/exterior/pontoon_beach/lz) "vQK" = ( /obj/structure/platform/kutjevo/smooth{ dir = 8; @@ -34440,7 +34576,7 @@ layer = 2.99 }, /turf/open/gm/coast/beachcorner/north_west, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "vWG" = ( /obj/structure/bed/chair, /obj/structure/machinery/storm_siren{ @@ -34602,7 +34738,7 @@ name = "deep ocean"; default_name = "deep ocean" }, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "vZS" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/shiva{ @@ -37276,7 +37412,7 @@ name = "deep ocean"; default_name = "deep ocean" }, -/area/varadero/exterior/pontoon_beach) +/area/varadero/exterior/pontoon_beach/lz) "xLE" = ( /obj/structure/noticeboard{ pixel_y = 32 @@ -49392,8 +49528,8 @@ mPk mPk wBp fjv -qwQ -uYJ +mfP +ppU bah uZK kME @@ -49573,9 +49709,9 @@ mPk mPk wBp wBp -qwQ -uYJ -lTR +mfP +ppU +ooP kap wMw wMw @@ -49754,10 +49890,10 @@ mPk mPk rYC fjv -uYJ -qwQ -pAX -lTR +ppU +mfP +sAW +ooP kap wMw wMw @@ -49935,11 +50071,11 @@ mPk mPk wBp wBp -qwQ -qwQ -qwQ -lTR -qwQ +mfP +mfP +mfP +ooP +mfP kap wMw wMw @@ -50116,12 +50252,12 @@ mPk mPk imk wBp -qwQ -uYJ -qwQ -qwQ -qwQ -qwQ +mfP +ppU +mfP +mfP +mfP +mfP kap sSz miT @@ -50298,12 +50434,12 @@ mPk mPk mPk fjv -qwQ -qwQ -pAX -qwQ -qwQ -qwQ +mfP +mfP +sAW +mfP +mfP +mfP kap cmU wMw @@ -50480,12 +50616,12 @@ mPk mPk mPk wBp -qwQ -qwQ -qwQ -qwQ -qwQ -lTR +mfP +mfP +mfP +mfP +mfP +ooP kap rgZ olD @@ -50662,18 +50798,18 @@ mPk mPk mPk rYC -lTR -pAX -qwQ -qwQ -lTR -lTR -eDY +ooP +sAW +mfP +mfP +ooP +ooP +tOB tpV asx cfq qAI -bJV +pEo ohC euS vWn @@ -50844,20 +50980,20 @@ mPk mPk mPk wBp -lTR -qwQ -qwQ -qwQ -lTR -qwQ -eDY +ooP +mfP +mfP +mfP +ooP +mfP +tOB lZR aCo lZR -caD -lTR -aTY -eGX +aBY +ooP +vLI +pYH haR kap wMw @@ -51028,19 +51164,19 @@ mPk xVw dXg dXg -qwQ -qwQ -qwQ -qwQ +mfP +mfP +mfP +mfP xLB gnC mYR asx -caD -lTR -dXg -lTR -lTR +aBY +ooP +vzi +ooP +ooP kap wMw ygY @@ -51211,18 +51347,18 @@ wBp qwQ dXg dXg -qwQ -lTR -qwQ -fHf -wPl +mfP +ooP +mfP +ssw +vQF xOX lId -jLS -lTR -dXg -dXg -aTY +tyV +ooP +vzi +vzi +vLI kap oLa vUQ @@ -51393,18 +51529,18 @@ wBp uYJ dXg dXg -qwQ -qwQ -qwQ -qwQ +mfP +mfP +mfP +mfP xLB xOX bCM -rlI -rlI -rlI -rlI -rlI +kMe +kMe +kMe +kMe +kMe cEm fZB wMw @@ -51577,9 +51713,9 @@ qwQ dXg dXg dXg -qwQ -qwQ -eDY +mfP +mfP +tOB xOX tkV asx @@ -51761,7 +51897,7 @@ dXg dXg dXg dXg -eDY +tOB asx asx kzo @@ -51945,7 +52081,7 @@ qwQ dXg xFS vZR -eha +apt dKy qVD fXu diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index f15298111bf2..aaeb160aeef1 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -11041,6 +11041,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"bjZ" = ( +/obj/structure/machinery/cm_vending/clothing/marine/snowflake, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/living/gym) "bkb" = ( /turf/open/floor/almayer{ dir = 4; @@ -12003,12 +12009,6 @@ icon_state = "plate" }, /area/almayer/hallways/lower/starboard_fore_hallway) -"bqm" = ( -/obj/structure/closet/boxinggloves, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/gym) "bqF" = ( /obj/structure/dropship_equipment/fuel/fuel_enhancer, /turf/open/floor/almayer{ @@ -25272,6 +25272,19 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/starboard) +"evC" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "civ_uniforms"; + name = "Uniform Vendor Lockdown"; + pixel_x = -24; + pixel_y = -7; + req_access_txt = "31" + }, +/turf/open/floor/almayer, +/area/almayer/living/gym) "evM" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -26713,8 +26726,7 @@ icon_state = "ramptop" }, /turf/open/floor/almayer/aicore/glowing/no_build{ - icon_state = "ai_floor3"; - light_range = 3 + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "eXD" = ( @@ -41904,6 +41916,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_p) +"kox" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors{ + dir = 4; + id = "civ_uniforms" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "cargo_arrow" + }, +/area/almayer/living/gym) "koB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -44836,6 +44858,9 @@ icon_state = "silvercorner" }, /area/almayer/shipboard/brig/cic_hallway) +"lnu" = ( +/turf/closed/wall/almayer/reinforced/temphull, +/area/almayer/living/gym) "lnP" = ( /obj/structure/machinery/vending/cola, /obj/structure/window/reinforced, @@ -50514,8 +50539,7 @@ vector_y = -61 }, /turf/open/floor/almayer/aicore/glowing/no_build{ - icon_state = "ai_floor3"; - light_range = 3 + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "nkX" = ( @@ -55845,8 +55869,7 @@ dir = 1 }, /turf/open/floor/almayer/aicore/glowing/no_build{ - icon_state = "ai_floor3"; - light_range = 3 + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "oZp" = ( @@ -55967,8 +55990,7 @@ dir = 8 }, /turf/open/floor/almayer/aicore/glowing/no_build{ - icon_state = "ai_floor3"; - light_range = 3 + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "paI" = ( @@ -69653,8 +69675,7 @@ dir = 8 }, /turf/open/floor/almayer/aicore/glowing/no_build{ - icon_state = "ai_floor3"; - light_range = 3 + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "tIF" = ( @@ -73736,10 +73757,6 @@ }, /turf/open/floor/plating, /area/almayer/medical/lower_medical_medbay) -"vhY" = ( -/obj/structure/sign/goldenplaque, -/turf/closed/wall/almayer, -/area/almayer/living/gym) "vif" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 @@ -108726,11 +108743,11 @@ sZc abj mUE coo -eWs -aRu -aRu -aRu -aRu +lnu +lnu +lnu +lnu +lnu aRu aRu bcm @@ -108929,12 +108946,12 @@ iOX kIl jmz hsK -wfE -wfE -wfE -wfE -wfE -wfE +lnu +bjZ +bjZ +bjZ +lnu +sGU wfE wfE yap @@ -109133,10 +109150,10 @@ wfE wfE wfE wfE -sGU -vhY +kox +kox +kox wfE -bqm bsD btr wfE @@ -109335,11 +109352,11 @@ jOo wrC mHx pqX -pqX +evC xbk wFR -bmF wFR +bmF wFR xbk aWw @@ -110344,7 +110361,7 @@ aad sGw xzB dvD -wfE +sGU iYx opD xbk diff --git a/sound/weapons/gun_44mag_v4.ogg b/sound/weapons/gun_44mag_v4.ogg new file mode 100644 index 000000000000..6c1ad1b32ef7 Binary files /dev/null and b/sound/weapons/gun_44mag_v4.ogg differ diff --git a/tgui/packages/tgui/interfaces/BugReportForm.tsx b/tgui/packages/tgui/interfaces/BugReportForm.tsx new file mode 100644 index 000000000000..fe0c26035fd6 --- /dev/null +++ b/tgui/packages/tgui/interfaces/BugReportForm.tsx @@ -0,0 +1,217 @@ +import { BooleanLike } from 'common/react'; +import React, { useState } from 'react'; + +import { useBackend } from '../backend'; +import { Flex, Section } from '../components'; +import { ButtonCheckbox } from '../components/Button'; +import { Window } from '../layouts'; +interface FormTypes { + awaiting_admin_approval: BooleanLike; + report_details: FormDetails; +} + +// all the information necessary to pass into the github api +type FormDetails = { + steps: string; + title: string; + description: string; + expected_behavior: string; + admin_note: string; + log: string; +}; + +const InputTitle = (props) => { + return ( +

+ {props.children} + {props.required && {' *'}} +

+ ); +}; + +export const BugReportForm = (props) => { + const { act, data } = useBackend(); + const { awaiting_admin_approval, report_details } = data; + const [checkBox, setCheckbox] = useState(false); + + const [title, setTitle] = useState(report_details?.title || ''); + const [steps, setSteps] = useState(report_details?.steps || ''); + const [description, setDescription] = useState( + report_details?.description || '', + ); + const [expected_behavior, setExpectedBehavior] = useState( + report_details?.expected_behavior || '', + ); + const [admin_note, setAdminNote] = useState(report_details?.admin_note || ''); + const [log, setLog] = useState(report_details?.log || ''); + + const submit = () => { + if (!title || !description || !expected_behavior || !steps || !checkBox) { + alert('Please fill out all required fields!'); + return; + } + const updatedReportDetails = { + title, + steps, + description, + expected_behavior, + admin_note, + log, + }; + act('confirm', updatedReportDetails); + }; + + return ( + + +
+ + + + GitHub Repository + + + +

+ { + 'TIP: please be as descriptive as possible, it really does help tremendously' + } +

+
+ + {'Title'} + setTitle(e.target.value)} + /> + + + {'Description'} + {'Give a description of the bug'} +