From fc11dddde6ba095e9995a7af7327e169b043b5d6 Mon Sep 17 00:00:00 2001 From: Red <47158596+Red-byte3D@users.noreply.github.com> Date: Tue, 11 Feb 2025 11:02:06 +0300 Subject: [PATCH 01/25] Fixes forecon marksman being hit by bullets while invisible (#8427) # About the pull request Adds faction_marine to forecon preventing the marksman from being hit while cloaked # Explain why it's good for the game fixes #7553 # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: fix: Fixes forecon spotter/marksman being hit by ally bullets while inivsible /:cl: --------- Co-authored-by: InsaneRed Co-authored-by: harryob <55142896+harryob@users.noreply.github.com> --- code/modules/mob/mob_helpers.dm | 18 ++++++++++++++++++ code/modules/projectiles/projectile.dm | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 1497c6ac321d..54a4b50ec97a 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -486,6 +486,24 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( /mob/proc/can_see_reagents() return stat == DEAD || issynth(src) || HAS_TRAIT(src, TRAIT_REAGENT_SCANNER) //Dead guys and synths can always see reagents +/// Returns TRUE if this mob is an ally of another, depending on the `faction` and `faction_group` variables, FALSE otherwise +/mob/proc/is_ally_of(mob/potential_ally) + . = FALSE + + if(faction == potential_ally.faction) + return TRUE + + if(faction in potential_ally.faction_group) + return TRUE + + if(potential_ally.faction in faction_group) + return TRUE + + if(length(faction_group & potential_ally.faction_group)) + return TRUE + + return FALSE + /** * Examine a mob * diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 9c1f50710ef9..7ca7e267c942 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -871,7 +871,7 @@ . -= mobility_aura * 5 var/mob/living/carbon/human/shooter_human = P.firer if(istype(shooter_human)) - if(shooter_human.faction == faction && !(ammo_flags & AMMO_ALWAYS_FF)) + if(is_ally_of(shooter_human) && !(ammo_flags & AMMO_ALWAYS_FF)) . -= FF_hit_evade if(ammo_flags & AMMO_MP) From f2eeeaa3f3ac24d6ae2ea692c72bc5f35892fed0 Mon Sep 17 00:00:00 2001 From: "cmss13-ci[bot]" <180991813+cmss13-ci[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 08:10:36 +0000 Subject: [PATCH 02/25] Automatic changelog for PR #8427 [ci skip] --- html/changelogs/AutoChangeLog-pr-8427.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8427.yml diff --git a/html/changelogs/AutoChangeLog-pr-8427.yml b/html/changelogs/AutoChangeLog-pr-8427.yml new file mode 100644 index 000000000000..4270cf8dbd9a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8427.yml @@ -0,0 +1,4 @@ +author: "Red-byte3D" +delete-after: True +changes: + - bugfix: "Fixes forecon spotter/marksman being hit by ally bullets while inivsible" \ No newline at end of file From 85cc4422b2ecab942d74c19197c0e9e351a9f2ae Mon Sep 17 00:00:00 2001 From: zzzmike <85382350+zzzmike@users.noreply.github.com> Date: Tue, 11 Feb 2025 00:15:41 -0800 Subject: [PATCH 03/25] Matches defib noise (close) to user's speed. (#8376) # About the pull request Speeds up the defib noise if the user does the defib faster due to skill bonus. # Explain why it's good for the game It doesn't make sense when you see a synth defib someone and the thing is still beeping long after the guy has been shocked. One size doesn't fit all in this case. # Testing Photographs and Procedure https://www.youtube.com/watch?v=AbqnKxiMpLE - also tested defibbing someone on doctor and corpsman, it worked as expected. # Changelog :cl: soundadd: faster defib noises for those who use defibs faster (synth, doctor) /:cl: --------- Co-authored-by: harry --- .../game/objects/items/devices/defibrillator.dm | 11 ++++++++++- sound/items/defib_charge_skill3.ogg | Bin 0 -> 37601 bytes sound/items/defib_charge_skill4.ogg | Bin 0 -> 34711 bytes 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 sound/items/defib_charge_skill3.ogg create mode 100644 sound/items/defib_charge_skill4.ogg diff --git a/code/game/objects/items/devices/defibrillator.dm b/code/game/objects/items/devices/defibrillator.dm index 5aaa57b9abf8..2bea6669db51 100644 --- a/code/game/objects/items/devices/defibrillator.dm +++ b/code/game/objects/items/devices/defibrillator.dm @@ -49,6 +49,8 @@ /// Sound sets for different defibs. var/sound_charge = 'sound/items/defib_charge.ogg' + var/sound_charge_skill4 = 'sound/items/defib_charge_skill4.ogg' + var/sound_charge_skill3 = 'sound/items/defib_charge_skill3.ogg' var/sound_failed = 'sound/items/defib_failed.ogg' var/sound_success = 'sound/items/defib_success.ogg' var/sound_safety_on = 'sound/items/defib_safetyOn.ogg' @@ -213,7 +215,12 @@ user.visible_message(SPAN_NOTICE("[user] starts setting up the [fluff_tool] on [target]'s [fluff_target_part]"), SPAN_HELPFUL("You start setting up the [fluff_tool] on [target]'s [fluff_target_part].")) - playsound(get_turf(src), sound_charge, 25, 0) //Do NOT vary this tune, it needs to be precisely 7 seconds + if(user.get_skill_duration_multiplier(SKILL_MEDICAL) == 0.35) + playsound(get_turf(src), sound_charge_skill4, 25, 0) + else if(user.get_skill_duration_multiplier(SKILL_MEDICAL) == 0.75) + playsound(get_turf(src), sound_charge_skill3, 25, 0) + else + playsound(get_turf(src), sound_charge, 25, 0) //Do NOT vary this tune, it needs to be precisely 7 seconds //Taking square root not to make defibs too fast... if(!do_after(user, (4 + (3 * user.get_skill_duration_multiplier(SKILL_MEDICAL))) SECONDS, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_FRIENDLY, target, INTERRUPT_MOVED, BUSY_ICON_MEDICAL)) @@ -341,6 +348,8 @@ fluff_revive_message = "Reset complete" sound_charge = 'sound/mecha/powerup.ogg' + sound_charge_skill4 = 'sound/mecha/powerup.ogg' + sound_charge_skill3 = 'sound/mecha/powerup.ogg' sound_failed = 'sound/items/synth_reset_key/shortbeep.ogg' sound_success = 'sound/items/synth_reset_key/boot_on.ogg' sound_safety_on = 'sound/machines/click.ogg' diff --git a/sound/items/defib_charge_skill3.ogg b/sound/items/defib_charge_skill3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..474f0eae5cc2453265242ff6e8ba7a9f4215f3de GIT binary patch literal 37601 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 Date: Tue, 11 Feb 2025 08:27:25 +0000 Subject: [PATCH 04/25] Automatic changelog for PR #8376 [ci skip] --- html/changelogs/AutoChangeLog-pr-8376.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8376.yml diff --git a/html/changelogs/AutoChangeLog-pr-8376.yml b/html/changelogs/AutoChangeLog-pr-8376.yml new file mode 100644 index 000000000000..433603eb1b6e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8376.yml @@ -0,0 +1,4 @@ +author: "zzzmike" +delete-after: True +changes: + - soundadd: "faster defib noises for those who use defibs faster (synth, doctor)" \ No newline at end of file From e5bb7546e64b0ce122a800aca9144ded6d13fcb1 Mon Sep 17 00:00:00 2001 From: Git-Nivrak <59925169+Git-Nivrak@users.noreply.github.com> Date: Tue, 11 Feb 2025 16:06:44 +0200 Subject: [PATCH 05/25] Fixes new players being teleported into ground z level (#8441) # About the pull request # Explain why it's good for the game They should stay in admin z level (an example of why this is problematic is evo screeches being heard in lobby) # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: fix: Fixes new players being teleported into the ground z level /:cl: --- code/game/turfs/space.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/turfs/space.dm b/code/game/turfs/space.dm index a447b9737263..0af7ffee3be4 100644 --- a/code/game/turfs/space.dm +++ b/code/game/turfs/space.dm @@ -77,6 +77,9 @@ /turf/open/space/Entered(atom/movable/A) ..() + if(isnewplayer(A)) + return + if ((!(A) || src != A.loc)) return inertial_drift(A) From 52ef8490abc88168bd8f5f022996cb9bab71cdea Mon Sep 17 00:00:00 2001 From: "cmss13-ci[bot]" <180991813+cmss13-ci[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 14:16:40 +0000 Subject: [PATCH 06/25] Automatic changelog for PR #8441 [ci skip] --- html/changelogs/AutoChangeLog-pr-8441.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8441.yml diff --git a/html/changelogs/AutoChangeLog-pr-8441.yml b/html/changelogs/AutoChangeLog-pr-8441.yml new file mode 100644 index 000000000000..b2a7f644b9f4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8441.yml @@ -0,0 +1,4 @@ +author: "Git-Nivrak" +delete-after: True +changes: + - bugfix: "Fixes new players being teleported into the ground z level" \ No newline at end of file From 343336091016098d9a82651d22bd671242e3c4a6 Mon Sep 17 00:00:00 2001 From: Joelampost <104737973+Joelampost@users.noreply.github.com> Date: Tue, 11 Feb 2025 19:23:21 +0000 Subject: [PATCH 07/25] Project Youngblood (Testing Needed) (#7925) # About the pull request This PR introduces a role for non-whitelisted players on CM, allowing them to play as predators in the hunting grounds. This provides an opportunity for players who might want to apply for the whitelist or simply experience a role they haven't played before. Players rolling for the role will need 60 hours as any marine in a squad AND 60 hours as any xeno role. This PR will need ironing out before it is ready to be merged. Mapping changes: 1. I have expanded the predship Z level to 80x70 to accommodate the youngblood area. 2. Greatly expanded the fighting pit as another is located in the lower deck (youngblood area), expanded the room outwards by two tiles also. Screenshots are provided. 3. The lower deck of the ship is lit with red light. 4. Removed the globe in the cockpit replaced it with the console that calls the youngblood ERT. List of things youngbloods cannot do: 1. Youngbloods cannot use the plasma caster (as completing the blooding trial grants them this in lore). 2. Youngbloods cannot use the relay beacon or NORMAL teleporters on the clan ship I have made separate ones for them to use. 3. Youngbloods cannot use self destruct ANYWHERE as they are only meant for the hunting grounds. The hunting grounds does not allow self destruct in the first place so the only reason that a youngblood would be SDing is if they intended to grief. 4. They can't use any of the consoles relating to the hunting grounds as they are supposed to be supervised by whitelisted players or an admin. List of things youngbloods can do: 1. Choose their own armour set and colour from the same preference menu as whitelisted players (whitelisted players cannot see this menu). No names or flavour text because i don't trust CM players not to name their pred something stupid. 2. They get every other bracer ability that was not mentioned in what they cannot do. 3. If they survive whitelisted players will be encouraged to return them to the clanship to roleplay. Fali safes: 1. Whitelisted players can use a button on their bracer to instantly kill any Youngblood alive if they eg: break character, break the honour code or insult a blooded member. This is intended as a last resort warnings should be given out before anyone presses this button. I don't want to see whitelisted players instantly killing a youngblood for one minor insult. 2. A new ERT job ban is in place for youngbloods for obvious reasons. 3. If any whitelisted predator player takes a youngblood into the main part of the game they will be removed from the whitelist. 4. On spawning youngbloods are told what they cannot do in terms of roleplay and the honour code. # Explain why it's good for the game It introduces people who have never played predator to what the whitelist is about and sharing is good. With the failsafe's in place i don't see anything major going wrong as they are mechanically unable to effect the round in anyway. # Testing Photographs and Procedure
Screenshots & Videos Lower ship younblood spawn and prep with night vison on ![image](https://github.com/user-attachments/assets/98593281-7bd5-48ae-9283-5b227183fdde) Lower ship younblood spawn and prep with night vison off ![image](https://github.com/user-attachments/assets/781ee3b5-b320-438c-8c58-e886d29a15f0) New fighting pit and ladders ![image](https://github.com/user-attachments/assets/fc2bc422-75e8-4c50-bc34-33f70e4db9bf)
# Changelog :cl: Joe Lampost, Forrest2001 add: A role for non-whitelisted players to play predator. add: A new console and ert have been added relating to spawning youngbloods. add: Feral xenos on the hunting grounds now drop weeds when they spawn. add: A kill button for whitelisted pred players to instantly kill any youngblood acting out of line. code: Predator teleporting now has checks. mapadd: added a lower deck on the pred ship for youngbloods. maptweak: tweaked the fighting pit area of the predship. admin: Adds a new roleban relating to youngbloods. /:cl: --------- Co-authored-by: forest2001 --- code/__DEFINES/clans.dm | 3 +- code/__DEFINES/mode.dm | 5 +- code/_globalvars/lists/mapping_globals.dm | 2 + .../pred_hunt/hunting_calls.dm | 75 +- code/game/area/hunting_preserve.dm | 10 +- code/game/jobs/job/antag/other/pred.dm | 19 + .../vendor_types/antag/antag_predator.dm | 49 + .../objects/effects/landmarks/landmarks.dm | 17 + code/game/objects/effects/step_triggers.dm | 52 +- code/modules/admin/banjob.dm | 6 + code/modules/clans/client.dm | 8 +- code/modules/client/pred_picker.dm | 1 - code/modules/client/preferences.dm | 4 +- code/modules/cm_preds/yaut_bracers.dm | 57 +- code/modules/cm_preds/yaut_items.dm | 69 +- code/modules/cm_preds/yaut_procs.dm | 6 + code/modules/gear_presets/yautja.dm | 47 +- code/modules/power/lighting.dm | 5 + maps/predship/huntership.dmm | 11422 +++++++++------- .../lazy_templates/pred/jungle_moon.dmm | 74 +- 20 files changed, 6920 insertions(+), 5011 deletions(-) diff --git a/code/__DEFINES/clans.dm b/code/__DEFINES/clans.dm index 576bbf6b76d5..b078cd4a04ea 100644 --- a/code/__DEFINES/clans.dm +++ b/code/__DEFINES/clans.dm @@ -28,7 +28,6 @@ #define CLAN_RANK_YOUNG "Young Blood" /// New to the clan #define CLAN_RANK_BLOODED "Blooded" - #define CLAN_RANK_ELITE "Elite" #define CLAN_RANK_ELDER "Elder" #define CLAN_RANK_LEADER "Clan Leader" @@ -91,3 +90,5 @@ ) #define CLAN_SHIP_PUBLIC -1 + +#define ERT_JOB_YOUNGBLOOD "Young Blood" diff --git a/code/__DEFINES/mode.dm b/code/__DEFINES/mode.dm index 139cab978a11..e29721fd6d4c 100644 --- a/code/__DEFINES/mode.dm +++ b/code/__DEFINES/mode.dm @@ -281,6 +281,7 @@ DEFINE_BITFIELD(whitelist_status, list( #define FACTION_SOUTO "Souto Man" #define FACTION_COLONIST "Colonist" #define FACTION_YAUTJA "Yautja" +#define FACTION_YAUTJA_YOUNG "Yautja Youngblood" #define FACTION_HUNTED "Hunted USCM" #define FACTION_HUNTED_CLF "Hunted CLF" #define FACTION_HUNTED_UPP "Hunted UPP" @@ -291,7 +292,7 @@ DEFINE_BITFIELD(whitelist_status, list( #define FACTION_FAX "Fax Responder" #define FACTION_LIST_MARINE list(FACTION_MARINE) -#define FACTION_LIST_HUMANOID list(FACTION_MARINE, FACTION_PMC, FACTION_WY, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_MARSHAL, FACTION_UPP, FACTION_FREELANCER, FACTION_SURVIVOR, FACTION_NEUTRAL, FACTION_COLONIST, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_YAUTJA, FACTION_ZOMBIE, FACTION_TWE, FACTION_HUNTED, FACTION_HUNTED_CLF, FACTION_HUNTED_UPP, FACTION_HUNTED_TWE, FACTION_HUNTED_MERC, FACTION_FAX) +#define FACTION_LIST_HUMANOID list(FACTION_MARINE, FACTION_PMC, FACTION_WY, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_MARSHAL, FACTION_UPP, FACTION_FREELANCER, FACTION_SURVIVOR, FACTION_NEUTRAL, FACTION_COLONIST, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_YAUTJA, FACTION_YAUTJA_YOUNG, FACTION_ZOMBIE, FACTION_TWE, FACTION_HUNTED, FACTION_HUNTED_CLF, FACTION_HUNTED_UPP, FACTION_HUNTED_TWE, FACTION_HUNTED_MERC, FACTION_FAX) #define FACTION_LIST_ERT_OTHER list(FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO) #define FACTION_LIST_ERT_ALL list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY, FACTION_CLF, FACTION_CONTRACTOR, FACTION_UPP, FACTION_FREELANCER, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_MARSHAL, FACTION_TWE, FACTION_HUNTED, FACTION_HUNTED_CLF, FACTION_HUNTED_UPP, FACTION_HUNTED_TWE, FACTION_HUNTED_MERC) #define FACTION_LIST_WY list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY) @@ -308,7 +309,7 @@ DEFINE_BITFIELD(whitelist_status, list( #define FACTION_LIST_MARINE_WY list(FACTION_MARINE, FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY) #define FACTION_LIST_MARINE_UPP list(FACTION_MARINE, FACTION_UPP) #define FACTION_LIST_MARINE_TWE list(FACTION_MARINE, FACTION_TWE) -#define FACTION_LIST_YAUTJA list(FACTION_YAUTJA) +#define FACTION_LIST_YAUTJA list(FACTION_YAUTJA, FACTION_YAUTJA_YOUNG) #define FACTION_LIST_HUNTED list(FACTION_HUNTED, FACTION_HUNTED_CLF, FACTION_HUNTED_UPP, FACTION_HUNTED_TWE, FACTION_HUNTED_MERC) // Xenomorphs diff --git a/code/_globalvars/lists/mapping_globals.dm b/code/_globalvars/lists/mapping_globals.dm index 2fccad48134f..d0122d06c895 100644 --- a/code/_globalvars/lists/mapping_globals.dm +++ b/code/_globalvars/lists/mapping_globals.dm @@ -16,6 +16,8 @@ GLOBAL_LIST_EMPTY(mainship_yautja_teleports) GLOBAL_LIST_EMPTY(mainship_yautja_desc) GLOBAL_LIST_EMPTY(yautja_teleports) GLOBAL_LIST_EMPTY(yautja_teleport_descs) +GLOBAL_LIST_EMPTY(yautja_young_teleports) +GLOBAL_LIST_EMPTY(yautja_young_descs) GLOBAL_LIST_EMPTY(thunderdome_one) GLOBAL_LIST_EMPTY(thunderdome_two) diff --git a/code/datums/emergency_calls/pred_hunt/hunting_calls.dm b/code/datums/emergency_calls/pred_hunt/hunting_calls.dm index efd8626aaef6..650234afeb03 100644 --- a/code/datums/emergency_calls/pred_hunt/hunting_calls.dm +++ b/code/datums/emergency_calls/pred_hunt/hunting_calls.dm @@ -136,7 +136,7 @@ new_xeno = new xeno_type(spawn_loc, null, XENO_HIVE_FERAL) player.transfer_to(new_xeno, TRUE) QDEL_NULL(current_mob) - to_chat(new_xeno, SPAN_BOLD("You are a xeno")) + to_chat(new_xeno, SPAN_BOLD("You are a xenomorph let loose on a strange planet.")) else if(xeno_t2 < max_xeno_t2 && HAS_FLAG(current_mob.client.prefs.toggles_ert_pred, PLAY_XENO_T2)) xeno_t2++ var/list/xeno_types = list(/mob/living/carbon/xenomorph/lurker, /mob/living/carbon/xenomorph/warrior) @@ -144,16 +144,17 @@ new_xeno = new xeno_type(spawn_loc, null, XENO_HIVE_FERAL) player.transfer_to(new_xeno, TRUE) QDEL_NULL(current_mob) - to_chat(new_xeno, SPAN_BOLD("You are a xeno let loose on a strang ")) + to_chat(new_xeno, SPAN_BOLD("You are a xenomorph let loose on a strange planet.")) else - var/list/xeno_types = list(/mob/living/carbon/xenomorph/drone) + var/list/xeno_types = list(/mob/living/carbon/xenomorph/warrior) var/xeno_type = pick(xeno_types) new_xeno = new xeno_type(spawn_loc, null, XENO_HIVE_FERAL) player.transfer_to(new_xeno, TRUE) - to_chat(new_xeno, SPAN_BOLD("You are a xeno")) + to_chat(new_xeno, SPAN_BOLD("You are a xenomorph let loose on a strange planet.")) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound_client), new_xeno.client, 'sound/misc/hunt_begin.ogg'), 10 SECONDS) show_blurb(new_xeno, 15, message, null, "center", "center", COLOR_RED, null, null, 1) + new /obj/effect/alien/weeds/node/feral(spawn_loc) /datum/emergency_call/pred/xeno/med name = "Hunting Grounds - Xenos - Medium" @@ -172,3 +173,69 @@ hostility = TRUE max_xeno_t3 = 3 max_xeno_t2 = 3 + +/datum/emergency_call/young_bloods //YOUNG BLOOD ERT ONLY FOR HUNTING GROUNDS IF SOME MOD USES THIS INSIDE THE MAIN GAME THE COUNCIL WONT BE HAPPY (Joe Lampost) + name = "Template" + var/blooding_name + time_required_for_job = 60 HOURS + probability = 0 + name_of_spawn = /obj/effect/landmark/ert_spawns/distress/hunt_spawner/pred + shuttle_id = "" + +/datum/emergency_call/young_bloods/remove_nonqualifiers(list/datum/mind/candidates_list) + var/list/datum/mind/youngblood_candidates_clean = list() + for(var/datum/mind/youngblood_candidate in candidates_list) + if(youngblood_candidate.current?.client?.check_whitelist_status(WHITELIST_YAUTJA) || jobban_isbanned(youngblood_candidate.current?.client, ERT_JOB_YOUNGBLOOD)) + to_chat(youngblood_candidate.current, SPAN_WARNING("You didn't qualify for the ERT beacon because you are already whitelisted for predator or you are job banned from youngblood.")) + continue + if(check_timelock(youngblood_candidate.current?.client, JOB_SQUAD_ROLES_LIST, time_required_for_job) && (youngblood_candidate.current?.client.get_total_xeno_playtime() >= time_required_for_job)) + youngblood_candidates_clean.Add(youngblood_candidate) + continue + if(youngblood_candidate.current) + to_chat(youngblood_candidate.current, SPAN_WARNING("You didn't qualify for the ERT beacon because you did not meet the required hours for this role [round(time_required_for_job / 36000)] hours on both squad roles and xenomorph roles .")) + return youngblood_candidates_clean + +/datum/emergency_call/young_bloods/hunting_party + name = "Hunting Grounds - Youngblood Party" + blooding_name = "Youngblood Party (Three members)" + mob_max = 3 + mob_min = 1 + objectives = "Hunt down and defeat prey within the hunting grounds to earn your mark. You may not: Stun hit prey, hit prey in cloak or excessively run away to heal." + +/datum/emergency_call/young_bloods/spawn_candidates(quiet_launch, announce_incoming, override_spawn_loc) + . = ..() + message_all_yautja("Awoke [length(members)] youngbloods for the ritual.") + +/datum/emergency_call/young_bloods/create_member(datum/mind/player, turf/override_spawn_loc) + set waitfor = 0 + var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() + + if(!istype(spawn_loc)) //Didn't find a useable spawn point. + return + + var/mob/living/carbon/human/hunter = new(spawn_loc) + + if(player) + player.transfer_to(hunter, TRUE) + else + hunter.create_hud() + + if(player) + FOR_DVIEW(var/obj/structure/machinery/cryopod/pod, 7, hunter, HIDE_INVISIBLE_OBSERVER) + if(pod && !pod.occupant) + pod.go_in_cryopod(hunter, silent = TRUE) + break + FOR_DVIEW_END + + + if(!leader && HAS_FLAG(hunter?.client.prefs.toggles_ert, PLAY_LEADER)) // If someone wants to play as the dominant youngblood, they can. The role is purely roleplay-oriented with no mechanical advantage + leader = hunter + arm_equipment(hunter, /datum/equipment_preset/yautja/non_wl_leader, TRUE, TRUE) + to_chat(hunter, SPAN_ROLE_HEADER("You are a Yautja Youngblood Pack Leader!")) + to_chat(hunter, SPAN_YAUTJABOLDBIG("You are expected to remain in character at all times, follow all commands given to you by whitelisted players, and adhere to the honor code. If you fail to comply with any of these, you will be dispatched via a kill switch embedded within all Youngbloods. You may also face OOC repercussions. Good luck and have fun.")) + else + arm_equipment(hunter, /datum/equipment_preset/yautja/non_wl, TRUE, TRUE) + to_chat(hunter, SPAN_ROLE_HEADER("You are a Yautja Youngblood!")) + to_chat(hunter, SPAN_YAUTJABOLDBIG("You are expected to remain in character at all times, follow all commands given to you by whitelisted players, and adhere to the honor code. If you fail to comply with any of these, you will be dispatched via a kill switch embedded within all Youngbloods. You may also face OOC repercussions. Good luck and have fun.")) + + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), hunter, SPAN_YAUTJABOLD("Objectives: [objectives]")), 30 SECONDS) diff --git a/code/game/area/hunting_preserve.dm b/code/game/area/hunting_preserve.dm index a5e93499ac1c..f6dadd72e569 100644 --- a/code/game/area/hunting_preserve.dm +++ b/code/game/area/hunting_preserve.dm @@ -59,20 +59,28 @@ name = "\improper Yautja Hunting Grounds Caves" icon_state = "cave" ambience_exterior = AMBIENCE_CAVE + ceiling = CEILING_UNDERGROUND_BLOCK_CAS + sound_environment = SOUND_ENVIRONMENT_AUDITORIUM /area/yautja_grounds/temple name = "\improper Yautja Hunting Grounds Temple" icon_state = "bluenew" ambience_exterior = AMBIENCE_CAVE + ceiling = CEILING_REINFORCED_METAL /area/yautja_grounds/temple/entrance name = "\improper Yautja Hunting Grounds Temple" icon_state = "bluenew" ambience_exterior = AMBIENCE_JUNGLE -///TP Areas +///TP Areas/Young blood prep areas /area/yautja_grounds/prep_room name = "\improper Jungle Moon Campsite" icon_state = "red" ambience_exterior = AMBIENCE_JUNGLE + +/area/yautja_grounds/young_blood_prep + name = "\improper Jungle Moon Young Blood Prep Area" + icon_state = "red" + ambience_exterior = AMBIENCE_JUNGLE diff --git a/code/game/jobs/job/antag/other/pred.dm b/code/game/jobs/job/antag/other/pred.dm index 6b720517cbcb..9a78a60ebf17 100644 --- a/code/game/jobs/job/antag/other/pred.dm +++ b/code/game/jobs/job/antag/other/pred.dm @@ -63,3 +63,22 @@ if(SSticker.mode) var/ignore_slot_count = whitelist_status == CLAN_RANK_ADMIN || whitelist_status == CLAN_RANK_LEADER || M?.client?.check_whitelist_status(WHITELIST_YAUTJA_LEADER|WHITELIST_YAUTJA_COUNCIL) SSticker.mode.initialize_predator(M, ignore_slot_count) + +/datum/job/antag/young_blood + title = ERT_JOB_YOUNGBLOOD + selection_class = "ert_job_youngblood" + flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_NO_ACCOUNT|ROLE_CUSTOM_SPAWN + supervisors = "Ancients" + flags_whitelist = NO_FLAGS + gear_preset = /datum/equipment_preset/yautja/non_wl + + handle_spawn_and_equip = TRUE + +/datum/job/antag/young_blood/leader + gear_preset = /datum/equipment_preset/yautja/non_wl_leader + +/datum/job/antag/young_blood/generate_entry_conditions(mob/living/hunter) + . = ..() + + if(SSticker.mode) + SSticker.mode.initialize_predator(hunter, ignore_pred_num = TRUE) diff --git a/code/game/machinery/vending/vendor_types/antag/antag_predator.dm b/code/game/machinery/vending/vendor_types/antag/antag_predator.dm index b2c6e21ae160..e4c893bc77e5 100644 --- a/code/game/machinery/vending/vendor_types/antag/antag_predator.dm +++ b/code/game/machinery/vending/vendor_types/antag/antag_predator.dm @@ -81,6 +81,31 @@ GLOBAL_LIST_INIT(cm_vending_elder_yautja, list( list("Full-Cape", 0, /obj/item/clothing/yautja_cape, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), )) +GLOBAL_LIST_INIT(cm_vending_young_yautja, list( + list("Essential Hunting Supplies", 0, null, null, null), + list("Hunting Equipment", 0, list(/obj/item/clothing/under/chainshirt/hunter, /obj/item/storage/backpack/yautja, /obj/item/storage/medicomp/full, /obj/item/device/flashlight/lantern), MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + list("Armor", 0, list(/obj/item/clothing/suit/armor/yautja/hunter, /obj/item/clothing/mask/gas/yautja/hunter, /obj/item/clothing/accessory/mask, /obj/item/clothing/shoes/yautja/hunter/knife), MARINE_CAN_BUY_COMBAT_ARMOR, VENDOR_ITEM_MANDATORY), + + list("Main Weapons (CHOOSE 1)", 0, null, null, null), + list("The Primary Hunting Sword", 0, /obj/item/weapon/yautja/sword, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Rending Hunting Sword", 0, /obj/item/weapon/yautja/sword/alt_1, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Piercing Hunting Sword", 0, /obj/item/weapon/yautja/sword/alt_2, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Severing Hunting Sword", 0, /obj/item/weapon/yautja/sword/alt_3, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Sundering Chain-Whip", 0, /obj/item/weapon/yautja/chain, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Cleaving War-Scythe", 0, /obj/item/weapon/yautja/scythe, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Ripping War-Scythe", 0, /obj/item/weapon/yautja/scythe/alt, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Adaptive Combi-Stick", 0, /obj/item/weapon/yautja/chained/combistick, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Butchering War Axe", 0, /obj/item/weapon/yautja/chained/war_axe, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Lumbering Glaive", 0, /obj/item/weapon/twohanded/yautja/glaive, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Imposing Glaive", 0, /obj/item/weapon/twohanded/yautja/glaive/alt, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Crushing Longaxe", 0, /obj/item/weapon/twohanded/yautja/glaive/longaxe, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + + list("Bracer Attachments", 0, null, null, null), + list("Wrist Blades", 0,list(/obj/item/bracer_attachments/wristblades, /obj/item/bracer_attachments/wristblades), MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("The Fearsome Scimitars", 0, list(/obj/item/bracer_attachments/scimitars, /obj/item/bracer_attachments/scimitars), MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("The Skewering Scimitars", 0, list(/obj/item/bracer_attachments/scimitars_alt, /obj/item/bracer_attachments/scimitars_alt), MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + )) + /obj/structure/machinery/cm_vending/clothing/yautja name = "\improper Yautja Hunting Gear Rack" desc = "A gear rack for hunting." @@ -131,6 +156,30 @@ GLOBAL_LIST_INIT(cm_vending_elder_yautja, list( /obj/structure/machinery/cm_vending/clothing/yautja/elder/get_listed_products(mob/user) return GLOB.cm_vending_elder_yautja +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood + name = "\improper Yautja Young Hunting Gear Rack" + icon = 'icons/obj/items/hunter/pred_vendor.dmi' + icon_state = "pred_vendor_left" + req_access = list(ACCESS_YAUTJA_SECURE) + vendor_role = list(ERT_JOB_YOUNGBLOOD, JOB_PREDATOR) + show_points = FALSE + vendor_theme = VENDOR_THEME_YAUTJA + +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood/left_centre + icon_state = "pred_vendor_lcenter" + +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood/centre + icon_state = "pred_vendor_centre" + +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood/right_centre + icon_state = "pred_vendor_rcentre" + +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood/right + icon_state = "pred_vendor_right" + +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood/get_listed_products(mob/user) + return GLOB.cm_vending_young_yautja + //Armour Prefs /obj/item/clothing/suit/armor/yautja/post_vendor_spawn_hook(mob/living/carbon/human/user) if(!user?.client?.prefs) diff --git a/code/game/objects/effects/landmarks/landmarks.dm b/code/game/objects/effects/landmarks/landmarks.dm index 7fa99183cbdd..a2914b48ad22 100644 --- a/code/game/objects/effects/landmarks/landmarks.dm +++ b/code/game/objects/effects/landmarks/landmarks.dm @@ -122,6 +122,9 @@ /obj/effect/landmark/ert_spawns/distress/hunt_spawner/xeno name = "hunt spawner xeno" +/obj/effect/landmark/ert_spawns/distress/hunt_spawner/pred + name = "bloding spawner" + /obj/effect/landmark/monkey_spawn/Initialize(mapload, ...) . = ..() GLOB.monkey_spawns += src @@ -279,7 +282,21 @@ GLOB.yautja_teleport_descs -= desc_index return ..() +/obj/effect/landmark/yautja_young_teleport + name = "yautja_teleport_youngblood" + var/desc_index +/obj/effect/landmark/yautja_young_teleport/Initialize(mapload, ...) + . = ..() + var/turf/turf = get_turf(src) + desc_index = turf.loc.name + turf.loc_to_string() + GLOB.yautja_young_teleports += src + GLOB.yautja_young_descs[desc_index] = src + +/obj/effect/landmark/yautja_young_teleport/Destroy() + GLOB.yautja_young_teleports -= src + GLOB.yautja_young_descs -= desc_index + return ..() /obj/effect/landmark/start name = "start" diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 71c334a7e152..2430c8bcd39b 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -189,17 +189,61 @@ /* Predator Ship Teleporter - set in each individual gamemode */ -/obj/effect/step_trigger/teleporter/yautja_ship/Trigger(atom/movable/A) +/obj/effect/step_trigger/teleporter/yautja_ship/Trigger(mob/living/user) // For whitelised preds + + var/mob/living/traveler = user + + if(!istype(traveler)) + return + + if(traveler.faction == FACTION_YAUTJA_YOUNG) + to_chat(traveler, SPAN_WARNING("You do not wish to make your elders angry do you?")) + return + + if(!HAS_TRAIT(traveler, TRAIT_YAUTJA_TECH)) + to_chat(traveler, SPAN_WARNING("You better not try to use this, you might lose half of your body in the process!")) + return + var/turf/destination if(length(GLOB.yautja_teleports)) //We have some possible locations. - var/pick = tgui_input_list(usr, "Where do you want to go today?", "Locations", GLOB.yautja_teleport_descs) //Pick one of them in the list.) + var/pick = tgui_input_list(traveler, "Where do you want to go today?", "Locations", GLOB.yautja_teleport_descs) //Pick one of them in the list.) destination = GLOB.yautja_teleport_descs[pick] - if(!destination || (A.loc != loc)) + if(!destination || (traveler.loc != loc)) return teleport_x = destination.x //Configure the destination locations. teleport_y = destination.y teleport_z = destination.z - ..(A, 1) //Run the parent proc for teleportation. Tell it to play the animation. + ..(traveler, 1) //Run the parent proc for teleportation. + +/obj/effect/step_trigger/teleporter/yautja_young/Trigger(mob/living/user) // For un-whitelisted yougbloods to enter the hunting grounds only + + var/mob/living/young_hunter = user + + if(!istype(young_hunter)) + return + + if(!HAS_TRAIT(young_hunter, TRAIT_YAUTJA_TECH)) + to_chat(young_hunter, SPAN_WARNING("You better not try to use this, you might lose half of your body in the process!")) + return + + var/turf/place + if(length(GLOB.yautja_young_teleports)) + var/pick = tgui_input_list(young_hunter, "Where do you want to go today?", "Locations", GLOB.yautja_young_descs) + place = GLOB.yautja_young_descs[pick] + if(!place || (young_hunter.loc != loc)) + return + + var/choice = tgui_alert(young_hunter, "Youngbloods are not able to return back to the ship until they complete their trial, choose wisely.", "Are you ready?", list("Deploy", "Stay"), 15 SECONDS) + if(!choice) + return + + if(choice == "Stay") + return + + teleport_x = place.x + teleport_y = place.y + teleport_z = place.z + ..(young_hunter, 1) /* Random teleporter, teleports atoms to locations ranging from teleport_x - teleport_x_offset, etc */ diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm index 79bc113aa472..65dc77dd7b7a 100644 --- a/code/modules/admin/banjob.dm +++ b/code/modules/admin/banjob.dm @@ -144,6 +144,12 @@ WARNING!*/ else jobs += "
Emergency Response Team" + //Youngblood + if(jobban_isbanned(M, ERT_JOB_YOUNGBLOOD, P) || isbanned_dept) + jobs += "[ERT_JOB_YOUNGBLOOD]" + else + jobs += "[ERT_JOB_YOUNGBLOOD]" + //Survivor if(jobban_isbanned(M, "Survivor", P) || isbanned_dept) jobs += "Survivor" diff --git a/code/modules/clans/client.dm b/code/modules/clans/client.dm index cdbaf668c85f..f7dbc841e1d1 100644 --- a/code/modules/clans/client.dm +++ b/code/modules/clans/client.dm @@ -361,12 +361,12 @@ if(input == "Remove from clan" && target.clan_id) target.clan_id = null - target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_YOUNG] + target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_BLOODED] to_chat(src, SPAN_NOTICE("Removed [player_name] from their clan.")) message_admins("[key_name_admin(src)] has removed [player_name] from their current clan.") else if(input == "Remove from Ancient") - target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_YOUNG] - target.permissions = GLOB.clan_ranks[CLAN_RANK_YOUNG].permissions + target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_BLOODED] + target.permissions = GLOB.clan_ranks[CLAN_RANK_BLOODED].permissions to_chat(src, SPAN_NOTICE("Removed [player_name] from ancient.")) message_admins("[key_name_admin(src)] has removed [player_name] from ancient.") else if(input == "Make Ancient" && is_clan_manager) @@ -390,7 +390,7 @@ return var/list/datum/yautja_rank/ranks = GLOB.clan_ranks.Copy() - ranks -= CLAN_RANK_ADMIN // Admin rank should not and cannot be obtained from here + ranks -= list(CLAN_RANK_ADMIN, CLAN_RANK_YOUNG)// Admin rank should not and cannot be obtained from here, Youngblood should only be used for non-WL players var/datum/yautja_rank/chosen_rank if(has_clan_permission(CLAN_PERMISSION_ADMIN_MODIFY, warn = FALSE)) diff --git a/code/modules/client/pred_picker.dm b/code/modules/client/pred_picker.dm index d7f896714b9c..7e926b88e014 100644 --- a/code/modules/client/pred_picker.dm +++ b/code/modules/client/pred_picker.dm @@ -111,7 +111,6 @@ if("name") var/picked_name = params["name"] - picked_name = reject_bad_name(picked_name) if(!picked_name) return diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 7a6258b2d300..330bd051bb75 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -349,7 +349,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "Commanding Officer - " if(owner.check_whitelist_status(WHITELIST_SYNTHETIC)) dat += "Synthetic - " - if(owner.check_whitelist_status(WHITELIST_PREDATOR)) + if(owner.check_whitelist_status(WHITELIST_YAUTJA)) dat += "Yautja - " if(owner.check_whitelist_status(WHITELIST_MENTOR)) dat += "Mentor - " @@ -666,6 +666,8 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "Colonial Marshal Bureau: [fax_name_cmb]
" dat += "Free Press: [fax_name_press]
" dat += "CLF Command: [fax_name_clf]
" + dat += "" + dat += "" diff --git a/code/modules/cm_preds/yaut_bracers.dm b/code/modules/cm_preds/yaut_bracers.dm index b7de151c7375..849ac5b4288e 100644 --- a/code/modules/cm_preds/yaut_bracers.dm +++ b/code/modules/cm_preds/yaut_bracers.dm @@ -847,6 +847,9 @@ if(!istype(hand) || !hand.is_usable()) to_chat(caller, SPAN_WARNING("You can't hold that!")) return + if(caller.faction == FACTION_YAUTJA_YOUNG) + to_chat(caller, SPAN_WARNING("You have not earned that right yet!")) + return caller.put_in_active_hand(caster) caster_deployed = TRUE if(caller.client?.prefs.custom_cursors) @@ -937,10 +940,12 @@ if(boomer.stat) to_chat(boomer, SPAN_WARNING("Not while you're unconscious...")) return - if(grounds?.flags_area & AREA_YAUTJA_HUNTING_GROUNDS) //Hunted need mask to escape + if(grounds?.flags_area & AREA_YAUTJA_HUNTING_GROUNDS) // Hunted need mask to escape to_chat(boomer, SPAN_WARNING("Your bracer will not allow you to activate a self-destruction sequence in order to protect the hunting preserve.")) return - + if(caller.faction == FACTION_YAUTJA_YOUNG) + to_chat(boomer, SPAN_WARNING("You don't yet understand how to use this.")) // No SDing for youngbloods + return var/obj/item/grab/G = boomer.get_active_hand() if(istype(G)) @@ -1005,7 +1010,7 @@ if(boomer.stat) to_chat(boomer, SPAN_WARNING("Not while you're unconscious...")) return - if(grounds?.flags_area & AREA_YAUTJA_HUNTING_GROUNDS) // Hunted need mask to escape + if(grounds?.flags_area & AREA_YAUTJA_HUNTING_GROUNDS) //Hunted need mask to escape to_chat(boomer, SPAN_WARNING("Your bracer will not allow you to activate a self-destruction sequence in order to protect the hunting preserve.")) return if(exploding) @@ -1026,6 +1031,52 @@ return TRUE +/obj/item/clothing/gloves/yautja/hunter/verb/remote_kill() + set name = "Remotely Kill Youngblood" + set desc = "Remotley kill a youngblood for breaking the honour code." + set category = "Yautja.Misc" + set src in usr + . = remote_kill_internal(usr, FALSE) + +/obj/item/clothing/gloves/yautja/hunter/proc/remote_kill_internal(mob/living/carbon/human/caller, forced = FALSE) + if(!caller.loc || caller.is_mob_incapacitated() || !ishuman(caller)) + return + + if(caller.faction == FACTION_YAUTJA_YOUNG) + to_chat(caller, SPAN_WARNING("This button is not for you.")) + return + + if(!HAS_TRAIT(caller, TRAIT_YAUTJA_TECH)) + to_chat(caller, SPAN_WARNING("A large list appears but you cannot understand what it means.")) + return + + var/list/target_list = list() + for(var/mob/living/carbon/human/target_youngbloods as anything in GLOB.yautja_mob_list) + if(target_youngbloods.faction == FACTION_YAUTJA_YOUNG && target_youngbloods.stat != DEAD) + target_list[target_youngbloods.real_name] = target_youngbloods + + if(!length(target_list)) + to_chat(caller, SPAN_NOTICE("No youngbloods are currently alive.")) + return + + var/choice = tgui_input_list(caller, "Choose a young hunter to terminate:", "Kill Youngblood", target_list) + + if(!choice) + return + + var/mob/living/target_youngblood = target_list[choice] + + var/reason = tgui_input_text(caller, "Provide a reason for terminating [target_youngblood.real_name].") + if(!reason) + to_chat(caller, SPAN_WARNING("You must provide a reason for terminating [target_youngblood.real_name].")) + return + + var/area/location = get_area(target_youngblood) + var/turf/floor = get_turf(target_youngblood) + target_youngblood.death(create_cause_data("Youngblood Termination"), TRUE) + message_all_yautja("[caller.real_name] has terminated [target_youngblood.real_name] for: '[reason]'.") + message_admins(FONT_SIZE_LARGE("ALERT: [caller.real_name] ([caller.key]) Terminated [target_youngblood.real_name] ([target_youngblood.key]) in [location.name] for: '[reason]' [ADMIN_JMP(floor)]")) + #define YAUTJA_CREATE_CRYSTAL_COOLDOWN "yautja_create_crystal_cooldown" /obj/item/clothing/gloves/yautja/hunter/verb/injectors() set name = "Create Stabilising Crystal" diff --git a/code/modules/cm_preds/yaut_items.dm b/code/modules/cm_preds/yaut_items.dm index 9096134cdd69..b4c3cf3b65fb 100644 --- a/code/modules/cm_preds/yaut_items.dm +++ b/code/modules/cm_preds/yaut_items.dm @@ -399,6 +399,10 @@ to_chat(user, SPAN_WARNING("You fiddle with it, but nothing happens!")) return + if(H.faction == FACTION_YAUTJA_YOUNG) + to_chat(user, SPAN_WARNING("You have not been shown how to use the relay beacon, best not fiddle with it.")) + return + if(H.client && H.client.clan_info) var/datum/entity/clan_player/clan_info = H.client.clan_info if(clan_info.permissions & CLAN_PERMISSION_ADMIN_VIEW) @@ -514,6 +518,10 @@ to_chat(user, SPAN_WARNING("You do not understand how to use this console.")) return + if(user.faction == FACTION_YAUTJA_YOUNG) + to_chat(user, SPAN_WARNING("You do not understand how to use this console.")) + return + if(hunting_ground_activated) to_chat(user, SPAN_WARNING("A hunting ground has already been chosen.")) return @@ -570,6 +578,10 @@ to_chat(user, SPAN_WARNING("You do not understand how to use this console.")) return + if(user.faction == FACTION_YAUTJA_YOUNG) + to_chat(user, SPAN_WARNING("You do not understand how to use this console.")) + return + if(!COOLDOWN_FINISHED(src, yautja_hunt_cooldown)) var/remaining_time = DisplayTimeText(COOLDOWN_TIMELEFT(src, yautja_hunt_cooldown)) to_chat(user, SPAN_WARNING("You may begin another hunt in: [remaining_time].")) @@ -593,8 +605,8 @@ /obj/structure/machinery/hunt_ground_escape name = "preserve shutter console" desc = "A console for opening a shutter to another part of the reserve." - icon = 'icons/obj/structures/machinery/computer.dmi' - icon_state = "terminal" ///place holder + icon = 'icons/obj/structures/machinery/yautja_machines.dmi' + icon_state = "crew" density = TRUE breakable = FALSE explo_proof = TRUE @@ -653,6 +665,59 @@ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_YAUTJA_PRESERVE_OPENED) escaped = TRUE +/obj/structure/machinery/blooding_spawner // for spawning an ert containing non-whitelisted youngbloods. + name = "blooding console" + desc = "A console used by Yautja to awaken Youngbloods awaiting their Blooding Ritual." + icon = 'icons/obj/structures/machinery/yautja_machines.dmi' + icon_state = "cameras" + density = TRUE + breakable = FALSE + explo_proof = TRUE + unslashable = TRUE + unacidable = TRUE + var/static/list/un_blooded = list() + var/blooding_activated = FALSE + +/obj/structure/machinery/blooding_spawner/Initialize(mapload, ...) + . = ..() + if(!length(un_blooded)) + generate_blooding_type() + +/obj/structure/machinery/blooding_spawner/proc/generate_blooding_type() + for(var/datum/emergency_call/young_bloods/blooding_type as anything in subtypesof(/datum/emergency_call/young_bloods)) + if(!blooding_type.blooding_name) + continue + un_blooded[blooding_type.blooding_name] = blooding_type + +/obj/structure/machinery/blooding_spawner/attack_hand(mob/living/user) + . = ..() + if(!isyautja(user)) + to_chat(user, SPAN_WARNING("You do not understand how to use this console.")) + return + + if(user.faction == FACTION_YAUTJA_YOUNG) + to_chat(user, SPAN_WARNING("This is not for you.")) + return + + if(blooding_activated) //only one per round unless admins spawn more or var edit the console. + to_chat(user, SPAN_WARNING("A blooding ritual has already taken place. Maybe ask the AI for another.")) + return + + if(!length(un_blooded)) + to_chat(user, SPAN_WARNING("There are no youngbloods available.")) + return + + var/choice = tgui_input_list(user, "Available youngblood groups to awaken.", "[src]", un_blooded) // maybe we can add varients of the ert sometime. + if(!choice) + to_chat(user, SPAN_WARNING("You choose not to awaken any youngbloods.")) + return + + to_chat(user, SPAN_NOTICE("You choose to awaken: [choice].")) + message_all_yautja("[user.real_name] has chosen to awaken: [choice].") + message_admins(FONT_SIZE_LARGE("ALERT: [user.real_name] ([user.key]) has called [choice] (Youngblood ERT).")) + SSticker.mode.get_specific_call(un_blooded[choice], TRUE, FALSE) + blooding_activated = TRUE + //=================//\\=================\\ //======================================\\ diff --git a/code/modules/cm_preds/yaut_procs.dm b/code/modules/cm_preds/yaut_procs.dm index 3fceba19bb6d..6883cd0baca8 100644 --- a/code/modules/cm_preds/yaut_procs.dm +++ b/code/modules/cm_preds/yaut_procs.dm @@ -225,5 +225,11 @@ ambience_exterior = AMBIENCE_YAUTJA ceiling = CEILING_METAL requires_power = FALSE + unlimited_power = TRUE base_lighting_alpha = 255 flags_area = AREA_YAUTJA_GROUNDS + +/area/yautja/lower_deck + name = "\improper Yautja Ship Lower Deck" + icon_state = "teleporter" + base_lighting_alpha = 0 diff --git a/code/modules/gear_presets/yautja.dm b/code/modules/gear_presets/yautja.dm index b130fc3dfe35..708fff61960f 100644 --- a/code/modules/gear_presets/yautja.dm +++ b/code/modules/gear_presets/yautja.dm @@ -31,6 +31,9 @@ /datum/equipment_preset/yautja/load_vanity(mob/living/carbon/human/new_human) return //No vanity items for Yautja! +/datum/equipment_preset/yautja/load_status(mob/living/carbon/human/new_human) + new_human.nutrition = NUTRITION_VERYLOW //Eat before you hunt. + /datum/equipment_preset/yautja/load_gear(mob/living/carbon/human/new_human, client/mob_client) var/caster_material = "ebony" var/translator_type = "Modern" @@ -45,8 +48,8 @@ /datum/equipment_preset/yautja/load_name(mob/living/carbon/human/new_human, randomise) var/final_name = capitalize(pick(GLOB.pred_names)) + " " + capitalize(pick(GLOB.pred_last_names)) - new_human.gender = MALE - new_human.age = 100 + new_human.gender = pick(80;MALE,20;FEMALE) // Female Hunters are rare + new_human.age = rand(100,150) new_human.flavor_text = "" new_human.flavor_texts["general"] = new_human.flavor_text @@ -60,13 +63,16 @@ final_name = capitalize(pick(GLOB.pred_names)) + " " + capitalize(pick(GLOB.pred_last_names)) new_human.change_real_name(new_human, final_name) -// YOUNG BLOOD -/datum/equipment_preset/yautja/youngblood +/datum/equipment_preset/yautja/youngblood //normal WL youngblood rank name = "Yautja Young" minimap_icon = "predator_young" flags = EQUIPMENT_PRESET_START_OF_ROUND clan_rank = CLAN_RANK_UNBLOODED_INT +/datum/equipment_preset/yautja/youngblood/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/yautja(new_human), WEAR_L_EAR) + return ..() + /datum/equipment_preset/yautja/youngblood/load_name(mob/living/carbon/human/new_human, randomise) . = ..() var/new_name = "Young [new_human.real_name]" @@ -83,7 +89,6 @@ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/yautja(new_human), WEAR_L_EAR) return ..() - // ELITE /datum/equipment_preset/yautja/elite name = "Yautja Elite" @@ -151,3 +156,35 @@ /datum/equipment_preset/yautja/ancient/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/yautja/elder(new_human), WEAR_L_EAR) return ..() + +/datum/equipment_preset/yautja/non_wl //For hunting grounds ONLY + name = "Yautja Young (non-WL)" + minimap_icon = "predator_young" + rank = "Young Blood" + faction = FACTION_YAUTJA_YOUNG + flags = EQUIPMENT_PRESET_START_OF_ROUND + +/datum/equipment_preset/yautja/non_wl/load_name(mob/living/carbon/human/new_human, randomise) + . = ..() + var/new_name = "Young [new_human.real_name]" + new_human.change_real_name(new_human, new_name) + +/datum/equipment_preset/yautja/non_wl/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/yautja(new_human), WEAR_L_EAR) + return ..() + +/datum/equipment_preset/yautja/non_wl_leader //The "leader" of the group if a WL player is not on + name = "Yautja Youngblood pack leader (non-WL)" + minimap_icon = "predator_young" + rank = "Young Blood" + faction = FACTION_YAUTJA_YOUNG + flags = EQUIPMENT_PRESET_START_OF_ROUND + +/datum/equipment_preset/yautja/non_wl_leader/load_name(mob/living/carbon/human/new_human, randomise) + . = ..() + var/new_name = "Pack Leader [new_human.real_name]" //fluff rank blooded outrank them + new_human.change_real_name(new_human, new_name) + +/datum/equipment_preset/yautja/non_wl_leader/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/yautja(new_human), WEAR_L_EAR) + return ..() diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 1b0f66e322d5..8e3435aebf28 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -174,6 +174,11 @@ desc = "A lighting fixture that is fitted with a bright blue fluorescent light tube. Looking at it for too long makes your eyes go watery." light_color = LIGHT_COLOR_XENON +/obj/structure/machinery/light/red + icon_state = "rtube1" + base_state = "rtube" + desc = "A lighting fixture that is fitted with a bright blue fluorescent light tube. Looking at it for too long makes your eyes go watery." + // the smaller bulb light fixture /obj/structure/machinery/light/small diff --git a/maps/predship/huntership.dmm b/maps/predship/huntership.dmm index 4b17ad409f01..46aa105269fe 100644 --- a/maps/predship/huntership.dmm +++ b/maps/predship/huntership.dmm @@ -6,10 +6,7 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/skull/king{ - pixel_y = 7; - anchored = 1 - }, +/obj/item/skull/king, /turf/open/floor/corsat/squareswood/north, /area/yautja) "ac" = ( @@ -33,60 +30,56 @@ }, /turf/open/space, /area/yautja) +"af" = ( +/turf/closed/wall/cult, +/area/yautja) "ag" = ( /obj/structure/machinery/hunt_ground_spawner, /turf/open/floor/corsat/squareswood/north, /area/yautja) "ah" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/structure/machinery/microwave/yautja{ - pixel_y = 7 - }, -/turf/open/shuttle/predship, +/obj/structure/window/framed/colony/reinforced/hull/yautja, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "ai" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/structure/machinery/chem_dispenser/soda/beer/yautja{ - pixel_y = 11 - }, -/turf/open/shuttle/predship, +/obj/structure/window/framed/colony/reinforced/yautja, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) "aj" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/item/storage/pouch/vials, -/turf/open/floor/corsat/squareswood/north, +/obj/structure/barricade/handrail/strata, +/turf/open/gm/dirtgrassborder/north, /area/yautja) "ak" = ( -/obj/structure/machinery/chem_dispenser/yauja{ - req_skill_level = 1 - }, -/turf/open/floor/corsat/squareswood/north, +/obj/structure/window/framed/colony/reinforced/yautja, +/turf/open/floor/strata/grey_multi_tiles/southwest, /area/yautja) "al" = ( -/obj/structure/platform/metal/stair_cut/kutjevo_smooth_left, -/turf/open/floor/strata/grey_multi_tiles, +/turf/open/gm/dirtgrassborder/desert, /area/yautja) "am" = ( -/obj/structure/platform/metal/kutjevo_smooth/north, -/turf/open/floor/strata/grey_multi_tiles, +/turf/open/gm/dirtgrassborder/desert2, /area/yautja) "an" = ( /obj/structure/machinery/medical_pod/autodoc/yautja, /turf/open/floor/corsat/squareswood/north, /area/yautja) "ao" = ( -/obj/structure/platform/metal/stair_cut/kutjevo_smooth_right, -/turf/open/floor/strata/grey_multi_tiles, +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, /area/yautja) "ap" = ( -/obj/structure/showcase/yautja/alt, -/turf/open/floor/corsat/squareswood/north, +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/gm/dirtgrassborder/west, +/area/yautja) +"aq" = ( +/turf/open/gm/dirtgrassborder/desert1, +/area/yautja) +"ar" = ( +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/turf/open/gm/dirtgrassborder/east, /area/yautja) "as" = ( /obj/structure/pipes/standard/simple/hidden{ @@ -101,19 +94,41 @@ }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"av" = ( +"au" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/device/flashlight/lantern{ - pixel_y = 7 +/obj/structure/window/reinforced{ + dir = 1; + health = 80; + pixel_y = 16 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"av" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, +/obj/item/device/flashlight/lamp, /turf/open/floor/corsat/squareswood/north, /area/yautja) "aw" = ( /obj/structure/curtain/red, /turf/open/shuttle/predship, /area/yautja) +"ax" = ( +/turf/open/gm/dirtgrassborder/desert0, +/area/yautja) +"ay" = ( +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, +/area/yautja) "az" = ( /obj/structure/window/phoronreinforced{ dir = 10; @@ -121,11 +136,21 @@ }, /turf/open/floor/light, /area/yautja) +"aA" = ( +/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, +/area/yautja) "aB" = ( /obj/structure/closet/crate/critter, /obj/effect/decal/cleanable/blood, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) +"aC" = ( +/turf/open/gm/dirtgrassborder/desert3, +/area/yautja) +"aD" = ( +/obj/item/skull/queen, +/turf/closed/wall/huntership, +/area/yautja) "aE" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" @@ -159,6 +184,9 @@ }, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"aH" = ( +/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, +/area/yautja) "aI" = ( /obj/structure/shuttle/engine/heater{ dir = 1 @@ -171,6 +199,12 @@ }, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"aJ" = ( +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, +/area/yautja) "aK" = ( /obj/structure/shuttle/engine/heater{ dir = 1 @@ -189,11 +223,11 @@ }, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"aM" = ( +/turf/open/gm/dirtgrassborder/south, +/area/yautja) "aN" = ( -/obj/structure/machinery/computer/cryopod/yautja{ - dir = 4; - pixel_x = 18 - }, +/obj/structure/machinery/computer/cryopod/yautja, /turf/open/floor/corsat/squareswood/north, /area/yautja) "aO" = ( @@ -201,7 +235,7 @@ color = "#6b675e" }, /obj/item/weapon/gun/pistol/m1911/socom{ - pixel_y = 5 + pixel_y = 0 }, /turf/open/floor/corsat/squareswood/north, /area/yautja) @@ -222,12 +256,36 @@ /obj/item/tool/surgery/surgicaldrill/predatorsurgicaldrill, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"aR" = ( +/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, +/area/yautja) +"aS" = ( +/obj/effect/decal/cleanable/cobweb{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/closed/wall/huntership, +/area/yautja/lower_deck) "aT" = ( /obj/structure/machinery/door/airlock/yautja{ name = "\improper Operation Room" }, /turf/open/shuttle/predship, /area/yautja) +"aU" = ( +/obj/effect/decal/cleanable/cobweb{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/cryopod/no_store, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"aV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/ert_spawns/distress/hunt_spawner/pred, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) "aW" = ( /obj/structure/machinery/optable/yautja, /turf/open/floor/corsat/squareswood/north, @@ -245,17 +303,32 @@ icon = 'icons/obj/structures/machinery/yautja_machines.dmi'; icon_state = "terminal"; name = "Radar Console"; - pixel_x = -17 + pixel_x = -7 }, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) "aY" = ( -/obj/structure/machinery/portable_atmospherics/canister/oxygen/yautja, /obj/structure/pipes/portables_connector{ dir = 4 }, +/obj/structure/machinery/portable_atmospherics/canister/oxygen/yautja, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"aZ" = ( +/obj/structure/machinery/cryopod/no_store{ + dir = 1 + }, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"ba" = ( +/obj/effect/landmark/ert_spawns/distress/hunt_spawner/pred, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light/red{ + dir = 8; + light_color = "#F52744" + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) "bb" = ( /obj/structure/pipes/standard/simple/hidden{ dir = 4 @@ -281,6 +354,15 @@ }, /turf/open/floor/strata/multi_tiles, /area/yautja) +"bf" = ( +/obj/structure/machinery/door_control{ + name = "cell-2-shutter"; + id = "thrall_cell_2"; + pixel_y = 0; + pixel_x = -10 + }, +/turf/closed/wall/huntership, +/area/yautja) "bg" = ( /obj/structure/surface/rack{ color = "#6b675e"; @@ -298,9 +380,30 @@ /obj/item/stack/sheet/mineral/sandstone/large_stack, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"bh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/ert_spawns/distress/hunt_spawner/pred, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"bi" = ( +/obj/structure/machinery/light/red{ + dir = 4; + light_color = "#F52744" + }, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) "bj" = ( /turf/closed/wall/huntership, /area/yautja) +"bk" = ( +/obj/effect/decal/cleanable/cobweb{ + dir = 4 + }, +/obj/structure/machinery/cryopod/no_store{ + dir = 1 + }, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) "bl" = ( /obj/structure/machinery/door/airlock/yautja{ name = "\improper Starboard Wing" @@ -313,6 +416,11 @@ }, /turf/open/shuttle/predship, /area/yautja) +"bn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) "bo" = ( /obj/structure/machinery/body_scanconsole/yautja{ dir = 8 @@ -347,6 +455,10 @@ }, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"bt" = ( +/obj/structure/largecrate/random, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) "bu" = ( /obj/structure/machinery/door/airlock/yautja/secure{ dir = 1; @@ -369,6 +481,12 @@ }, /turf/open/shuttle/predship, /area/yautja) +"by" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) "bz" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" @@ -380,15 +498,14 @@ /turf/open/floor/corsat/squareswood/north, /area/yautja) "bA" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/item/reagent_container/glass/beaker/silver{ - pixel_y = 14; - pixel_x = 8 - }, +/obj/structure/machinery/chem_dispenser/yauja, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"bB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/huntership, +/area/yautja/lower_deck) "bC" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" @@ -415,6 +532,13 @@ }, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"bF" = ( +/obj/structure/barricade/handrail/strata{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) "bG" = ( /obj/structure/machinery/door/airlock/yautja{ name = "\improper Cooler Room" @@ -422,7 +546,10 @@ /turf/open/shuttle/predship, /area/yautja) "bH" = ( -/obj/structure/closet/yautja, +/obj/structure/barricade/handrail/strata, +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, /turf/open/floor/corsat/squareswood/north, /area/yautja) "bI" = ( @@ -447,192 +574,190 @@ /turf/open/floor/corsat/squareswood/north, /area/yautja) "bM" = ( -/obj/structure/machinery/processor/yautja{ - pixel_y = 5 +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, +/obj/structure/machinery/processor/yautja, /turf/open/shuttle/predship, /area/yautja) "bN" = ( -/turf/closed/wall/cult{ - turf_flags = 16; - name = "runed hull" +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/obj/structure/machinery/juicer, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"bO" = ( +/obj/structure/machinery/light/red{ + dir = 4; + light_color = "#F52744" }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/stool, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"bP" = ( +/obj/structure/window/framed/colony/reinforced/hull/yautja, +/turf/open/floor/corsat/squareswood/north, /area/yautja) +"bQ" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"bR" = ( +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) "bS" = ( /obj/structure/pipes/standard/simple/hidden{ dir = 9 }, /turf/open/shuttle/predship, /area/yautja) -"bU" = ( -/obj/structure/machinery/door_control{ - id = "Cell Lockdown 1"; - name = "Cell Lockdown 1"; - pixel_x = -25; - pixel_y = 9; - req_one_access_txt = "390;391;392" +"bT" = ( +/obj/structure/machinery/light/red{ + dir = 4; + light_color = "#F52744" }, +/obj/structure/largecrate/random, /turf/open/shuttle/predship, +/area/yautja/lower_deck) +"bU" = ( +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/yautja) "bV" = ( -/obj/structure/machinery/door_control{ - id = "Cell Lockdown 4"; - name = "Cell Lockdown 4"; - pixel_x = -7; - pixel_y = 9; - req_one_access_txt = "390;391;392" - }, -/turf/closed/wall/huntership, +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/yautja) "bW" = ( -/obj/structure/machinery/door/airlock/yautja/secure{ - name = "\improper Prisoner Cell 1"; - opacity = 0 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Cell Lockdown 1"; - name = "\improper Cell Shutters" - }, -/turf/open/shuttle/predship, +/obj/structure/barricade/handrail/strata, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "bX" = ( -/obj/structure/machinery/door/airlock/yautja/secure{ - name = "\improper Prisoner Cell 4"; - opacity = 0 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Cell Lockdown 4"; - name = "\improper Cell Shutters" +/obj/structure/barricade/handrail/strata{ + dir = 8 }, -/turf/open/shuttle/predship, -/area/yautja) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) "bY" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, /obj/item/stack/sheet/xenochitin, -/obj/item/stack/sheet/xenochitin{ - pixel_y = -6 - }, -/obj/item/reagent_container/glass/beaker/vial, +/obj/item/stack/sheet/xenochitin, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"cb" = ( -/obj/structure/machinery/door_control{ - id = "Cell Lockdown 2"; - name = "Cell Lockdown 2"; - pixel_x = -25; - pixel_y = 9; - req_one_access_txt = "390;391;392" +"bZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, +/obj/item/reagent_container/food/snacks/wishsoup, +/obj/item/tool/kitchen/utensil/spoon, /turf/open/shuttle/predship, +/area/yautja/lower_deck) +"ca" = ( +/obj/structure/bed/bedroll, +/obj/effect/decal/cleanable/dirt, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"cb" = ( +/obj/item/reagent_container/glass/beaker/silver, +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cc" = ( -/obj/structure/barricade/handrail/strata{ - dir = 8 +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, -/turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, +/obj/structure/machinery/chem_dispenser/soda/beer/yautja{ + pixel_y = 9 + }, +/turf/open/shuttle/predship, /area/yautja) "cd" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/weapon/sword/claymore{ - anchored = 1 - }, +/obj/effect/spawner/random/toy, /turf/open/floor/corsat/squareswood/north, /area/yautja) "ce" = ( -/obj/structure/machinery/door/airlock/yautja/secure{ - name = "\improper Prisoner Cell 2"; - opacity = 0 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Cell Lockdown 2"; - name = "\improper Cell Shutters" - }, +/obj/structure/bed/bedroll, /turf/open/shuttle/predship, -/area/yautja) +/area/yautja/lower_deck) "cf" = ( -/obj/structure/machinery/door/airlock/yautja/secure{ - name = "\improper Prisoner Cell 5"; - opacity = 0 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Cell Lockdown 5"; - name = "\improper Cell Shutters" +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, -/turf/open/shuttle/predship, +/obj/item/storage/pouch/vials, +/turf/open/floor/corsat/squareswood/north, /area/yautja) "cg" = ( -/obj/structure/machinery/door_control{ - id = "Cell Lockdown 3"; - name = "Cell Lockdown 3"; - pixel_x = -25; - pixel_y = 9; - req_one_access_txt = "390;391;392" +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4 }, -/turf/open/shuttle/predship, -/area/yautja) +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) "ch" = ( -/obj/structure/machinery/door_control{ - id = "Cell Lockdown 6"; - name = "Cell Lockdown 6"; - pixel_x = -7; - pixel_y = 9; - req_one_access_txt = "390;391;392" +/obj/structure/barricade/handrail/strata, +/obj/structure/barricade/handrail/strata{ + dir = 8 }, -/turf/closed/wall/huntership, +/turf/open/floor/corsat/squareswood/north, /area/yautja) +"ci" = ( +/obj/structure/machinery/door/airlock/yautja{ + dir = 1; + name = "\improper Lower Deck" + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) "cj" = ( /obj/structure/machinery/medical_pod/sleeper/yautja, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"ck" = ( +/obj/structure/machinery/light/red{ + dir = 8; + light_color = "#F52744" + }, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) "cl" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, +/obj/item/alienjar, /obj/item/reagent_container/glass/beaker/vial{ - pixel_y = 2 - }, -/obj/item/reagent_container/glass/beaker/vial{ - pixel_x = -9; - pixel_y = 9 + pixel_x = 8 }, /obj/item/reagent_container/glass/beaker/vial{ - pixel_x = 8; - pixel_y = 6 + pixel_x = -7 }, +/obj/item/reagent_container/glass/beaker/vial, /turf/open/floor/corsat/squareswood/north, /area/yautja) "cm" = ( -/obj/structure/machinery/door/airlock/yautja/secure{ - name = "\improper Prisoner Cell 3"; - opacity = 0 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Cell Lockdown 3"; - name = "\improper Cell Shutters" - }, -/turf/open/shuttle/predship, +/turf/open/gm/dirtgrassborder/desert_dug, /area/yautja) "cn" = ( -/obj/structure/machinery/door/airlock/yautja/secure{ - name = "\improper Prisoner Cell 6"; - opacity = 0 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Cell Lockdown 6"; - name = "\improper Cell Shutters" - }, -/turf/open/shuttle/predship, -/area/yautja) +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/huntership, +/area/yautja/lower_deck) "co" = ( /obj/structure/machinery/portable_atmospherics/canister/phoron, /obj/structure/window/phoronreinforced, @@ -645,6 +770,15 @@ }, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"cp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) "cq" = ( /obj/structure/bed/chair/comfy/yautja{ dir = 4 @@ -656,8 +790,7 @@ color = "#6b675e" }, /obj/structure/machinery/chem_dispenser/soda/yautja{ - dir = 8; - pixel_y = 6 + dir = 8 }, /turf/open/shuttle/predship, /area/yautja) @@ -691,7 +824,6 @@ /obj/item/reagent_container/food/snacks/stew{ pixel_y = 3 }, -/obj/structure/closet/secure_closet/freezer/fridge/yautja, /obj/item/reagent_container/food/snacks/xemeatpie{ name = "Elite Hunter's Xenopie" }, @@ -704,12 +836,10 @@ /obj/item/reagent_container/food/snacks/xemeatpie{ name = "Elite Hunter's Xenopie" }, +/obj/structure/closet/secure_closet/freezer/fridge/yautja, /turf/open/floor/darkred2/southwest, /area/yautja) "cv" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, /obj/item/reagent_container/food/condiment/peppermill{ pixel_x = 4 }, @@ -723,20 +853,17 @@ /obj/item/tool/kitchen/knife{ pixel_x = -5 }, -/turf/open/shuttle/predship, -/area/yautja) -"cw" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/clothing/mask/muzzle, -/obj/item/clothing/mask/muzzle, -/obj/item/clothing/mask/muzzle, -/obj/item/clothing/mask/muzzle, -/obj/item/clothing/mask/muzzle, -/obj/item/clothing/mask/muzzle, /turf/open/shuttle/predship, /area/yautja) +"cw" = ( +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, +/area/yautja) "cx" = ( /obj/structure/machinery/autodoc_console/yautja, /turf/open/floor/corsat/squareswood/north, @@ -757,10 +884,7 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/skull/deacon{ - pixel_y = 5; - anchored = 1 - }, +/obj/item/skull/deacon, /turf/open/floor/corsat/squareswood/north, /area/yautja) "cA" = ( @@ -780,8 +904,19 @@ /obj/structure/machinery/autolathe/yautja, /turf/open/floor/corsat/squareswood/north, /area/yautja) +"cD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_container/glass/bucket/mopbucket, +/obj/item/tool/mop{ + pixel_y = 0 + }, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) "cE" = ( -/obj/structure/machinery/prop/almayer/CICmap/yautja, +/obj/structure/machinery/blooding_spawner, +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, /turf/open/floor/corsat/squareswood/north, /area/yautja) "cF" = ( @@ -890,9 +1025,8 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/weapon/twohanded/breacher{ - anchored = 1; - pixel_y = 8 +/obj/item/weapon/twohanded/sledgehammer{ + anchored = 1 }, /turf/open/floor/corsat/squareswood/north, /area/yautja) @@ -913,55 +1047,27 @@ /turf/open/shuttle/predship, /area/yautja) "cK" = ( -/obj/structure/surface/rack{ - color = "#6b675e"; - layer = 2.79 - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25; - pixel_x = 12 - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25; - pixel_x = 8 - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25; - pixel_x = 4 - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25; - pixel_x = -4 - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25; - pixel_x = -12 - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25 - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25; - pixel_x = -8 +/obj/structure/barricade/handrail/strata{ + dir = 4 }, -/turf/open/shuttle/predship, -/area/yautja) +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) "cL" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/structure/machinery/juicer/yautja{ - pixel_y = 9 - }, +/obj/structure/machinery/juicer/yautja, /turf/open/shuttle/predship, /area/yautja) +"cM" = ( +/obj/structure/machinery/light/red{ + dir = 4; + light_color = "#F52744" + }, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) "cN" = ( /obj/structure/cryofeed, /turf/open/floor/corsat/squareswood/north, @@ -1012,30 +1118,25 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/effect/decal/remains/xeno{ - pixel_x = 33 - }, /obj/structure/showcase{ desc = "A console equipped with a radar used by the Hunters to detect gear and good hunting grounds."; dir = 4; icon = 'icons/obj/structures/machinery/yautja_machines.dmi'; icon_state = "terminal"; name = "Radar Console"; - pixel_x = 16 + pixel_x = 5 }, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) "cS" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4 }, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/under/chainshirt/hunter, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/head/helmet/gladiator, -/obj/item/clothing/suit/armor/gladiator, /turf/open/floor/corsat/squareswood/north, -/area/yautja) +/area/yautja/lower_deck) "cT" = ( /obj/structure/surface/rack{ color = "#6b675e"; @@ -1056,9 +1157,7 @@ /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/tool/weldingtool/yautja{ - pixel_y = 5 - }, +/obj/item/tool/weldingtool/yautja, /turf/open/floor/corsat/squareswood/north, /area/yautja) "cW" = ( @@ -1066,10 +1165,7 @@ color = "#6b675e" }, /obj/item/stack/cable_coil, -/obj/item/tool/screwdriver/yautja{ - pixel_y = 9; - pixel_x = -7 - }, +/obj/item/tool/screwdriver/yautja, /turf/open/floor/corsat/squareswood/north, /area/yautja) "cX" = ( @@ -1087,7 +1183,9 @@ /obj/item/clothing/under/chainshirt/hunter, /obj/item/clothing/under/chainshirt/hunter, /obj/item/clothing/under/chainshirt/hunter, -/obj/structure/closet/yautja, +/obj/structure/closet/crate{ + color = "#6b675e" + }, /obj/item/device/healthanalyzer/alien, /obj/item/device/healthanalyzer/alien, /obj/item/device/healthanalyzer/alien, @@ -1101,6 +1199,17 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) +"cZ" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"da" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/obj/structure/machinery/microwave/yautja, +/turf/open/shuttle/predship, +/area/yautja) "db" = ( /obj/structure/surface/rack{ color = "#6b675e"; @@ -1116,6 +1225,12 @@ }, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) +"dd" = ( +/obj/structure/machinery/shower{ + pixel_y = 16 + }, +/turf/open/floor/shiva/radiator_tile2, +/area/yautja/lower_deck) "de" = ( /obj/structure/kitchenspike, /obj/item/reagent_container/food/snacks/meat/xenomeat, @@ -1131,6 +1246,16 @@ }, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) +"dg" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"dh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel/true_random, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) "di" = ( /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, @@ -1140,24 +1265,22 @@ /obj/item/reagent_container/food/snacks/grown/tomato, /obj/item/reagent_container/food/snacks/grown/tomato, /obj/item/reagent_container/food/snacks/grown/tomato, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/item/reagent_container/food/drinks/soymilk, -/obj/structure/closet/secure_closet/freezer/fridge/yautja, /obj/item/reagent_container/food/snacks/xemeatpie{ name = "Elite Hunter's Xenopie" }, /obj/item/reagent_container/food/snacks/xemeatpie{ name = "Elite Hunter's Xenopie" }, +/obj/structure/closet/secure_closet/freezer/fridge/yautja, +/obj/item/reagent_container/food/drinks/milk, +/obj/item/reagent_container/food/drinks/milk, +/obj/item/reagent_container/food/drinks/milk, +/obj/item/reagent_container/food/drinks/milk, +/obj/item/reagent_container/food/drinks/milk, +/obj/item/reagent_container/food/drinks/milk, +/obj/item/reagent_container/food/drinks/milk, +/obj/item/reagent_container/food/drinks/milk, +/obj/item/reagent_container/food/drinks/milk, /turf/open/floor/darkred2/north, /area/yautja) "dj" = ( @@ -1181,120 +1304,57 @@ /turf/open/floor/strata/grey_multi_tiles, /area/yautja) "dm" = ( -/obj/structure/machinery/door_control{ - id = "Cell Lockdown 5"; - name = "Cell Lockdown 5"; - pixel_x = -7; - pixel_y = 9; - req_one_access_txt = "390;391;392" - }, -/turf/closed/wall/huntership, -/area/yautja) -"dw" = ( -/turf/open/gm/dirtgrassborder/south, -/area/yautja) -"dz" = ( -/obj/structure/machinery/cm_vending/clothing/yautja/left_centre, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"dD" = ( -/obj/structure/stairs/perspective{ - color = "#6b675e"; - dir = 8; - icon_state = "p_stair_full" - }, -/obj/item/clothing/mask/gas/yautja/hunter{ - pixel_y = 27; - anchored = 1 - }, -/obj/structure/platform/metal/stair_cut/kutjevo_smooth_left, -/turf/open/shuttle/predship, -/area/yautja) -"dI" = ( -/turf/open/space/basic, -/area/space) -"ef" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, +/obj/effect/decal/cleanable/dirt, /turf/open/shuttle/predship, -/area/yautja) -"eg" = ( -/obj/structure/barricade/handrail/strata{ - dir = 4 +/area/yautja/lower_deck) +"dn" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "youngblood1"; + name = "\improper Lower Deck Shutters"; + density = 1 }, -/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, -/area/yautja) -"er" = ( -/obj/structure/stairs/perspective{ - color = "#6b675e"; - dir = 9; - icon_state = "p_stair_full" +/obj/structure/machinery/door/airlock/yautja{ + dir = 1; + name = "\improper Lower Deck" }, /turf/open/floor/corsat/squareswood/north, -/area/yautja) -"es" = ( -/obj/structure/machinery/cm_vending/clothing/yautja/elder/right, -/turf/open/shuttle/predship, -/area/yautja) -"et" = ( -/obj/structure/platform/metal/kutjevo_smooth/north, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"eS" = ( -/obj/item/skull/warrior{ - anchored = 1; - pixel_y = 32 - }, -/turf/open/shuttle/predship, -/area/yautja) -"eT" = ( -/obj/structure/stairs/perspective{ - color = "#6b675e"; - dir = 4; - icon_state = "p_stair_full" - }, +/area/yautja/lower_deck) +"do" = ( +/obj/structure/barricade/handrail/strata, /turf/open/floor/corsat/squareswood/north, -/area/yautja) -"eY" = ( -/obj/structure/bed/chair/comfy/yautja{ - dir = 4 +/area/yautja/lower_deck) +"dp" = ( +/obj/structure/barricade/handrail/strata, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"dr" = ( +/obj/structure/machinery/door_control{ + id = "youngblood1"; + pixel_y = 3; + name = "Lower Deck Shutters" }, -/turf/open/shuttle/predship, -/area/yautja) -"fb" = ( -/turf/open/floor/darkred2/east, -/area/yautja) -"fg" = ( -/obj/item/map/current_map, -/obj/item/device/flashlight/lantern, -/obj/structure/closet/yautja, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"fj" = ( -/obj/structure/machinery/cryopod/no_store, -/turf/open/shuttle/predship, -/area/yautja) -"fo" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, -/obj/item/storage/box/bracer, /turf/open/floor/corsat/squareswood/north, -/area/yautja) -"fq" = ( -/obj/structure/window/framed/colony/reinforced/hull/yautja, -/turf/open/floor/holofloor/cult, -/area/yautja) -"fF" = ( +/area/yautja/lower_deck) +"ds" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/ladder{ + height = 1; + icon_state = "ladder10"; + id = "predcells" + }, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"dt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/closed/wall/huntership, +/area/yautja/lower_deck) +"du" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 @@ -1323,1729 +1383,2533 @@ pixel_x = 6; pixel_y = 7 }, -/turf/open/shuttle/predship, -/area/yautja) -"fI" = ( +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"dv" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/obj/item/device/flashlight/lamp, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"fS" = ( -/turf/open/gm/dirtgrassborder/weedable/grass1, -/area/yautja) -"gb" = ( -/obj/structure/closet/crate{ - color = "#6b675e" - }, -/obj/item/stack/medical/advanced/bruise_pack/predator{ - pixel_x = 6 - }, -/obj/item/stack/medical/advanced/bruise_pack/predator{ +/obj/item/weapon/unathiknife{ + attack_speed = 12; + force = 25; pixel_x = 6 }, -/obj/item/stack/medical/advanced/bruise_pack/predator{ - pixel_x = 6 +/obj/item/weapon/unathiknife{ + attack_speed = 12; + force = 25; + pixel_x = 2; + pixel_y = 2 }, -/obj/item/stack/medical/advanced/bruise_pack/predator{ - pixel_x = 6 +/obj/item/weapon/unathiknife{ + attack_speed = 12; + force = 25; + pixel_x = -1; + pixel_y = 4 }, -/obj/item/stack/medical/advanced/bruise_pack/predator{ - pixel_x = 6 +/obj/item/weapon/unathiknife{ + attack_speed = 12; + force = 25; + pixel_x = -5; + pixel_y = 6 }, -/obj/item/stack/medical/advanced/ointment/predator{ - pixel_x = -6 +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"dw" = ( +/obj/structure/platform/metal/stair_cut/kutjevo_smooth_left, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"dx" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, -/obj/item/stack/medical/advanced/ointment/predator{ - pixel_x = -6 +/obj/item/weapon/baseballbat/metal{ + attack_speed = 12; + force = 25; + name = "\improper duelling metal bat"; + pixel_x = -2; + pixel_y = 2 }, -/obj/item/stack/medical/advanced/ointment/predator{ - pixel_x = -6 +/obj/item/weapon/baseballbat/metal{ + attack_speed = 12; + force = 25; + name = "\improper duelling metal bat"; + pixel_x = -5; + pixel_y = 4 }, -/obj/item/stack/medical/advanced/ointment/predator{ - pixel_x = -6 +/obj/item/weapon/baseballbat/metal{ + attack_speed = 12; + force = 25; + name = "\improper duelling metal bat" }, -/obj/item/stack/medical/advanced/ointment/predator{ - pixel_x = -6 +/obj/item/weapon/baseballbat/metal{ + attack_speed = 12; + force = 25; + name = "\improper duelling metal bat"; + pixel_x = -7; + pixel_y = 6 }, /turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"gp" = ( -/obj/structure/bed/chair/comfy/yautja, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"gr" = ( -/obj/structure/closet/crate/secure{ - req_one_access_txt = "392"; - color = "#6b675e"; - name = "Secure Yautja crate" - }, -/obj/item/explosive/grenade/spawnergrenade/hellhound, -/obj/item/explosive/grenade/spawnergrenade/hellhound, -/obj/item/explosive/grenade/spawnergrenade/hellhound, -/obj/item/explosive/grenade/spawnergrenade/hellhound, +/area/yautja/lower_deck) +"dy" = ( +/obj/structure/closet, +/obj/item/clothing/head/helmet/gladiator, +/obj/item/clothing/suit/armor/gladiator, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/under/chainshirt/hunter, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"dz" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/left_centre, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"gG" = ( +"dA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/obj/structure/ladder{ + height = 1; + icon_state = "ladder10"; + id = "youngbloodprep" + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"dB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, /obj/structure/machinery/door_control{ - id = "Yautja Armory"; - name = "Armory Shutters"; - needs_power = 0; - pixel_x = 24; - req_one_access_txt = "392" + id = "youngblood"; + pixel_y = 3; + name = "Lower Deck Shutters" }, +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"dC" = ( +/obj/structure/machinery/door/airlock/yautja{ + dir = 1; + name = "\improper Youngblood Prep" + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"dD" = ( +/obj/structure/stairs/perspective{ + color = "#6b675e"; + dir = 8; + icon_state = "p_stair_full" + }, +/obj/item/clothing/mask/gas/yautja/hunter{ + pixel_y = 27; + anchored = 1 + }, +/obj/structure/platform/metal/stair_cut/kutjevo_smooth_left, +/turf/open/shuttle/predship, /area/yautja) -"gN" = ( +"dE" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/stack/tile/carpet{ - amount = 50 +/obj/item/stack/yautja_rope, +/obj/item/stack/yautja_rope, +/obj/item/stack/yautja_rope, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"dF" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, -/obj/item/stack/tile/carpet{ - amount = 50 +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/structure/machinery/light/red{ + light_color = "#F52744" }, -/obj/item/stack/tile/carpet{ - amount = 50 +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"dG" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, -/obj/item/stack/tile/carpet{ - amount = 50 +/obj/item/stack/yautja_rope, +/obj/item/stack/yautja_rope, +/obj/item/stack/yautja_rope, +/obj/structure/machinery/light/red{ + light_color = "#F52744" }, -/obj/item/stack/tile/carpet{ - amount = 50 +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"dH" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"dI" = ( +/turf/open/space/basic, +/area/space) +"dJ" = ( +/obj/effect/step_trigger/teleporter/yautja_young, +/turf/open/floor/light/red, +/area/yautja/lower_deck) +"dK" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/machinery/light/red{ + dir = 1; + light_color = "#F52744" }, /turf/open/floor/corsat/squareswood/north, -/area/yautja) -"ha" = ( -/obj/structure/barricade/handrail/strata{ - dir = 8 +/area/yautja/lower_deck) +"dL" = ( +/obj/structure/machinery/light/red{ + dir = 1; + light_color = "#F52744" }, -/turf/open/gm/dirtgrassborder/weedable/grass1, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"dM" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"dN" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood/left_centre, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"dO" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood/centre, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"dP" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood/right_centre, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"dQ" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/young_blood/right, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"dR" = ( +/obj/structure/platform/metal/kutjevo_smooth/north, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"hI" = ( -/obj/structure/window/framed/colony/reinforced/hull/yautja, +"dS" = ( +/obj/structure/platform/metal/stair_cut/kutjevo_smooth_right, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"dT" = ( +/obj/structure/showcase/yautja/alt, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"hJ" = ( -/obj/structure/barricade/handrail/strata{ - dir = 4 - }, -/turf/open/gm/dirtgrassborder/weedable/grass1, +"dU" = ( +/obj/structure/closet/yautja, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"hL" = ( -/obj/structure/surface/rack{ - color = "#6b675e"; - layer = 2.79 - }, -/obj/item/weapon/harpoon/yautja, -/obj/item/weapon/harpoon/yautja, -/obj/item/weapon/harpoon/yautja, -/obj/item/weapon/harpoon/yautja, -/turf/open/floor/strata/grey_multi_tiles, +"dV" = ( +/obj/item/skull/warrior, +/turf/closed/wall/huntership, /area/yautja) -"hY" = ( -/obj/structure/kitchenspike, -/obj/item/reagent_container/food/snacks/meat, -/obj/item/reagent_container/food/snacks/meat, -/obj/item/reagent_container/food/snacks/meat, -/obj/item/reagent_container/food/snacks/meat, -/turf/open/floor/darkred2/west, +"dW" = ( +/obj/item/skull/lurker, +/turf/closed/wall/huntership, /area/yautja) -"ig" = ( -/obj/item/clothing/yautja_cape/ceremonial{ - anchored = 1; - color = "#292b29"; - pixel_x = 2; - pixel_y = 32 - }, -/obj/item/clothing/suit/armor/yautja/hunter{ - anchored = 1; - color = "#FFE55C"; - icon_state = "halfarmor_elder_n"; - pixel_y = 30 - }, -/obj/item/clothing/mask/gas/yautja/hunter{ - anchored = 1; - color = "#FFE55C"; - icon_state = "pred_mask_elder_n"; - pixel_y = 40 +"dX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/stool, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"dY" = ( +/obj/structure/bed/stool, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"dZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"ea" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"ed" = ( +/obj/structure/barricade/handrail/strata, +/obj/effect/decal/cleanable/blood{ + basecolor = "#20d450"; + color = "#20d450" + }, +/turf/open/gm/dirtgrassborder/north, /area/yautja) -"is" = ( -/obj/structure/kitchenspike, -/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, -/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, -/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, -/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, -/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, -/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, -/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, -/turf/open/floor/darkred2/west, -/area/yautja) -"iV" = ( +"ef" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/trash/tray, -/obj/item/tool/kitchen/utensil/fork{ - pixel_x = 10; - pixel_y = 3 - }, -/turf/open/floor/corsat/squareswood/north, +/turf/open/shuttle/predship, /area/yautja) -"jP" = ( -/obj/structure/surface/rack{ - color = "#6b675e"; - layer = 2.79 - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25; - name = "duelling claymore" - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25; - name = "duelling claymore"; - pixel_x = -5 - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25; - name = "duelling claymore"; - pixel_x = 5 - }, -/obj/item/weapon/sword{ - attack_speed = 12; - force = 25; - name = "duelling claymore"; - pixel_x = 10 +"eg" = ( +/obj/structure/machinery/light/red{ + dir = 1; + light_color = "#F52744" }, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"eo" = ( +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/dirt, /turf/open/shuttle/predship, -/area/yautja) -"jR" = ( -/obj/structure/machinery/sleep_console/yautja, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"jU" = ( +/area/yautja/lower_deck) +"er" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; - dir = 6; + dir = 9; icon_state = "p_stair_full" }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"ko" = ( -/obj/structure/machinery/cm_vending/clothing/yautja/elder, +"es" = ( /obj/structure/machinery/cm_vending/clothing/yautja/elder/right, /turf/open/shuttle/predship, /area/yautja) -"ku" = ( +"et" = ( +/obj/structure/platform/metal/kutjevo_smooth/north, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"eT" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; + dir = 4; icon_state = "p_stair_full" }, -/obj/structure/platform/metal/kutjevo_smooth/west, -/turf/open/floor/strata/grey_multi_tiles, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"kI" = ( -/obj/structure/platform/metal/kutjevo_smooth/east, +"eY" = ( +/obj/structure/bed/chair/hunter{ + dir = 4 + }, /turf/open/shuttle/predship, /area/yautja) -"lw" = ( -/turf/open/gm/dirtgrassborder/desert1, +"fb" = ( +/turf/open/floor/darkred2/east, /area/yautja) -"mm" = ( -/obj/structure/machinery/cm_vending/clothing/yautja/right_centre, -/turf/open/floor/strata/grey_multi_tiles, +"fg" = ( +/obj/item/map/current_map, +/obj/item/device/flashlight/lantern, +/obj/structure/closet, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"mn" = ( +"fj" = ( +/obj/structure/machinery/cryopod/no_store, +/turf/open/shuttle/predship, +/area/yautja) +"fo" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/item/storage/box/bracer, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"fq" = ( +/obj/structure/barricade/handrail/strata, +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, +/area/yautja) +"fE" = ( +/obj/effect/landmark/ert_spawns/distress/hunt_spawner/pred, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"fF" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/obj/item/tool/hatchet{ + attack_speed = 12; + name = "duelling hatchet"; + pixel_x = -7; + pixel_y = -1 }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/obj/item/tool/hatchet{ + attack_speed = 12; + name = "duelling hatchet"; + pixel_x = -3; + pixel_y = 2 }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/obj/item/tool/hatchet{ + attack_speed = 12; + name = "duelling hatchet"; + pixel_x = 2; + pixel_y = 5 }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/obj/item/tool/hatchet{ + attack_speed = 12; + name = "duelling hatchet"; + pixel_x = 6; + pixel_y = 7 }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/turf/open/shuttle/predship, +/area/yautja) +"fI" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/obj/item/device/flashlight/lamp, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"fS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"gb" = ( +/obj/structure/closet/crate{ + color = "#6b675e" }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/obj/item/stack/medical/advanced/bruise_pack/predator{ + pixel_x = 6 }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/obj/item/stack/medical/advanced/bruise_pack/predator{ + pixel_x = 6 }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/obj/item/stack/medical/advanced/bruise_pack/predator{ + pixel_x = 6 }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/obj/item/stack/medical/advanced/bruise_pack/predator{ + pixel_x = 6 }, -/obj/item/device/flashlight/lantern{ - pixel_x = 1; - pixel_y = 9 +/obj/item/stack/medical/advanced/bruise_pack/predator{ + pixel_x = 6 }, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"mv" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +/obj/item/stack/medical/advanced/ointment/predator{ + pixel_x = -6 }, -/obj/item/storage/large_holster/katana, -/obj/item/weapon/sword/katana, -/turf/open/floor/corsat/squareswood/north, +/obj/item/stack/medical/advanced/ointment/predator{ + pixel_x = -6 + }, +/obj/item/stack/medical/advanced/ointment/predator{ + pixel_x = -6 + }, +/obj/item/stack/medical/advanced/ointment/predator{ + pixel_x = -6 + }, +/obj/item/stack/medical/advanced/ointment/predator{ + pixel_x = -6 + }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"nd" = ( -/turf/open/gm/dirtgrassborder/desert0, +"gp" = ( +/obj/structure/bed/chair/comfy/yautja, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"nh" = ( -/obj/structure/surface/rack{ +"gr" = ( +/obj/structure/closet/crate/secure{ + req_one_access_txt = "392"; color = "#6b675e"; - layer = 2.79 + name = "Secure Yautja crate" + }, +/obj/item/explosive/grenade/spawnergrenade/hellhound, +/obj/item/explosive/grenade/spawnergrenade/hellhound, +/obj/item/explosive/grenade/spawnergrenade/hellhound, +/obj/item/explosive/grenade/spawnergrenade/hellhound, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"gu" = ( +/obj/item/stack/rods, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"gG" = ( +/obj/structure/machinery/door_control{ + id = "Yautja Armory"; + name = "Armory Shutters"; + needs_power = 0; + pixel_x = 24; + req_one_access_txt = "392" }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"nv" = ( +"gN" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/structure/machinery/power/apc/almayer/east{ - pixel_y = 25 +/obj/item/stack/tile/carpet{ + amount = 50 }, -/obj/item/weapon/twohanded/yautja/spear, -/obj/item/weapon/twohanded/yautja/spear, -/obj/item/weapon/twohanded/yautja/spear, -/obj/item/weapon/twohanded/yautja/spear, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"nW" = ( -/obj/structure/pipes/standard/simple/hidden{ - dir = 6 +/obj/item/stack/tile/carpet{ + amount = 50 }, -/turf/open/shuttle/predship, -/area/yautja) -"nX" = ( -/obj/structure/machinery/cm_vending/clothing/yautja/right, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"ob" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +/obj/item/stack/tile/carpet{ + amount = 50 }, -/obj/effect/decal/remains/human{ - pixel_y = -25 +/obj/item/stack/tile/carpet{ + amount = 50 }, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"ov" = ( -/obj/structure/surface/rack{ - color = "#6b675e"; - layer = 2.79 +/obj/item/stack/tile/carpet{ + amount = 50 }, -/obj/item/storage/belt/utility/pred/full, -/obj/item/storage/belt/utility/pred/full, -/obj/item/storage/belt/utility/pred/full, -/obj/item/storage/belt/utility/pred/full, -/obj/item/storage/belt/utility/pred/full, -/obj/item/stack/yautja_rope, -/obj/item/stack/yautja_rope, -/obj/item/stack/yautja_rope, -/obj/item/stack/yautja_rope, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"oC" = ( -/obj/structure/bed/alien/yautja, -/turf/open/shuttle/predship, -/area/yautja) -"oO" = ( -/obj/item/weapon/yautja/chain{ - anchored = 1; - name = "Houndmaster's Discipline Whip"; - pixel_x = -3; - pixel_y = 29 +"hw" = ( +/obj/structure/machinery/light/red{ + light_color = "#F52744" }, /turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"pF" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/item/reagent_container/blood/OMinus, -/obj/item/reagent_container/blood/OMinus, -/obj/item/reagent_container/blood/OMinus, -/obj/item/reagent_container/blood/OMinus, -/obj/item/reagent_container/blood/OMinus, +/area/yautja/lower_deck) +"hF" = ( +/obj/structure/curtain/open/red, /turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"hI" = ( +/obj/structure/window/framed/colony/reinforced/hull/yautja, +/turf/open/floor/grey_dark2, /area/yautja) -"pW" = ( +"hJ" = ( +/obj/effect/landmark/ert_spawns/distress/hunt_spawner/pred, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"hL" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/weapon/yautja/knife, -/obj/item/reagent_container/hypospray/autoinjector/yautja, -/obj/item/reagent_container/hypospray/autoinjector/yautja, +/obj/item/weapon/harpoon/yautja, +/obj/item/weapon/harpoon/yautja, +/obj/item/weapon/harpoon/yautja, +/obj/item/weapon/harpoon/yautja, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"qj" = ( -/obj/structure/surface/rack{ - color = "#6b675e"; - layer = 2.79 +"hQ" = ( +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood{ + basecolor = "#20d450"; + color = "#20d450" }, -/obj/item/tool/crowbar/yautja, /turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"hY" = ( +/obj/structure/kitchenspike, +/obj/item/reagent_container/food/snacks/meat, +/obj/item/reagent_container/food/snacks/meat, +/obj/item/reagent_container/food/snacks/meat, +/obj/item/reagent_container/food/snacks/meat, +/turf/open/floor/darkred2/west, /area/yautja) -"qS" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +"ib" = ( +/obj/structure/machinery/door/airlock/yautja{ + name = "\improper Youngblood Teleporter" }, -/obj/item/reagent_container/food/snacks/xemeatpie{ - name = "Elite Hunter's Xenopie" +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"ig" = ( +/obj/item/clothing/yautja_cape/ceremonial{ + anchored = 1; + color = "#292b29"; + pixel_x = 2; + pixel_y = 32 }, -/obj/item/tool/kitchen/utensil/fork{ - pixel_x = 10; - pixel_y = 3 +/obj/item/clothing/suit/armor/yautja/hunter{ + anchored = 1; + color = "#FFE55C"; + icon_state = "halfarmor_elder_n"; + pixel_y = 30 + }, +/obj/item/clothing/mask/gas/yautja/hunter{ + anchored = 1; + color = "#FFE55C"; + icon_state = "pred_mask_elder_n"; + pixel_y = 40 }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"rt" = ( +"is" = ( +/obj/structure/kitchenspike, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/obj/item/reagent_container/food/snacks/sliceable/xenomeatbread, +/turf/open/floor/darkred2/west, +/area/yautja) +"iA" = ( +/obj/effect/decal/cleanable/cobweb{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"iP" = ( +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"iV" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/storage/medicomp/full, +/obj/item/trash/tray, +/obj/item/tool/kitchen/utensil/fork{ + pixel_x = 10; + pixel_y = 3 + }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"rH" = ( -/obj/structure/barricade/handrail/strata, +"jq" = ( +/obj/structure/machinery/cryopod/no_store, +/obj/effect/decal/cleanable/dirt, /turf/open/shuttle/predship, -/area/yautja) -"rY" = ( +/area/yautja/lower_deck) +"jP" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/stack/medical/splint{ - name = "splints" - }, -/obj/item/stack/medical/splint{ - name = "splints" - }, -/obj/item/stack/medical/splint{ - name = "splints" - }, -/obj/item/stack/medical/splint{ - name = "splints" - }, -/obj/item/stack/medical/splint{ - name = "splints" - }, -/obj/item/stack/medical/splint{ - name = "splints" - }, -/obj/item/stack/medical/splint{ - name = "splints" +/obj/item/weapon/sword{ + attack_speed = 12; + force = 25; + name = "duelling claymore" }, -/obj/item/stack/medical/splint{ - name = "splints" +/obj/item/weapon/sword{ + attack_speed = 12; + force = 25; + name = "duelling claymore"; + pixel_x = -5 }, -/obj/item/stack/medical/splint{ - name = "splints" +/obj/item/weapon/sword{ + attack_speed = 12; + force = 25; + name = "duelling claymore"; + pixel_x = 5 }, -/obj/item/stack/medical/splint{ - name = "splints" +/obj/item/weapon/sword{ + attack_speed = 12; + force = 25; + name = "duelling claymore"; + pixel_x = 10 }, /turf/open/shuttle/predship, /area/yautja) -"sx" = ( -/obj/structure/window/framed/colony/reinforced/hull/yautja, -/turf/open/floor/strata/grey_multi_tiles, +"jR" = ( +/obj/structure/machinery/sleep_console/yautja, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"sS" = ( -/obj/structure/surface/rack{ +"jU" = ( +/obj/structure/stairs/perspective{ color = "#6b675e"; - layer = 2.79 - }, -/obj/item/stack/sheet/wood{ - amount = 50 - }, -/obj/item/stack/sheet/wood{ - amount = 50 - }, -/obj/item/stack/sheet/wood{ - amount = 50 - }, -/obj/item/stack/sheet/wood{ - amount = 50 - }, -/obj/item/stack/sheet/wood{ - amount = 50 - }, -/obj/item/stack/sheet/wood{ - amount = 50 - }, -/obj/item/stack/sheet/wood{ - amount = 50 + dir = 6; + icon_state = "p_stair_full" }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"sT" = ( -/obj/structure/curtain/red, -/turf/open/floor/strata/grey_multi_tiles, +"ko" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/elder, +/obj/structure/machinery/cm_vending/clothing/yautja/elder/right, +/turf/open/shuttle/predship, /area/yautja) -"sV" = ( -/obj/structure/machinery/door/airlock/yautja{ - dir = 1; - name = "\improper Feed Hall" +"ku" = ( +/obj/structure/stairs/perspective{ + color = "#6b675e"; + icon_state = "p_stair_full" }, +/obj/structure/platform/metal/kutjevo_smooth/west, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"kI" = ( +/obj/structure/platform/metal/kutjevo_smooth/east, /turf/open/shuttle/predship, /area/yautja) -"te" = ( -/obj/structure/xenoautopsy/tank/hugger/yautja, +"kR" = ( +/obj/structure/barricade/handrail/strata{ + dir = 1 + }, +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"tn" = ( +"lt" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/device/flashlight/lamp, +/obj/item/storage/box/handcuffs{ + pixel_y = 11 + }, +/obj/item/storage/box/handcuffs{ + pixel_y = -2 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"lw" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"mm" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/right_centre, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"tD" = ( +"mn" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/stack/sheet/plasteel{ - amount = 30 +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 }, -/obj/item/stack/sheet/plasteel{ - amount = 30 +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 }, -/obj/item/stack/sheet/plasteel{ - amount = 30 +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 }, -/obj/item/stack/sheet/plasteel{ - amount = 30 +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 }, -/obj/item/stack/sheet/plasteel{ - amount = 30 +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 }, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"tR" = ( -/obj/structure/surface/rack{ - color = "#6b675e"; - layer = 2.79 +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/device/flashlight/lantern{ + pixel_x = 1; + pixel_y = 9 }, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, -/obj/item/frame/table/wood/poor, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"uf" = ( -/obj/structure/barricade/handrail/strata{ - dir = 8 +"mv" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, -/turf/open/gm/dirtgrassborder/west, +/obj/item/storage/large_holster/katana, +/obj/item/weapon/sword/katana, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"uj" = ( +"nh" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/obj/item/frame/table/gambling, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"ul" = ( -/obj/structure/platform_decoration/metal/kutjevo_smooth/west, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"um" = ( +"nv" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/storage/fancy/candle_box, -/obj/item/storage/fancy/candle_box, -/obj/item/storage/fancy/candle_box, -/obj/item/storage/fancy/candle_box, -/obj/item/storage/fancy/candle_box, -/obj/item/storage/fancy/candle_box, -/obj/item/storage/fancy/candle_box, -/turf/open/floor/corsat/squareswood/north, +/obj/structure/machinery/power/apc/almayer/east{ + pixel_y = 25 + }, +/obj/item/weapon/twohanded/yautja/spear, +/obj/item/weapon/twohanded/yautja/spear, +/obj/item/weapon/twohanded/yautja/spear, +/obj/item/weapon/twohanded/yautja/spear, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"uO" = ( -/obj/structure/bed/chair/hunter{ - dir = 4 +"nW" = ( +/obj/structure/pipes/standard/simple/hidden{ + dir = 6 }, -/turf/open/floor/corsat/squareswood/north, +/turf/open/shuttle/predship, /area/yautja) -"uZ" = ( +"nX" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/right, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"ob" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/weapon/sword/ceremonial{ - pixel_y = 5 +/obj/effect/decal/remains/human{ + pixel_y = -25 + }, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"of" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"ov" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, +/obj/item/stack/yautja_rope, +/obj/item/stack/yautja_rope, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"vC" = ( -/obj/structure/platform_decoration/metal/kutjevo_smooth/east, +"oC" = ( +/obj/structure/bed/alien/yautja, /turf/open/shuttle/predship, /area/yautja) -"vO" = ( -/obj/structure/machinery/shower{ - dir = 4 +"oO" = ( +/obj/item/weapon/yautja/chain{ + anchored = 1; + name = "Houndmaster's Discipline Whip"; + pixel_x = -3; + pixel_y = 29 }, -/obj/structure/machinery/door/window/tinted, -/obj/structure/window/reinforced/tinted, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"wH" = ( -/obj/structure/surface/rack{ - color = "#6b675e"; - layer = 2.79 +"pf" = ( +/obj/structure/barricade/handrail/strata, +/obj/effect/decal/cleanable/dirt, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"pu" = ( +/obj/structure/machinery/door/airlock/yautja{ + dir = 1; + name = "\improper Lower Deck" }, -/obj/item/reagent_container/food/snacks/flour, -/obj/item/reagent_container/food/snacks/flour, -/obj/item/reagent_container/food/snacks/flour, -/obj/item/reagent_container/food/snacks/flour, -/obj/item/reagent_container/food/snacks/flour, -/obj/item/reagent_container/food/snacks/flour, -/obj/item/reagent_container/food/snacks/flour, -/obj/item/reagent_container/food/snacks/flour, -/obj/item/reagent_container/food/snacks/flour, -/obj/item/reagent_container/food/snacks/flour, -/obj/item/reagent_container/food/condiment/sugar, -/obj/item/reagent_container/food/condiment/sugar, -/obj/item/reagent_container/food/condiment/sugar, -/obj/item/reagent_container/food/condiment/sugar, -/obj/item/reagent_container/food/condiment/sugar, -/turf/open/floor/darkred2/west, +/turf/open/shuttle/predship, /area/yautja) -"wQ" = ( +"pF" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 +/obj/item/reagent_container/blood/OMinus, +/obj/item/reagent_container/blood/OMinus, +/obj/item/reagent_container/blood/OMinus, +/obj/item/reagent_container/blood/OMinus, +/obj/item/reagent_container/blood/OMinus, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"pN" = ( +/obj/structure/closet/crate{ + color = "#6b675e" }, -/obj/structure/window/reinforced{ - dir = 8; - health = 80 +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"pW" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/weapon/yautja/knife, +/obj/item/reagent_container/hypospray/autoinjector/yautja, +/obj/item/reagent_container/hypospray/autoinjector/yautja, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"qj" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, +/obj/item/tool/crowbar/yautja, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"wW" = ( -/obj/structure/barricade/handrail/strata{ - dir = 8 +"qp" = ( +/obj/structure/bed/chair/comfy/yautja{ + dir = 4 }, -/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, +/turf/open/shuttle/predship, /area/yautja) -"xn" = ( +"qF" = ( +/obj/item/clothing/head/helmet/gladiator, +/obj/item/clothing/suit/armor/gladiator, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/under/chainshirt/hunter, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/under/chainshirt/hunter, +/obj/item/clothing/suit/armor/gladiator, +/obj/item/clothing/head/helmet/gladiator, +/obj/structure/closet, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"qS" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/xeno_egg/forsaken, -/obj/item/xeno_egg/forsaken, -/obj/item/xeno_egg/forsaken, -/turf/open/floor/strata/grey_multi_tiles, +/obj/item/reagent_container/food/snacks/xemeatpie{ + name = "Elite Hunter's Xenopie" + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_x = 10; + pixel_y = 3 + }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"xO" = ( +"rt" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/skull/hunter{ - anchored = 1; - pixel_y = 5 - }, +/obj/item/storage/medicomp/full, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"xQ" = ( +"rA" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "thrall_cell_4"; + name = "\improper Human Cell 4" + }, +/obj/structure/machinery/door/airlock/yautja{ + name = "\improper Holding Cell 4" + }, +/turf/open/shuttle/predship, +/area/yautja) +"rH" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; - dir = 10; icon_state = "p_stair_full" }, -/turf/open/floor/corsat/squareswood/north, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"rJ" = ( +/obj/structure/machinery/door_control{ + name = "cell-5-shutter"; + id = "thrall_cell_5"; + pixel_y = 6; + pixel_x = 10 + }, +/turf/closed/wall/huntership, /area/yautja) -"yr" = ( -/obj/structure/window/reinforced{ - dir = 8; - health = 80 +"rY" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 +/obj/item/stack/medical/splint{ + name = "splints" }, -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +/obj/item/stack/medical/splint{ + name = "splints" }, -/obj/item/storage/box/bracer, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"yH" = ( -/obj/structure/closet/secure_closet/freezer/fridge/groceries/yautja, -/turf/open/floor/darkred2/east, -/area/yautja) -"yO" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +/obj/item/stack/medical/splint{ + name = "splints" }, -/obj/item/tool/kitchen/tray{ - color = "#FFE55C"; - pixel_y = 4 +/obj/item/stack/medical/splint{ + name = "splints" }, -/obj/item/reagent_container/food/snacks/meatballsoup{ - pixel_x = 1; - pixel_y = 4 +/obj/item/stack/medical/splint{ + name = "splints" }, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"zg" = ( -/obj/structure/barricade/handrail/strata{ - dir = 4 +/obj/item/stack/medical/splint{ + name = "splints" + }, +/obj/item/stack/medical/splint{ + name = "splints" + }, +/obj/item/stack/medical/splint{ + name = "splints" + }, +/obj/item/stack/medical/splint{ + name = "splints" + }, +/obj/item/stack/medical/splint{ + name = "splints" }, -/turf/open/gm/dirtgrassborder/east, -/area/yautja) -"zj" = ( -/obj/structure/machinery/cm_vending/clothing/yautja/elder, -/turf/open/shuttle/predship, -/area/yautja) -"zs" = ( -/obj/structure/bed/chair/comfy/yautja, /turf/open/shuttle/predship, /area/yautja) -"zA" = ( -/turf/open/floor/dark2, +"sx" = ( +/obj/structure/window/framed/colony/reinforced/hull{ + color = "#aba9a9" + }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"zZ" = ( +"sS" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/obj/item/frame/table/wood/fancy, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"AA" = ( -/obj/structure/reagent_dispensers/fueltank/yautja, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"Bd" = ( -/obj/structure/platform_decoration/metal/kutjevo_smooth/west, -/turf/open/shuttle/predship, -/area/yautja) -"Be" = ( -/obj/structure/machinery/cryopod/no_store/right, -/turf/open/shuttle/predship, -/area/yautja) -"Bg" = ( -/obj/structure/closet/crate/secure{ - req_one_access_txt = "392"; - color = "#6b675e"; - name = "Secure Yautja crate" +/obj/item/stack/sheet/wood{ + amount = 50 }, -/obj/item/weapon/twohanded/yautja/glaive/alt, -/obj/item/weapon/yautja/chain, -/obj/item/weapon/yautja/sword, -/obj/item/weapon/yautja/scythe, -/obj/item/weapon/yautja/chained/combistick, -/turf/open/floor/strata/grey_multi_tiles, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/obj/item/stack/sheet/wood{ + amount = 50 + }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"Bk" = ( -/obj/structure/machinery/cm_vending/clothing/yautja, +"sT" = ( +/obj/structure/curtain/red, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Br" = ( -/turf/open/gm/dirtgrassborder/desert2, -/area/yautja) -"BK" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +"sV" = ( +/obj/structure/machinery/door/airlock/yautja{ + dir = 1; + name = "\improper Feed Hall" }, -/obj/item/storage/medicomp/full, -/turf/open/floor/strata/grey_multi_tiles, +/turf/open/shuttle/predship, /area/yautja) -"BS" = ( -/obj/structure/machinery/prop/yautja/bubbler, +"te" = ( +/obj/structure/xenoautopsy/tank/hugger/yautja, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Cn" = ( +"tn" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/reagent_container/glass/beaker/silver, -/turf/open/floor/corsat/squareswood/north, +/obj/item/device/flashlight/lamp, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Cz" = ( -/obj/item/skull/queen{ - pixel_y = 31; - anchored = 1 +"tv" = ( +/obj/effect/decal/cleanable/generic, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"tD" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"CK" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +/obj/item/stack/sheet/plasteel{ + amount = 30 }, -/obj/item/tool/kitchen/tray{ - color = "#FFE55C"; - pixel_y = 4 +/obj/item/stack/sheet/plasteel{ + amount = 30 }, -/obj/item/reagent_container/food/snacks/meatsteak{ - desc = "A chunk of meat taken from the most worthy foe that could be found in the known universe. Nothing more than a meal for a noble Elder."; - name = "Primordial Empress Steak"; - pixel_y = 1 +/obj/item/stack/sheet/plasteel{ + amount = 30 + }, +/obj/item/stack/sheet/plasteel{ + amount = 30 + }, +/obj/item/stack/sheet/plasteel{ + amount = 30 }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"CQ" = ( -/obj/structure/platform_decoration/metal/kutjevo_smooth/north, -/turf/open/shuttle/predship, -/area/yautja) -"CT" = ( +"tR" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/stack/yautja_rope, -/obj/item/stack/yautja_rope, -/obj/item/stack/yautja_rope, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"Dk" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/item/weapon/gun/revolver/m44/custom/pkd_special/l_series{ - pixel_y = 5 - }, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, +/obj/item/frame/table/wood/poor, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Dr" = ( -/obj/structure/machinery/door/airlock/yautja/secure{ - explo_proof = 1; - locked = 1; - name = "\improper External Airlock" - }, -/obj/structure/blocker/invisible_wall, -/turf/open/space, -/area/yautja) -"Dw" = ( -/obj/structure/stairs/perspective{ +"uj" = ( +/obj/structure/surface/rack{ color = "#6b675e"; - dir = 8; - icon_state = "p_stair_full" + layer = 2.79 }, -/obj/item/clothing/mask/gas/yautja/hunter{ - pixel_y = 27; - anchored = 1 - }, -/obj/structure/platform/metal/stair_cut/kutjevo_smooth_right, -/turf/open/shuttle/predship, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/obj/item/frame/table/gambling, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"DF" = ( -/obj/item/reagent_container/food/snacks/xenomeatbreadslice, -/obj/item/reagent_container/food/snacks/xenomeatbreadslice, -/obj/item/reagent_container/food/snacks/xenomeatbreadslice, -/obj/item/reagent_container/food/snacks/xenomeatbreadslice, -/obj/item/reagent_container/food/snacks/xenomeatbreadslice, -/obj/item/reagent_container/food/snacks/tomatomeat, -/obj/item/reagent_container/food/snacks/tomatomeat, -/obj/item/reagent_container/food/snacks/tomatomeat, -/obj/item/reagent_container/food/snacks/tomatomeat, -/obj/item/reagent_container/food/snacks/tomatomeat, -/obj/structure/closet/secure_closet/freezer/fridge/yautja, -/turf/open/floor/darkred2/northwest, +"ul" = ( +/obj/structure/platform_decoration/metal/kutjevo_smooth/west, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"DJ" = ( -/obj/structure/machinery/computer/crew/alt{ +"um" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"uN" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "youngblood"; + name = "\improper Lower Deck Shutters"; + density = 1 + }, +/obj/structure/machinery/door/airlock/yautja{ dir = 1; - name = "human monitoring computer"; - icon = 'icons/obj/structures/machinery/yautja_machines.dmi'; - icon_state = "terminal" + name = "\improper Lower Deck" }, -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"uO" = ( +/obj/structure/bed/chair/hunter{ + dir = 4 }, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"Es" = ( -/obj/structure/bed/chair/hunter, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Et" = ( +"uZ" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"Fh" = ( -/turf/open/floor/strata/grey_multi_tiles/southwest, +/obj/item/weapon/sword/ceremonial, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"Ft" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/item/storage/medicomp/full, +"vC" = ( +/obj/structure/platform_decoration/metal/kutjevo_smooth/east, /turf/open/shuttle/predship, /area/yautja) -"Fx" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +"wr" = ( +/obj/structure/machinery/door/airlock/yautja{ + name = "\improper Youngblood Fight Pit" }, -/obj/structure/showcase{ - desc = "A console used by the Hunters for navigation purposes."; - dir = 8; - icon = 'icons/obj/structures/machinery/yautja_machines.dmi'; - icon_state = "cameras"; - name = "Radar Console" +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"wA" = ( +/obj/structure/bed/bedroll{ + dir = 4 }, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"FG" = ( -/obj/effect/landmark/clan_spawn, -/turf/open/shuttle/predship, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"Gd" = ( -/obj/structure/machinery/door/airlock/yautja/secure, -/turf/open/shuttle/predship, +"wH" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/reagent_container/food/snacks/flour, +/obj/item/reagent_container/food/snacks/flour, +/obj/item/reagent_container/food/snacks/flour, +/obj/item/reagent_container/food/snacks/flour, +/obj/item/reagent_container/food/snacks/flour, +/obj/item/reagent_container/food/snacks/flour, +/obj/item/reagent_container/food/snacks/flour, +/obj/item/reagent_container/food/snacks/flour, +/obj/item/reagent_container/food/snacks/flour, +/obj/item/reagent_container/food/snacks/flour, +/obj/item/reagent_container/food/condiment/sugar, +/obj/item/reagent_container/food/condiment/sugar, +/obj/item/reagent_container/food/condiment/sugar, +/obj/item/reagent_container/food/condiment/sugar, +/obj/item/reagent_container/food/condiment/sugar, +/turf/open/floor/darkred2/west, /area/yautja) -"Gk" = ( +"wQ" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/explosive/grenade/incendiary/rmc{ - anchored = 1 +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Go" = ( -/obj/item/weapon/yautja/knife{ - name = "sacred ceremonial dagger"; - pixel_y = 34; - anchored = 1 +"wW" = ( +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"xn" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, +/obj/item/xeno_egg/forsaken, +/obj/item/xeno_egg/forsaken, +/obj/item/xeno_egg/forsaken, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Gr" = ( +"xO" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/restraint/legcuffs{ - pixel_y = 5 - }, -/obj/item/restraint/legcuffs{ - pixel_y = 5 - }, -/obj/item/restraint/legcuffs{ - pixel_y = 5 - }, -/obj/item/restraint/legcuffs{ - pixel_y = 5 +/obj/item/skull/hunter, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"xQ" = ( +/obj/structure/stairs/perspective{ + color = "#6b675e"; + dir = 10; + icon_state = "p_stair_full" }, -/obj/item/restraint/legcuffs{ - pixel_y = 5 +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"yr" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 }, -/obj/item/restraint/legcuffs{ - pixel_y = 5 +/obj/structure/window/reinforced{ + dir = 4; + health = 80 }, -/obj/item/restraint/handcuffs, -/obj/item/restraint/handcuffs, -/obj/item/restraint/handcuffs, -/obj/item/restraint/handcuffs, -/obj/item/restraint/handcuffs, -/obj/item/restraint/handcuffs, -/turf/open/shuttle/predship, -/area/yautja) -"GM" = ( -/turf/open/gm/dirtgrassborder/desert_dug, -/area/yautja) -"GY" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/weapon/chainofcommand, +/obj/item/storage/box/bracer, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Ha" = ( -/obj/structure/surface/rack{ - color = "#6b675e"; - layer = 2.79 +"yH" = ( +/obj/structure/closet/secure_closet/freezer/fridge/groceries/yautja, +/turf/open/floor/darkred2/east, +/area/yautja) +"yM" = ( +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"yO" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, -/obj/item/stack/medical/advanced/ointment/predator{ - desc = "A poultice made of cold, blue petals that is rubbed on burns. Not to be removed from the ship."; - name = "arena soothing herbs"; - pixel_x = 6 +/obj/item/tool/kitchen/tray{ + color = "#FFE55C"; + pixel_y = 4 }, -/obj/item/stack/medical/advanced/bruise_pack/predator{ - desc = "A poultice made of soft leaves that is rubbed on bruises. Not to be removed from the ship."; - name = "arena mending herbs"; - pixel_x = -6 +/obj/item/reagent_container/food/snacks/meatballsoup{ + pixel_x = 1; + pixel_y = 4 }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"zi" = ( +/turf/closed/wall/huntership, +/area/yautja/lower_deck) +"zj" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/elder, /turf/open/shuttle/predship, /area/yautja) -"Hp" = ( -/obj/structure/bed/chair/hunter{ - dir = 8 - }, -/turf/open/floor/corsat/squareswood/north, +"zs" = ( +/obj/structure/bed/chair/comfy/yautja, +/turf/open/shuttle/predship, /area/yautja) -"Hv" = ( -/obj/structure/bed/alien/yautja/leader, -/obj/item/bedsheet/captain{ - color = "#aba9a9"; - pixel_x = -1 - }, -/turf/open/floor/corsat/squareswood/north, +"zA" = ( +/turf/open/floor/dark2, /area/yautja) -"HD" = ( -/obj/structure/surface/rack{ +"zO" = ( +/obj/structure/stairs/perspective{ color = "#6b675e"; - density = 0; - layer = 2.79; - pixel_y = 24 - }, -/obj/item/weapon/gun/energy/yautja/plasmarifle{ - pixel_y = -8 - }, -/obj/item/weapon/gun/energy/yautja/plasmarifle, -/obj/item/weapon/gun/energy/yautja/plasmarifle{ - pixel_y = 8 + dir = 10; + icon_state = "p_stair_full" }, +/obj/structure/platform/metal/stair_cut/kutjevo_smooth_right, /turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"If" = ( +/area/yautja/lower_deck) +"zZ" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/weapon/gun/energy/yautja/plasmapistol{ - pixel_y = -8 - }, -/obj/item/weapon/gun/energy/yautja/plasmapistol, -/obj/item/weapon/gun/energy/yautja/plasmapistol{ - pixel_y = 8 - }, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"Im" = ( +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/obj/item/frame/table/wood/fancy, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Ak" = ( +/obj/structure/ladder{ + height = 2; + id = "youngbloodprep" + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Ao" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/weapon/unathiknife{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; - pixel_x = 6 + pixel_x = 12 }, -/obj/item/weapon/unathiknife{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; - pixel_x = 2; - pixel_y = 2 + pixel_x = 8 }, -/obj/item/weapon/unathiknife{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; - pixel_x = -1; - pixel_y = 4 + pixel_x = 4 }, -/obj/item/weapon/unathiknife{ +/obj/item/weapon/sword{ attack_speed = 12; force = 25; - pixel_x = -5; - pixel_y = 6 + pixel_x = -4 }, -/turf/open/shuttle/predship, -/area/yautja) -"Ip" = ( -/obj/structure/barricade/handrail/strata{ - dir = 1 +/obj/item/weapon/sword{ + attack_speed = 12; + force = 25; + pixel_x = -12 }, -/turf/open/shuttle/predship, -/area/yautja) -"Iw" = ( -/obj/structure/machinery/door/airlock/yautja/secure{ - name = "\improper Hellhound Quarters" +/obj/item/weapon/sword{ + attack_speed = 12; + force = 25 + }, +/obj/item/weapon/sword{ + attack_speed = 12; + force = 25; + pixel_x = -8 }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"IC" = ( -/obj/structure/machinery/door/airlock/yautja/secure/elder{ - name = "\improper Elder Quarters" +"Aw" = ( +/obj/effect/decal/cleanable/blood{ + basecolor = "#20d450"; + color = "#20d450" }, +/turf/open/gm/dirtgrassborder/desert, +/area/yautja) +"AA" = ( +/obj/structure/reagent_dispensers/fueltank/yautja, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Bd" = ( +/obj/structure/platform_decoration/metal/kutjevo_smooth/west, /turf/open/shuttle/predship, /area/yautja) -"IV" = ( -/obj/structure/machinery/cm_vending/clothing/yautja/centre, -/turf/open/floor/strata/grey_multi_tiles, +"Be" = ( +/obj/structure/machinery/cryopod/no_store/right, +/turf/open/shuttle/predship, /area/yautja) -"Je" = ( -/obj/structure/surface/rack{ +"Bg" = ( +/obj/structure/closet/crate/secure{ + req_one_access_txt = "392"; color = "#6b675e"; - layer = 2.79 - }, -/obj/item/stack/sheet/metal{ - amount = 50 + name = "Secure Yautja crate" }, -/obj/item/stack/sheet/metal{ - amount = 50 +/obj/item/weapon/twohanded/yautja/glaive/alt, +/obj/item/weapon/yautja/chain, +/obj/item/weapon/yautja/sword, +/obj/item/weapon/yautja/scythe, +/obj/item/weapon/yautja/chained/combistick, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"Bk" = ( +/obj/structure/machinery/cm_vending/clothing/yautja, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"BK" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, -/obj/item/stack/sheet/metal{ - amount = 50 +/obj/item/storage/medicomp/full, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"BS" = ( +/obj/structure/machinery/prop/yautja/bubbler, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Cn" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, -/obj/item/stack/sheet/metal{ - amount = 50 +/obj/item/alien_embryo, +/obj/item/reagent_container/glass/beaker/silver{ + pixel_y = -13 }, -/obj/item/stack/sheet/metal{ - amount = 50 +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"CK" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, -/obj/item/stack/sheet/metal{ - amount = 50 +/obj/item/tool/kitchen/tray{ + color = "#FFE55C"; + pixel_y = 4 }, -/obj/item/stack/sheet/metal{ - amount = 50 +/obj/item/reagent_container/food/snacks/meatsteak{ + desc = "A chunk of meat taken from the most worthy foe that could be found in the known universe. Nothing more than a meal for a noble Elder."; + name = "Primordial Empress Steak"; + pixel_y = 1 }, -/obj/item/stack/sheet/metal{ - amount = 50 +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"CO" = ( +/obj/structure/machinery/shower{ + dir = 4 }, -/obj/item/stack/sheet/metal{ - amount = 50 +/obj/item/tool/soap/syndie, +/obj/effect/decal/cleanable/dirt/greenglow, +/turf/open/floor/shiva/radiator_tile2, +/area/yautja/lower_deck) +"CQ" = ( +/obj/structure/platform_decoration/metal/kutjevo_smooth/north, +/turf/open/shuttle/predship, +/area/yautja) +"CT" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, -/obj/item/stack/sheet/metal{ - amount = 50 +/obj/item/stack/yautja_rope, +/obj/item/stack/yautja_rope, +/obj/item/stack/yautja_rope, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"Dk" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, +/obj/item/weapon/gun/revolver/m44/custom/pkd_special/l_series, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Jg" = ( -/obj/structure/closet/crate{ - color = "#6b675e" +"Do" = ( +/obj/structure/bed/bedroll{ + dir = 10 }, -/obj/item/bracer_attachments/scimitars, -/obj/item/bracer_attachments/scimitars, -/obj/item/bracer_attachments/scimitars_alt, -/obj/item/bracer_attachments/scimitars_alt, -/obj/item/bracer_attachments/scimitars, -/obj/item/bracer_attachments/scimitars, -/obj/item/bracer_attachments/scimitars, -/obj/item/bracer_attachments/scimitars, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"JC" = ( +"Dr" = ( +/obj/structure/machinery/door/airlock/yautja/secure{ + explo_proof = 1; + locked = 1; + name = "\improper External Airlock" + }, +/obj/structure/blocker/invisible_wall, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"Dw" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; - dir = 10; + dir = 8; icon_state = "p_stair_full" }, -/obj/structure/platform/metal/stair_cut/kutjevo_smooth_right, /obj/item/clothing/mask/gas/yautja/hunter{ pixel_y = 27; anchored = 1 }, -/turf/open/floor/strata/grey_multi_tiles, +/obj/structure/platform/metal/stair_cut/kutjevo_smooth_right, +/turf/open/shuttle/predship, /area/yautja) -"JH" = ( +"DF" = ( +/obj/item/reagent_container/food/snacks/xenomeatbreadslice, +/obj/item/reagent_container/food/snacks/xenomeatbreadslice, +/obj/item/reagent_container/food/snacks/xenomeatbreadslice, +/obj/item/reagent_container/food/snacks/xenomeatbreadslice, +/obj/item/reagent_container/food/snacks/xenomeatbreadslice, +/obj/item/reagent_container/food/snacks/tomatomeat, +/obj/item/reagent_container/food/snacks/tomatomeat, +/obj/item/reagent_container/food/snacks/tomatomeat, +/obj/item/reagent_container/food/snacks/tomatomeat, +/obj/item/reagent_container/food/snacks/tomatomeat, +/obj/structure/closet/secure_closet/freezer/fridge/yautja, +/turf/open/floor/darkred2/northwest, +/area/yautja) +"DJ" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/obj/structure/machinery/computer/crew/alt/yautja, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"JL" = ( -/obj/item/weapon/yautja/knife{ - color = "#FFE55C"; - name = "sacred ceremonial dagger"; - pixel_x = 25 +"DX" = ( +/obj/structure/largecrate/random/barrel/true_random, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"Eb" = ( +/obj/structure/ladder{ + height = 2; + id = "predcells" }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"JZ" = ( -/obj/structure/machinery/prop/almayer/CICmap/yautja{ - pixel_y = 2 +"Es" = ( +/obj/structure/bed/chair/hunter, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Et" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Ku" = ( -/obj/structure/bed/chair/comfy/yautja{ - dir = 1 - }, +"EE" = ( +/obj/structure/window/framed/colony/reinforced/yautja, /turf/open/shuttle/predship, /area/yautja) -"Kx" = ( -/obj/structure/showcase{ - desc = "An ancient, dusty tomb with strange alien writing. It's best not to touch it."; - icon_state = "yaut"; - icon = 'icons/obj/structures/morgue.dmi'; - name = "alien sarcophagus" +"EF" = ( +/obj/structure/machinery/door/airlock/yautja{ + name = "\improper Holding Cell 2" }, -/obj/item/clothing/mask/gas/yautja/hunter{ - anchored = 1; - pixel_y = 20 +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "thrall_cell_2"; + name = "\improper Human Cell 2" }, -/turf/open/floor/corsat/squareswood/north, +/turf/open/shuttle/predship, /area/yautja) -"KD" = ( +"Fh" = ( +/turf/open/floor/strata/grey_multi_tiles/southwest, +/area/yautja) +"Ft" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/obj/structure/window/reinforced{ - dir = 8; - health = 80 +/obj/item/storage/medicomp/full, +/turf/open/shuttle/predship, +/area/yautja) +"Fy" = ( +/obj/structure/window/framed/colony/reinforced/hull{ + color = "#aba9a9" }, -/obj/item/reagent_container/glass/rag/polishing_rag, -/obj/item/reagent_container/glass/rag/polishing_rag{ - pixel_x = 9 +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"FG" = ( +/obj/effect/landmark/clan_spawn, +/turf/open/shuttle/predship, +/area/yautja) +"Gd" = ( +/obj/structure/machinery/door/airlock/yautja/secure, +/turf/open/shuttle/predship, +/area/yautja) +"Gk" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, -/obj/item/reagent_container/glass/rag/polishing_rag{ - pixel_x = 4; - pixel_y = 3 +/obj/item/explosive/grenade/spawnergrenade/spesscarp{ + anchored = 1; + desc = "A strange device taken from a far-off land. It looks incredibly fragile, best not to touch it." }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"KI" = ( -/obj/item/tool/kitchen/tray{ - pixel_y = -5 +"Go" = ( +/obj/item/weapon/yautja/knife{ + name = "sacred ceremonial dagger"; + pixel_y = 34; + anchored = 1 }, -/obj/item/reagent_container/food/snacks/bearmeat, -/obj/effect/decal/cleanable/blood, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"KK" = ( -/obj/effect/decal/remains/human{ - pixel_y = -25 - }, -/turf/open/shuttle/predship, +"Gr" = ( +/turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, /area/yautja) -"KV" = ( +"GM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"GX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"GY" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/trash/plate, +/obj/item/weapon/chainofcommand, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Lo" = ( -/obj/structure/machinery/vending/dinnerware/yautja, +"Hp" = ( +/obj/structure/bed/chair/hunter{ + dir = 8 + }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"LX" = ( -/obj/structure/machinery/hunting_ground_selection, +"Hv" = ( +/obj/item/bedsheet/captain{ + color = "#aba9a9" + }, +/obj/structure/bed/alien/yautja/leader, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Mb" = ( +"HD" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + density = 0; + layer = 2.79; + pixel_y = 24 + }, +/obj/item/weapon/gun/energy/yautja/plasmarifle{ + pixel_y = -8 + }, +/obj/item/weapon/gun/energy/yautja/plasmarifle, +/obj/item/weapon/gun/energy/yautja/plasmarifle{ + pixel_y = 8 + }, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"HE" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "thrall_cell_5"; + name = "\improper Human Cell 5" + }, +/obj/structure/machinery/door/airlock/yautja{ + name = "\improper Holding Cell 5" + }, +/turf/open/shuttle/predship, +/area/yautja) +"HN" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/skull/corroder{ - anchored = 1 +/obj/structure/window/reinforced{ + dir = 1; + health = 80; + pixel_y = 16 }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Mz" = ( +"If" = ( /obj/structure/surface/rack{ color = "#6b675e"; layer = 2.79 }, -/obj/item/hunting_trap, -/obj/item/hunting_trap, -/obj/item/hunting_trap, -/obj/item/hunting_trap, -/obj/item/hunting_trap, -/obj/item/hunting_trap, -/obj/item/hunting_trap, -/obj/item/hunting_trap, +/obj/item/weapon/gun/energy/yautja/plasmapistol{ + pixel_y = -8 + }, +/obj/item/weapon/gun/energy/yautja/plasmapistol, +/obj/item/weapon/gun/energy/yautja/plasmapistol{ + pixel_y = 8 + }, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"ME" = ( -/obj/structure/stairs/perspective{ +"Im" = ( +/obj/structure/surface/rack{ color = "#6b675e"; - dir = 8; - icon_state = "p_stair_full" + layer = 2.79 }, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"MI" = ( -/obj/structure/machinery/door/airlock/yautja{ - name = "\improper Blooded Teleporter" +/obj/item/weapon/unathiknife{ + attack_speed = 12; + force = 25; + pixel_x = 6 }, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"NA" = ( -/turf/open/floor/darkred2, -/area/yautja) -"NS" = ( -/obj/structure/machinery/prop/almayer/CICmap/yautja{ +/obj/item/weapon/unathiknife{ + attack_speed = 12; + force = 25; + pixel_x = 2; pixel_y = 2 }, -/turf/open/floor/strata/grey_multi_tiles/southwest, -/area/yautja) -"Oj" = ( -/obj/structure/stairs/perspective{ - color = "#6b675e"; - dir = 6; - icon_state = "p_stair_full" +/obj/item/weapon/unathiknife{ + attack_speed = 12; + force = 25; + pixel_x = -1; + pixel_y = 4 }, -/obj/structure/platform/metal/stair_cut/kutjevo_smooth_left, -/obj/item/clothing/mask/gas/yautja/hunter{ - pixel_y = 27; - anchored = 1 +/obj/item/weapon/unathiknife{ + attack_speed = 12; + force = 25; + pixel_x = -5; + pixel_y = 6 }, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"Ok" = ( -/turf/open/gm/dirtgrassborder/desert, +/turf/open/shuttle/predship, /area/yautja) -"OZ" = ( -/obj/structure/bed/chair/comfy/yautja{ +"Ip" = ( +/obj/structure/barricade/handrail/strata{ dir = 1 }, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"Iw" = ( +/obj/structure/machinery/door/airlock/yautja/secure{ + name = "\improper Hellhound Quarters" + }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Pm" = ( -/obj/item/stack/sheet/glass{ +"IC" = ( +/obj/structure/machinery/door/airlock/yautja/secure/elder{ + name = "\improper Elder Quarters" + }, +/turf/open/shuttle/predship, +/area/yautja) +"ID" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/bedroll, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"IV" = ( +/obj/structure/machinery/cm_vending/clothing/yautja/centre, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"Je" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/stack/sheet/metal{ amount = 50 }, -/obj/item/stack/sheet/glass{ +/obj/item/stack/sheet/metal{ amount = 50 }, -/obj/item/stack/sheet/glass{ +/obj/item/stack/sheet/metal{ amount = 50 }, -/obj/structure/surface/rack{ - color = "#6b675e"; - layer = 2.79 +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Pp" = ( -/obj/effect/alien/weeds/node/forsaken, -/turf/open/floor/strata/grey_multi_tiles, -/area/yautja) -"Pr" = ( -/obj/structure/machinery/door/airlock/yautja/secure{ - name = "\improper Research Containment" +"Jg" = ( +/obj/structure/closet/crate{ + color = "#6b675e" }, +/obj/item/bracer_attachments/scimitars, +/obj/item/bracer_attachments/scimitars, +/obj/item/bracer_attachments/scimitars_alt, +/obj/item/bracer_attachments/scimitars_alt, +/obj/item/bracer_attachments/scimitars, +/obj/item/bracer_attachments/scimitars, +/obj/item/bracer_attachments/scimitars, +/obj/item/bracer_attachments/scimitars, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Pv" = ( +"JC" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; - dir = 8; + dir = 10; icon_state = "p_stair_full" }, -/obj/structure/platform/metal/kutjevo_smooth, +/obj/structure/platform/metal/stair_cut/kutjevo_smooth_right, +/obj/item/clothing/mask/gas/yautja/hunter{ + pixel_y = 27; + anchored = 1 + }, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Qi" = ( -/obj/structure/machinery/gibber/yautja, -/turf/open/floor/darkred2/southeast, -/area/yautja) -"Qj" = ( -/obj/structure/kitchenspike, -/obj/item/reagent_container/food/snacks/meat/corgi, -/obj/item/reagent_container/food/snacks/meat/corgi, -/obj/item/reagent_container/food/snacks/meat/xenomeat, -/obj/item/reagent_container/food/snacks/meat/xenomeat, -/turf/open/floor/darkred2/north, +"JH" = ( +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Qs" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/item/alien_embryo{ - pixel_y = 8; - pixel_x = 23 - }, -/obj/structure/machinery/juicer/yautja{ - pixel_y = 9 - }, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"QF" = ( +"JL" = ( /obj/item/weapon/yautja/knife{ color = "#FFE55C"; name = "sacred ceremonial dagger"; - pixel_x = -25 + pixel_x = 25 }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Rj" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +"JZ" = ( +/obj/structure/machinery/prop/almayer/CICmap/yautja{ + pixel_y = 2 }, -/obj/item/weapon/gun/pistol/heavy/co/gold, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"RE" = ( -/obj/structure/closet/secure_closet/freezer/fridge/groceries/yautja, -/turf/open/floor/darkred2/southeast, -/area/yautja) -"RG" = ( -/obj/structure/platform_decoration/metal/kutjevo_smooth/east, -/turf/open/floor/corsat/squareswood/north, -/area/yautja) -"RS" = ( -/turf/open/gm/dirtgrassborder/north, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Sx" = ( -/turf/open/floor/darkred2/west, +"Kk" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "thrall_cell_3"; + name = "\improper Human Cell 3" + }, +/obj/structure/machinery/door/airlock/yautja{ + name = "\improper Holding Cell 3" + }, +/turf/open/shuttle/predship, /area/yautja) -"SB" = ( +"Ku" = ( /obj/structure/bed/chair/comfy/yautja{ - dir = 8 + dir = 1 }, /turf/open/shuttle/predship, /area/yautja) -"SW" = ( -/obj/structure/platform_decoration/metal/kutjevo_smooth, -/turf/open/shuttle/predship, +"Kx" = ( +/obj/structure/showcase{ + desc = "An ancient, dusty tomb with strange alien writing. It's best not to touch it."; + icon_state = "yaut"; + icon = 'icons/obj/structures/morgue.dmi'; + name = "alien sarcophagus" + }, +/obj/item/clothing/mask/gas/yautja/hunter{ + anchored = 1; + pixel_y = 20 + }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"TR" = ( -/obj/structure/stairs/perspective{ - color = "#6b675e"; - icon_state = "p_stair_full" +"KD" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" }, -/obj/structure/platform/metal/kutjevo_smooth/east, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/item/reagent_container/glass/rag/polishing_rag, +/obj/item/reagent_container/glass/rag/polishing_rag{ + pixel_x = 9 + }, +/obj/item/reagent_container/glass/rag/polishing_rag{ + pixel_x = 4; + pixel_y = 3 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"KI" = ( +/obj/item/tool/kitchen/tray{ + pixel_y = -5 + }, +/obj/item/reagent_container/food/snacks/bearmeat, +/obj/effect/decal/cleanable/blood, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Ut" = ( -/obj/structure/surface/rack{ - color = "#6b675e"; - layer = 2.79 +"KJ" = ( +/obj/effect/decal/cleanable/blood{ + basecolor = "#20d450"; + color = "#20d450" }, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/obj/item/frame/table/wood, -/turf/open/floor/corsat/squareswood/north, +/turf/open/gm/dirtgrassborder/south, /area/yautja) -"Uv" = ( -/obj/effect/decal/remains/xeno{ +"KK" = ( +/obj/effect/decal/remains/human{ pixel_y = -25 }, /turf/open/shuttle/predship, /area/yautja) -"UJ" = ( -/obj/structure/platform/metal/kutjevo_smooth/east, +"KV" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/obj/item/trash/plate, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"UR" = ( -/obj/structure/stairs/perspective{ - color = "#6b675e"; - dir = 5; - icon_state = "p_stair_full" - }, +"Lo" = ( +/obj/structure/machinery/vending/dinnerware/yautja, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"UT" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +"LX" = ( +/obj/structure/machinery/hunting_ground_selection, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"LZ" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/stack/medical/advanced/ointment/predator{ + desc = "A poultice made of cold, blue petals that is rubbed on burns. Not to be removed from the ship."; + name = "arena soothing herbs"; + pixel_x = 6 + }, +/obj/item/stack/medical/advanced/bruise_pack/predator{ + desc = "A poultice made of soft leaves that is rubbed on bruises. Not to be removed from the ship."; + name = "arena mending herbs"; + pixel_x = -6 + }, +/obj/item/stack/medical/advanced/bruise_pack/predator{ + desc = "A poultice made of soft leaves that is rubbed on bruises. Not to be removed from the ship."; + name = "arena mending herbs"; + pixel_x = -6 + }, +/obj/item/stack/medical/advanced/bruise_pack/predator{ + desc = "A poultice made of soft leaves that is rubbed on bruises. Not to be removed from the ship."; + name = "arena mending herbs"; + pixel_x = -6 + }, +/obj/item/stack/medical/advanced/ointment/predator{ + desc = "A poultice made of cold, blue petals that is rubbed on burns. Not to be removed from the ship."; + name = "arena soothing herbs"; + pixel_x = 6 + }, +/obj/item/stack/medical/advanced/ointment/predator{ + desc = "A poultice made of cold, blue petals that is rubbed on burns. Not to be removed from the ship."; + name = "arena soothing herbs"; + pixel_x = 6 }, -/obj/item/xeno_restraints, -/obj/item/xeno_restraints, -/obj/item/xeno_restraints, -/obj/item/xeno_restraints, -/obj/item/xeno_restraints, -/obj/item/xeno_restraints, /turf/open/shuttle/predship, /area/yautja) -"VT" = ( +"Mb" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/structure/showcase{ - desc = "A console used by the Hunters for navigation purposes."; - dir = 4; - icon = 'icons/obj/structures/machinery/yautja_machines.dmi'; - icon_state = "cameras"; - name = "Radar Console" +/obj/item/skull/corroder, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Mz" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, +/obj/item/hunting_trap, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"VY" = ( -/obj/structure/window/framed/colony/reinforced/hull/yautja, -/turf/open/floor/strata/grey_multi_tiles/southwest, -/area/yautja) -"We" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" +"ME" = ( +/obj/structure/stairs/perspective{ + color = "#6b675e"; + dir = 8; + icon_state = "p_stair_full" }, -/obj/item/weapon/baton/cattleprod, -/obj/item/weapon/baton/cattleprod, -/obj/item/weapon/baton/cattleprod, -/obj/item/weapon/baton/cattleprod, -/obj/item/weapon/baton/cattleprod, -/obj/item/weapon/baton/cattleprod, -/turf/open/shuttle/predship, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Wg" = ( +"MI" = ( /obj/structure/machinery/door/airlock/yautja{ - dir = 1; - name = "\improper Gladiator Hall" + name = "\improper Blooded Teleporter" }, -/turf/open/shuttle/predship, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Ww" = ( +"MW" = ( +/turf/open/floor/light/red, +/area/yautja/lower_deck) +"Nb" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, -/obj/item/reagent_container/food/snacks/stew, +/obj/item/reagent_container/food/snacks/wishsoup, /obj/item/tool/kitchen/utensil/spoon, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"Ng" = ( +/obj/structure/barricade/handrail/strata{ + dir = 1 + }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"Xc" = ( -/obj/structure/platform/metal/kutjevo_smooth/west, -/turf/open/floor/corsat/squareswood/north, +"NA" = ( +/turf/open/floor/darkred2, /area/yautja) -"Xg" = ( -/obj/structure/surface/table/reinforced/prison{ - color = "#6b675e" - }, -/obj/item/tool/kitchen/tray, -/obj/item/tool/kitchen/utensil/fork{ - pixel_x = 10; - pixel_y = 3 +"NE" = ( +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"NS" = ( +/obj/structure/machinery/prop/almayer/CICmap/yautja{ + pixel_y = 2 }, -/turf/open/floor/corsat/squareswood/north, +/turf/open/floor/strata/grey_multi_tiles/southwest, /area/yautja) -"Xp" = ( -/obj/structure/surface/rack{ +"Oj" = ( +/obj/structure/stairs/perspective{ color = "#6b675e"; - layer = 2.79 - }, -/obj/item/weapon/baseballbat/metal{ - attack_speed = 12; - force = 25; - name = "\improper duelling metal bat"; - pixel_x = -2; - pixel_y = 2 + dir = 6; + icon_state = "p_stair_full" }, -/obj/item/weapon/baseballbat/metal{ - attack_speed = 12; - force = 25; - name = "\improper duelling metal bat"; - pixel_x = -5; - pixel_y = 4 +/obj/structure/platform/metal/stair_cut/kutjevo_smooth_left, +/obj/item/clothing/mask/gas/yautja/hunter{ + pixel_y = 27; + anchored = 1 }, -/obj/item/weapon/baseballbat/metal{ - attack_speed = 12; - force = 25; - name = "\improper duelling metal bat" +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"Ok" = ( +/obj/structure/machinery/shower{ + dir = 1 }, -/obj/item/weapon/baseballbat/metal{ - attack_speed = 12; - force = 25; - name = "\improper duelling metal bat"; - pixel_x = -7; - pixel_y = 6 +/turf/open/floor/shiva/radiator_tile2, +/area/yautja/lower_deck) +"OB" = ( +/obj/structure/barricade/handrail/strata{ + dir = 4 }, -/turf/open/shuttle/predship, -/area/yautja) -"Xs" = ( +/obj/effect/decal/cleanable/blood{ + basecolor = "#20d450"; + color = "#20d450" + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"OU" = ( /obj/structure/barricade/handrail/strata{ dir = 4 }, -/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"OZ" = ( +/obj/structure/bed/chair/comfy/yautja{ + dir = 1 + }, +/turf/open/floor/corsat/squareswood/north, /area/yautja) -"XA" = ( -/obj/item/clothing/yautja_cape/ceremonial{ - anchored = 1; - color = "#292b29"; - pixel_x = 2; - pixel_y = 32 +"Pm" = ( +/obj/item/stack/sheet/glass{ + amount = 50 }, -/obj/item/clothing/suit/armor/yautja/hunter{ - anchored = 1; - color = "#FFE55C"; - icon_state = "halfarmor_elder_joshuu"; - pixel_y = 30 +/obj/item/stack/sheet/glass{ + amount = 50 }, -/obj/item/clothing/mask/gas/yautja/hunter{ - anchored = 1; - color = "#FFE55C"; - icon_state = "pred_mask_elder_joshuu"; - pixel_y = 40 +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 }, +/obj/item/storage/belt/utility/pred/full, +/obj/item/storage/belt/utility/pred/full, +/obj/item/storage/belt/utility/pred/full, +/obj/item/storage/belt/utility/pred/full, +/obj/item/storage/belt/utility/pred/full, +/obj/item/storage/belt/utility/pred/full, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"XP" = ( -/obj/structure/machinery/cryopod/no_store, +"Pp" = ( +/obj/effect/alien/weeds/node/forsaken, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Ys" = ( -/obj/structure/reagent_dispensers/watertank/yautja, -/turf/open/floor/darkred2/southwest, +"Pr" = ( +/obj/structure/machinery/door/airlock/yautja/secure{ + name = "\improper Research Containment" + }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"YL" = ( -/obj/structure/machinery/door/airlock/yautja{ - dir = 1; - name = "\improper Cryo Room" +"Pv" = ( +/obj/structure/stairs/perspective{ + color = "#6b675e"; + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform/metal/kutjevo_smooth, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"Qg" = ( +/obj/structure/stairs/perspective{ + color = "#6b675e"; + dir = 6; + icon_state = "p_stair_full" + }, +/obj/structure/platform/metal/stair_cut/kutjevo_smooth_left, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"Qi" = ( +/obj/structure/machinery/gibber/yautja, +/turf/open/floor/darkred2/southeast, +/area/yautja) +"Qj" = ( +/obj/structure/kitchenspike, +/obj/item/reagent_container/food/snacks/meat/corgi, +/obj/item/reagent_container/food/snacks/meat/corgi, +/obj/item/reagent_container/food/snacks/meat/xenomeat, +/obj/item/reagent_container/food/snacks/meat/xenomeat, +/turf/open/floor/darkred2/north, +/area/yautja) +"Qs" = ( +/obj/structure/machinery/chem_master/yautja, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Qw" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"QF" = ( +/obj/item/weapon/yautja/knife{ + color = "#FFE55C"; + name = "sacred ceremonial dagger"; + pixel_x = -25 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Rj" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/obj/item/weapon/gun/pistol/heavy/co/gold, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Rr" = ( +/obj/structure/machinery/shower{ + dir = 4 }, +/turf/open/floor/shiva/radiator_tile2, +/area/yautja/lower_deck) +"RC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/largecrate/random, /turf/open/shuttle/predship, +/area/yautja/lower_deck) +"RE" = ( +/obj/structure/closet/secure_closet/freezer/fridge/groceries/yautja, +/turf/open/floor/darkred2/southeast, /area/yautja) -"Zi" = ( -/obj/structure/sink{ - pixel_y = 25 +"RG" = ( +/obj/structure/platform_decoration/metal/kutjevo_smooth/east, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Sq" = ( +/obj/structure/barricade/handrail/strata{ + dir = 1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/shuttle/predship, +/area/yautja/lower_deck) +"Sx" = ( +/turf/open/floor/darkred2/west, /area/yautja) -"Zq" = ( -/obj/structure/platform/metal/kutjevo_smooth/west, +"SB" = ( +/obj/structure/bed/chair/hunter{ + dir = 8 + }, /turf/open/shuttle/predship, /area/yautja) -"Zs" = ( -/obj/structure/machinery/door/airlock/yautja/secure{ - name = "\improper Heavy Armory" +"ST" = ( +/obj/effect/decal/cleanable/blood{ + basecolor = "#20d450"; + color = "#20d450" }, -/obj/structure/machinery/door/poddoor/shutters/almayer/yautja{ - dir = 4 +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja/lower_deck) +"SW" = ( +/obj/structure/platform_decoration/metal/kutjevo_smooth, +/turf/open/shuttle/predship, +/area/yautja) +"TM" = ( +/obj/structure/bed/bedroll{ + dir = 1 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"TR" = ( +/obj/structure/stairs/perspective{ + color = "#6b675e"; + icon_state = "p_stair_full" }, +/obj/structure/platform/metal/kutjevo_smooth/east, /turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"Zu" = ( -/obj/structure/machinery/chem_master/yautja{ - req_skill_level = 1 +"Up" = ( +/obj/structure/barricade/handrail/strata, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, +/area/yautja) +"Ut" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/obj/item/frame/table/wood, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Uv" = ( +/obj/effect/decal/remains/xeno{ + pixel_y = -25 }, +/turf/open/shuttle/predship, +/area/yautja) +"UJ" = ( +/obj/structure/platform/metal/kutjevo_smooth/east, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"ZD" = ( +"UR" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; - dir = 8; + dir = 5; icon_state = "p_stair_full" }, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"ZI" = ( -/turf/open/gm/dirtgrassborder/desert3, +"UT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"VT" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/obj/structure/showcase{ + desc = "A console equipped with a radar used by the Hunters to detect gear and good hunting grounds."; + dir = 8; + icon = 'icons/obj/structures/machinery/yautja_machines.dmi'; + icon_state = "terminal"; + name = "Radar Console"; + pixel_x = -7 + }, +/turf/open/floor/strata/grey_multi_tiles, /area/yautja) -"ZM" = ( +"VY" = ( +/obj/structure/window/framed/colony/reinforced/hull/yautja, +/turf/open/floor/strata/grey_multi_tiles/southwest, +/area/yautja) +"Wg" = ( +/obj/structure/machinery/door/airlock/yautja{ + dir = 1; + name = "\improper Gladiator Hall" + }, +/turf/open/shuttle/predship, +/area/yautja) +"Ww" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" }, +/obj/item/reagent_container/food/snacks/stew, +/obj/item/tool/kitchen/utensil/spoon, /turf/open/floor/corsat/squareswood/north, /area/yautja) -"ZQ" = ( -/obj/structure/machinery/iv_drip, +"Xc" = ( +/obj/structure/platform/metal/kutjevo_smooth/west, /turf/open/floor/corsat/squareswood/north, /area/yautja) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa +"Xg" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/obj/item/tool/kitchen/tray, +/obj/item/tool/kitchen/utensil/fork{ + pixel_x = 10; + pixel_y = 3 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"Xl" = ( +/obj/structure/bed/chair/comfy/yautja{ + dir = 8 + }, +/turf/open/shuttle/predship, +/area/yautja) +"Xp" = ( +/obj/structure/surface/rack{ + color = "#6b675e"; + layer = 2.79 + }, +/obj/item/weapon/baseballbat/metal{ + attack_speed = 12; + force = 25; + name = "\improper duelling metal bat"; + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/weapon/baseballbat/metal{ + attack_speed = 12; + force = 25; + name = "\improper duelling metal bat"; + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/weapon/baseballbat/metal{ + attack_speed = 12; + force = 25; + name = "\improper duelling metal bat" + }, +/obj/item/weapon/baseballbat/metal{ + attack_speed = 12; + force = 25; + name = "\improper duelling metal bat"; + pixel_x = -7; + pixel_y = 6 + }, +/turf/open/shuttle/predship, +/area/yautja) +"Xu" = ( +/obj/effect/decal/cleanable/generic, +/turf/open/floor/corsat/squareswood/north, +/area/yautja/lower_deck) +"XA" = ( +/obj/item/clothing/yautja_cape/ceremonial{ + anchored = 1; + color = "#292b29"; + pixel_x = 2; + pixel_y = 32 + }, +/obj/item/clothing/suit/armor/yautja/hunter{ + anchored = 1; + color = "#FFE55C"; + icon_state = "halfarmor_elder_joshuu"; + pixel_y = 30 + }, +/obj/item/clothing/mask/gas/yautja/hunter{ + anchored = 1; + color = "#FFE55C"; + icon_state = "pred_mask_elder_joshuu"; + pixel_y = 40 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"XK" = ( +/obj/structure/machinery/door_control{ + name = "cell-3-shutter"; + id = "thrall_cell_3"; + pixel_y = 6; + pixel_x = -10 + }, +/turf/closed/wall/huntership, +/area/yautja) +"XP" = ( +/obj/structure/machinery/cryopod/no_store, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"Yi" = ( +/obj/structure/machinery/door_control{ + name = "cell-4-shutter"; + id = "thrall_cell_4"; + pixel_y = 6; + pixel_x = 10 + }, +/turf/closed/wall/huntership, +/area/yautja) +"Ys" = ( +/obj/structure/reagent_dispensers/watertank/yautja, +/turf/open/floor/darkred2/southwest, +/area/yautja) +"YL" = ( +/obj/structure/machinery/door/airlock/yautja{ + dir = 1; + name = "\improper Cryo Room" + }, +/turf/open/shuttle/predship, +/area/yautja) +"Zi" = ( +/obj/structure/barricade/handrail/strata, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/shuttle/predship, +/area/yautja/lower_deck) +"Zq" = ( +/obj/structure/platform/metal/kutjevo_smooth/west, +/turf/open/shuttle/predship, +/area/yautja) +"Zs" = ( +/obj/structure/machinery/door/airlock/yautja/secure{ + name = "\improper Heavy Armory" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/yautja{ + dir = 4 + }, +/turf/open/floor/strata/grey_multi_tiles, +/area/yautja) +"ZD" = ( +/obj/structure/stairs/perspective{ + color = "#6b675e"; + dir = 8; + icon_state = "p_stair_full" + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"ZG" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/obj/item/storage/box/handcuffs{ + pixel_y = -2 + }, +/obj/item/storage/box/handcuffs{ + pixel_y = 11 + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"ZM" = ( +/obj/structure/surface/table/reinforced/prison{ + color = "#6b675e" + }, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) +"ZQ" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/corsat/squareswood/north, +/area/yautja) + +(1,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +bj +ah +ah +ah +bj +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +"} +(2,1,1) = {" aa aa aa @@ -3065,6 +3929,13 @@ aa aa aa aa +bj +bj +oO +JH +aB +bj +bj aa aa aa @@ -3108,8 +3979,9 @@ aa aa aa aa +dI "} -(2,1,1) = {" +(3,1,1) = {" aa aa aa @@ -3128,6 +4000,15 @@ aa aa aa aa +bj +bj +cY +JH +JH +JH +KI +bj +bj aa aa aa @@ -3170,6 +4051,9 @@ aa aa aa aa +dI +"} +(4,1,1) = {" aa aa aa @@ -3180,15 +4064,6 @@ aa aa aa aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa aa aa aa @@ -3196,6 +4071,17 @@ aa aa aa aa +bj +bj +aB +JH +JH +JH +JH +JH +aB +bj +bj aa aa aa @@ -3237,6 +4123,9 @@ aa aa aa aa +dI +"} +(5,1,1) = {" aa aa aa @@ -3249,11 +4138,34 @@ aa aa aa aa +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +Iw +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj aa aa aa -"} -(4,1,1) = {" aa aa aa @@ -3283,6 +4195,9 @@ aa aa aa aa +dI +"} +(6,1,1) = {" aa aa aa @@ -3293,6 +4208,34 @@ aa aa aa aa +ac +bj +bj +as +bJ +aY +pF +cj +bL +an +bj +bj +cT +bL +db +bj +cP +cP +bj +bY +cl +te +te +te +bj +bj +bj +bj aa aa aa @@ -3324,12 +4267,9 @@ aa aa aa aa +dI "} -(5,1,1) = {" -aa -aa -aa -aa +(7,1,1) = {" aa aa aa @@ -3340,6 +4280,36 @@ aa aa aa aa +ae +bj +bj +bb +nW +bS +bL +jR +bL +cx +rt +bj +cU +cP +qj +bj +cP +cP +bj +cf +bL +bL +bL +bL +ai +dk +JH +bj +bj +bj aa aa aa @@ -3369,6 +4339,9 @@ aa aa aa aa +dI +"} +(8,1,1) = {" aa aa aa @@ -3379,6 +4352,38 @@ aa aa aa aa +ae +af +at +bS +bK +cP +cP +cP +cP +cP +Ft +bj +cV +cP +AA +bj +cP +cP +bp +cP +cP +cP +cP +cP +dc +df +JH +xn +xn +bj +bj +bj aa aa aa @@ -3396,8 +4401,6 @@ aa aa aa aa -"} -(6,1,1) = {" aa aa aa @@ -3408,6 +4411,9 @@ aa aa aa aa +dI +"} +(9,1,1) = {" aa aa aa @@ -3418,6 +4424,38 @@ aa aa aa aa +ae +af +at +bw +bS +cP +cP +cP +cP +cP +cP +bj +bq +br +cP +bx +cP +cP +bj +Qs +cq +bN +bL +bL +ak +dl +JH +JH +JH +Et +bj +bj aa aa aa @@ -3445,6 +4483,9 @@ aa aa aa aa +dI +"} +(10,1,1) = {" aa aa aa @@ -3455,6 +4496,39 @@ aa aa aa aa +ae +bj +bj +ZQ +bL +bL +bj +bo +cP +cP +cP +bj +cW +cP +cP +bx +cP +cP +bj +bA +Cn +cb +te +te +bj +JH +JH +JH +JH +JH +bj +bj +bj aa aa aa @@ -3468,9 +4542,6 @@ aa aa aa aa -"} -(7,1,1) = {" -aa aa aa aa @@ -3484,13 +4555,53 @@ aa aa aa aa +dI +"} +(11,1,1) = {" aa +bj +bj +bj aa aa aa aa aa aa +ad +bj +bj +aE +aW +aQ +bj +bs +bL +cP +cP +bj +bL +cP +bL +bj +cP +cP +bj +bj +bj +bj +bj +bj +bj +bj +bj +ai +Pr +ai +bj +bj +bj +bj aa aa aa @@ -3516,8 +4627,14 @@ aa aa aa aa +dI +"} +(12,1,1) = {" aa aa +bj +bj +bj aa aa aa @@ -3525,10 +4642,38 @@ aa aa aa aa +bj +bj +bj +bj +bj +bj +bj +aT +aT +bj +bL +cP +bL +bj +cP +cP +bj aa aa aa +dI aa +bj +bj +bj +dj +JH +dj +bj +bj +bj +bj aa aa aa @@ -3540,8 +4685,6 @@ aa aa aa aa -"} -(8,1,1) = {" aa aa aa @@ -3556,9 +4699,15 @@ aa aa aa aa +dI +"} +(13,1,1) = {" aa aa aa +ac +bj +bj aa aa aa @@ -3571,11 +4720,33 @@ aa aa aa aa +bj +cP +cP +bj +cX +aN +cX +bj +cP +cP +bj aa +dI aa aa aa aa +bj +bj +dj +Pp +dj +bj +bj +bj +bj +bj aa aa aa @@ -3600,9 +4771,16 @@ aa aa aa aa +dI +"} +(14,1,1) = {" aa aa aa +ae +bj +bj +bj aa aa aa @@ -3612,15 +4790,35 @@ aa aa aa aa -"} -(9,1,1) = {" aa +bj +bj +cP +cP +bj +bj +bj +bj +bj +bl +bl +bj +bj aa aa aa aa aa aa +bj +bj +bj +bj +bj +bj +bj +bj +bj aa aa aa @@ -3645,9 +4843,17 @@ aa aa aa aa +dI +"} +(15,1,1) = {" aa aa aa +ad +bj +bj +bj +bj aa aa aa @@ -3657,6 +4863,20 @@ aa aa aa aa +bj +wQ +cP +cP +cP +cP +cP +cP +cP +cP +cP +fo +bj +bj aa aa aa @@ -3684,8 +4904,6 @@ aa aa aa aa -"} -(10,1,1) = {" aa aa aa @@ -3697,8 +4915,41 @@ aa aa aa aa +dI +"} +(16,1,1) = {" aa aa +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +ah +ah +ah +bj +bj +bj +wQ +cP +cP +bz +HN +nh +ZM +au +cP +cP +fo +bj +bj +bj aa aa aa @@ -3708,6 +4959,16 @@ aa aa aa aa +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj aa aa aa @@ -3726,9 +4987,61 @@ aa aa aa aa +dI +"} +(17,1,1) = {" aa aa aa +ac +bj +bj +CT +pW +hL +bj +bj +ZM +dU +bL +dU +ZM +bj +bj +wQ +cP +cP +wQ +bj +bj +bj +wQ +cP +cP +fo +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +ZG +lt +bj +bL +wA +bj +wA +bL +bj +bj aa aa aa @@ -3746,24 +5059,67 @@ aa aa aa aa +dI +"} +(18,1,1) = {" aa aa aa -aa -aa -aa -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa +ae +bj +bj +cP +JH +Mz +bj +et +FG +FG +FG +FG +cP +wQ +bj +wQ +cP +bL +wQ +bP +bd +bP +wQ +bL +cP +fo +bj +bj +bj +bj +bj +bj +hY +is +cu +bj +cP +cP +bj +aw +aw +rJ +HE +EE +bj +EE +rA +Yi +bj +bj +bj +bj +bj +bj +bj aa aa aa @@ -3775,85 +5131,68 @@ aa aa aa aa +dI +"} +(19,1,1) = {" aa aa aa +ad bj -sx -sx -sx +zj +cP +JH +JH +ku +RG +oC +oC +oC +oC +cP +wQ bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +KD +bL +JH +JH bj +be bj -oO JH -aB +JH +JH +bL +yr +bj +bj +bj +bj +Qj +zA +zA +NA +bj +Eb +cP +pu +cP +cP +cP +cP +cP +cP +cP +cP +cP +cP +bj +GY +CK +QF +Hv +bj +bj bj bj aa @@ -3864,69 +5203,71 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +dI "} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(20,1,1) = {" aa aa bj bj -cY +bj +ko +cP +cP JH +df +bL +bj +bj +bj +dV +cP +wQ +bj +BS JH JH -KI +bL +bL +cP +bL +bL +bL +JH +JH +yr +bj +bM +cP +bj +de +fb +fb +Qi +bj +bj +bj +bj +cP +bL +bL +bL +bL +bL +bL +bL +cP +cP +bj +av +SB +cP +cP +bj +bd +bd +bj +bj bj bj aa @@ -3934,699 +5275,933 @@ aa aa aa aa +dI +"} +(21,1,1) = {" aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ac bj bj -aB -JH -JH +kI +Bd +cP +df +bL +zs +ef +ef +Ku +cP +wQ +bj JH JH +bL +bL +bL +cP +bL +bL +bL +bL JH -aB +yr +bj +cv +cP +bj +bj +bG +bj +bj +bj +bj +cP +cP +bL +bH +ay +ap +ap +ap +cw +kR +bL +cP +aD +bL +cP +cP +KK +bj +cA +cA +bj +cN +cN +bj bj bj aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +dI "} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa +(22,1,1) = {" aa aa aa +ad bj bj bj +JC +cP +TR +UJ +Bd +Xl +Xl +SW +kI bj bj +JH +bL +cI +bL +bL +cP +bL +bL +mv +bL +JH +yr bj +da +cP +cP +cP +cP +cP +cP +cP bj +LZ +cP +bW +Gr +aA +Aw +ax +Aw +bV +Up +bL +cP bj +XA +cP +cP +cP bj +cP +cP +cB +cP +cP +cP +cP bj +ah bj -Iw +aa +dI +"} +(23,1,1) = {" +aa +aa bj bj bj bj +Go +df +cP bj bj +Dw +ME +ME +Pv bj bj bj +dw +Rj +ab +cP +cP +cP +cP +cP +xO +Dk +JH +yr bj +cP +cP +bL +bL +bL +bL +cP +cP bj +jP +cP +bW +aM +aC +al +al +al +cm +aj +bL +cP bj +fg +cP +cP +fj bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +cP +cP +cB +cP +cP +cP +cP +aX +ob +bj +bj +dI "} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(24,1,1) = {" aa aa aa ac bj +Bk +JH +df +cP bj -as -bJ -aY -pF -cj +dT +cP +cP +cP +cP +cP +ah +dT +dR bL -an -bj -bj -cT +cP +cP bL -db -bj bL bL +cP +cP +bL +JH +JH bj -bY -cl -te -te -te -bj -bj -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ae -bj -bj -bb -nW -bS +cP bL -jR +gp +iV +Ww +OZ bL -cx -rt -bj -cU cP -qj bj +Xp cP +bW +aM +al +al +al +al +al +aj +bL cP bj -aj +bj +bj +IC +bj +bj +cP bL +bj bL bL bL -sx -dk -JH -bj -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +cP +Hp +VT +tn +ah +dI "} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(25,1,1) = {" aa aa aa ae bj -at -bS -bK +dz +JH +df +JH +sT cP cP +Fh +Fh +Fh +cP +aP +Zq +vC cP cP +bL +er +ZD +xQ +bL cP -Ft -bj -cV cP -AA -bj cP cP -bp +sV cP +bL +gp +Ww +KV +OZ +bL cP +Wg +bL cP +bW +aM +al +al +aq +al +al +aj +bL cP +bL +ct cP -dc -df JH -xn -xn -bj -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +cP +ct +cP +bL +hI +LX +bL +bL +cP +bL +Hp +Et +ah +ah "} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(26,1,1) = {" aa aa aa ae bj -at -bw -bS -cP +IV cP +df cP +aw cP cP +Fh +NS +Fh cP +ah +bL +bL +bL +bL +bL +bI +bC +bE +bL +bL +bL +bL +bL bj -bq -br -cP -bx -cP -cP +Lo +bL +gp +qS +iV +OZ +bL +bL bj -Zu -cq -Qs +Ao bL +bW +aM +ax +Aw +al +al +am +ed bL -VY -dl -JH +bL +bL +ah JH +JZ JH -Et -bj +ah +cP +bL bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +cE +cP +cP +cP +cP +cP +Es +DJ +ah "} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(27,1,1) = {" aa aa aa ae bj -bj -ZQ +mm +JH +df +JH +sT +cP +cP +Fh +Fh +Fh +cP +aP +kI +Bd +cP +cP bL +UR +eT +jU bL -bj -bo cP cP cP -bj -cW cP +sV +cP +bL +gp +KV +Ww +OZ +bL cP -bx +Wg +bL cP +bW +aM +al +al +al +al +al +aj +bL cP -bj -ak -Cn -bA -te -te -bj bL +ct +cP JH +cP +ct +cP +bL +hI +ag +bL +bL +cP +bL +uO +Et +ah +ah +"} +(28,1,1) = {" +aa +aa +aa +ad +bj +nX JH +df +cP +bj +dT +cP +cP +cP +cP +cP +ah +dT +dR +bL +cP +cP +bL +bL +bL +cP +cP +bL JH JH bj +cP +bL +gp +Ww +Xg +OZ +bL +cP bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(21,1,1) = {" -aa -bj +Im +cP +bW +aM +al +al +al +aq +al +aj +bL +cP bj bj -aa -aa -aa -aa -aa -aa -ad bj +IC bj -aE -aW -aQ bj -bs -bL -cP cP +bL bj bL -cP bL -bj -cP +bL cP +uO +cR +tn +ah +dI +"} +(29,1,1) = {" +aa +aa bj bj bj bj +Go +df +cP bj bj +dD +ME +ME +Pv bj bj bj -sx -Pr -sx -bj +dS +cd +cz +cP +cP +cP +cP +cP +Mb +Gk +JH +bL bj +cP +cP +bL +bL +bL +bL +cP +cP bj +fF +cP +bW +KJ +al +al +al +al +al +aj +bL +cP bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa +fg +cP +cP +Be bj +cP +cP +cB +cP +cP +cP +cP +cR +ob bj bj +dI +"} +(30,1,1) = {" aa aa aa -aa -aa -aa -aa -bj +ac bj bj bj +Oj +cP +ku +Xc +vC +qp +qp +CQ +Zq bj bj +JH +bL +aO +bL +bL +cP +bL +bL +uZ +bL +JH +bL bj -aT -aT +cc +cP +cP +cP +cP +cP +cP +cP bj -bL +rY cP +bW +aR +aH +aq +al +Aw +ao +fq bL +cP +bj +ig +cP +cP +cP bj cP cP +cB +cP +cP +cP +cP +bj +VY bj aa +dI +"} +(31,1,1) = {" aa aa -dI aa +ad bj bj +Zq +vC +cP +df +bL +zs +ef +ef +Ku +cP +wQ bj -dj JH -dj +JH +bL +bL +bL +cP +bL +bL +bL +bL +JH +bL bj +cJ +cP +bj +bj +bG +bj +bj +bj +bj +cP +cP +bL +ch +aJ +ar +ar +ar +bU +Ng +bL +cP +aD +bL +cP +cP +Uv +bj +cA +cA +bj +cO +cO bj bj bj aa aa aa +dI +"} +(32,1,1) = {" aa aa +bj +bj +bj +zj +cP +cP +JH +df +bL +bj +bj +bj +dW +cP +wQ +bj +pN +JH +JH +bL +bL +cP +bL +bL +bL +JH +JH +bL +bj +cL +cr +bj +DF +Sx +wH +Ys +bj +bj +bj +bj +cP +bL +bL +bL +bL +bL +bL +bL +cP +cP +bj +av +eY +cP +cP +bj +bd +bd +bj +bj +bj +bj aa aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +dI "} -(23,1,1) = {" +(33,1,1) = {" aa aa aa ac bj +es +cP +JH +JH +TR +ul +oC +oC +oC +oC +cP +wQ +bj +pN +bL +JH +JH +bj +MI +bj +JH +JH +JH +bL +bL +bj +bj +bj +bj +di +zA +zA +NA +bj +Ak +cP +pu +cP +cP +cP +cP +cP +cP +cP +cP +cP +cP +bj +GY +yO +JL +Hv +bj +bj +bj bj aa aa @@ -4636,32 +6211,62 @@ aa aa aa aa +dI +"} +(34,1,1) = {" aa aa aa -aa +ae +bj +bj +cP +JH +Mz +bj +et +FG +FG +FG +FG +cP +wQ bj +cQ cP +bL +cH +ah +bd +ah +uj +bL cP +tR bj -cX -aN -cX +bj +bj +bj +bj +bj +yH +yH +RE bj cP cP bj -aa -aa -aa -aa -aa -aa +aw +aw +bf +EF +EE +bj +EE +Kk +XK bj bj -dj -Pp -dj bj bj bj @@ -4678,58 +6283,42 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +dI "} -(24,1,1) = {" +(35,1,1) = {" aa aa aa -ae +ad bj bj +CT +pW +hL bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bj +ZM +dU +bL +dU +ZM bj bj +tD cP cP +bg bj bj bj +Ut +cP +cP +fI bj bj -bl -bl bj bj -aa -aa -aa -aa -aa -aa bj bj bj @@ -4739,7 +6328,18 @@ bj bj bj bj +qF +qF +bj +bL +Do +bj +TM +bL +bj +bj aa +dI aa aa aa @@ -4755,6 +6355,70 @@ aa aa aa aa +dI +"} +(36,1,1) = {" +aa +aa +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +ah +ah +ah +bj +bj +bj +Je +cP +cP +Pm +ov +sS +gN +zZ +cP +cP +mn +bj +bj +bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +aa +aa +dI +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -4762,14 +6426,14 @@ aa aa aa aa -aa -aa +aa +dI "} -(25,1,1) = {" +(37,1,1) = {" aa aa aa -ad +ac bj bj bj @@ -4784,7 +6448,7 @@ aa aa aa bj -wQ +cC cP cP cP @@ -4794,7 +6458,7 @@ cP cP cP cP -fo +um bj bj aa @@ -4819,6 +6483,7 @@ aa aa aa aa +dI aa aa aa @@ -4834,15 +6499,26 @@ aa aa aa aa -aa -aa +dI "} -(26,1,1) = {" +(38,1,1) = {" aa aa +aa +ae bj bj bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa bj bj bj @@ -4850,24 +6526,10 @@ bj bj bj bj -sx -sx -sx -bj -bj bj -wQ -cP -cP -bz -ZM -nh -ZM -bz -cP -cP -fo bj +bm +bm bj bj aa @@ -4876,6 +6538,15 @@ aa aa aa aa +bj +bj +bj +bj +bj +bj +bj +bj +bj aa aa aa @@ -4884,6 +6555,7 @@ aa aa aa aa +dI aa aa aa @@ -4899,6 +6571,15 @@ aa aa aa aa +dI +"} +(39,1,1) = {" +aa +aa +aa +ad +bj +bj aa aa aa @@ -4908,54 +6589,31 @@ aa aa aa aa -"} -(27,1,1) = {" aa aa aa -ac -bj -bj -CT -pW -hL -bj -bj -ZM -bH -bL -bH -ZM -bj -bj -wQ -cP -cP -wQ bj bj +bc +bc +bc +bc +bc bj -wQ cP cP -fo -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj bj +aa +aa +aa +aa +aa +aa bj bj +HD +JH +If bj bj bj @@ -4969,6 +6627,7 @@ aa aa aa aa +dI aa aa aa @@ -4980,63 +6639,54 @@ aa aa aa aa -"} -(28,1,1) = {" aa aa aa -ae -bj +aa +dI +"} +(40,1,1) = {" +aa +aa bj -cP -JH -Mz bj -et -FG -FG -FG -FG -cP -wQ bj -wQ -cP -bL -wQ -hI -bd -hI -wQ -bL -cP -fo +aa +aa +aa +aa +aa +aa +aa bj bj bj bj bj bj -hY -is -cu bj -cw -Gr bj -bL -cS +cP +cP +cP +cP +cP +YL +cP +cP bj -bL -cS +aa +aa +aa +aa +aa bj -bL -cS bj bj +HD +JH +If bj -hI -hI bj bj bj @@ -5049,72 +6699,13 @@ aa aa aa aa +dI aa aa aa -"} -(29,1,1) = {" aa aa aa -ad -bj -zj -cP -JH -JH -ku -RG -oC -oC -oC -oC -cP -wQ -bj -KD -bL -JH -JH -bN -be -bN -JH -JH -JH -bL -yr -bj -bj -bj -bj -Qj -zA -zA -NA -bj -UT -cP -bj -bL -bL -bj -bL -bL -bj -bL -bL -bj -bj -bj -GY -CK -QF -Hv -bj -bj -bj -bj aa aa aa @@ -5124,68 +6715,49 @@ aa aa aa aa +dI "} -(30,1,1) = {" -aa +(41,1,1) = {" aa bj bj bj -ko -cP -cP -JH -df -bL -bj -bj -bj +aa +aa +aa +aa +aa +aa +ac bj -eS -wQ bj -BS +aF +JH JH JH bL bL +cF cP bL bL bL -JH -JH -yr +cP bj -bM +cP cP bj -de -fb -fb -Qi bj -We -cP bj -bW -fq bj -ce -fq bj -cm -fq bj bj bj -av -SB -cP -cP bj -bd -bd +sx +Zs +sx bj bj bj @@ -5196,71 +6768,68 @@ aa aa aa aa +aa +aa +aa +dI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +dI "} -(31,1,1) = {" +(42,1,1) = {" aa aa aa -ac +aa +aa +aa +aa +aa +aa +aa +ae bj bj -kI -Bd -cP -df +aG +aL bL -zs -ef -ef -Ku -cP -wQ -bj JH -JH -bL -bL -bL -cP -bL bL bL -bL -JH -yr -bj -cv -cP -bj -bj -bG -bj -bj -bj -bj -aw bj cP +XP +XP +XP cP -bU -cP -cP -cb -cP -cP -cg -Ha bj -Cz cP cP -KK bj -cA -cA +bv +bv +bv +bv +bv bj -cN -cN +Jg +JH +JH +JH +Bg bj bj bj @@ -5268,861 +6837,514 @@ aa aa aa aa +aa +aa +aa +aa +aa +aa +dI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +dI "} -(32,1,1) = {" +(43,1,1) = {" aa aa aa -ad -bj +aa +aa +aa +aa +aa +aa +aa +ae bj +az +aI +co +bL +JH +bL +bL bj -JC cP -TR -UJ -Bd -SB -SB -SW -kI +bc +bc +bc +cP bj +cP +cP bj -JH -bL -cI bL bL -cP bL bL -mv bL +Fy +dk JH -yr +JH +JH +gr bj -ah -cP -cP -cP -cP -cP -cP -cP bj -cP -cP -bL -bL -bL +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +dI +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ae +bj +az +aK +cy bL +JH bL bL +cF +cP bL bL bL -jP -bj -XA -cP -cP cP bj cP cP -cB +bu +cP cP cP cP cP +bD +df +JH +BK +BK bj -sx bj +bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa +aa +aa +aa +aa +aa +aa +aa +aa +dI "} -(33,1,1) = {" +(45,1,1) = {" aa aa +aa +aa +aa +aa +aa +aa +aa +aa +ae bj bj -bj -bj -Go -df -cP -bj -bj -Dw -ME -ME -Pv -bj -bj -bj -al -Rj -ab -cP -cP -cP -cP -cP -xO -Dk -JH -yr -bj -cP -cP -bL +aG +aL bL +JH bL bL -cP -cP bj cP cP -bL -cP -cP cP cP cP +YL cP cP -bL -Xp bj -fg -cP -cP -fj +bL +bL +bL +gG +bL +Fy +dl +gb bj -cP -cP -cB -cP -cP -cP -cP -aX -ob bj bj aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +dI "} -(34,1,1) = {" +(46,1,1) = {" aa aa aa -ac +aa +aa +aa +aa +aa +aa +aa +ad bj -Bk -JH -df -cP bj -ap -cP -cP -cP -cP -cP -sx -ap -am -bL -cP -cP -bL -bL -bL -cP -cP -bL +nv +JH JH JH -bj -cP bL -gp -iV -Ww -OZ bL -cP +bj +cG +ME +ME +ME +dk bj cP -bL -bL -rH -cc -uf -uf -uf -wW -Ip -bL -bL +cP bj +Kx bj +Kx +bj +Kx bj -IC bj bj -cP -bL bj -bL -bL -bL -cP -Hp -VT -tn -sx aa -"} -(35,1,1) = {" aa aa aa -ae -bj -dz -JH -df -JH -sT -cP -cP -Fh -Fh -Fh -cP -aP -Zq -vC -cP -cP -bL -er -ZD -xQ -bL -cP -cP -cP -cP -sV -cP -bL -gp -Ww -KV -OZ -bL -cP -Wg -bL -bL -rH -ha -dw -ZI -Ok -Br -RS -ha -Ip -bL -bL -ct -cP -JH -cP -ct -cP -bL -hI -LX -bL -bL -cP -bL -Hp -Et -sx -sx +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +dI "} -(36,1,1) = {" +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa -ae bj -IV -cP -df -cP -aw -cP -cP -Fh -NS -Fh -cP -sx -bL -bL -bL -bL -bL -bI -bC -bE -bL -bL -bL -bL -bL bj -Lo -bL -gp -qS -iV -OZ -bL -bL bj -cK -cP -rH -fS -dw -Ok -GM -Ok -RS -fS -Ip -cP -cP -sx -JH -JZ -JH -sx -cP -bL bj -cE -cP -cP -cP -cP -cP -Es -DJ -sx +bj +bj +bj +bj +bj +Gd +bj +Gd +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +bj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +dI "} -(37,1,1) = {" +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa -ae -bj -mm -JH -df -JH -sT -cP -cP -Fh -Fh -Fh -cP -aP -kI -Bd -cP -cP -bL -UR -eT -jU -bL -cP -cP -cP -cP -sV -cP -bL -gp -KV -Ww -OZ -bL -cP -Wg -bL -bL -rH -hJ -dw -lw -Ok -nd -RS -hJ -Ip -bL -bL -ct -cP -JH -cP -ct -cP -bL -hI -ag -bL -bL -cP -bL -uO -Et -sx -sx -"} -(38,1,1) = {" aa aa aa -ad bj -nX -JH -df -cP bj -ap -cP -cP -cP -cP -cP -sx -ap -am -bL -cP -cP -bL -bL -bL -cP -cP -bL +JH +JH +JH +JH +JH JH JH bj -cP -bL -gp -Ww -Xg -OZ -bL -cP -bj -cP -bL -bL -rH -Xs -zg -zg -zg -eg -Ip -bL -bL -bj -bj -bj -IC -bj -bj -cP -bL bj -bL -bL -bL -cP -uO -Fx -tn -sx aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +dI "} -(39,1,1) = {" +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa bj bj -bj -bj -Go -df -cP -bj -bj -dD -ME -ME -Pv -bj -bj -bj -ao -cd -cz -cP -cP -cP -cP -cP -Mb -Gk JH -bL -bj -cP -cP -bL -bL -bL -bL -cP -cP -bj -cP -cP -bL -cP -cP -cP -cP -cP -cP -cP -bL -Im -bj -fg -cP -cP -Be -bj -cP -cP -cB -cP -cP -cP -cP -cR -ob +JH +JH +JH +JH bj bj aa -"} -(40,1,1) = {" aa aa aa -ac -bj -bj -bj -Oj -cP -ku -Xc -vC -eY -eY -CQ -Zq -bj -bj -JH -bL -aO -bL -bL -cP -bL -bL -uZ -bL -JH -bL -bj -ai -cP -cP -cP -cP -cP -cP -cP -bj -cP -cP -bL -bL -bL -bL -bL -bL -bL -bL -bL -fF -bj -ig -cP -cP -cP -bj -cP -cP -cB -cP -cP -cP -cP -bj -VY -bj aa aa -"} -(41,1,1) = {" aa aa aa -ad -bj -bj -Zq -vC -cP -df -bL -zs -ef -ef -Ku -cP -wQ -bj -JH -JH -bL -bL -bL -cP -bL -bL -bL -bL -JH -bL -bj -cJ -cP -bj -bj -bG -bj -bj -bj -bj -aw -bj -cP -cP -cP -cP -cP -cP -cP -cP -cP -rY -bj -Cz -cP -cP -Uv -bj -cA -cA -bj -cO -cO -bj -bj -bj aa aa aa aa -"} -(42,1,1) = {" aa aa -bj -bj -bj -zj -cP -cP -JH -df -bL -bj -bj -bj -bj -eS -wQ -bj -bL -JH -JH -bL -bL -cP -bL -bL -bL -JH -JH -bL -bj -cL -cr -bj -DF -Sx -wH -Ys -bj -vO -cP -bj -bX -fq -bV -cf -fq -dm -cn -fq -ch -bj -bj -av -eY -cP -cP -bj -bd -bd -bj -bj -bj -bj aa aa aa aa aa aa -"} -(43,1,1) = {" aa aa aa -ac -bj -es -cP -JH -JH -TR -ul -oC -oC -oC -oC -cP -wQ -bj -bL -bL -JH -JH -bN -MI -bN -JH -JH -JH -bL -bL -bj -bj -bj -bj -di -zA -zA -NA -bj -Zi -cP -bj -bL -bL -bj -bL -bL -bj -bL -bL -bj -bj -bj -GY -yO -JL -Hv -bj -bj -bj -bj aa aa aa @@ -6132,69 +7354,6 @@ aa aa aa aa -"} -(44,1,1) = {" -aa -aa -aa -ae -bj -bj -cP -JH -Mz -bj -et -FG -FG -FG -FG -cP -wQ -bj -cQ -cP -bL -cH -sx -bd -sx -uj -bL -cP -tR -bj -bj -bj -bj -bj -bj -yH -yH -RE -bj -bH -bH -bj -bL -cS -bj -bL -cS -bj -bL -cS -bj -bj -bj -hI -hI -bj -bj -bj -aa -aa -aa aa aa aa @@ -6204,61 +7363,9 @@ aa aa aa aa +dI "} -(45,1,1) = {" -aa -aa -aa -ad -bj -bj -CT -pW -hL -bj -bj -ZM -bH -bL -bH -ZM -bj -bj -tD -cP -cP -bg -bj -bj -bj -Ut -cP -cP -fI -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -aa -aa +(50,1,1) = {" aa aa aa @@ -6276,59 +7383,15 @@ aa aa aa aa -"} -(46,1,1) = {" aa aa bj bj +JH +JH +JH bj bj -bj -bj -bj -bj -bj -bj -sx -sx -sx -bj -bj -bj -Je -cP -cP -Pm -ov -sS -gN -zZ -cP -cP -mn -bj -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa aa aa aa @@ -6348,40 +7411,9 @@ aa aa aa aa -"} -(47,1,1) = {" -aa -aa -aa -ac -bj -bj -bj -bj -aa -aa -aa -aa -aa -aa aa aa aa -bj -cC -cP -cP -cP -cP -cP -cP -cP -cP -cP -um -bj -bj -aa aa aa aa @@ -6403,6 +7435,9 @@ aa aa aa aa +dI +"} +(51,1,1) = {" aa aa aa @@ -6420,14 +7455,13 @@ aa aa aa aa -"} -(48,1,1) = {" aa aa aa -ae -bj bj +Dr +ah +Dr bj aa aa @@ -6439,48 +7473,6 @@ aa aa aa aa -bj -bj -bj -bj -bj -bj -bj -bj -bj -bm -bm -bj -bj -aa -aa -aa -aa -aa -aa -bj -bj -bj -bj -bj -bj -bj -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa aa aa aa @@ -6491,54 +7483,177 @@ aa aa aa aa +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +"} +(52,1,1) = {" aa +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI "} -(49,1,1) = {" -aa -aa -aa -ad -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bj -bj -bc -bc -bc -bc -bc -bj -cP -cP -bj -aa -aa -aa -aa -aa +(53,1,1) = {" aa -bj -bj -HD -JH -If -bj -bj -bj -bj -bj +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +"} +(54,1,1) = {" aa aa aa @@ -6564,13 +7679,8 @@ aa aa aa aa -"} -(50,1,1) = {" aa aa -bj -bj -bj aa aa aa @@ -6578,44 +7688,22 @@ aa aa aa aa -bj -bj -bj -bj -bj -bj -bj -bj -cP -cP -cP -cP -cP -YL -cP -cP -bj aa aa aa aa aa -bj -bj -bj -HD -JH -If -bj -bj -bj -bj aa aa aa aa aa aa +dI +dI +dI +dI +dI aa aa aa @@ -6637,407 +7725,337 @@ aa aa aa "} -(51,1,1) = {" -aa -bj -bj -bj -aa -aa -aa -aa -aa -aa -ac -bj -bj -aF -JH -JH -JH -bL -bL -cF -cP -bL -bL -bL -cP -bj -cP -cP -bj -bj -bj -bj -bj -bj -bj -bj -bj -sx -Zs -sx -bj -bj -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(52,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ae -bj -bj -aG -aL -bL -JH -bL -bL -bj -cP -XP -XP -XP -cP -bj -cP -cP -bj -bv -bv -bv -bv -bv -bj -Jg -JH -JH -JH -Bg -bj -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(55,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI "} -(53,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ae -bj -az -aI -co -bL -JH -bL -bL -bj -cP -bc -bc -bc -cP -bj -cP -cP -bj -bL -bL -bL -bL -bL -hI -dk -JH -JH -JH -gr -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(56,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI "} -(54,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ae -bj -az -aK -cy -bL -JH -bL -bL -cF -cP -bL -bL -bL -cP -bj -cP -cP -bu -cP -cP -cP -cP -cP -bD -df -JH -BK -BK -bj -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(57,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI "} -(55,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ae -bj -bj -aG -aL -bL -JH -bL -bL -bj -cP -cP -cP -cP -cP -YL -cP -cP -bj -bL -bL -bL -gG -bL -hI -dl -gb -bj -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(58,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI "} -(56,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ad -bj -bj -nv -JH -JH -JH -bL -bL -bj -cG -ME -ME -ME -dk -bj -bL -bL -bj -Kx -bj -Kx -bj -Kx -bj -bj -bj -bj -aa -aa +(59,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI aa aa aa @@ -7046,6 +8064,71 @@ aa aa aa aa +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +"} +(60,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI aa aa aa @@ -7055,6 +8138,17 @@ aa aa aa aa +dI +zi +zi +zi +zi +zi +zi +zi +zi +zi +zi aa aa aa @@ -7062,6 +8156,72 @@ aa aa aa aa +"} +(61,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +zi +zi +Rr +CO +Rr +Ok +zi +Nb +dX +NE +zi +zi aa aa aa @@ -7069,1011 +8229,1371 @@ aa aa aa "} -(57,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bj -bj -bj -bj -bj -bj -bj -bj -bj -Gd -bj -Gd -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(62,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +dr +NE +zi +dd +NE +dm +Ok +zi +bZ +dY +NE +dm +zi +zi +zi +zi +zi +zi +zi +"} +(63,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +zi +zi +zi +zi +ds +dm +dn +yM +yM +Xu +yM +ci +UT +Qw +yM +yM +dm +zi +jq +ba +fE +aU +zi +"} +(64,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +dJ +zi +MW +zi +zi +dt +bB +zi +dm +cM +yM +iP +zi +Nb +bO +iP +yM +iP +zi +hJ +fE +fE +hJ +zi +"} +(65,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +ib +zi +ib +zi +zi +iP +iP +zi +zi +zi +wr +zi +zi +zi +zi +bB +wr +zi +zi +NE +UT +UT +NE +zi "} -(58,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bj -bj -bL -JH -JH -JH -JH -JH -bL -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(66,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +zi +zO +yM +NE +yM +dE +zi +du +dm +dm +NE +NE +NE +ck +dm +NE +NE +GX +yM +yM +zi +NE +yM +yM +NE +zi +"} +(67,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +zi +dK +rH +yM +NE +UT +dF +zi +dv +NE +yM +UT +dZ +cg +cg +cS +GM +yM +GM +yM +yM +zi +NE +yM +yM +dm +zi "} -(59,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bj -bj -JH -JH -JH -JH -JH -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(68,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +dM +dm +UT +rH +UT +dm +UT +iP +zi +dx +ea +yM +Zi +bX +wW +wW +wW +wW +Ip +NE +UT +iP +zi +hJ +bh +fE +aV +zi "} -(60,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bj -bj -JH -JH -JH -bj -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(69,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +dN +NE +UT +rH +yM +yM +yM +yM +dC +UT +UT +do +hQ +UT +dm +iP +NE +UT +bX +Sq +UT +iP +zi +bk +fE +fE +aZ +zi "} -(61,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -bj -Dr -sx -Dr -bj -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(70,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +dO +iP +iP +rH +fS +iP +fS +iP +zi +eg +iP +dp +dg +fS +iP +ST +iP +ST +bQ +bF +fS +hw +zi +zi +hF +hF +zi +zi "} -(62,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(71,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +dP +NE +GM +rH +yM +yM +GM +UT +dC +UT +GM +do +cK +UT +NE +tv +NE +GM +cK +Sq +by +iP +zi +ID +yM +UT +ID +aS "} -(63,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(72,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +dQ +NE +UT +rH +yM +GX +UT +iP +zi +dy +NE +yM +pf +bR +OB +OU +OU +bR +Sq +NE +UT +iP +zi +dm +yM +yM +GX +zi "} -(64,1,1) = {" -aa -aa -aa -aa -aa -aa +(73,1,1) = {" dI -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +zi +dL +rH +yM +dm +yM +dG +zi +dy +NE +Xu +UT +of +of +cp +lw +UT +GM +yM +UT +yM +hF +yM +UT +Xu +NE +zi +"} +(74,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +zi +Qg +GM +dm +GM +dH +zi +fS +dm +dm +NE +NE +NE +bi +NE +NE +NE +NE +yM +yM +hF +yM +yM +UT +NE +cn "} -(65,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(75,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +ib +cn +ib +zi +zi +fS +iP +zi +zi +zi +wr +zi +zi +zi +cn +zi +wr +cn +zi +fS +iP +fS +iP +zi "} -(66,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(76,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +dJ +zi +dJ +zi +zi +zi +zi +zi +DX +cZ +gu +iP +zi +bt +GX +iP +UT +bn +zi +eo +NE +NE +NE +zi "} -(67,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(77,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +zi +zi +zi +zi +dA +iA +uN +yM +UT +UT +yM +ci +yM +GM +yM +UT +bt +zi +ce +bi +NE +ca +cn "} -(68,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(78,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +dB +dm +zi +DX +dm +dm +dm +zi +dm +NE +dm +bt +zi +zi +zi +zi +zi +zi +zi "} -(69,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(79,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +zi +zi +zi +zi +dh +bi +dm +cD +zi +bt +bT +RC +zi +zi aa +dI aa aa aa aa "} -(70,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(80,1,1) = {" +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI +dI aa aa aa aa aa aa +dI +dI +dI +zi +zi +zi +zi +zi +zi +zi +zi +zi +zi +dI +dI +dI +dI +dI +dI +dI "} diff --git a/maps/templates/lazy_templates/pred/jungle_moon.dmm b/maps/templates/lazy_templates/pred/jungle_moon.dmm index 5a238c1ffad2..f7c0fd87d828 100644 --- a/maps/templates/lazy_templates/pred/jungle_moon.dmm +++ b/maps/templates/lazy_templates/pred/jungle_moon.dmm @@ -84,6 +84,16 @@ }, /turf/open/floor/engine/cult, /area/yautja_grounds/prep_room) +"an" = ( +/turf/open/floor/strata/grey_multi_tiles/southwest, +/area/yautja_grounds/young_blood_prep) +"ao" = ( +/turf/open/floor/engine/cult, +/area/yautja_grounds/young_blood_prep) +"ap" = ( +/obj/effect/landmark/yautja_young_teleport, +/turf/open/floor/engine/cult, +/area/yautja_grounds/young_blood_prep) "ar" = ( /turf/open/gm/dirtgrassborder, /area/yautja_grounds/jungle/west) @@ -136,7 +146,7 @@ }, /obj/item/tool/soap, /turf/open/floor/strata/grey_multi_tiles/southwest, -/area/yautja_grounds/prep_room) +/area/yautja_grounds/young_blood_prep) "bn" = ( /obj/structure/flora/bush/ausbushes/var3/ppflowers, /turf/open/gm/dirt, @@ -242,7 +252,7 @@ /obj/item/storage/backpack/yautja, /obj/item/storage/backpack/yautja, /turf/open/floor/strata/grey_multi_tiles/southwest, -/area/yautja_grounds/prep_room) +/area/yautja_grounds/young_blood_prep) "dd" = ( /turf/open/floor/strata/grey_multi_tiles/southwest, /area/yautja_grounds/temple/entrance) @@ -339,7 +349,7 @@ /obj/item/device/healthanalyzer/alien, /obj/item/device/healthanalyzer/alien, /turf/open/floor/strata/grey_multi_tiles/southwest, -/area/yautja_grounds/prep_room) +/area/yautja_grounds/young_blood_prep) "fl" = ( /obj/structure/stairs/perspective{ color = "#6b675e"; @@ -875,7 +885,7 @@ }, /obj/item/tool/kitchen/knife/butcher, /turf/open/floor/strata/grey_multi_tiles/southwest, -/area/yautja_grounds/prep_room) +/area/yautja_grounds/young_blood_prep) "nx" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, @@ -1246,7 +1256,7 @@ "tO" = ( /obj/structure/bed/alien/yautja, /turf/open/floor/engine/cult, -/area/yautja_grounds/prep_room) +/area/yautja_grounds/young_blood_prep) "tY" = ( /obj/structure/flora/jungle/vines{ icon_state = "light_3" @@ -1763,7 +1773,7 @@ pixel_y = 35 }, /turf/open/floor/strata/grey_multi_tiles/southwest, -/area/yautja_grounds/prep_room) +/area/yautja_grounds/young_blood_prep) "Cf" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" @@ -1807,7 +1817,7 @@ }, /obj/item/tool/hand_labeler, /turf/open/floor/strata/grey_multi_tiles/southwest, -/area/yautja_grounds/prep_room) +/area/yautja_grounds/young_blood_prep) "CS" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/grass/grass1, @@ -2579,7 +2589,7 @@ }, /obj/item/tool/hatchet, /turf/open/floor/strata/grey_multi_tiles/southwest, -/area/yautja_grounds/prep_room) +/area/yautja_grounds/young_blood_prep) "Qq" = ( /turf/closed/wall/strata_ice/jungle, /area/yautja_grounds/south_west) @@ -6688,7 +6698,7 @@ Ow rR rR BX -LW +an CN rR rR @@ -6785,11 +6795,11 @@ Ow Ow rR nc -LW -HJ -HJ -HJ -LW +an +ao +ao +ao +an nc rR Cf @@ -6883,12 +6893,12 @@ Ow Ow Ow rR -LW -HJ +an +ao tO tO tO -HJ +ao cZ rR rR @@ -6982,13 +6992,13 @@ Ow Ow Ow wi -LW -HJ +an +ap Qi bl nu -HJ -LW +ao +an rR Th bR @@ -7081,12 +7091,12 @@ Ow Ow By rR -LW -HJ +an +ao tO tO tO -HJ +ao fk rR sd @@ -7181,11 +7191,11 @@ Ow Ow rR nc -LW -HJ -HJ -HJ -LW +an +ao +ao +ao +an nc rR Vz @@ -7281,9 +7291,9 @@ Ow Ow rR rR -LW -LW -LW +an +an +an rR rR DG From 384c1d807c8c6a1dc354b3968bea2b13ad3af447 Mon Sep 17 00:00:00 2001 From: "cmss13-ci[bot]" <180991813+cmss13-ci[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 19:40:06 +0000 Subject: [PATCH 08/25] Automatic changelog for PR #7925 [ci skip] --- html/changelogs/AutoChangeLog-pr-7925.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7925.yml diff --git a/html/changelogs/AutoChangeLog-pr-7925.yml b/html/changelogs/AutoChangeLog-pr-7925.yml new file mode 100644 index 000000000000..a9f65906e1ea --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7925.yml @@ -0,0 +1,11 @@ +author: "Joe Lampost, Forrest2001" +delete-after: True +changes: + - rscadd: "A role for non-whitelisted players to play predator." + - rscadd: "A new console and ert have been added relating to spawning youngbloods." + - rscadd: "Feral xenos on the hunting grounds now drop weeds when they spawn." + - rscadd: "A kill button for whitelisted pred players to instantly kill any youngblood acting out of line." + - code_imp: "Predator teleporting now has checks." + - mapadd: "added a lower deck on the pred ship for youngbloods." + - maptweak: "tweaked the fighting pit area of the predship." + - admin: "Adds a new roleban relating to youngbloods." \ No newline at end of file From 5a5b1459d4b79945c989359abe2817892fbf5463 Mon Sep 17 00:00:00 2001 From: Red <47158596+Red-byte3D@users.noreply.github.com> Date: Tue, 11 Feb 2025 23:12:02 +0300 Subject: [PATCH 09/25] Crusher code adjust, remove one letter vars (#8408) # About the pull request converts alot of one letter vars into proper ones, removes some byond ticks to use seconds and rewrites some ability code # Explain why it's good for the game better code (codeword for new issues) # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: code: Re-wrote some crusher ability code, changes one letter vars and made some byond ticks change seconds macro /:cl: --------- Co-authored-by: InsaneRed --- .../abilities/crusher/crusher_abilities.dm | 8 +- .../abilities/crusher/crusher_powers.dm | 46 +++-- .../living/carbon/xenomorph/castes/Crusher.dm | 157 +++++++++--------- 3 files changed, 103 insertions(+), 108 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm index c0d2dc5dab37..3b98321d34ac 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm @@ -5,7 +5,7 @@ macro_path = /datum/action/xeno_action/verb/verb_crusher_charge action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_1 - xeno_cooldown = 140 + xeno_cooldown = 14 SECONDS plasma_cost = 20 // Config options distance = 9 @@ -14,7 +14,7 @@ slash = FALSE freeze_self = FALSE windup = TRUE - windup_duration = 12 + windup_duration = 1.2 SECONDS windup_interruptable = FALSE should_destroy_objects = TRUE throw_speed = SPEED_FAST @@ -45,7 +45,7 @@ var/distance = 2 var/effect_type_base = /datum/effects/xeno_slow/superslow - var/effect_duration = 10 + var/effect_duration = 1 SECONDS /datum/action/xeno_action/onclick/crusher_stomp/charger name = "Crush" @@ -68,6 +68,8 @@ plasma_cost = 50 xeno_cooldown = 26 SECONDS var/shield_amount = 200 + var/explosion_immunity_dur = 2.5 SECONDS + var/shield_dur = 7 SECONDS /datum/action/xeno_action/activable/fling/charger name = "Headbutt" diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm index 1dd4dc5a1c87..3bef23de8dd0 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm @@ -95,45 +95,37 @@ T.ex_act(EXPLOSION_THRESHOLD_VLOW, , create_cause_data(caste_type, src)) ..(T) -/datum/action/xeno_action/onclick/crusher_stomp/use_ability(atom/A) - var/mob/living/carbon/xenomorph/X = owner - if (!istype(X)) - return +/datum/action/xeno_action/onclick/crusher_stomp/use_ability(atom/Atom) + var/mob/living/carbon/xenomorph/xeno = owner if (!action_cooldown_check()) return - if (!X.check_state()) + if (!xeno.check_state()) return - if (!check_and_use_plasma_owner()) + if(!check_and_use_plasma_owner()) return - playsound(get_turf(X), 'sound/effects/bang.ogg', 25, 0) - X.visible_message(SPAN_XENODANGER("[X] smashes into the ground!"), SPAN_XENODANGER("We smash into the ground!")) - X.create_stomp() + playsound(xeno, 'sound/effects/bang.ogg', 25) + xeno.visible_message(SPAN_XENODANGER("[xeno] smashes into the ground!"), SPAN_XENODANGER("We smash into the ground!")) + xeno.create_stomp() - for (var/mob/living/carbon/H in get_turf(X)) - if (H.stat == DEAD || X.can_not_harm(H)) - continue - new effect_type_base(H, X, , , get_xeno_stun_duration(H, effect_duration)) - to_chat(H, SPAN_XENOHIGHDANGER("You are slowed as [X] knocks you off balance!")) + for (var/mob/living/carbon/targets in orange(distance, xeno)) - if(H.mob_size < MOB_SIZE_BIG) - H.apply_effect(get_xeno_stun_duration(H, 0.2), WEAKEN) + if (targets.stat == DEAD || xeno.can_not_harm(targets)) + continue - H.apply_armoured_damage(get_xeno_damage_slash(H, damage), ARMOR_MELEE, BRUTE) - H.last_damage_data = create_cause_data(X.caste_type, X) + if(targets in get_turf(xeno)) + targets.apply_armoured_damage(get_xeno_damage_slash(targets, damage), ARMOR_MELEE, BRUTE) - for (var/mob/living/carbon/H in orange(distance, get_turf(X))) - if (H.stat == DEAD || X.can_not_harm(H)) - continue + if(targets.mob_size < MOB_SIZE_BIG) + targets.apply_effect(get_xeno_stun_duration(targets, 0.2), WEAKEN) - new effect_type_base(H, X, , , get_xeno_stun_duration(H, effect_duration)) - if(H.mob_size < MOB_SIZE_BIG) - H.apply_effect(get_xeno_stun_duration(H, 0.2), WEAKEN) - to_chat(H, SPAN_XENOHIGHDANGER("You are slowed as [X] knocks you off balance!")) + new /datum/effects/xeno_slow(targets, xeno, ttl = get_xeno_stun_duration(targets, effect_duration)) + targets.apply_effect(get_xeno_stun_duration(targets, 0.2), WEAKEN) + to_chat(targets, SPAN_XENOHIGHDANGER("You are slowed as [xeno] knocks you off balance!")) apply_cooldown() return ..() @@ -210,8 +202,8 @@ xeno.explosivearmor_modifier += 1000 xeno.recalculate_armor() - addtimer(CALLBACK(src, PROC_REF(remove_explosion_immunity)), 25, TIMER_UNIQUE|TIMER_OVERRIDE) - addtimer(CALLBACK(src, PROC_REF(remove_shield)), 70, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(remove_explosion_immunity)), explosion_immunity_dur) + addtimer(CALLBACK(src, PROC_REF(remove_shield)), shield_dur) apply_cooldown() return ..() diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm b/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm index 3c8caab886a4..c264269c1241 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm @@ -79,100 +79,101 @@ //Barricade collision else if (istype(target, /obj/structure/barricade)) - var/obj/structure/barricade/B = target - visible_message(SPAN_DANGER("[src] rams into [B] and skids to a halt!"), SPAN_XENOWARNING("We ram into [B] and skid to a halt!")) + var/obj/structure/barricade/blockade_in_path = target + visible_message(SPAN_DANGER("[src] rams into [blockade_in_path] and skids to a halt!"), SPAN_XENOWARNING("We ram into [blockade_in_path] and skid to a halt!")) - B.Collided(src) + blockade_in_path.Collided(src) . = FALSE else if (istype(target, /obj/vehicle/multitile)) - var/obj/vehicle/multitile/M = target - visible_message(SPAN_DANGER("[src] rams into [M] and skids to a halt!"), SPAN_XENOWARNING("We ram into [M] and skid to a halt!")) + var/obj/vehicle/multitile/vehicle_in_path = target + visible_message(SPAN_DANGER("[src] rams into [vehicle_in_path] and skids to a halt!"), SPAN_XENOWARNING("We ram into [vehicle_in_path] and skid to a halt!")) - M.Collided(src) + vehicle_in_path.Collided(src) . = FALSE else if (istype(target, /obj/structure/machinery/m56d_hmg)) - var/obj/structure/machinery/m56d_hmg/HMG = target - visible_message(SPAN_DANGER("[src] rams [HMG]!"), SPAN_XENODANGER("We ram [HMG]!")) + var/obj/structure/machinery/m56d_hmg/weapon_in_path = target + visible_message(SPAN_DANGER("[src] rams [weapon_in_path]!"), SPAN_XENODANGER("We ram [weapon_in_path]!")) playsound(loc, "punch", 25, 1) - HMG.CrusherImpact() + weapon_in_path.CrusherImpact() . = FALSE else if (istype(target, /obj/structure/window)) - var/obj/structure/window/W = target - if (W.unacidable) + var/obj/structure/window/window_in_path = target + if (window_in_path.unacidable) . = FALSE else - W.deconstruct(FALSE) + window_in_path.deconstruct(FALSE) . = TRUE // Continue throw + playsound(loc, 'sound/effects/Glassbr1.ogg') else if (istype(target, /obj/structure/machinery/door/airlock)) - var/obj/structure/machinery/door/airlock/A = target + var/obj/structure/machinery/door/airlock/airlock_in_path = target - if (A.unacidable) + if (airlock_in_path.unacidable) . = FALSE else - A.deconstruct() + airlock_in_path.deconstruct() else if (istype(target, /obj/structure/grille)) - var/obj/structure/grille/G = target - if(G.unacidable) + var/obj/structure/grille/grille_in_path = target + if(grille_in_path.unacidable) . = FALSE else - G.health -= 80 //Usually knocks it down. - G.healthcheck() + grille_in_path.health -= 80 //Usually knocks it down. + grille_in_path.healthcheck() . = TRUE else if (istype(target, /obj/structure/surface/table)) - var/obj/structure/surface/table/T = target - T.Crossed(src) + var/obj/structure/surface/table/table_in_path = target + table_in_path.Crossed(src) . = TRUE else if (istype(target, /obj/structure/machinery/defenses)) - var/obj/structure/machinery/defenses/DF = target - visible_message(SPAN_DANGER("[src] rams [DF]!"), SPAN_XENODANGER("We ram [DF]!")) + var/obj/structure/machinery/defenses/defenses_in_path = target + visible_message(SPAN_DANGER("[src] rams [defenses_in_path]!"), SPAN_XENODANGER("We ram [defenses_in_path]!")) - if (!DF.unacidable) + if (!defenses_in_path.unacidable) playsound(loc, "punch", 25, 1) - DF.stat = 1 - DF.update_icon() - DF.update_health(40) + defenses_in_path.stat = 1 + defenses_in_path.update_icon() + defenses_in_path.update_health(40) . = FALSE else if (istype(target, /obj/structure/machinery/vending)) - var/obj/structure/machinery/vending/V = target + var/obj/structure/machinery/vending/vending_in_path = target - if (V.unslashable) + if (vending_in_path.unslashable) . = FALSE else - visible_message(SPAN_DANGER("[src] smashes straight into [V]!"), SPAN_XENODANGER("We smash straight into [V]!")) + visible_message(SPAN_DANGER("[src] smashes straight into [vending_in_path]!"), SPAN_XENODANGER("We smash straight into [vending_in_path]!")) playsound(loc, "punch", 25, 1) - V.tip_over() + vending_in_path.tip_over() var/impact_range = 1 - var/turf/TA = get_diagonal_step(V, dir) - TA = get_step_away(TA, src) + var/turf/turfs_charged_at = get_diagonal_step(vending_in_path, dir) + turfs_charged_at = get_step_away(turfs_charged_at, src) var/launch_speed = 2 - launch_towards(TA, impact_range, launch_speed) + launch_towards(turfs_charged_at, impact_range, launch_speed) . = TRUE else if (istype(target, /obj/structure/machinery/cm_vending)) - var/obj/structure/machinery/cm_vending/V = target - if (V.unslashable) + var/obj/structure/machinery/cm_vending/vending_in_path = target + if (vending_in_path.unslashable) . = FALSE else - visible_message(SPAN_DANGER("[src] smashes straight into [V]!"), SPAN_XENODANGER("We smash straight into [V]!")) + visible_message(SPAN_DANGER("[src] smashes straight into [vending_in_path]!"), SPAN_XENODANGER("We smash straight into [vending_in_path]!")) playsound(loc, "punch", 25, 1) - V.tip_over() + vending_in_path.tip_over() var/impact_range = 1 - var/turf/TA = get_diagonal_step(V, dir) - TA = get_step_away(TA, src) + var/turf/turfs_charged_at = get_diagonal_step(vending_in_path, dir) + turfs_charged_at = get_step_away(turfs_charged_at, src) var/launch_speed = 2 - throw_atom(TA, impact_range, launch_speed) + throw_atom(turfs_charged_at, impact_range, launch_speed) . = TRUE @@ -188,29 +189,29 @@ // Anything else? else if (isobj(target)) - var/obj/O = target - if (O.unacidable) + var/obj/objects_in_path = target + if (objects_in_path.unacidable) . = FALSE - else if (O.anchored) - visible_message(SPAN_DANGER("[src] crushes [O]!"), SPAN_XENODANGER("We crush [O]!")) - if(length(O.contents)) //Hopefully won't auto-delete things inside crushed stuff. - var/turf/T = get_turf(src) - for(var/atom/movable/S in T.contents) S.forceMove(T) + else if (objects_in_path.anchored) + visible_message(SPAN_DANGER("[src] crushes [objects_in_path]!"), SPAN_XENODANGER("We crush [objects_in_path]!")) + if(length(objects_in_path.contents)) //Hopefully won't auto-delete things inside crushed stuff. + var/turf/turf_for_obj = get_turf(src) + for(var/atom/movable/stuff_to_move in turf_for_obj.contents) stuff_to_move.forceMove(turf_for_obj) - qdel(O) + qdel(objects_in_path) . = TRUE else - if(O.buckled_mob) - O.unbuckle() - visible_message(SPAN_WARNING("[src] knocks [O] aside!"), SPAN_XENOWARNING("We knock [O] aside.")) //Canisters, crates etc. go flying. + if(objects_in_path.buckled_mob) + objects_in_path.unbuckle() + visible_message(SPAN_WARNING("[src] knocks [objects_in_path] aside!"), SPAN_XENOWARNING("We knock [objects_in_path] aside.")) //Canisters, crates etc. go flying. playsound(loc, "punch", 25, 1) var/impact_range = 2 - var/turf/TA = get_diagonal_step(O, dir) - TA = get_step_away(TA, src) + var/turf/turfs_to_get = get_diagonal_step(objects_in_path, dir) + turfs_to_get = get_step_away(turfs_to_get, src) var/launch_speed = 2 - throw_atom(TA, impact_range, launch_speed) + throw_atom(turfs_to_get, impact_range, launch_speed) . = TRUE @@ -226,49 +227,49 @@ /// Utilized to update charging animation. var/is_charging = FALSE -/datum/behavior_delegate/crusher_base/melee_attack_additional_effects_target(mob/living/carbon/A) +/datum/behavior_delegate/crusher_base/melee_attack_additional_effects_target(mob/living/carbon/target) - if (!isxeno_human(A)) + if (!isxeno_human(target)) return - new /datum/effects/xeno_slow(A, bound_xeno, , , 20) + new /datum/effects/xeno_slow(target, bound_xeno, 2 SECONDS) var/damage = bound_xeno.melee_damage_upper * aoe_slash_damage_reduction - var/base_cdr_amount = 15 + var/base_cdr_amount = 1.5 SECONDS var/cdr_amount = base_cdr_amount - for (var/mob/living/carbon/H in orange(1, A)) - if (H.stat == DEAD) + for (var/mob/living/carbon/aoe_targets in orange(1, target)) + if (aoe_targets.stat == DEAD) continue - if(!isxeno_human(H) || bound_xeno.can_not_harm(H)) + if(!isxeno_human(aoe_targets) || bound_xeno.can_not_harm(aoe_targets)) continue - cdr_amount += 5 + cdr_amount += 0.5 SECONDS - bound_xeno.visible_message(SPAN_DANGER("[bound_xeno] slashes [H]!"), - SPAN_DANGER("You slash [H]!"), null, null, CHAT_TYPE_XENO_COMBAT) + to_chat(aoe_targets, SPAN_XENODANGER("[bound_xeno] slashes [aoe_targets]!")) + to_chat(bound_xeno, SPAN_XENODANGER("We slash [aoe_targets]!")) - bound_xeno.flick_attack_overlay(H, "slash") + bound_xeno.flick_attack_overlay(aoe_targets, "slash") - H.last_damage_data = create_cause_data(initial(bound_xeno.name), bound_xeno) + aoe_targets.last_damage_data = create_cause_data(initial(bound_xeno.name), bound_xeno) //Logging, including anti-rulebreak logging - if(H.status_flags & XENO_HOST && H.stat != DEAD) - if(HAS_TRAIT(H, TRAIT_NESTED)) //Host was buckled to nest while infected, this is a rule break - H.attack_log += text("\[[time_stamp()]\] was slashed by [key_name(bound_xeno)] while they were infected and nested") - bound_xeno.attack_log += text("\[[time_stamp()]\] slashed [key_name(H)] while they were infected and nested") - message_admins("[key_name(bound_xeno)] slashed [key_name(H)] while they were infected and nested.") //This is a blatant rulebreak, so warn the admins + if(aoe_targets.status_flags & XENO_HOST && aoe_targets.stat != DEAD) + if(HAS_TRAIT(aoe_targets, TRAIT_NESTED)) //Host was buckled to nest while infected, this is a rule break + aoe_targets.attack_log += text("\[[time_stamp()]\] was slashed by [key_name(bound_xeno)] while they were infected and nested") + bound_xeno.attack_log += text("\[[time_stamp()]\] slashed [key_name(aoe_targets)] while they were infected and nested") + message_admins("[key_name(bound_xeno)] slashed [key_name(aoe_targets)] while they were infected and nested.") //This is a blatant rulebreak, so warn the admins else //Host might be rogue, needs further investigation - H.attack_log += text("\[[time_stamp()]\] was slashed by [key_name(bound_xeno)] while they were infected") - bound_xeno.attack_log += text("\[[time_stamp()]\] slashed [key_name(src)] while they were infected") + aoe_targets.attack_log += text("\[[time_stamp()]\] was slashed by [key_name(bound_xeno)] while they were infected") + bound_xeno.attack_log += text("\[[time_stamp()]\] slashed [key_name(aoe_targets)] while they were infected") else //Normal xenomorph friendship with benefits - H.attack_log += text("\[[time_stamp()]\] was slashed by [key_name(bound_xeno)]") - bound_xeno.attack_log += text("\[[time_stamp()]\] slashed [key_name(H)]") - log_attack("[key_name(bound_xeno)] slashed [key_name(H)]") + aoe_targets.attack_log += text("\[[time_stamp()]\] was slashed by [key_name(bound_xeno)]") + bound_xeno.attack_log += text("\[[time_stamp()]\] slashed [key_name(aoe_targets)]") + log_attack("[key_name(bound_xeno)] slashed [key_name(aoe_targets)]") - H.apply_armoured_damage(get_xeno_damage_slash(H, damage), ARMOR_MELEE, BRUTE, bound_xeno.zone_selected) + aoe_targets.apply_armoured_damage(get_xeno_damage_slash(aoe_targets, damage), ARMOR_MELEE, BRUTE, bound_xeno.zone_selected) var/datum/action/xeno_action/activable/pounce/crusher_charge/cAction = get_action(bound_xeno, /datum/action/xeno_action/activable/pounce/crusher_charge) if (!cAction.action_cooldown_check()) From f87a1069b6310752a58741c6b8cf6c0be30072c8 Mon Sep 17 00:00:00 2001 From: "cmss13-ci[bot]" <180991813+cmss13-ci[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 20:20:06 +0000 Subject: [PATCH 10/25] Automatic changelog for PR #8408 [ci skip] --- html/changelogs/AutoChangeLog-pr-8408.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8408.yml diff --git a/html/changelogs/AutoChangeLog-pr-8408.yml b/html/changelogs/AutoChangeLog-pr-8408.yml new file mode 100644 index 000000000000..349701a2a37a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8408.yml @@ -0,0 +1,4 @@ +author: "Red-byte3D" +delete-after: True +changes: + - code_imp: "Re-wrote some crusher ability code, changes one letter vars and made some byond ticks change seconds macro" \ No newline at end of file From 1e5a5f3ad61dc4b875aa7cc4d9c8d6f554a06aff Mon Sep 17 00:00:00 2001 From: Git-Nivrak <59925169+Git-Nivrak@users.noreply.github.com> Date: Tue, 11 Feb 2025 22:13:57 +0200 Subject: [PATCH 11/25] Xenomorph Endgame changes (#8026) # About the pull request 1. Added a preference for being chosen as King, under special role candidacy. You will no longer be prompted on whether you'd like to be King or not. 2. The King hatchery now spawns around the hive core (make sure you have enough space!), Destroying a pylon will now only pause the timer, in order to fully reset it you will have to destroy the hatchery itself. 3. Replaced the armor hive buffs with two new hive buffs: Boon of fire resistance - Makes all xenomorph immune to being *ignited* (you still take damage walking over fire), Boon of adaptability - Grants all xenomorphs a new ability "Transmute" (will appear under aliens tab) which allows them to change to a different caste of the same tier. # Explain why it's good for the game > 1. Added a preference for being chosen as King, under special role candidacy. You will no longer be prompted on whether you'd like to be King or not. qol > 2. The King hatchery now spawns around the hive core (make sure you have enough space!), Destroying a pylon will now only pause the timer, in order to fully reset it you will have to destroy the hatchery itself. Makes it more in-line with nuke, should reduce cat and mouse and actually end the round faster > 3. Replaced the armor hive buffs with two new hive buffs: Boon of fire resistance - Makes all xenomorph immune to being *ignited* (you still take damage walking over fire), Boon of adaptability - Grants all xenomorphs a new ability "Transmute" (will appear under aliens tab) which allows them to change to a different caste of the same tier. Replacing the pure stat hive buffs has been a goal for me for a while, Will have to see how these new buffs perform and adjust accordingly # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: qol: Added a preference on whether you would like to be chosen as King or not, you will no longer receive a prompt asking you for that. This can be toggled under "special role candidacy" balance: The King hatchery now spawns around the hive core. Destroying pylons will no longer destroy the hatchery but will instead pause its progress. To fully reset the progress you must destroy the hatchery itself. add: Replaced the armor hive buffs with two new hive buffs: Buff of Fire Resistance - Makes all xenomorph immune to being *ignited* by fire. Buff of Adaptability - Gives all xenomorph a new verb under the alien tab named "Transmute" which will allow them to change to a different caste of the same tier. /:cl: --------- Co-authored-by: Drathek <76988376+Drulikar@users.noreply.github.com> Co-authored-by: harryob <55142896+harryob@users.noreply.github.com> --- code/__DEFINES/client_prefs.dm | 1 + code/modules/client/preferences.dm | 61 +++---- code/modules/client/preferences_savefile.dm | 10 +- code/modules/client/preferences_toggles.dm | 8 +- code/modules/cm_aliens/XenoStructures.dm | 151 ++++++++++++------ code/modules/cm_aliens/hivebuffs/hivebuff.dm | 86 +++++++--- .../mob/living/carbon/xenomorph/Evolution.dm | 54 ++++++- .../xenomorph/abilities/general_abilities.dm | 19 +++ .../living/carbon/xenomorph/xeno_helpers.dm | 10 ++ icons/mob/hud/actions_xeno.dmi | Bin 57962 -> 56157 bytes 10 files changed, 291 insertions(+), 109 deletions(-) diff --git a/code/__DEFINES/client_prefs.dm b/code/__DEFINES/client_prefs.dm index 440044424a53..b46140c68395 100644 --- a/code/__DEFINES/client_prefs.dm +++ b/code/__DEFINES/client_prefs.dm @@ -1,5 +1,6 @@ #define BE_ALIEN_AFTER_DEATH (1<<0) #define BE_AGENT (1<<1) +#define BE_KING (1<<2) /// Determines how abilities are activated, whether they're activated via middle click, shift click or right click. #define XENO_ABILITY_CLICK_MIDDLE 1 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 330bd051bb75..7eff614ca106 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -21,6 +21,12 @@ GLOBAL_LIST_INIT(bgstate_options, list( "whitefull" )) +GLOBAL_LIST_INIT(be_special_flags, list( + "Xenomorph after unrevivable death" = BE_ALIEN_AFTER_DEATH, + "Agent" = BE_AGENT, + "King" = BE_KING, +)) + #define MAX_SAVE_SLOTS 10 /datum/preferences @@ -57,7 +63,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( //game-preferences var/lastchangelog = "" // Saved changlog filesize to detect if there was a change var/ooccolor - var/be_special = 0 // Special role selection + var/be_special = BE_KING // Special role selection var/toggle_prefs = TOGGLE_DIRECTIONAL_ATTACK|TOGGLE_MEMBER_PUBLIC|TOGGLE_AMBIENT_OCCLUSION|TOGGLE_VEND_ITEM_TO_HAND // flags in #define/mode.dm var/xeno_ability_click_mode = XENO_ABILITY_CLICK_MIDDLE var/auto_fit_viewport = FALSE @@ -488,34 +494,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "
" dat += "

Occupation Choices:

" - var/n = 0 - var/list/special_roles = list( - "Xenomorph after
unrevivably dead" = 1, - "Agent" = 0, - ) - for(var/role_name in special_roles) - var/ban_check_name - var/list/missing_requirements = list() - - switch(role_name) - if("Xenomorph after
unrevivably dead") - ban_check_name = JOB_XENOMORPH - - if("Agent") - ban_check_name = "Agent" - - if(jobban_isbanned(user, ban_check_name)) - dat += "Be [role_name]: \[BANNED]
" - else if(!can_play_special_job(user.client, ban_check_name)) - dat += "Be [role_name]: \[TIMELOCKED]
" - for(var/r in missing_requirements) - var/datum/timelock/T = r - dat += "\t[T.name] - [duration2text(missing_requirements[r])] Hours
" - else - dat += "Be [role_name]: [be_special & (1<
" - - n++ if(MENU_CO) if(owner.check_whitelist_status(WHITELIST_COMMANDER)) dat += "
" @@ -641,9 +620,33 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "Spawn as Engineer: [toggles_ert & PLAY_ENGINEER ? "Yes" : "No"]
" dat += "Spawn as Specialist: [toggles_ert & PLAY_HEAVY ? "Yes" : "No"]
" dat += "Spawn as Smartgunner: [toggles_ert & PLAY_SMARTGUNNER ? "Yes" : "No"]
" + if(owner.check_whitelist_status(WHITELIST_SYNTHETIC)) dat += "Spawn as Synth: [toggles_ert & PLAY_SYNTH ? "Yes" : "No"]
" dat += "Spawn as Miscellaneous: [toggles_ert & PLAY_MISC ? "Yes" : "No"]
" + + dat += "

Special Roles:

" + + for(var/role_name in GLOB.be_special_flags) + var/flag = GLOB.be_special_flags[role_name] + + var/ban_check_name + switch(role_name) + if("Xenomorph after unrevivable death") + ban_check_name = JOB_XENOMORPH + + if("Agent") + ban_check_name = "Agent" + + if(ban_check_name && jobban_isbanned(user, ban_check_name)) + dat += "Be [role_name]: \[BANNED]
" + else if(!can_play_special_job(user.client, ban_check_name)) + dat += "Be [role_name]: \[TIMELOCKED]
" + else + dat += "Be [role_name]: [be_special & flag ? "Yes" : "No"]
" + + + dat += "
" dat += "
" dat += "

Hunting Ground ERT Settings:

" @@ -1784,7 +1787,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if("be_special") var/num = text2num(href_list["num"]) - be_special ^= (1<> be_special + be_special &= ~BE_KING + S["be_special"] << be_special + savefile_version = SAVEFILE_VERSION_MAX return 1 @@ -647,7 +653,6 @@ S["med_record"] >> med_record S["sec_record"] >> sec_record S["gen_record"] >> gen_record - S["be_special"] >> be_special S["organ_data"] >> organ_data S["gear"] >> gear S["origin"] >> origin @@ -808,7 +813,6 @@ S["med_record"] << med_record S["sec_record"] << sec_record S["gen_record"] << gen_record - S["be_special"] << be_special S["organ_data"] << organ_data S["gear"] << gear S["origin"] << origin diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 23809981d78d..069eb1e00cca 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -209,14 +209,10 @@ set category = "Preferences" set desc = "Toggles which special roles you would like to be a candidate for, during events." - var/list/be_special_flags = list( - "Xenomorph after unrevivable death" = BE_ALIEN_AFTER_DEATH, - "Agent" = BE_AGENT, - ) - var/role = tgui_input_list(usr, "Toggle which candidacy?", "Select role", be_special_flags) + var/role = tgui_input_list(usr, "Toggle which candidacy?", "Select role", GLOB.be_special_flags) if(!role) return - var/role_flag = be_special_flags[role] + var/role_flag = GLOB.be_special_flags[role] prefs.be_special ^= role_flag prefs.save_preferences() to_chat(src, SPAN_BOLDNOTICE("You will [(prefs.be_special & role_flag) ? "now" : "no longer"] be considered for [role] events (where possible).")) diff --git a/code/modules/cm_aliens/XenoStructures.dm b/code/modules/cm_aliens/XenoStructures.dm index cfc5f9ce2eb3..970d5e043787 100644 --- a/code/modules/cm_aliens/XenoStructures.dm +++ b/code/modules/cm_aliens/XenoStructures.dm @@ -884,12 +884,18 @@ var/hive_number = XENO_HIVE_NORMAL /// Whether the cocoon has hatched var/hatched = FALSE - /// Current running timer - var/timer /// Is currently rolling candidates var/rolling_candidates = FALSE /// Voting for King var/list/mob/living/carbon/xenomorph/votes = list() + /// Candidates + var/list/mob/living/carbon/xenomorph/candidates = list() + /// Time to hatch + var/time_to_hatch = 10 MINUTES + /// Announced that the hatchery was paused + var/announced_paused = FALSE + /// Stage of hatching + var/stage = 0 /obj/effect/alien/resin/king_cocoon/Destroy() if(!hatched) @@ -912,6 +918,7 @@ votes = null chosen_candidate = null + candidates = null . = ..() @@ -930,8 +937,7 @@ var/obj/effect/build_blocker/blocker = new(turf_to_block, src) blockers += blocker - timer = addtimer(CALLBACK(src, PROC_REF(start_growing)), 10 SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) - addtimer(CALLBACK(src, PROC_REF(check_pylons)), 10 SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME|TIMER_LOOP) + START_PROCESSING(SSobj, src) marine_announcement("ALERT.\n\nUNUSUAL ENERGY BUILDUP DETECTED IN [uppertext(get_area_name(loc))].\n\nESTIMATED TIME UNTIL COMPLETION - 10 MINUTES. RECOMMEND TERMINATION OF XENOMORPH STRUCTURE AT THIS LOCATION, OR TERMINATION OF XENOMORPH PYLON AT EITHER COMMUNICATIONS RELAY.", "[MAIN_AI_SYSTEM] Biological Scanner", 'sound/misc/notice1.ogg') var/datum/hive_status/hive @@ -944,18 +950,51 @@ else xeno_announcement(SPAN_XENOANNOUNCE("Another hive's King is growing at [get_area_name(loc)]."), cur_hive_num, XENO_GENERAL_ANNOUNCE) -/// Callback for a repeating 10s timer to ensure both pylons are active (otherwise delete) and counts the number of marines groundside (would cause hatching to expedite). -/obj/effect/alien/resin/king_cocoon/proc/check_pylons() + +#define STAGE_GROWING 1 +#define STAGE_HALFWAY 2 +#define STAGE_VOTE 3 +#define STAGE_PICK 4 +#define STAGE_BEFORE_HATCH 5 +#define STAGE_HATCH 6 + +/obj/effect/alien/resin/king_cocoon/process(delta_time) var/datum/hive_status/hive = GLOB.hive_datum[hive_number] if(length(hive.active_endgame_pylons) < 2) - qdel(src) + if(!announced_paused) + marine_announcement("ALERT.\n\nUNUSUAL ENERGY BUILDUP IN [uppertext(get_area_name(loc))] HAS BEEN PAUSED.", "[MAIN_AI_SYSTEM] Biological Scanner", 'sound/misc/notice1.ogg') + for(var/cur_hive_num in GLOB.hive_datum) + hive = GLOB.hive_datum[cur_hive_num] + if(!length(hive.totalXenos)) + continue + if(cur_hive_num == hive_number) + xeno_announcement(SPAN_XENOANNOUNCE("One of our pylons was destroyed, the hatchery has paused its progress!"), cur_hive_num, XENO_GENERAL_ANNOUNCE) + else + xeno_announcement(SPAN_XENOANNOUNCE("One of another hive's pylons was destroyed, the hatchery has paused its progress!"), cur_hive_num, XENO_GENERAL_ANNOUNCE) + + announced_paused = TRUE + icon_state = "static" return - - if(chosen_candidate || rolling_candidates) - return - + else if (length(hive.active_endgame_pylons) >= 2 && announced_paused) + for(var/cur_hive_num in GLOB.hive_datum) + hive = GLOB.hive_datum[cur_hive_num] + if(!length(hive.totalXenos)) + continue + if(cur_hive_num == hive_number) + xeno_announcement(SPAN_XENOANNOUNCE("The hatchery's progress has resumed!"), cur_hive_num, XENO_GENERAL_ANNOUNCE) + else + xeno_announcement(SPAN_XENOANNOUNCE("Another hive's hatchery progress has resumed!"), cur_hive_num, XENO_GENERAL_ANNOUNCE) + marine_announcement("ALERT.\n\nUNUSUAL ENERGY BUILDUP IN [uppertext(get_area_name(loc))] HAS BEEN RESUMED.", "[MAIN_AI_SYSTEM] Biological Scanner", 'sound/misc/notice1.ogg') + announced_paused = FALSE + icon_state = "growing" + + for(var/obj/effect/alien/resin/special/pylon/pylon as anything in hive.active_endgame_pylons) + pylon.protection_level = TURF_PROTECTION_OB + pylon.update_icon() + if(hatched) + STOP_PROCESSING(SSobj, src) return var/groundside_humans = 0 @@ -968,21 +1007,46 @@ groundside_humans += 1 if(groundside_humans > 12) - return + break + + if(groundside_humans < 12) + // Too few marines are now groundside, hatch immediately + start_vote() + addtimer(CALLBACK(src, PROC_REF(roll_candidates)), 20 SECONDS) + addtimer(CALLBACK(src, PROC_REF(start_hatching), TRUE), 25 SECONDS) + STOP_PROCESSING(SSobj, src) + return - // Too few marines are now groundside, hatch immediately - deltimer(timer) - start_vote(expedite = TRUE) + time_to_hatch -= delta_time SECONDS + + if(!stage && time_to_hatch < 10 MINUTES) + icon_state = "growing" + stage = STAGE_GROWING + else if (stage == STAGE_GROWING && time_to_hatch <= 5 MINUTES) + announce_halfway() + stage = STAGE_HALFWAY + else if (stage == STAGE_HALFWAY && time_to_hatch <= 1 MINUTES) + start_vote() + stage = STAGE_VOTE + else if (stage == STAGE_VOTE && time_to_hatch <= 40 SECONDS) + roll_candidates() + stage = STAGE_PICK + else if (stage == STAGE_PICK && time_to_hatch <= 20 SECONDS) + start_hatching() + stage = STAGE_BEFORE_HATCH + else if (stage == STAGE_BEFORE_HATCH && time_to_hatch <= 0) + animate_hatch_king() + STOP_PROCESSING(SSobj, src) -/// Causes the cocoon to change visually for growing and initiates the next timer. -/obj/effect/alien/resin/king_cocoon/proc/start_growing() - icon_state = "growing" - timer = addtimer(CALLBACK(src, PROC_REF(announce_halfway)), 5 MINUTES, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) +#undef STAGE_GROWING +#undef STAGE_HALFWAY +#undef STAGE_VOTE +#undef STAGE_PICK +#undef STAGE_BEFORE_HATCH +#undef STAGE_HATCH /// Causes the halfway announcements and initiates the next timer. /obj/effect/alien/resin/king_cocoon/proc/announce_halfway() - timer = addtimer(CALLBACK(src, PROC_REF(start_vote)), 4 MINUTES, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) - marine_announcement("ALERT.\n\nUNUSUAL ENERGY BUILDUP DETECTED IN [uppertext(get_area_name(loc))].\n\nESTIMATED TIME UNTIL COMPLETION - 5 MINUTES. RECOMMEND TERMINATION OF XENOMORPH STRUCTURE AT THIS LOCATION, OR TERMINATION OF XENOMORPH PYLON AT EITHER COMMUNICATIONS RELAY.", "[MAIN_AI_SYSTEM] Biological Scanner", 'sound/misc/notice1.ogg') var/datum/hive_status/hive for(var/cur_hive_num in GLOB.hive_datum) @@ -1032,7 +1096,10 @@ if(!is_candidate_valid(hive, candidate, playtime_restricted)) return FALSE - return tgui_alert(candidate, "Would you like to become the King?", "Choice", list("Yes", "No"), 10 SECONDS) == "Yes" + if(!candidate.client) + return FALSE + + return candidate.client.prefs.be_special & BE_KING #undef KING_PLAYTIME_HOURS @@ -1052,7 +1119,7 @@ votes[choice] = 1 /// Initiates a vote that will end in 20 seconds to vote for the King. Hatching will then begin in 1 minute unless expedited. -/obj/effect/alien/resin/king_cocoon/proc/start_vote(expedite = FALSE) +/obj/effect/alien/resin/king_cocoon/proc/start_vote() rolling_candidates = TRUE var/datum/hive_status/hive = GLOB.hive_datum[hive_number] @@ -1066,7 +1133,8 @@ if(is_candidate_valid(hive, candidate, playtime_restricted = FALSE, skip_playtime = FALSE)) INVOKE_ASYNC(src, PROC_REF(cast_vote), candidate, voting_candidates) - addtimer(CALLBACK(src, PROC_REF(roll_candidates), voting_candidates, expedite), 20 SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) + candidates = voting_candidates + /** * Finalizes the vote for King opting to use a series of fallbacks in case a candidate declines. @@ -1077,12 +1145,8 @@ * Then all other living xenos not meeting the playtime requirement are asked. * Then all other xeno observer candidates not meeting the playtime requirement are asked. * Then finally if after all that, the search is given up and will ultimately result in a freed King mob. - * - * Arguments: - * * voting_candidates: A list of xenomorphs that are valid candidates to vote on. - * * expedite: Whether hatching should begin in a minute or immediately after a candidate is found. */ -/obj/effect/alien/resin/king_cocoon/proc/roll_candidates(list/mob/living/carbon/xenomorph/voting_candidates, expedite = FALSE) +/obj/effect/alien/resin/king_cocoon/proc/roll_candidates() var/datum/hive_status/hive = GLOB.hive_datum[hive_number] var/primary_votes = 0 @@ -1103,27 +1167,25 @@ if(prob(50) && try_roll_candidate(hive, primary_candidate, playtime_restricted = TRUE)) chosen_candidate = primary_candidate.client rolling_candidates = FALSE - start_hatching(expedite) return - voting_candidates -= primary_candidate + candidates -= primary_candidate if(try_roll_candidate(hive, secondary_candidate, playtime_restricted = TRUE)) chosen_candidate = secondary_candidate.client rolling_candidates = FALSE - start_hatching(expedite) return - voting_candidates -= secondary_candidate + candidates -= secondary_candidate // Otherwise ask all the living xenos (minus the player(s) who got voted on earlier) - for(var/mob/living/carbon/xenomorph/candidate in shuffle(voting_candidates)) + for(var/mob/living/carbon/xenomorph/candidate in shuffle(candidates)) if(try_roll_candidate(hive, candidate, playtime_restricted = TRUE)) chosen_candidate = candidate.client rolling_candidates = FALSE - start_hatching(expedite) return + // Then observers var/list/observer_list_copy = shuffle(get_alien_candidates(hive)) @@ -1131,42 +1193,41 @@ if(try_roll_candidate(hive, candidate, playtime_restricted = TRUE)) chosen_candidate = candidate.client rolling_candidates = FALSE - start_hatching(expedite) return + // Lastly all of the above again, without playtime requirements for(var/mob/living/carbon/xenomorph/candidate in shuffle(hive.totalXenos.Copy() - hive.living_xeno_queen)) if(try_roll_candidate(hive, candidate, playtime_restricted = FALSE)) chosen_candidate = candidate.client rolling_candidates = FALSE - start_hatching(expedite) return + for(var/mob/candidate in observer_list_copy) if(try_roll_candidate(hive, candidate, playtime_restricted = FALSE)) chosen_candidate = candidate.client rolling_candidates = FALSE - start_hatching(expedite) return message_admins("Failed to find a client for the King, releasing as freed mob.") - start_hatching(expedite) + -/// Starts the hatching in one minute, otherwise immediately if expedited +/// Starts the hatching in twenty seconds, otherwise immediately if expedited /obj/effect/alien/resin/king_cocoon/proc/start_hatching(expedite = FALSE) + votes = null + candidates = null if(expedite) animate_hatch_king() return - marine_announcement("ALERT.\n\nUNUSUAL ENERGY BUILDUP DETECTED IN [get_area_name(loc)].\n\nESTIMATED TIME UNTIL COMPLETION - ONE MINUTE. RECOMMEND TERMINATION OF XENOMORPH STRUCTURE AT THIS LOCATION, OR TERMINATION OF XENOMORPH PYLON AT EITHER COMMUNICATIONS RELAY.", "[MAIN_AI_SYSTEM] Biological Scanner", 'sound/misc/notice1.ogg') + marine_announcement("ALERT.\n\nUNUSUAL ENERGY BUILDUP DETECTED IN [get_area_name(loc)].\n\nESTIMATED TIME UNTIL COMPLETION - 20 SECONDS. RECOMMEND TERMINATION OF XENOMORPH STRUCTURE AT THIS LOCATION, OR TERMINATION OF XENOMORPH PYLON AT EITHER COMMUNICATIONS RELAY.", "[MAIN_AI_SYSTEM] Biological Scanner", 'sound/misc/notice1.ogg') var/datum/hive_status/hive for(var/cur_hive_num in GLOB.hive_datum) hive = GLOB.hive_datum[cur_hive_num] if(!length(hive.totalXenos)) continue if(cur_hive_num == hive_number) - xeno_announcement(SPAN_XENOANNOUNCE("The King will hatch in approximately one minute."), cur_hive_num, XENO_GENERAL_ANNOUNCE) + xeno_announcement(SPAN_XENOANNOUNCE("The King will hatch in approximately twenty seconds."), cur_hive_num, XENO_GENERAL_ANNOUNCE) else - xeno_announcement(SPAN_XENOANNOUNCE("Another hive's King will hatch in approximately one minute."), cur_hive_num, XENO_GENERAL_ANNOUNCE) - - timer = addtimer(CALLBACK(src, PROC_REF(animate_hatch_king)), 1 MINUTES, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) + xeno_announcement(SPAN_XENOANNOUNCE("Another hive's King will hatch in approximately twenty seconds."), cur_hive_num, XENO_GENERAL_ANNOUNCE) /// Causes the cocoon to change visually for hatching and initiates the next timer. /obj/effect/alien/resin/king_cocoon/proc/animate_hatch_king() diff --git a/code/modules/cm_aliens/hivebuffs/hivebuff.dm b/code/modules/cm_aliens/hivebuffs/hivebuff.dm index 39741abca788..49ea62cedf22 100644 --- a/code/modules/cm_aliens/hivebuffs/hivebuff.dm +++ b/code/modules/cm_aliens/hivebuffs/hivebuff.dm @@ -394,7 +394,7 @@ /datum/hivebuff/game_ender_caste name = "His Grace" - desc = "A huge behemoth of a Xenomorph which can tear its way through defences and flesh alike. Requires open space to grow." + desc = "A huge behemoth of a Xenomorph which can tear its way through defences and flesh alike. Requires open space around the hive core to spawn." tier = HIVEBUFF_TIER_MAJOR radial_icon = "king" @@ -403,7 +403,6 @@ special_fail_message = "Only one hatchery may exist at a time." cooldown_duration = 15 MINUTES // This buff ceases instantly so we need to incorporation the spawning time too number_of_required_pylons = 2 - must_select_pylon = TRUE /datum/hivebuff/game_ender_caste/New() roundtime_to_enable = GLOB.king_acquisition_time @@ -415,11 +414,15 @@ special_fail_message = "Only one King may exist at a time." return FALSE + if(!hive.hive_location) + special_fail_message = "You must first construct a hive core." + return FALSE + return !hive.has_hatchery /datum/hivebuff/game_ender_caste/on_engage(obj/effect/alien/resin/special/pylon/purchased_pylon) var/turf/spawn_turf - for(var/turf/potential_turf in orange(5, purchased_pylon)) + for(var/turf/potential_turf in orange(5, hive.hive_location)) var/failed = FALSE for(var/x_offset in -1 to 1) for(var/y_offset in -1 to 1) @@ -437,6 +440,9 @@ for(var/obj/structure/struct in turf_to_check) if(struct.density) failed = TRUE + break + for(var/obj/effect/alien/resin/special in turf_to_check) + failed = TRUE break if(!failed) spawn_turf = potential_turf @@ -454,42 +460,74 @@ return TRUE -/datum/hivebuff/defence - name = "Boon of Defence" - desc = "Increases all xenomorph armour by 2.5 for 5 minutes" +/datum/hivebuff/fire + name = "Boon of Fire Resistance" + desc = "Makes all xenomorphs immune to fire for 5 minutes." tier = HIVEBUFF_TIER_MINOR - engage_flavourmessage = "The Queen has imbued us with greater chitin." + engage_flavourmessage = "The Queen has imbued us with flame-resistant chitin." duration = 5 MINUTES number_of_required_pylons = 1 radial_icon = "shield" -/datum/hivebuff/defence/apply_buff_effects(mob/living/carbon/xenomorph/xeno) - xeno.armor_modifier += XENO_ARMOR_MOD_TINY - xeno.recalculate_armor() +/datum/hivebuff/fire/apply_buff_effects(mob/living/carbon/xenomorph/xeno) + if(!xeno.caste) + return + + if(!(xeno.caste.fire_immunity & FIRE_IMMUNITY_NO_IGNITE)) + RegisterSignal(xeno, COMSIG_LIVING_PREIGNITION, PROC_REF(fire_immune)) + + if(xeno.caste.fire_immunity == FIRE_IMMUNITY_NONE) + RegisterSignal(xeno, list(COMSIG_LIVING_FLAMER_CROSSED, COMSIG_LIVING_FLAMER_FLAMED), PROC_REF(flamer_crossed_immune)) + + +/datum/hivebuff/fire/remove_buff_effects(mob/living/carbon/xenomorph/xeno) + if(!(xeno.caste.fire_immunity & FIRE_IMMUNITY_NO_IGNITE)) + UnregisterSignal(xeno, COMSIG_LIVING_PREIGNITION) + if(xeno.caste.fire_immunity == FIRE_IMMUNITY_NONE) + UnregisterSignal(xeno, list( + COMSIG_LIVING_FLAMER_CROSSED, + COMSIG_LIVING_FLAMER_FLAMED + )) + +/datum/hivebuff/fire/proc/flamer_crossed_immune(mob/living/living, datum/reagent/reagent) + SIGNAL_HANDLER + + if(reagent.fire_penetrating) + return + + . |= COMPONENT_NO_IGNITE + + +/datum/hivebuff/fire/proc/fire_immune(mob/living/living) + SIGNAL_HANDLER -/datum/hivebuff/defence/remove_buff_effects(mob/living/carbon/xenomorph/xeno) - xeno.armor_modifier -= XENO_ARMOR_MOD_TINY - xeno.recalculate_armor() + if(living.fire_reagent?.fire_penetrating && !HAS_TRAIT(living, TRAIT_ABILITY_BURROWED)) + return + + return COMPONENT_CANCEL_IGNITION -/datum/hivebuff/defence/major - name = "Major Boon of Defence" - desc = "Increases all xenomorph armour by 5 for 10 minutes" +/datum/hivebuff/adaptability + name = "Boon of Adaptability" + desc = "Allows each xenomorph to change to a different caste of the same tier." tier = HIVEBUFF_TIER_MAJOR - engage_flavourmessage = "The Queen has imbued us with even greater chitin." - duration = 10 MINUTES + engage_flavourmessage = "The Queen has blessed us with adaptability." + duration = 0 cost = 2 number_of_required_pylons = 2 radial_icon = "shield_m" -/datum/hivebuff/defence/major/apply_buff_effects(mob/living/carbon/xenomorph/xeno) - xeno.armor_modifier += XENO_ARMOR_MOD_VERY_SMALL - xeno.recalculate_armor() +/datum/hivebuff/adaptability/apply_buff_effects(mob/living/carbon/xenomorph/xeno) + if(xeno.caste.tier > 3) + return -/datum/hivebuff/defence/major/remove_buff_effects(mob/living/carbon/xenomorph/xeno) - xeno.armor_modifier -= XENO_ARMOR_MOD_VERY_SMALL - xeno.recalculate_armor() + if(get_action(xeno, /datum/action/xeno_action/onclick/transmute)) + return + + add_verb(xeno, /mob/living/carbon/xenomorph/proc/transmute_verb) + var/datum/action/xeno_action/onclick/transmute/transmute_action = new() + transmute_action.give_to(xeno) /datum/hivebuff/attack name = "Boon of Aggression" diff --git a/code/modules/mob/living/carbon/xenomorph/Evolution.dm b/code/modules/mob/living/carbon/xenomorph/Evolution.dm index 9c847c2bf874..c9882638effa 100644 --- a/code/modules/mob/living/carbon/xenomorph/Evolution.dm +++ b/code/modules/mob/living/carbon/xenomorph/Evolution.dm @@ -268,6 +268,56 @@ GLOBAL_LIST_EMPTY(deevolved_ckeys) return TRUE +/mob/living/carbon/xenomorph/proc/transmute_verb() + set name = "Transmute" + set desc = "Transmute into a different caste of the same tier" + set category = "Alien" + + if(!check_state()) + return + if(is_ventcrawling) + to_chat(src, SPAN_XENOWARNING("We can't transmute here.")) + return + if(!isturf(loc)) + to_chat(src, SPAN_XENOWARNING("We can't transmute here.")) + return + if(health < maxHealth) + to_chat(src, SPAN_XENOWARNING("We are too weak to transmute, we must regain our health first.")) + return + if(tier == 0 || tier == 4) + to_chat(src, SPAN_XENOWARNING("We can't transmute.")) + return + if(lock_evolve) + if(banished) + to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind.")) + else + to_chat(src, SPAN_WARNING("We can't transmute.")) + return FALSE + + var/newcaste + var/list/options = list() + var/static/list/option_images = list() + + if(tier == 1) + options = XENO_T1_CASTES + else if (tier == 2) + options = XENO_T2_CASTES + else if (tier == 3) + options = XENO_T3_CASTES + + if(!option_images["[tier]"]) + option_images["[tier]"] = collect_xeno_images(options) + + if(!client.prefs.no_radial_labels_preference) + newcaste = show_radial_menu(src, src, option_images["[tier]"]) + else + newcaste = tgui_input_list(src, "Choose a caste you want to transmute to.", "Transmute", options, theme="hive_status") + + if(!newcaste) + return + + transmute(newcaste, "We transmute into a new form.") + // The queen de-evo, but on yourself. /mob/living/carbon/xenomorph/verb/Deevolve() set name = "De-Evolve" @@ -351,7 +401,7 @@ GLOBAL_LIST_EMPTY(deevolved_ckeys) if(new_xeno.ckey) GLOB.deevolved_ckeys += new_xeno.ckey -/mob/living/carbon/xenomorph/proc/transmute(newcaste) +/mob/living/carbon/xenomorph/proc/transmute(newcaste, message="We regress into our previous form.") // We have to delete the organ before creating the new xeno because all old_xeno contents are dropped to the ground on Initalize() var/obj/item/organ/xeno/organ = locate() in src if(!isnull(organ)) @@ -402,7 +452,7 @@ GLOBAL_LIST_EMPTY(deevolved_ckeys) remove_verb(new_xeno, /mob/living/carbon/xenomorph/verb/Deevolve) new_xeno.visible_message(SPAN_XENODANGER("A [new_xeno.caste.caste_type] emerges from the husk of \the [src]."), - SPAN_XENODANGER("We regress into our previous form.")) + SPAN_XENODANGER(message)) transfer_observers_to(new_xeno) new_xeno._status_traits = src._status_traits diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm index 973d3374d72f..fe96e5958a13 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm @@ -500,6 +500,25 @@ if(xeno && !xeno.is_mob_incapacitated() || !xeno.buckled || !xeno.evolving && xeno.plasma_stored >= plasma_cost) return TRUE +/datum/action/xeno_action/onclick/transmute + name = "Transmute" + action_icon_state = "transmute" + action_type = XENO_ACTION_CLICK + +/datum/action/xeno_action/onclick/transmute/action_activate() + . = ..() + var/mob/living/carbon/xenomorph/xeno = owner + xeno.transmute_verb() + +/datum/action/xeno_action/onclick/transmute/can_use_action() + if(!owner) + return FALSE + var/mob/living/carbon/xenomorph/xeno = owner + // Perform check_state(TRUE) silently: + if(xeno && !xeno.is_mob_incapacitated() || !xeno.buckled || !xeno.evolving && xeno.plasma_stored >= plasma_cost) + return TRUE + + /datum/action/xeno_action/onclick/tacmap name = "View Tactical Map" action_icon_state = "toggle_queen_zoom" diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm b/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm index 2414d077b1c0..294ea27b6260 100644 --- a/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm +++ b/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm @@ -76,3 +76,13 @@ /mob/living/carbon/xenomorph/alter_ghost(mob/dead/observer/ghost) ghost.icon_state = "[get_strain_icon()] [caste.caste_type] Running" + +/// Returns an associated list of the caste of xenos provided, to a generic image of the xeno +/mob/living/carbon/xenomorph/proc/collect_xeno_images(list/list_of_xenos) + var/returned_list = list() + + for(var/caste in list_of_xenos) + var/image/xeno_image = hive.evolution_menu_images[caste] + returned_list[caste] = xeno_image + + return returned_list diff --git a/icons/mob/hud/actions_xeno.dmi b/icons/mob/hud/actions_xeno.dmi index 578909103c1a76233eae683cf6c9930e789a062a..b98194a9cab1c62c52e21b09831de705f431eba3 100644 GIT binary patch literal 56157 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

iDb8sQ|>h%jf+y+ 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 literal 57962 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 ArT_o{ From e50f3983b54d65f1ebbb52399bf5c06c5097fbf6 Mon Sep 17 00:00:00 2001 From: "cmss13-ci[bot]" <180991813+cmss13-ci[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 20:33:29 +0000 Subject: [PATCH 12/25] Automatic changelog for PR #8026 [ci skip] --- html/changelogs/AutoChangeLog-pr-8026.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8026.yml diff --git a/html/changelogs/AutoChangeLog-pr-8026.yml b/html/changelogs/AutoChangeLog-pr-8026.yml new file mode 100644 index 000000000000..6f86a82d257f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8026.yml @@ -0,0 +1,6 @@ +author: "Git-Nivrak" +delete-after: True +changes: + - qol: "Added a preference on whether you would like to be chosen as King or not, you will no longer receive a prompt asking you for that. This can be toggled under \"special role candidacy\"" + - balance: "The King hatchery now spawns around the hive core. Destroying pylons will no longer destroy the hatchery but will instead pause its progress. To fully reset the progress you must destroy the hatchery itself." + - rscadd: "Replaced the armor hive buffs with two new hive buffs: Buff of Fire Resistance - Makes all xenomorph immune to being *ignited* by fire. Buff of Adaptability - Gives all xenomorph a new verb under the alien tab named \"Transmute\" which will allow them to change to a different caste of the same tier." \ No newline at end of file From 99488ee2fcfbf1c2ffaa3d315a44c45a27a5c3d3 Mon Sep 17 00:00:00 2001 From: Zonespace <41448081+Zonespace27@users.noreply.github.com> Date: Tue, 11 Feb 2025 13:58:50 -0800 Subject: [PATCH 13/25] Fix surv tracking (#8406) # About the pull request I didn't account for the fact that survs don't always have the survivor job, so stats were showing up skewed --- code/__DEFINES/job.dm | 2 ++ code/datums/statistics/entities/survivor_survival.dm | 9 +++++---- code/game/jobs/job/civilians/other/survivors.dm | 4 ++++ code/modules/mob/living/carbon/xenomorph/death.dm | 5 ++--- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/code/__DEFINES/job.dm b/code/__DEFINES/job.dm index 0d38e6bea00e..b776653e37ca 100644 --- a/code/__DEFINES/job.dm +++ b/code/__DEFINES/job.dm @@ -287,6 +287,8 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) #define JOB_FORECON_RIFLEMAN "Reconnaissance Rifleman" #define JOB_FORECON_SMARTGUNNER "Reconnaissance Smartgunner" +#define JOB_FORECON_LIST list(JOB_FORECON_CO, JOB_FORECON_SL, JOB_FORECON_SYN, JOB_FORECON_SNIPER, JOB_FORECON_MARKSMAN, JOB_FORECON_SUPPORT, JOB_FORECON_RIFLEMAN, JOB_FORECON_SMARTGUNNER) + //-------- UPP --------// #define JOB_UPP "UPP Ryadovoy" #define JOB_UPP_CONSCRIPT "UPP Conscript" diff --git a/code/datums/statistics/entities/survivor_survival.dm b/code/datums/statistics/entities/survivor_survival.dm index 5d697753ad19..04dd0c49f34b 100644 --- a/code/datums/statistics/entities/survivor_survival.dm +++ b/code/datums/statistics/entities/survivor_survival.dm @@ -15,12 +15,13 @@ round_id = GLOB.round_id || -1 time_after_roundstart = floor((world.time - SSticker.mode.round_time_lobby) / 600) total_survivors = /datum/job/civilian/survivor::total_spawned - for(var/mob/living/carbon/human/human as anything in GLOB.alive_human_list) - if(QDELETED(human)) + for(var/datum/weakref/ref as anything in GLOB.spawned_survivors) + var/mob/living/carbon/human/human = ref.resolve() + if(!human || (human.stat == DEAD)) continue - if(issurvivorjob(human.job)) - remaining_survivors++ + remaining_survivors++ + xeno_deaths = GLOB.total_dead_xenos /datum/entity/survivor_survival/post_creation() diff --git a/code/game/jobs/job/civilians/other/survivors.dm b/code/game/jobs/job/civilians/other/survivors.dm index c8a9c699fc91..0567d8d5a068 100644 --- a/code/game/jobs/job/civilians/other/survivors.dm +++ b/code/game/jobs/job/civilians/other/survivors.dm @@ -1,5 +1,7 @@ #define SURVIVOR_TO_TOTAL_SPAWN_RATIO 1/9 +GLOBAL_LIST_EMPTY(spawned_survivors) + /datum/job/civilian/survivor title = JOB_SURVIVOR selection_class = "job_special" @@ -40,6 +42,8 @@ var/mob/living/carbon/human/H = . + GLOB.spawned_survivors += WEAKREF(H) + var/list/potential_spawners = list() for(var/priority = 1 to LOWEST_SPAWN_PRIORITY) if(length(GLOB.survivor_spawns_by_priority["[priority]"])) diff --git a/code/modules/mob/living/carbon/xenomorph/death.dm b/code/modules/mob/living/carbon/xenomorph/death.dm index 09fc723a0527..1243d3badcdc 100644 --- a/code/modules/mob/living/carbon/xenomorph/death.dm +++ b/code/modules/mob/living/carbon/xenomorph/death.dm @@ -19,9 +19,6 @@ GLOBAL_VAR_INIT(total_dead_xenos, 0) set_light_range(0) - if(!(caste.caste_type in XENO_T0_CASTES)) - GLOB.total_dead_xenos++ - if(pulledby) pulledby.stop_pulling() @@ -36,6 +33,8 @@ GLOBAL_VAR_INIT(total_dead_xenos, 0) if(!(datum_flags & DF_VAR_EDITED) && istype(SSticker.mode, /datum/game_mode/colonialmarines)) var/datum/entity/xeno_death/death_log = DB_ENTITY(/datum/entity/xeno_death) death_log.load_data(src, cause) + if(!(caste.caste_type in XENO_T0_CASTES)) + GLOB.total_dead_xenos++ if(isqueen(src)) var/mob/living/carbon/xenomorph/queen/XQ = src From d91a0beaf0f329251485b266df3d58f9d187e229 Mon Sep 17 00:00:00 2001 From: "cmss13-ci[bot]" <180991813+cmss13-ci[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 01:35:50 +0000 Subject: [PATCH 14/25] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-7925.yml | 11 --------- html/changelogs/AutoChangeLog-pr-8026.yml | 6 ----- html/changelogs/AutoChangeLog-pr-8376.yml | 4 ---- html/changelogs/AutoChangeLog-pr-8408.yml | 4 ---- html/changelogs/AutoChangeLog-pr-8427.yml | 4 ---- html/changelogs/AutoChangeLog-pr-8441.yml | 4 ---- html/changelogs/archive/2025-02.yml | 29 +++++++++++++++++++++++ 7 files changed, 29 insertions(+), 33 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-7925.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-8026.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-8376.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-8408.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-8427.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-8441.yml diff --git a/html/changelogs/AutoChangeLog-pr-7925.yml b/html/changelogs/AutoChangeLog-pr-7925.yml deleted file mode 100644 index a9f65906e1ea..000000000000 --- a/html/changelogs/AutoChangeLog-pr-7925.yml +++ /dev/null @@ -1,11 +0,0 @@ -author: "Joe Lampost, Forrest2001" -delete-after: True -changes: - - rscadd: "A role for non-whitelisted players to play predator." - - rscadd: "A new console and ert have been added relating to spawning youngbloods." - - rscadd: "Feral xenos on the hunting grounds now drop weeds when they spawn." - - rscadd: "A kill button for whitelisted pred players to instantly kill any youngblood acting out of line." - - code_imp: "Predator teleporting now has checks." - - mapadd: "added a lower deck on the pred ship for youngbloods." - - maptweak: "tweaked the fighting pit area of the predship." - - admin: "Adds a new roleban relating to youngbloods." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-8026.yml b/html/changelogs/AutoChangeLog-pr-8026.yml deleted file mode 100644 index 6f86a82d257f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-8026.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Git-Nivrak" -delete-after: True -changes: - - qol: "Added a preference on whether you would like to be chosen as King or not, you will no longer receive a prompt asking you for that. This can be toggled under \"special role candidacy\"" - - balance: "The King hatchery now spawns around the hive core. Destroying pylons will no longer destroy the hatchery but will instead pause its progress. To fully reset the progress you must destroy the hatchery itself." - - rscadd: "Replaced the armor hive buffs with two new hive buffs: Buff of Fire Resistance - Makes all xenomorph immune to being *ignited* by fire. Buff of Adaptability - Gives all xenomorph a new verb under the alien tab named \"Transmute\" which will allow them to change to a different caste of the same tier." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-8376.yml b/html/changelogs/AutoChangeLog-pr-8376.yml deleted file mode 100644 index 433603eb1b6e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-8376.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "zzzmike" -delete-after: True -changes: - - soundadd: "faster defib noises for those who use defibs faster (synth, doctor)" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-8408.yml b/html/changelogs/AutoChangeLog-pr-8408.yml deleted file mode 100644 index 349701a2a37a..000000000000 --- a/html/changelogs/AutoChangeLog-pr-8408.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Red-byte3D" -delete-after: True -changes: - - code_imp: "Re-wrote some crusher ability code, changes one letter vars and made some byond ticks change seconds macro" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-8427.yml b/html/changelogs/AutoChangeLog-pr-8427.yml deleted file mode 100644 index 4270cf8dbd9a..000000000000 --- a/html/changelogs/AutoChangeLog-pr-8427.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Red-byte3D" -delete-after: True -changes: - - bugfix: "Fixes forecon spotter/marksman being hit by ally bullets while inivsible" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-8441.yml b/html/changelogs/AutoChangeLog-pr-8441.yml deleted file mode 100644 index b2a7f644b9f4..000000000000 --- a/html/changelogs/AutoChangeLog-pr-8441.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Git-Nivrak" -delete-after: True -changes: - - bugfix: "Fixes new players being teleported into the ground z level" \ No newline at end of file diff --git a/html/changelogs/archive/2025-02.yml b/html/changelogs/archive/2025-02.yml index 6abcc688cd70..8ac14b9039d9 100644 --- a/html/changelogs/archive/2025-02.yml +++ b/html/changelogs/archive/2025-02.yml @@ -270,3 +270,32 @@ zzzmike: - qol: Gives hints to newer players about how to destroy or protect a growing xenomorph king. +2025-02-12: + Git-Nivrak: + - qol: Added a preference on whether you would like to be chosen as King or not, + you will no longer receive a prompt asking you for that. This can be toggled + under "special role candidacy" + - balance: The King hatchery now spawns around the hive core. Destroying pylons + will no longer destroy the hatchery but will instead pause its progress. To + fully reset the progress you must destroy the hatchery itself. + - rscadd: 'Replaced the armor hive buffs with two new hive buffs: Buff of Fire Resistance + - Makes all xenomorph immune to being *ignited* by fire. Buff of Adaptability + - Gives all xenomorph a new verb under the alien tab named "Transmute" which + will allow them to change to a different caste of the same tier.' + - bugfix: Fixes new players being teleported into the ground z level + Joe Lampost, Forrest2001: + - rscadd: A role for non-whitelisted players to play predator. + - rscadd: A new console and ert have been added relating to spawning youngbloods. + - rscadd: Feral xenos on the hunting grounds now drop weeds when they spawn. + - rscadd: A kill button for whitelisted pred players to instantly kill any youngblood + acting out of line. + - code_imp: Predator teleporting now has checks. + - mapadd: added a lower deck on the pred ship for youngbloods. + - maptweak: tweaked the fighting pit area of the predship. + - admin: Adds a new roleban relating to youngbloods. + Red-byte3D: + - bugfix: Fixes forecon spotter/marksman being hit by ally bullets while inivsible + - code_imp: Re-wrote some crusher ability code, changes one letter vars and made + some byond ticks change seconds macro + zzzmike: + - soundadd: faster defib noises for those who use defibs faster (synth, doctor) From 2a4ba0f55139e5d91f7a294d20bd7bd389b2aa58 Mon Sep 17 00:00:00 2001 From: General_Lemon <47736127+Generallemon07@users.noreply.github.com> Date: Tue, 11 Feb 2025 22:51:38 -0600 Subject: [PATCH 15/25] fishing fixes and additions (#7881) # About the pull request This PR makes it so that you are able to fish in oceans and rivers, it also adds 3 new fish types two that are able to be gutted for fish meat as well as a bunch of fun little drops you can get from fishing like ore, beer, shoes, and other novelties. # Explain why it's good for the game It would be a good RP addition for fishing and having fun. It doesn't really throw off the balance at all as far as I looked, its just a fun camping thing. # Testing Photographs and Procedure Making sure fishing pole only went in water and not anywhere else: ![image](https://github.com/user-attachments/assets/98cdcec8-b742-4afe-bc58-075788d0c45c) Making sure the sprites and gutted item drops were good (catfish and gutted bluegill sprites were later changed): ![image](https://github.com/user-attachments/assets/bdee67c1-edcc-48d9-8e3e-808dca0fe0ee) Making sure the loot tables were being used while fishing (the clam placeholder was replaced with an adequate sprite and function): ![image](https://github.com/user-attachments/assets/e5f899a3-c4d0-4da7-bb04-86e9acf31d06) Sprites of bass in a pile: ![image](https://github.com/user-attachments/assets/8ae2a3c8-3a7a-43df-adc1-b480166a1c88) After getting my sprite approved for use i added it as a new fish snacks item. # Changelog :cl:Sergeant_Lemon add: new fish types to the old fishing code add: added turf flag 'fishable_turf' add: added items to fishing loot table fix: fixed fishing rod code so it fishes on ocean and rivers code: Changed code in the fishing category as well as meat, ore, and atoms imageadd: sprites for new fish and pearl item /:cl: --------- Co-authored-by: forest2001 <41653574+realforest2001@users.noreply.github.com> Co-authored-by: Git-Nivrak <59925169+Git-Nivrak@users.noreply.github.com> --- code/game/objects/items/ore.dm | 8 ++ .../reagent_containers/food/fish_snacks.dm | 105 ++++++++++++++++-- .../reagent_containers/food/snacks/meat.dm | 9 ++ code/game/turfs/open.dm | 2 + code/game/turfs/turf.dm | 3 + code/modules/fishing/bait/generic.dm | 3 +- code/modules/fishing/datums/generic.dm | 29 ++++- code/modules/fishing/poles/generic.dm | 23 ++-- code/modules/fishing/props/fishing_pole.dm | 8 +- icons/obj/items/fishing_atoms.dmi | Bin 8124 -> 21767 bytes icons/obj/items/food/fish.dmi | Bin 2395 -> 2659 bytes sound/misc/bobber_water_splash.ogg | Bin 0 -> 7810 bytes sound/misc/fishing_Line.ogg | Bin 0 -> 23664 bytes sound/misc/fishing_fail_splash.ogg | Bin 0 -> 9912 bytes sound/misc/fishing_set_hook.ogg | Bin 0 -> 29947 bytes 15 files changed, 159 insertions(+), 31 deletions(-) create mode 100644 sound/misc/bobber_water_splash.ogg create mode 100644 sound/misc/fishing_Line.ogg create mode 100644 sound/misc/fishing_fail_splash.ogg create mode 100644 sound/misc/fishing_set_hook.ogg diff --git a/code/game/objects/items/ore.dm b/code/game/objects/items/ore.dm index 4a81f8ab0a2c..51127fb4b596 100644 --- a/code/game/objects/items/ore.dm +++ b/code/game/objects/items/ore.dm @@ -78,3 +78,11 @@ . = ..() pixel_x = rand(0,16)-8 pixel_y = rand(0,8)-8 + +/obj/item/ore/pearl + name = "pearl" + desc = "Get fifty of 'em and have a necklace!" + icon = 'icons/obj/items/fishing_atoms.dmi' + icon_state = "pearl" + oretag = "pearl" + black_market_value = 60 diff --git a/code/game/objects/items/reagent_containers/food/fish_snacks.dm b/code/game/objects/items/reagent_containers/food/fish_snacks.dm index ba4a3c05fb0f..90780c964247 100644 --- a/code/game/objects/items/reagent_containers/food/fish_snacks.dm +++ b/code/game/objects/items/reagent_containers/food/fish_snacks.dm @@ -74,7 +74,7 @@ /obj/item/reagent_container/food/snacks/fishable/crab name = "\improper spindle crab" - desc = "Delicious crab meat... Have you seen my meridian vase?" + desc = "Looks like a little crab" icon_state = "crab" gut_icon_state = "crab_gutted" guttable = TRUE @@ -85,7 +85,10 @@ bitesize = 6 trash = null//todo, crab shell -/obj/item/reagent_container/food/snacks/fishable/crab +/obj/item/reagent_container/food/snacks/fishable/crab/Initialize() + . = ..() + reagents.add_reagent("fish", 5) + bitesize = 3 //----------------// //SQUIDS @@ -117,12 +120,24 @@ base_gut_meat = /obj/item/reagent_container/food/snacks/meat/fish/squid/alt guttable_atoms = list(/obj/item/reagent_container/food/snacks/meat/fish/squid/alt) +/obj/item/reagent_container/food/snacks/fishable/squid/sock/Initialize() + . = ..() + reagents.add_reagent("fish", 1) + bitesize = 1 + //----------------// //WORMS /obj/item/reagent_container/food/snacks/fishable/worm - name = "generic sea worm" + name = "sea worm" desc = "Could be useful as bait?" - icon_state = "worm" + icon_state = "worm_redring" + guttable = TRUE + gut_icon_state = "worm_redring_gutted" + base_gut_meat = /obj/item/fish_bait + +/obj/item/reagent_container/food/snacks/fishable/worm/Initialize() + . = ..() + reagents.add_reagent("enzyme", 1) bitesize = 1 //todo, attackby with a knife so you can make bait objects for fishing with /obj/item/reagent_container/food/snacks/fishable/quadtopus @@ -132,10 +147,82 @@ bitesize = 2 //--------------------// // SHELLED CRITTERS, you have to pry them open with a SHARP object to get the guts out. Maybe should be bool hasshell = TRUE and overrite gutting proc? -/obj/item/reagent_container/food/snacks/fishable/shell - name = "generic shell" +/obj/item/reagent_container/food/snacks/fishable/shell/clam + name = "clam" desc = "A sea critter contained inside of a shell." - icon_state = "shell" + icon_state = "shell_clam" + guttable = TRUE + base_gut_meat = /obj/item/ore/pearl + +/obj/item/reagent_container/food/snacks/fishable/shell/clam/Initialize() + . = ..() + reagents.add_reagent("fish", 1) + bitesize = 1 + +//--------------------// +// Pan Fish, Regular fish you can gut and clean (additional fish past this point) +/obj/item/reagent_container/food/snacks/fishable/fish/bluegill + name = "bluegill" + desc = "A small spiny fish, yeouch!" + gut_icon_state = "bluegill_gutted" + guttable = TRUE + min_length = 5 + max_length = 16 + base_gut_meat = /obj/item/reagent_container/food/snacks/meat/fish/bluegill + guttable_atoms = list(/obj/item/reagent_container/food/snacks/meat/fish/bluegill) + icon_state = "bluegill" + bitesize = 3 + +/obj/item/reagent_container/food/snacks/fishable/fish/bluegill/Initialize() + . = ..() + reagents.add_reagent("fish", 4) bitesize = 2 - trash = null//todo, shell trash - //todo, attack by proc with objects to pry it open to spawn pearls and make more food + +/obj/item/reagent_container/food/snacks/fishable/fish/bass + name = "bass" + desc = "A staple classic in fish cuisine!" + guttable = TRUE + base_gut_meat = /obj/item/reagent_container/food/snacks/meat/fish/bass + guttable_atoms = list(/obj/item/reagent_container/food/snacks/meat/fish/bass) + icon_state = "bass" + gut_icon_state = "bass_gutted" + min_length = 8 + max_length = 32 + bitesize = 6 + +/obj/item/reagent_container/food/snacks/fishable/fish/bass/Initialize() + . = ..() + reagents.add_reagent("fish", 4) + bitesize = 3 + +/obj/item/reagent_container/food/snacks/fishable/fish/catfish + name = "catfish" + desc = "Quite large though not good for eating since it's a bottom feeder." + guttable = FALSE + icon_state = "catfish" + min_length = 10 + max_length = 108 + +/obj/item/reagent_container/food/snacks/fishable/fish/catfish/Initialize() + . = ..() + reagents.add_reagent("fish", 4) + bitesize = 6 + +//--------------------// +//Urchins, spikey bottom-feeding creatures +/obj/item/reagent_container/food/snacks/fishable/urchin/purple + name = "purple urchin" + desc = "Glad I didn't step on it!" + icon_state = "urchin_purple" + guttable = FALSE + min_length = 2 + max_length = 9 + +/obj/item/reagent_container/food/snacks/fishable/urchin/red + name = "red urchin" + desc = "Glad I didn't step on it, it looks angry!" + guttable = FALSE + icon_state = "urchin_red" + min_length = 2 + max_length = 9 +//finished code on worm and clam fish and items, added 3 new fish types (catfish being non-guttable is on purpose), worm now drops bait when gutted diff --git a/code/game/objects/items/reagent_containers/food/snacks/meat.dm b/code/game/objects/items/reagent_containers/food/snacks/meat.dm index 3b709b821f69..252f0dfb6a58 100644 --- a/code/game/objects/items/reagent_containers/food/snacks/meat.dm +++ b/code/game/objects/items/reagent_containers/food/snacks/meat.dm @@ -98,3 +98,12 @@ desc = "Pink squishy meat from a squid or squid like creature. You're no marine biologist." icon_state = "squid_meat_2" +/obj/item/reagent_container/food/snacks/meat/fish/bass + name = "Bass meat" + desc = "Sizeable hunks of cooking fish!" + icon_state = "bass_meat" + +/obj/item/reagent_container/food/snacks/meat/fish/bluegill + name = "bluegill meat" + desc = "Small strips of pan frying meat!" + icon_state = "bluegill_meat" diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 29e22b649079..11e3843b5391 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -641,6 +641,7 @@ name = "river" icon_state = "seashallow" can_bloody = FALSE + fishing_allowed = TRUE var/icon_overlay = "riverwater" var/covered = 0 var/covered_name = "grate" @@ -870,6 +871,7 @@ supports_surgery = FALSE minimap_color = MINIMAP_WATER is_groundmap_turf = FALSE // Not real ground + fishing_allowed = TRUE /turf/open/gm/riverdeep/Initialize(mapload, ...) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 5b429bced71a..b97a9d0b194e 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -65,6 +65,9 @@ ///hybrid lights affecting this turf var/tmp/list/atom/movable/lighting_mask/hybrid_lights_affecting + /// Is fishing allowed on this turf + var/fishing_allowed = FALSE + /turf/Initialize(mapload) SHOULD_CALL_PARENT(FALSE) // this doesn't parent call for optimisation reasons if(flags_atom & INITIALIZED) diff --git a/code/modules/fishing/bait/generic.dm b/code/modules/fishing/bait/generic.dm index 8a8c8698d7d9..ec456fde49af 100644 --- a/code/modules/fishing/bait/generic.dm +++ b/code/modules/fishing/bait/generic.dm @@ -1,7 +1,8 @@ /obj/item/fish_bait name = "fish bait" desc = "A tasty piece of... meat? Whatever it is, fish love this." - + icon = 'icons/obj/items/fishing_atoms.dmi' + icon_state = "worm_meat" var/common_mod = -10 var/uncommon_mod = 20 var/rare_mod = 0 diff --git a/code/modules/fishing/datums/generic.dm b/code/modules/fishing/datums/generic.dm index 3d2766efba4a..59d2b0fae727 100644 --- a/code/modules/fishing/datums/generic.dm +++ b/code/modules/fishing/datums/generic.dm @@ -3,19 +3,40 @@ GLOBAL_LIST_EMPTY(fishing_loot_tables) /datum/fish_loot_table var/list/common_fishable_atoms = list( /obj/item/clothing/shoes/leather, - /obj/item/clothing/shoes/marine, + /obj/item/reagent_container/food/snacks/fishable/crab, + /obj/item/reagent_container/food/snacks/fishable/worm, + /obj/item/reagent_container/food/snacks/fishable/shell/clam, + /obj/item/reagent_container/food/snacks/fishable/squid/sock, + /obj/item/ore/coal, + /obj/item/ore/slag, + /obj/item/reagent_container/food/snacks/fishable/urchin/purple, + /obj/item/reagent_container/food/snacks/fishable/fish/bluegill ) var/list/uncommon_fishable_atoms = list( /obj/item/cell/high, - /obj/item/device/multitool + /obj/item/device/multitool, + /obj/item/reagent_container/food/snacks/fishable/quadtopus, + /obj/item/reagent_container/food/snacks/fishable/squid/whorl, + /obj/item/reagent_container/food/snacks/fishable/fish/bass, + /obj/item/reagent_container/food/snacks/fishable/fish/catfish, + /obj/item/ore/iron, + /obj/item/fish_bait, + /obj/item/storage/beer_pack, + /obj/item/stack/sheet/metal ) var/list/rare_fishable_atoms = list( - /obj/item/reagent_container/food/snacks/packaged_burrito + /obj/item/reagent_container/food/snacks/packaged_burrito, + /obj/item/ore/silver, + /obj/item/ore/gold, + /obj/item/ore/diamond, + /obj/item/reagent_container/food/snacks/fishable/urchin/red ) var/list/ultra_rare_fishable_atoms = list( /obj/item/card/data/clown, /obj/item/reagent_container/food/snacks/clownburger, - /obj/item/reagent_container/pill/ultrazine/unmarked + /obj/item/reagent_container/pill/ultrazine/unmarked, + /obj/item/ore/osmium, + /obj/item/ore/uranium, ) /datum/fish_loot_table/proc/return_caught_fish(common_weight, uncommon_weight, rare_weight, ultra_rare_weight) diff --git a/code/modules/fishing/poles/generic.dm b/code/modules/fishing/poles/generic.dm index 6e5a624f7884..57b617bfc673 100644 --- a/code/modules/fishing/poles/generic.dm +++ b/code/modules/fishing/poles/generic.dm @@ -21,7 +21,6 @@ var/obj/item/fish_bait/loaded_bait /obj/item/fishing_pole/examine(mob/user) - . = ..() if(loaded_bait) to_chat(user, SPAN_NOTICE("It has [loaded_bait] loaded on its hook.")) else @@ -32,21 +31,19 @@ var/turf/forward = get_step(user.loc, user.dir) if(!forward) return - if(!forward.supports_fishing) - to_chat(user, SPAN_WARNING("There are no fish in the area one unit in front of you!")) - return - var/turf/fishing_turf = get_step(forward, user.dir) - if(!fishing_turf) + + if(!forward.fishing_allowed) + to_chat(user, SPAN_WARNING("You can not fish here!")) return - if(!fishing_turf.supports_fishing) - to_chat(user, SPAN_WARNING("There are no fish in the area two units in front of you!")) + + user.visible_message(SPAN_NOTICE("[user] starts setting up \the [src]...")) + + if(!do_after(user, 3 SECONDS, show_busy_icon = BUSY_ICON_BUILD)) return - user.visible_message(SPAN_NOTICE("[user] starts setting up \the [src]..."), SPAN_NOTICE("You start setting up \the [src]...")) - if(do_after(user, 3 SECONDS, show_busy_icon = BUSY_ICON_BUILD)) - user.visible_message(SPAN_NOTICE("[user] finishes setting up \the [src]!"), SPAN_NOTICE("You finish setting up \the [src]!")) - var/obj/structure/prop/fishing/pole_interactive/deployed_pole = new deploy_type(get_turf(src)) - transfer_to_pole(deployed_pole, user) + user.visible_message(SPAN_NOTICE("[user] finishes setting up \the [src]!"), SPAN_NOTICE("You finish setting up \the [src]!")) + var/obj/structure/prop/fishing/pole_interactive/deployed_pole = new deploy_type(get_turf(src)) + transfer_to_pole(deployed_pole, user) /obj/item/fishing_pole/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/fish_bait)) diff --git a/code/modules/fishing/props/fishing_pole.dm b/code/modules/fishing/props/fishing_pole.dm index c342b5afb64c..6da4f4fc21e7 100644 --- a/code/modules/fishing/props/fishing_pole.dm +++ b/code/modules/fishing/props/fishing_pole.dm @@ -9,10 +9,10 @@ /obj/structure/prop/fishing/pole_interactive var/time_to_fish = 30 SECONDS - var/fishing_success = 'sound/items/bikehorn.ogg'//to-do get a sound effect(s) - var/fishing_start = 'sound/items/fulton.ogg' - var/fishing_failure = 'sound/items/jetpack_beep.ogg' - var/fishing_event = 'sound/items/component_pickup.ogg' + var/fishing_success = 'sound/misc/fishing_set_hook.ogg'// changed sound effects + var/fishing_start = 'sound/misc/fishing_Line.ogg' + var/fishing_failure = 'sound/misc/fishing_fail_splash.ogg' + var/fishing_event = 'sound/misc/bobber_water_splash.ogg' // these can be modified per-rod to make one luckier than the others var/common_weight = 80 diff --git a/icons/obj/items/fishing_atoms.dmi b/icons/obj/items/fishing_atoms.dmi index 17716516895208c30dd6416114afff000cb011b2..729c5080f3f0a23e9614ff9e3b7c0a5674edd4ae 100644 GIT binary patch literal 21767 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

(TmE2dt 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 literal 8124 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 diff --git a/icons/obj/items/food/fish.dmi b/icons/obj/items/food/fish.dmi index 29f219c141cfff1f8b2d813c728bf96addd213c1..bea948dd501c6229d5891fc60c9f1646501348b0 100644 GIT binary patch delta 2650 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 Uqn#~W4)5w&*v@P?Y7oNoAASf|(f|Me literal 0 HcmV?d00001 diff --git a/sound/misc/fishing_Line.ogg b/sound/misc/fishing_Line.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6e20d22c02d4b91534d94f5e33e186e019763cfb GIT binary patch literal 23664 zcmeFZbzGFs+dq15081#{;gYgTcdD?2bSx|l(gIS_i0INCB8?~@AS~UX2vX7=Qc6gN z3J40QXYuoWp6~ZL|NPGD^_;)X>kPAVU(+-1>zbKs=AIkfyLSx$Fz_!^7FGKDl3Wwb zAqKI5{5-sDoxLvuz}VN94*L|) z+4wn1iU{KWgoQ6Nu;G6W?sgvb4qi9#ad!APvCBBPtF!Gtxj+Q}Jh@RyMj$`|0Jyvv zkg7%Abm0_CC_TnC7SzbSJw}ukWhjfNmiZvJcQSin9xB?LH)Jds16*c^QVgI8k5z=R zhjZUBNeR1t15ZWE;KQ6R!zfVy<*3Lw;bRqHtl?|I(qv)l(mzUaNkrIDJnWUOkLs!Q}|uQ0J?wb z;8Ije4kJ|TV+dDO#J7M@rkN&uP_cw594Q0477iD;rv;J$Ag_Qowt$y}f~l4S=mP)> z1$~nKTD1e-+!Y+}<1u1aakB)YA5x+P4^6!r|YGrr|im?{h7PP>oRxc(2| zU_b%J9zlav`!B~fnmv-iYXI>oFH{3rT2c@%I>=u)^w*KyE3dmMM<&uup~P3wjW%$T zm@&C`AhVerR&Qi>uc861fhbBvll;XGj>jHF$Y`Iee_66^G~(4WFA`+QKXAe?SpxvN zhb-fitpB#(SVk$i^{MbyU{X|K(m(~{>oA+{YuXfS{vpEhG-glO_Et;9LOU!*$z>>o%H81&t^EqKhTFM3<#YgiFPXe{e$l zpFWOL-@pTE?DNm0@h=7d09k)E&EPnTHWl|YS^#4pFpXB3Ho*L!jP|6sHZ>ktVjvj= zBvTj&2=rzX$8p(CxRmADk)ijBYSfT-8=3}0A{ZL1n4(hkDS}G5>|zy%1PaFxJQXvB zs0f*DQ+`#Z{Fk496e2zjk=Mu19{+3ef3K?=UzalFnEZd#g|A3{ z{Qr%9{jVGQ{}=H8bp$BzOWiX5XU$H-RLcQGQv;rAR9wU<&|!#LI)Qdr@jG!)ii6^0 zp0lv_zp>!LM<`ChV*z!1#F%(A$G@Xe@DX{=6e`$4e1sFze~%%2icxX)SPGR)o(?hX zXbxq{V&Z@2`cDc!Gc$PN7jWTxvj1+AbgTmiz^+NB<8^|>H4{1jFiGc*1psT)Y+n3C z|GzW;vqCB$8Vq>y;wyY#!@rELk*mKJNGBMR#}8uy=+~zqJiywEPmn#1Ns0! z*i*x=O|6nr=$w5$mP>t7UYEu>do%F4bLWx#Ww#5QvME&b#kDhwopDHEZ4515Us=9{ zJ*>EU6^Mu|hXN=tz!Ga~n!OSD{CaG0Y4$&*sEmti8(`E^iUXhHl_lrwVq7i1_L2PM z5@m?NMEollhugtdq)UTOjhXgcxhw%+BW|blZ>5ul+8AF;cx!Ix<{ z>l?BeQ{arlm9+{|XkQlRYiUY&*+SgzfT#inUy`M9I_NUXZfh->9%dFFpY8x$`uGR& zs9$BlYs&F?Pvens)#Kr$6L|fI z8UPIcqW!XO1InrR7j85NAWO8ngd2}kI@e!r@n#qEsQ<$NT>pRJnTBWMCGMZzAQiiY7w#eaxD6`+O}`S_ZdONDAi;V$06 zQ`n)u-hVsj%h-Q={~u8Tc;)P`hV~y00dR(q27cW7P%Yc3K5k--=O_q^7xxZ^A_i|V z6r#uwhUb8fp;=rFDq3Wdt8mK9wa0rzk(WJf#+LuN_f-@E(PLz%j|fMjH3S+>;xzJK zrl2({rcL5SN(*Pq;wpM=b)7FbJR=njlurl}npQNY7MD1>kXm zQ{aUJFEeUmr6$O{EMQ{K;&NLxZENk zio*WJQfTlN71I1`$5dLFdP$*C_}=0f^*0@NAzs7141?w4nWuq>z-KE;#djG|M5RH@ z9ZrQtAc|--VC?uve3+pIaeg=zUN|qY#}}Z1z;l;H8m}BPC|+m8(Am5srf2(SR_qBDj-`oi($;x$F!E53mi z043%4kd3{QtEW%ELu`0-d@_E5#2b3xA%5q|t)Q$d?#;l+#LU9Vb`8$X!O4Z6#{b!X z!?6Gq`j19+IfFx?|Lm}_Z~o>7E_c|M;apm*6WL-CV&YN~0s=Bpa)SHxcD+cT4LddUqArCCx8@3No{=*Ny=)r^0?f&~U6stW9e;`oH>u)Udd?&aTi5Oy!M{aa1Y)6?d;LL9r zRWX{EmA39=`40`=zD#yyX@^>HzN$+J!dzZ6d-| zlep*zA~}#-}K#ZTi{cibS^@5Z8DI^6KDrq4RH5ZKCxtzLBE7y zio8(WHhHyQw^gOONujr)7kXaCJl9+~7h|$+DU5J|f4l^G8$j5|(av(R#;pRLTkTHOAhIQrD#DdVuAOp_3CI{3xZ7C=doAtC78h)a zFq@(&`?)q|-aXT653AgS(2&yZ$1l0Nv#}_Fl@0*90AYVhu!OoJ{U+@y#cfyzU?D6g zefIGaiiEuCH3dDDvc7yt@je~R{Wf*r+VO~X=Z8_t&fb0EF)W1w@JKjhqTwzlhFAWe zz|Js6_=AO{N*S~|&RLG&!^J!+;^|=i=c?3TY`g*h`n}Kdu6Of~iWP}Ht%h%qUW1_; ze?~DWlb-_!&Ir8|7HH6p5&E

Vtuy%LI^s_CQi|7kmD0N%dB@q6+l=z!q6!mFac& zD-2+orQ+7wmVEP4zMNqE(m?Wzc-gN#=s`I_OdHPRyv2lHffq5wMC7qN?2P~}CL&+g zhcmZwzcM8J0~Fe#-Zq51&w0UDVm58V5SeHf<+sNWQ))WCeQYxByw$E!Y*eu!z#8df z?WAS@v4Z4MA`Rb@FCo6+&dC*u(SNkyE%m=$)ns#FCT|9CBN*KF9Ltlc!|2XWk8dVf zx##MiRr$WSDGH-~?=I3OTks@B;yX;7LSuI6W?!p7Hn*uklENbpumfS8qO9jvH%D}@ z$1cMr@__Ke1pjmQCbxx1by!srReHv0LGdH6l(2)<9qQ`Cih`gtl}W#OL!9YxoMHzBn&Gy!De&e^VG1MC@Onik ziI9+x2qy?w605RerNZb6*dNfi)fBi<0!y=EX|nBa!hapEDk4=rD#BoTWZW`TRnZRY zq2=nJoFYNNje-OPvHS_iSveJ`T1|5^?80o#7}2gt>R)t0Dhw<9^QPt9<{e${V_c}A zIy61aZE{Rpd$W1!rif9QI!zY){V>(BYs$wT$v&N2?BBG=nT**W7lsi0upn1xS&7x; zE}d`1jlD#s>d+Q>I7m2`O&V6EmS->0cZ5(wFXemeSKd8OqUrBoEkcnFQeCWh@!LsN zrV=eDmdH|<`7O&iy6G`>6$!5fmMA?p8nRLp4}j)P$e5-IFIy6A6yvL4b_?u_r3xf+W((F~jX zq2Oksz^CpzFKezmr#i=dbM9v;EXXrt$Wt@t3))FA)Od0=SuvbFg)K?7H@b7=&mk=#LVDo@Bw1ZHgP_dZo=j}tmv|uD$S)>w9W8psg zM3D^MK?t2=RTTIYdXSix{+k?Ns8v{wxQ-o-`V?w}9LWnu8>4j48pr9Ax1N4k4hJrD z%6%i5?6q-qL%~=I1Couq#PXjZ=K8b^6*^_=1ij7QQM;2ugb6|oucSOcKbq0|_dhmLm=j6sO(RBI=ty~TnkEI4qJRhP5h!&kcXb=P zKO%%^=ERyCxzA47#Ywsi#kECVQGiI2eR?T9xR7i1Li-eo)eG6Z4d&CRdctNSaFi!U z%4w`up*wcr6iqw^kS(owOYYVLp^ElEaE!+n=$~sZqiArcWsu~q#uCez6sIlwa#JZf z5M*y+$T$X{Qdu$x;Go3{8_yVO+Y12=sVasD7wOzJy{<&96&B+z>jTluN<2P z0{B?-XkcGQyTMFD4~0vRo%bI4FXWZh4^9{c&yE`FoPwZBYhDhG4U;Fvj;+@fAhg)i z?*u;3+Kl8Lc6l`^ z9+Up-W^lX7y**u<_cRytyxtr+N=h3sUy0Q28~(mUhyA1@|G;p%0_PV}Z_O)^{hWkK z8Khw~V43_e+C@o7c5Fn&>w{LtjhD!^F6RZ*e*YrXX@mRJ&^NCpw_?ddBH(NBEnRtC zc}EYgyQ(M4j=~Yr!?Cp97}}l3%Qi38x9FB)Fb5BIt3U3?>wc=eUay8Y|G7O|VfDzu z!%BYl!rh;)j8CHBzzSomw%h|SfJtp-s#%_1)gz>c(U3@UH`qnPEfRkV*Vu#eC~3Z7 zxtZS_D;jr4bbG#0W{z=qH(Y2PC=AZ(sm=Q}=zI07qPL+zRpN-X4)F%S0k**L zRD$x%@zfQWd)Khhv_D?ifr>uk zW%h_1P_zI){6kw^sVN?f=%?VIe8)^|UnOv}sp7#akc7`%k0-D=5^goOm?SYECVC7| zI1s`-9mzdye@yE|OOq<{GH&TX{rDcO*On+W9qI34v7mY_59YR?Ew{sK$SF8X|1_I_ zJ!iPrWn!`R=s+l?@C{ahqvQn?S7?NIQrY9cl0`VBV^vo~+NiyjSxGKD6#Dae5NYLU zV3=BA-){?}`i7BKi-wFwzln0m!;b;y*R7m9{s7YeD4E=SL|nN_&z4raU`RSO0?X2VnZJhHEqATt8S`DGxkdFK!no-$XJ{@kPuTlJFHPe=q)&6P|)oR-b5Ono!rv z(^&z*Rb#5jzfKIguLyT^)>KD~f#DUf@D5b0grd!ahJLMrUr!!bOVzrX3-AyQ<%(2j z&UXfuy)cL9f=WSp?Qk^_hEsaZfR_V;YC#n|YmxQ!CsG&8zu6vzn6NFWrDBVj^B(sc zAd_I5b=B+Jfh?iGrZ1zNS_l8q;&6{=cQ_n?LZllv`Hv*BINhenNE=q})CZRW99U^K?8Yk!+Mjd7Dcy5UAA%7++U{1*j}$K|I&Wq;0K3K*GR<+0XSm zBS~pVBO%g3U^0i0hIHW8qdeYv%h;nG#a8|P%0}~)fEQ2hYevn;^~PK?W;P}uTVPxt zBx&7WA3Ou7g?1ts^L|zzXrMwWjc(&yBKQmU1f*00M5Zis@grIRn1`6g2NR!G~R`QP?&;8zxelu zSf*XpQUW%HC0_4kHHOwS`3E+=aCS+5{d&evur$`!x77{vwD@)|46t4Jz^k;XjO*X* zxJH;omq1C{{J4iuE`qMQhRolWKEeSN0p^Vwx;4OC5Ir7ahCV%p|30&L8K-+cCey+_ zDd0F3YmOeBny!r=D+51e)wD}*JF(bCSKiG`D^{tW6%=t{s*{8aI(#AH_Sv7oh8KSE zgh$`s6w3mtLkOV@xh4e6KK@k5eGQ_#+74&Yj^jADCc>~cTVHo(t|@-iAbR+YJh}^V zJVM5+>Ec;I>YyG3h#DyG4PrsSfN5;U!#`?Y*N)qh(P`=0cXp_9(~E&m4)^RV6Xky;;=OHXa>LBpZ0bF49HlO4IAo zk14SP9luIK*nck7Rp1bK`v8flduGE zwJj0fAg0iS-Kl*$3tB%X^UX(c;6PpI;w`x)LxOj2OX9bKFwWaogINOiCX5-+TN?wm zgR8DJOum^}7^$swmV2VYjZquKT~r_^5an?LG$hj>awF6bl05CvHF~PPyiswsSLfkh zm6bCUodXh{-BaT<uEV7jqtp0CgcOAcS~_{uW^WZ+e-@7)629W^J z*+$vL-6GZfV^Fj{=(p%q6XTcXzV0gexmT6FCbk^YJ=+d6P7>lwLUbjeOB*+zp6B<- zcHy-XK7txU8Hy|8FMaVKe&Hb4i$B{7rYDp?sx7*<6CwdAh2n9ck z%eD4hX+}oS<)-GEnTz+vDd@F;PbCGKl|9ArtF5EpGqNQaiHLSD}^kSwTM1TH6gzkZ%191eZGyAF0bPGpSav8~xWl~0~ zgFExIv%w0?j5k+kO69;2?DN7ViU?P5Q6M&F5FNl$Rkd=P)DZsFL9%slowPBtIT?Ju}r zkd>u49o=D-0EQ()(KKpYxMH!@5v`0?OT!GK>&?W;DsVEmr*ur98Kr4AnzN1kf@PhP zO&K{a$?$H6?harP;zD*!>`?Ss!XIPA0XsC3yq`8!#N%FQbrf@ysT;!Fdm%wk!NoI* zm0?-Mq{KD-VJ;_q$};dxKBY|r0n2l}Z;AwP_~UmvhTM(p1in+-02dL&wCeA?;7Z?J zms|8*Zs_ua3ovke9x+t3pOwj2$3KXnG=ib-uN+b34W2JlEuDYbS^c`@H2br1#b$|K zhc?04C_~n5cg+4NpD|OF)1AHj_vO>7Me5fC)8WK`$%rD(SuRbZ2WD!`QbA^7#Lo-& zvK}X}?jYb*ia==Co--F#fGbAZSUg@W361-`|E2v9qFZ;( zI7D-tBafs9OCgYda*h2~D8-j9+y{FF&nRo|$nugcSMzG;7RsWk?S&{K`k1_Y!Edhv zO%lv&9_rDEQsBqd_3s_!{*6VVYQF%Ha^RK>760HJQM$+(_QB6u9v`e~-#gG98ROfPCgB-XPG$ z&M>NS=gY2Yr10SOtMn*&b)$IP#zSL-wAcI=)-RZz-T|;+jL1`e6_lgb-mNIW<~xY;Tjr7!f;_dbRGpCv{PA<7AykObWB!fROn+| zkVf^^cJfXQ&igfqDEAsXXeNXBpF=w^(=S5}bLQBNiZs}%wj{HCrLciny0n!blaEiz zM~@gSfWBkKeTgR>@mH`fWFdM)kdv9Iwr;0oD)DK9yz%Gg)*p#6I^9_(#kf=TR1n2Xsl^j-ZHUqv4;A zT%-5^9FI}z^dI}*glX`+C-^;<63qaHHly}4dQ7e=5_m?Lb^xd zpQ=CDQ&&3yMHd1gcWQU6Kbgm=2$$e^1N4n);`-5-=*WcEcd5jx|ybx&@Jku-V~ z3jYMKIPl|4R*R7_{}=Dw;s&PYvz_=?Ti;^E0z| zqSY0++Fj$vZHhK|9~Y{iS$yr$#*xFdTJYjng@VBNEwMqqJT`!Z6#8fv5DdN<%uwKs zXcV#PgQG;%BRA+IrWYLE67Eg7aMHUj1O;BR=1u!>ma;q&$TN-ONYi{^buULFwy~^U z+ao4rmr6$@@MB$~yJYNv@8XC_-$-P|3qHA15Q;z_V~4G$KVMf&GxUG*=oW1@ykx9O z%<8*pllI!T8sU}#bct$dSuB_FzNS9VtrL7&`603F>96xUkMDAk#VyK-_xEnJE;*~4 z3eHzLyoPJEm?35->*)E6k=jx{3yOej)A9Q(c@aAQQb!k_$7794Jf^5GI^!G`%s&Z$ zlJ{LMdqZ5Ihz=9X)l!aBu_TfCp0W9S--7*H{=b(We#a$D{tVk!(cO98vQaH|?c(&? zdind(8|^1=GEbK0Q__4yZ|F5^_;MGa5o48(|ocC$@AIn<}$< z;s3|Wv)+&E=MmQ}`t2by4-GjN!^4A0YN9*O7G%>(E~?8vR;sIBWwB{-qBotRv3tj% z+E7@O6Ilrht7eFQ*9T?^?a*Q0E^d1q#>IdV#)3P?((UzRX~0ksDs>(afCo$g=UO$P zveLI^UOW}xdP54pOcD%@8%E{{6c*GU;_t^9xbf)|NXd`ioH)BjHvPRs$e)H};;p%M zfi(N^CtDKpz%G*M*_!lEPQMqntrM>7OLp<0J4{>(;~dE%-UQ zgyj@WQKR7DXkHz#t;vCK=%`lcgF6tEotRm04%IGn|7;!7z#qIlc^r8vca0_MGh|sA z{N)5FrMt17p%AMgp?SM#XjfQOvYCSAJug4&yJh^`9(b#5x8^$0jbH#)K+=&zz1%xW zUXUS8(!fzYpSZ2;$CojERjbL>yB9>Z5afP?x%E{3`yQko2_!IDhum}|#i$7S)fwU@ zN_^^#Vby^D0cgYDKjBvlRNai)u&bE;Y8P}I*0r!c8sayLH?I&w4onD+QSvssgI zk+bbuIxlpANdx_&QEQcv18eOmP^Iq_g+={<0ds~)z$&wPNm}# z4a@^OwW0?(B;N6WEX;DIZPDIIDJJPwO_@H?+*S#

X8D4` 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 literal 0 HcmV?d00001 diff --git a/sound/misc/fishing_set_hook.ogg b/sound/misc/fishing_set_hook.ogg new file mode 100644 index 0000000000000000000000000000000000000000..eaf100ec24c417ab5ec9a1d84e35757a86f12f5b GIT binary patch literal 29947 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 literal 0 HcmV?d00001 From 866787337c5644b73435d60fd9b2d25232ad8dfa Mon Sep 17 00:00:00 2001 From: "cmss13-ci[bot]" <180991813+cmss13-ci[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 05:01:30 +0000 Subject: [PATCH 16/25] Automatic changelog for PR #7881 [ci skip] --- html/changelogs/AutoChangeLog-pr-7881.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7881.yml diff --git a/html/changelogs/AutoChangeLog-pr-7881.yml b/html/changelogs/AutoChangeLog-pr-7881.yml new file mode 100644 index 000000000000..5afe842528e1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7881.yml @@ -0,0 +1,9 @@ +author: "Sergeant_Lemon" +delete-after: True +changes: + - rscadd: "new fish types to the old fishing code" + - rscadd: "added turf flag 'fishable_turf'" + - rscadd: "added items to fishing loot table" + - bugfix: "fixed fishing rod code so it fishes on ocean and rivers" + - code_imp: "Changed code in the fishing category as well as meat, ore, and atoms" + - imageadd: "sprites for new fish and pearl item" \ No newline at end of file From 28bf8164895c60155d482b9e435c3e728c6f090f Mon Sep 17 00:00:00 2001 From: Vile Beggar Date: Wed, 12 Feb 2025 07:09:26 +0100 Subject: [PATCH 17/25] Adds a shotgun choke for the M37A2 (#8277) # About the pull request adds a new barrel attachment for the m37a2 shotgun. it's available in squad prep and requisitions in small quantities. it changes the shotgun from a secondary utility weapon to more of a CQC primary, similar-ish to the m39. sprites were done by thwomper. ![image](https://github.com/user-attachments/assets/d9f71fdc-2fd7-4e4a-8818-cc1b0582f4be) the stat changes are as follows, negatives are: 1. reduces the damage output of the shotgun by 20% 2. remove any stunning or slowing ability from slugs/buckshot 3. increases the recoil by 2 steps positives are: 1. increases the max range of shells by 1 tile 2. doubles the fire rate from 0.5 bullets per second to 1 bullet per second 3. decreases falloff by 30% 4. decreases bonus projectile scatter by 5 (buckshot is now a much tighter formation) 5. increases accuracy by 25% 6. increases bullet velocity by 1 step it also changes the firing sound to a different one, so enemies can quickly differentiate it from a standard m37. VIDEO IS OUTDATED BUT ROUGHLY SHOWS THE WEAPON'S FUNCTIONALITY https://github.com/user-attachments/assets/a216e9d8-06ea-4648-a042-1710faf3c749 DPS TABLE: | **AMMO** | **MK2** | **M39** | M37 **CHOKE** | |-|-|-|-| |**STANDARD**| 176| 226 | 208 | |**AP**| 132| 173| 96| it's fairly solid at clearing out soft targets, but flechette rounds lag behind regular AP ammo. i think the risk of being forced to get close up is worth the DPS being comparable to the M39. the range on buckshot is worse than the M39's, but if you can land a solid click the payoff is much greater. note, i am unsure of touching flechette damage values currently due to #8048 being in the air for a testmerge, and i believe it's fine as is when it comes to the choke right now. some guncode lines were changed to get damage multipliers working for bonus projectiles, along with a new variable that increases the max range of projectiles. PBs now inherit damage multipliers too # Explain why it's good for the game it's a new, fun way to utilize a primary weapon. the attachments marines currently have are pretty lackluster, with most of them being bland stat increases and some of them just straight up being absolute garbage. hopefully by adding more unique, mechanic-based attachments and tweaking some of the others we can make the system a lot better and fun. i think this attachment is a good start while the numbers might not be all there yet, they can always be tweaked, and with the lack of stuns/slow i doubt this weapon will be that oppressive against xenos. # Testing Photographs and Procedure

Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: Vile Beggar, thwomper add: Adds a new shotgun choke attachment to squad prep and requisitions vendors for the M37A2 shotgun. /:cl: --- code/datums/ammo/ammo.dm | 12 +++-- .../bullet_trait/knockback_disabled.dm | 5 +++ code/datums/supply_packs/attachments.dm | 13 ++++++ .../vending/vendor_types/requisitions.dm | 1 + .../vendor_types/squad_prep/squad_prep.dm | 1 + code/modules/projectiles/gun.dm | 14 +++++- code/modules/projectiles/gun_attachables.dm | 41 ++++++++++++++++++ code/modules/projectiles/guns/shotguns.dm | 2 + code/modules/projectiles/projectile.dm | 4 +- colonialmarines.dme | 1 + .../items/weapons/guns/attachments/barrel.dmi | Bin 4058 -> 4172 bytes sound/weapons/gun_shotgun_choke.ogg | Bin 0 -> 14637 bytes tgui/packages/tgui/interfaces/WeaponStats.jsx | 15 +++++-- 13 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 code/datums/elements/bullet_trait/knockback_disabled.dm create mode 100644 sound/weapons/gun_shotgun_choke.ogg diff --git a/code/datums/ammo/ammo.dm b/code/datums/ammo/ammo.dm index 1ecd7925f530..28185a4ab47d 100644 --- a/code/datums/ammo/ammo.dm +++ b/code/datums/ammo/ammo.dm @@ -144,6 +144,9 @@ return 0 //return 0 means it flies even after being near something. Return 1 means it stops /datum/ammo/proc/knockback(mob/living/living_mob, obj/projectile/fired_projectile, max_range = 2) + for(var/list/traits in fired_projectile.bullet_traits) + if(locate(/datum/element/bullet_trait_knockback_disabled) in traits) + return if(!living_mob || living_mob == fired_projectile.firer) return if(fired_projectile.distance_travelled > max_range || living_mob.body_position == LYING_DOWN) @@ -230,7 +233,7 @@ else P.play_hit_effect(M) -/datum/ammo/proc/fire_bonus_projectiles(obj/projectile/original_P) +/datum/ammo/proc/fire_bonus_projectiles(obj/projectile/original_P, gun_damage_mult = 1, projectile_max_range_add = 0, bonus_proj_scatter = 0) set waitfor = 0 var/turf/curloc = get_turf(original_P.shot_from) @@ -240,16 +243,17 @@ var/final_angle = initial_angle var/obj/projectile/P = new /obj/projectile(curloc, original_P.weapon_cause_data) - P.generate_bullet(GLOB.ammo_list[bonus_projectiles_type]) //No bonus damage or anything. + P.generate_bullet(GLOB.ammo_list[bonus_projectiles_type]) + P.damage *= gun_damage_mult P.accuracy = floor(P.accuracy * original_P.accuracy/initial(original_P.accuracy)) //if the gun changes the accuracy of the main projectile, it also affects the bonus ones. original_P.give_bullet_traits(P) P.bonus_projectile_check = 2 //It's a bonus projectile! - var/total_scatter_angle = P.scatter + var/total_scatter_angle = P.scatter + bonus_proj_scatter final_angle += rand(-total_scatter_angle, total_scatter_angle) var/turf/new_target = get_angle_target_turf(curloc, final_angle, 30) - P.fire_at(new_target, original_P.firer, original_P.shot_from, P.ammo.max_range, P.ammo.shell_speed, original_P.original, FALSE) //Fire! + P.fire_at(new_target, original_P.firer, original_P.shot_from, P.ammo.max_range + projectile_max_range_add, P.ammo.shell_speed, original_P.original, FALSE) //Fire! /datum/ammo/proc/drop_flame(turf/turf, datum/cause_data/cause_data) // ~Art updated fire 20JAN17 if(!istype(turf)) diff --git a/code/datums/elements/bullet_trait/knockback_disabled.dm b/code/datums/elements/bullet_trait/knockback_disabled.dm new file mode 100644 index 000000000000..c11498d57cf8 --- /dev/null +++ b/code/datums/elements/bullet_trait/knockback_disabled.dm @@ -0,0 +1,5 @@ +/// Disables knockback/stuns if the ammo type is able to apply it. +/datum/element/bullet_trait_knockback_disabled + // General bullet trait vars + element_flags = ELEMENT_DETACH|ELEMENT_BESPOKE + id_arg_index = 2 diff --git a/code/datums/supply_packs/attachments.dm b/code/datums/supply_packs/attachments.dm index b685e5c3c37f..1610dfa23f45 100644 --- a/code/datums/supply_packs/attachments.dm +++ b/code/datums/supply_packs/attachments.dm @@ -99,6 +99,19 @@ containername = "compensator attachment crate" group = "Attachments" +/datum/supply_packs/shotgun_choke + name = "shotgun choke attachment crate (x4)" + contains = list( + /obj/item/attachable/shotgun_choke, + /obj/item/attachable/shotgun_choke, + /obj/item/attachable/shotgun_choke, + /obj/item/attachable/shotgun_choke, + ) + cost = 30 + containertype = /obj/structure/closet/crate + containername = "shotgun choke attachment crate" + group = "Attachments" + /datum/supply_packs/underbarrel_foregrip name = "foregrip attachment crate (x8)" contains = list( diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm index 39cdaf98e7fa..4652f1407ad1 100644 --- a/code/game/machinery/vending/vendor_types/requisitions.dm +++ b/code/game/machinery/vending/vendor_types/requisitions.dm @@ -397,6 +397,7 @@ list("M5 Bayonet", 10.5, /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), list("Recoil Compensator", 6.5, /obj/item/attachable/compensator, VENDOR_ITEM_REGULAR), list("Suppressor", 6.5, /obj/item/attachable/suppressor, VENDOR_ITEM_REGULAR), + list("Shotgun Choke", 4.5, /obj/item/attachable/shotgun_choke, VENDOR_ITEM_REGULAR), list("RAIL", -1, null, null), list("B8 Smart-Scope", 3.5, /obj/item/attachable/scope/mini_iff, VENDOR_ITEM_REGULAR), 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 5ce8fe0db04d..0d2c0959e328 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 @@ -370,6 +370,7 @@ list("Extended Barrel", 2.5, /obj/item/attachable/extended_barrel, VENDOR_ITEM_REGULAR), list("Recoil Compensator", 2.5, /obj/item/attachable/compensator, VENDOR_ITEM_REGULAR), list("Suppressor", 2.5, /obj/item/attachable/suppressor, VENDOR_ITEM_REGULAR), + list("Shotgun Choke", 1.5, /obj/item/attachable/shotgun_choke, VENDOR_ITEM_REGULAR), list("RAIL", -1, null, null), list("B8 Smart-Scope", 1.5, /obj/item/attachable/scope/mini_iff, VENDOR_ITEM_REGULAR), diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 8a789b0a1a19..62e91243c8e3 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -78,11 +78,15 @@ var/recoil = 0 ///How much the bullet scatters when fired. var/scatter = 0 + ///How much scatter is modified for bonus projectiles. Mainly used for shotguns. + var/bonus_proj_scatter = 0 /// Added velocity to fired bullet. var/velocity_add = 0 ///Multiplier. Increases or decreases how much bonus scatter is added with each bullet during burst fire (wielded only). var/burst_scatter_mult = 4 + ///Modifier for how far the weapon's projectile can travel before it disappears. + var/projectile_max_range_add = 0 ///What minimum range the weapon deals full damage, builds up the closer you get. 0 for no minimum. var/effective_range_min = 0 ///What maximum range the weapon deals full damage, tapers off using damage_falloff after hitting this value. 0 for no maximum. @@ -333,6 +337,8 @@ //reset initial define-values aim_slowdown = initial(aim_slowdown) wield_delay = initial(wield_delay) + projectile_max_range_add = initial(projectile_max_range_add) + bonus_proj_scatter = initial(bonus_proj_scatter) /// Populate traits_to_give in this proc /obj/item/weapon/gun/proc/set_bullet_traits() @@ -396,12 +402,14 @@ accuracy_mult_unwielded += R.accuracy_unwielded_mod scatter += R.scatter_mod scatter_unwielded += R.scatter_unwielded_mod + bonus_proj_scatter += R.bonus_proj_scatter_mod damage_mult += R.damage_mod velocity_add += R.velocity_mod damage_falloff_mult += R.damage_falloff_mod damage_buildup_mult += R.damage_buildup_mod effective_range_min += R.range_min_mod effective_range_max += R.range_max_mod + projectile_max_range_add += R.projectile_max_range_mod recoil += R.recoil_mod burst_scatter_mult += R.burst_scatter_mod modify_burst_amount(R.burst_mod) @@ -700,6 +708,8 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w data["unwielded_accuracy"] = accuracy * accuracy_mult_unwielded data["min_accuracy"] = min_accuracy data["max_range"] = max_range + data["projectile_max_range_add"] = projectile_max_range_add + data["effective_range_max_mod"] = effective_range_max data["effective_range"] = effective_range // damage table data @@ -1253,7 +1263,7 @@ and you're good to go. //This is where the projectile leaves the barrel and deals with projectile code only. //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv in_chamber = null // It's not in the gun anymore - INVOKE_ASYNC(projectile_to_fire, TYPE_PROC_REF(/obj/projectile, fire_at), target, user, src, projectile_to_fire?.ammo?.max_range, bullet_velocity, original_target) + INVOKE_ASYNC(projectile_to_fire, TYPE_PROC_REF(/obj/projectile, fire_at), target, user, src, projectile_to_fire?.ammo?.max_range + projectile_max_range_add, bullet_velocity, original_target, null, damage_mult, projectile_max_range_add, bonus_proj_scatter) projectile_to_fire = null // Important: firing might have made projectile collide early and ALREADY have deleted it. We clear it too. //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1497,7 +1507,7 @@ and you're good to go. BP = new /obj/projectile(null, create_cause_data(initial(name), user)) BP.generate_bullet(GLOB.ammo_list[projectile_to_fire.ammo.bonus_projectiles_type], 0, NO_FLAGS) BP.accuracy = floor(BP.accuracy * projectile_to_fire.accuracy/initial(projectile_to_fire.accuracy)) //Modifies accuracy of pellets per fire_bonus_projectiles. - BP.damage *= damage_buff + BP.damage *= damage_buff * damage_mult BP.bonus_projectile_check = 2 projectile_to_fire.bonus_projectile_check = 1 diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm index 57d654a76372..eaede499fd14 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -55,9 +55,11 @@ Defined in conflicts.dm of the #defines folder. var/damage_buildup_mod = 0 //Modifier to damage buildup, works off a multiplier. var/range_min_mod = 0 //Modifier to minimum effective range, tile value. var/range_max_mod = 0 //Modifier to maximum effective range, tile value. + var/projectile_max_range_mod = 0 //Modifier to how far the projectile can travel in tiles. var/melee_mod = 0 //Changing to a flat number so this actually doesn't screw up the calculations. var/scatter_mod = 0 //Increases or decreases scatter chance. var/scatter_unwielded_mod = 0 //same as above but for onehanded firing. + var/bonus_proj_scatter_mod = 0 //Increses or decrease scatter for bonus projectiles. Mainly used for shotguns. var/recoil_mod = 0 //If positive, adds recoil, if negative, lowers it. Recoil can't go below 0. var/recoil_unwielded_mod = 0 //same as above but for onehanded firing. var/burst_scatter_mod = 0 //Modifier to scatter from wielded burst fire, works off a multiplier. @@ -446,6 +448,45 @@ Defined in conflicts.dm of the #defines folder. accuracy_unwielded_mod = HIT_ACCURACY_MULT_TIER_4 recoil_unwielded_mod = -RECOIL_AMOUNT_TIER_4 +/obj/item/attachable/shotgun_choke + name = "shotgun choke" + desc = "A modified choke for the M37A2 pump shotgun. It tightens the spread, accuracy, speed and max range of fired shells. The cyclic rate of the weapon is also increased. In exchange, projectile damage and force is greatly reduced, with the weapon also having higher recoil. Not recommended for use with slugs." + slot = "muzzle" + icon = 'icons/obj/items/weapons/guns/attachments/barrel.dmi' + icon_state = "choke" + attach_icon = "choke_a" + pixel_shift_x = 16 + pixel_shift_y = 17 + hud_offset_mod = -2 + +/obj/item/attachable/shotgun_choke/New() + ..() + recoil_mod = RECOIL_AMOUNT_TIER_4 + accuracy_mod = HIT_ACCURACY_MULT_TIER_5 + damage_mod = -BULLET_DAMAGE_MULT_TIER_4 + velocity_mod = AMMO_SPEED_TIER_1 + delay_mod = -FIRE_DELAY_TIER_2 + bonus_proj_scatter_mod = -SCATTER_AMOUNT_TIER_6 + projectile_max_range_mod = 1 + damage_falloff_mod = -0.3 + +/obj/item/attachable/shotgun_choke/Attach(obj/item/weapon/gun/shotgun/pump/attaching_gun) + if(!istype(attaching_gun, /obj/item/weapon/gun/shotgun/pump)) + return ..() + attaching_gun.pump_delay -= FIRE_DELAY_TIER_5 + attaching_gun.add_bullet_trait(BULLET_TRAIT_ENTRY_ID("knockback_disabled", /datum/element/bullet_trait_knockback_disabled)) + attaching_gun.fire_sound = 'sound/weapons/gun_shotgun_choke.ogg' + + return ..() + +/obj/item/attachable/shotgun_choke/Detach(mob/user, obj/item/weapon/gun/shotgun/pump/detaching_gun) + if(!istype(detaching_gun, /obj/item/weapon/gun/shotgun/pump)) + return ..() + detaching_gun.pump_delay += FIRE_DELAY_TIER_5 + detaching_gun.remove_bullet_trait("knockback_disabled") + detaching_gun.fire_sound = initial(detaching_gun.fire_sound) + + return ..() /obj/item/attachable/slavicbarrel name = "sniper barrel" diff --git a/code/modules/projectiles/guns/shotguns.dm b/code/modules/projectiles/guns/shotguns.dm index 0a7ac214a2f7..6a9c6907420e 100644 --- a/code/modules/projectiles/guns/shotguns.dm +++ b/code/modules/projectiles/guns/shotguns.dm @@ -164,6 +164,7 @@ can cause issues with ammo types getting mixed up during the burst. current_mag.current_rounds-- current_mag.chamber_contents[current_mag.chamber_position] = "empty" current_mag.chamber_position-- + apply_traits(in_chamber) return in_chamber @@ -1114,6 +1115,7 @@ can cause issues with ammo types getting mixed up during the burst. /obj/item/attachable/extended_barrel, /obj/item/attachable/heavy_barrel, /obj/item/attachable/compensator, + /obj/item/attachable/shotgun_choke, /obj/item/attachable/magnetic_harness, /obj/item/attachable/attached_gun/extinguisher, /obj/item/attachable/attached_gun/flamer, diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 7ca7e267c942..a89d9b9a806f 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -187,7 +187,7 @@ return damage // Target, firer, shot from (i.e. the gun), projectile range, projectile speed, original target (who was aimed at, not where projectile is going towards) -/obj/projectile/proc/fire_at(atom/target, atom/F, atom/S, range = 30, speed = 1, atom/original_override, randomize_speed = TRUE) +/obj/projectile/proc/fire_at(atom/target, atom/F, atom/S, range = 30, speed = 1, atom/original_override, randomize_speed = TRUE, gun_damage_mult = 1, projectile_max_range_add = 0, gun_bonus_proj_scatter = 0) SHOULD_NOT_SLEEP(TRUE) original = original || original_override || target if(!loc) @@ -231,7 +231,7 @@ //If we have the right kind of ammo, we can fire several projectiles at once. if(ammo.bonus_projectiles_amount && ammo.bonus_projectiles_type) randomize_speed = FALSE - ammo.fire_bonus_projectiles(src) + ammo.fire_bonus_projectiles(src, gun_damage_mult, projectile_max_range_add, gun_bonus_proj_scatter) bonus_projectile_check = 1 //Mark this projectile as having spawned a set of bonus projectiles. path = get_line(starting, target_turf) diff --git a/colonialmarines.dme b/colonialmarines.dme index b0f6bf821009..054afb741be1 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -515,6 +515,7 @@ #include "code\datums\elements\bullet_trait\iff.dm" #include "code\datums\elements\bullet_trait\ignored_range.dm" #include "code\datums\elements\bullet_trait\incendiary.dm" +#include "code\datums\elements\bullet_trait\knockback_disabled.dm" #include "code\datums\elements\bullet_trait\penetrating\heavy.dm" #include "code\datums\elements\bullet_trait\penetrating\penetrating.dm" #include "code\datums\elements\bullet_trait\penetrating\weak.dm" diff --git a/icons/obj/items/weapons/guns/attachments/barrel.dmi b/icons/obj/items/weapons/guns/attachments/barrel.dmi index ee02c54aeeec28f73954cb8c955cd21340ca88d7..0803b6607fb714660f870f8afd41cf72c6898fee 100644 GIT binary patch delta 3787 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 delta 3688 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 diff --git a/sound/weapons/gun_shotgun_choke.ogg b/sound/weapons/gun_shotgun_choke.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f0e00451a476ab145bfb37f772d6ac719003bf9d GIT binary patch literal 14637 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
0Corymp9I8YJY3 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 Lo)nLOE{y*JTJ|>t literal 0 HcmV?d00001 diff --git a/tgui/packages/tgui/interfaces/WeaponStats.jsx b/tgui/packages/tgui/interfaces/WeaponStats.jsx index b93cbdd2a660..adb8d185d65c 100644 --- a/tgui/packages/tgui/interfaces/WeaponStats.jsx +++ b/tgui/packages/tgui/interfaces/WeaponStats.jsx @@ -283,23 +283,30 @@ const Range = (props) => { const { data } = useBackend(); const { max_range, + projectile_max_range_add, range_max, falloff, falloff_max, effective_range, effective_range_max, + effective_range_max_mod, } = data; return ( <> - - Max range: {max_range} / {range_max} + + Max range: {max_range + projectile_max_range_add} / {range_max} - Effective range: {effective_range} + Effective range: {effective_range + effective_range_max_mod} From 5169dd3d58b2accc4f780fd962abfda7d678120b Mon Sep 17 00:00:00 2001 From: "cmss13-ci[bot]" <180991813+cmss13-ci[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 06:17:54 +0000 Subject: [PATCH 18/25] Automatic changelog for PR #8277 [ci skip] --- html/changelogs/AutoChangeLog-pr-8277.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8277.yml diff --git a/html/changelogs/AutoChangeLog-pr-8277.yml b/html/changelogs/AutoChangeLog-pr-8277.yml new file mode 100644 index 000000000000..859b05e8c1d1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8277.yml @@ -0,0 +1,4 @@ +author: "Vile Beggar, thwomper" +delete-after: True +changes: + - rscadd: "Adds a new shotgun choke attachment to squad prep and requisitions vendors for the M37A2 shotgun." \ No newline at end of file From 20608b509c520626f1dcc7705dc15850e2c6cc98 Mon Sep 17 00:00:00 2001 From: harry Date: Wed, 12 Feb 2025 06:30:20 +0000 Subject: [PATCH 19/25] removes extra redundant heading --- code/modules/client/preferences.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 7eff614ca106..bb3248b069e1 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -492,9 +492,6 @@ GLOBAL_LIST_INIT(be_special_flags, list( dat += "
" dat += "
" - dat += "
" - dat += "

Occupation Choices:

" - if(MENU_CO) if(owner.check_whitelist_status(WHITELIST_COMMANDER)) dat += "
" From cf4b66f8b36d240507d7fcf8fa8f41781fbb4ab5 Mon Sep 17 00:00:00 2001 From: zzzmike <85382350+zzzmike@users.noreply.github.com> Date: Wed, 12 Feb 2025 03:47:54 -0800 Subject: [PATCH 20/25] Updates turf descriptions with medevac in mind. (#8447) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # About the pull request Updates turf descriptions to account for medevacs+CAS instead of just CAS. # Explain why it's good for the game When I became experienced in HM, every time I read the "that's not gonna stop anything" turf description for metal roof I always think to myself that erm actually it is gonna stop something ☝️🤓 (this will help newbie medevacers.) # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: qol: Updates turf descriptions to account for medevacs+CAS instead of just CAS. /:cl: --- code/game/turfs/turf.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index b97a9d0b194e..eb1bd42cf7e9 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -583,13 +583,13 @@ if(CEILING_GLASS) return "The ceiling above is glass. That's not going to stop anything." if(CEILING_METAL) - return "The ceiling above is metal. You can't see through it with a camera from above, but that's not going to stop anything." + return "The ceiling above is metal. You can't see through it with a camera from above. It will likely stop medevac pickups but not CAS." if(CEILING_UNDERGROUND_ALLOW_CAS) - return "It is underground. A thin cavern roof lies above. Doesn't look like it's going to stop much." + return "It is underground. A thin cavern roof lies above. It will likely stop medevac pickups but not CAS." if(CEILING_UNDERGROUND_BLOCK_CAS) return "It is underground. The cavern roof lies above. Can probably stop most ordnance." if(CEILING_UNDERGROUND_METAL_ALLOW_CAS) - return "It is underground. The ceiling above is made of thin metal. Doesn't look like it's going to stop much." + return "It is underground. The ceiling above is made of thin metal. It will likely stop medevac pickups but not CAS." if(CEILING_UNDERGROUND_METAL_BLOCK_CAS) return "It is underground. The ceiling above is made of metal. Can probably stop most ordnance." if(CEILING_DEEP_UNDERGROUND) From 56072c1e37fa8632caebeb20da0a1ae472c80c96 Mon Sep 17 00:00:00 2001 From: "cmss13-ci[bot]" <180991813+cmss13-ci[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 11:56:58 +0000 Subject: [PATCH 21/25] Automatic changelog for PR #8447 [ci skip] --- html/changelogs/AutoChangeLog-pr-8447.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8447.yml diff --git a/html/changelogs/AutoChangeLog-pr-8447.yml b/html/changelogs/AutoChangeLog-pr-8447.yml new file mode 100644 index 000000000000..cff66ca2a8e9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8447.yml @@ -0,0 +1,4 @@ +author: "zzzmike" +delete-after: True +changes: + - qol: "Updates turf descriptions to account for medevacs+CAS instead of just CAS." \ No newline at end of file From 93079a1d4f3db2a79531e9d0955066ab921f19b6 Mon Sep 17 00:00:00 2001 From: private-tristan <54422837+private-tristan@users.noreply.github.com> Date: Wed, 12 Feb 2025 06:48:27 -0500 Subject: [PATCH 22/25] Ammo box explosion caps at 3k bullets (#8389) # About the pull request Ammo box explosions max out at 3k bullets, previously you can toss an entire box of m56 and create an earth-shattering kaboom. Now the explosions are caped at 3k bullets. Previously: M56D box detonated center of briefing (5.6k bullets) ![image](https://github.com/user-attachments/assets/ebd74d66-2317-4fb2-b0f6-54c4a92e6dc8) After 3k bullet cap: ![image](https://github.com/user-attachments/assets/6b457e34-1f22-4dd6-90ee-edfc6a3f1731) Did some testing, does 350~ damage to adjacent xenos, enough to kill base runners but leave acid runners alive on a sliver of health (and stunned). # Explain why it's good for the game Players shouldn't be able to create explosions that big just by filling up a few m56d boxes from their preps (which nobody takes anyway). # Testing Photographs and Procedure see above # Changelog :cl: balance: Ammo box explosions are capped at 3k bullets. /:cl: --- code/modules/projectiles/ammo_boxes/ammo_boxes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammo_boxes/ammo_boxes.dm b/code/modules/projectiles/ammo_boxes/ammo_boxes.dm index 4b02478454ef..a19679096146 100644 --- a/code/modules/projectiles/ammo_boxes/ammo_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/ammo_boxes.dm @@ -220,7 +220,7 @@ else for(var/obj/item/ammo_magazine/AM in contents) severity += AM.current_rounds - severity = floor(severity / 150) + severity = clamp(severity / 150, 0, 20) // explosion caps at 3k bullets return severity /obj/item/ammo_box/magazine/process_burning(datum/cause_data/flame_cause_data) From 45ffaccfc017dadb21ca4fe989547e369bb1992f Mon Sep 17 00:00:00 2001 From: "cmss13-ci[bot]" <180991813+cmss13-ci[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 12:10:39 +0000 Subject: [PATCH 23/25] Automatic changelog for PR #8389 [ci skip] --- html/changelogs/AutoChangeLog-pr-8389.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8389.yml diff --git a/html/changelogs/AutoChangeLog-pr-8389.yml b/html/changelogs/AutoChangeLog-pr-8389.yml new file mode 100644 index 000000000000..56c5e4d08417 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8389.yml @@ -0,0 +1,4 @@ +author: "private-tristan" +delete-after: True +changes: + - balance: "Ammo box explosions are capped at 3k bullets." \ No newline at end of file From fecdd0e6ef637c04b81be42401d5d7285406e80a Mon Sep 17 00:00:00 2001 From: larentoun <31931237+larentoun@users.noreply.github.com> Date: Wed, 12 Feb 2025 15:53:38 +0300 Subject: [PATCH 24/25] Update crusher's shield desc --- .../translations/code/xeno/xeno_abilities/castes/crusher.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular/translations/code/xeno/xeno_abilities/castes/crusher.dm b/modular/translations/code/xeno/xeno_abilities/castes/crusher.dm index 872a0827591b..a5fd9e6e80c9 100644 --- a/modular/translations/code/xeno/xeno_abilities/castes/crusher.dm +++ b/modular/translations/code/xeno/xeno_abilities/castes/crusher.dm @@ -28,9 +28,9 @@ /datum/action/xeno_action/onclick/crusher_shield/apply_replaces_in_desc() replace_in_desc("%SHIELD%", shield_amount) - replace_in_desc("%TIME%", 7, DESCRIPTION_REPLACEMENT_TIME) + replace_in_desc("%TIME%", shield_dur / 10, DESCRIPTION_REPLACEMENT_TIME) replace_in_desc("%DEFENSE%", 10) // Hardcoded - replace_in_desc("%EXPL_IMM%", 2.5, DESCRIPTION_REPLACEMENT_TIME) + replace_in_desc("%EXPL_IMM%", explosion_immunity_dur / 10, DESCRIPTION_REPLACEMENT_TIME) /datum/action/xeno_action/activable/fling/charger desc = "Кинуть цель вперёд от вас (%FLING_DISTANCE%). Замедляет цель (%FLING_SLOWDOWN%)." From 8aa620c39beb31c1c7d21a05efc6ecd7ee2596db Mon Sep 17 00:00:00 2001 From: larentoun <31931237+larentoun@users.noreply.github.com> Date: Wed, 12 Feb 2025 16:20:43 +0300 Subject: [PATCH 25/25] fix compile --- code/modules/cm_aliens/XenoStructures.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/cm_aliens/XenoStructures.dm b/code/modules/cm_aliens/XenoStructures.dm index 07644433d442..98741305f009 100644 --- a/code/modules/cm_aliens/XenoStructures.dm +++ b/code/modules/cm_aliens/XenoStructures.dm @@ -1229,8 +1229,6 @@ else xeno_announcement(SPAN_XENOANNOUNCE("Король другого улья появится на свет примерно 20 секунд."), cur_hive_num, XENO_GENERAL_ANNOUNCE) - timer = addtimer(CALLBACK(src, PROC_REF(animate_hatch_king)), 1 MINUTES, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) - /// Causes the cocoon to change visually for hatching and initiates the next timer. /obj/effect/alien/resin/king_cocoon/proc/animate_hatch_king() flick("hatching", src)