Skip to content

Commit

Permalink
Merge remote-tracking branch 'cmss13-devs/stable' into royalmarines
Browse files Browse the repository at this point in the history
  • Loading branch information
spartanbobby committed Aug 18, 2023
2 parents 6fde5dc + 514b4cd commit 58ad65d
Show file tree
Hide file tree
Showing 75 changed files with 2,524 additions and 888 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/autowiki.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Autowiki
on:
schedule:
- cron: "5 4 * * *"
workflow_dispatch:
permissions:
contents: read

jobs:
autowiki:
runs-on: ubuntu-20.04
steps:
- name: "Check for AUTOWIKI_USERNAME"
id: secrets_set
env:
ENABLER_SECRET: ${{ secrets.AUTOWIKI_USERNAME }}
run: |
unset SECRET_EXISTS
if [ -n "$ENABLER_SECRET" ]; then SECRET_EXISTS=true ; fi
echo "SECRETS_ENABLED=$SECRET_EXISTS" >> $GITHUB_OUTPUT
- name: Checkout
if: steps.secrets_set.outputs.SECRETS_ENABLED
uses: actions/checkout@v3
- name: Restore BYOND cache
if: steps.secrets_set.outputs.SECRETS_ENABLED
uses: actions/cache@v3
with:
path: ~/BYOND
key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }}
- name: Install rust-g
if: steps.secrets_set.outputs.SECRETS_ENABLED
run: |
sudo dpkg --add-architecture i386
sudo apt update || true
sudo apt install -o APT::Immediate-Configure=false libssl1.1:i386
bash tools/ci/install_rust_g.sh
- name: Compile and generate Autowiki files
if: steps.secrets_set.outputs.SECRETS_ENABLED
run: |
bash tools/ci/install_byond.sh
source $HOME/BYOND/byond/bin/byondsetup
tools/build/build --ci autowiki
- name: Run Autowiki
if: steps.secrets_set.outputs.SECRETS_ENABLED
env:
USERNAME: ${{ secrets.AUTOWIKI_USERNAME }}
PASSWORD: ${{ secrets.AUTOWIKI_PASSWORD }}
run: |
cd tools/autowiki
npm install
cd ../..
node tools/autowiki/autowiki.js data/autowiki_edits.txt data/autowiki_files/
1 change: 1 addition & 0 deletions code/__DEFINES/__game.dm
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ block( \
#define MAP_RUNTIME "USS Runtime"
#define MAP_LV522_CHANCES_CLAIM "LV-522 Chance's Claim" // Highpop Only
#define MAP_NEW_VARADERO "New Varadero"//ice colony underground but as its own map
#define MAP_CHINOOK "Chinook 91 GSO" //admin level

#define GAMEMODE_WHISKEY_OUTPOST "Whiskey Outpost"
#define GAMEMODE_HIVE_WARS "Hive Wars"
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/lighting.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#define LIGHTING_PLANE_ALPHA_VISIBLE 255
///The dim natural vision of Yautja
#define LIGHTING_PLANE_ALPHA_YAUTJA 235
#define LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE 127
#define LIGHTING_PLANE_ALPHA_INVISIBLE 0
2 changes: 1 addition & 1 deletion code/__DEFINES/mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ var/global/list/whitelist_hierarchy = list(WHITELIST_NORMAL, WHITELIST_COUNCIL,

#define WHITELIST_EVERYTHING (WHITELISTS_GENERAL|WHITELISTS_COUNCIL|WHITELISTS_LEADER)

#define isCouncil(A) (RoleAuthority.roles_whitelist[A.ckey] & (WHITELIST_YAUTJA_COUNCIL | WHITELIST_SYNTHETIC_COUNCIL | WHITELIST_COMMANDER_COUNCIL))
#define isCouncil(A) (RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_YAUTJA_COUNCIL) || (RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_SYNTHETIC_COUNCIL) || (RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_COMMANDER_COUNCIL)

//=================================================

Expand Down
26 changes: 18 additions & 8 deletions code/__DEFINES/skills.dm
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,24 @@
//spec_weapons skill
//hidden. who can and can't use specialist weapons
#define SKILL_SPEC_DEFAULT 0
#define SKILL_SPEC_ROCKET 1 //can use the demolitionist specialist gear
#define SKILL_SPEC_SCOUT 2
#define SKILL_SPEC_SNIPER 3
#define SKILL_SPEC_GRENADIER 4
#define SKILL_SPEC_PYRO 5
#define SKILL_SPEC_SMARTGUN 6 //for smartgunners
#define SKILL_SPEC_UPP 7 //for upp
#define SKILL_SPEC_ALL 8 //can use all specialist gear
/// Is trained to use specialist gear, but hasn't picked a kit.
#define SKILL_SPEC_TRAINED 1
/// Can use RPG
#define SKILL_SPEC_ROCKET 2
/// Can use thermal cloaks and custom M4RA rifle
#define SKILL_SPEC_SCOUT 3
/// Can use sniper rifles and camo suits
#define SKILL_SPEC_SNIPER 4
/// Can use the rotary grenade launcher and heavy armor
#define SKILL_SPEC_GRENADIER 5
/// Can use heavy flamers
#define SKILL_SPEC_PYRO 6
/// Can use smartguns
#define SKILL_SPEC_SMARTGUN 7
/// UPP special training
#define SKILL_SPEC_UPP 8
/// Can use ALL specialist weapons
#define SKILL_SPEC_ALL 9

//construction skill
#define SKILL_CONSTRUCTION_DEFAULT 0
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,8 @@
#define TRAIT_INTENT_EYES "t_intent_eyes"
/// Masked synthetic biology. Basic medHUDs will percieve the mob as human. (Infiltrator Synths)
#define TRAIT_INFILTRATOR_SYNTH "t_infiltrator_synth"
/// Makes it impossible to strip the inventory of this mob.
#define TRAIT_UNSTRIPPABLE "t_unstrippable"

// HIVE TRAITS
/// If the Hive is a Xenonid Hive
Expand Down Expand Up @@ -251,6 +253,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_FOREIGN_BIO" = TRAIT_FOREIGN_BIO,
"TRAIT_INTENT_EYES" = TRAIT_INTENT_EYES,
"TRAIT_INFILTRATOR_SYNTH" = TRAIT_INFILTRATOR_SYNTH,
"TRAIT_UNSTRIPPABLE" = TRAIT_UNSTRIPPABLE,
"TRAIT_NESTED" = TRAIT_NESTED,
"TRAIT_CRAWLER" = TRAIT_CRAWLER,
"TRAIT_SIMPLE_DESC" = TRAIT_SIMPLE_DESC,
Expand Down
2 changes: 2 additions & 0 deletions code/controllers/configuration/entries/general.dm
Original file line number Diff line number Diff line change
Expand Up @@ -621,3 +621,5 @@ This maintains a list of ip addresses that are able to bypass topic filtering.
/datum/config_entry/string/instance_name
config_entry_value = "game"
protection = CONFIG_ENTRY_HIDDEN|CONFIG_ENTRY_LOCKED

/datum/config_entry/flag/guest_ban
12 changes: 5 additions & 7 deletions code/datums/diseases/black_goo.dm
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@
icon = 'icons/mob/humans/species/r_zombie.dmi'
icon_state = "claw_l"
flags_item = NODROP|DELONDROP|ITEM_ABSTRACT
force = 40
force = MELEE_FORCE_TIER_6 //slightly higher than normal
w_class = SIZE_MASSIVE
sharp = 1
attack_verb = list("slashed", "torn", "scraped", "gashed", "ripped")
Expand All @@ -135,8 +135,9 @@
return FALSE

. = ..()
if(.)
playsound(loc, 'sound/weapons/bladeslice.ogg', 25, 1, 5)
if(!.)
return FALSE
playsound(loc, 'sound/weapons/bladeslice.ogg', 25, 1, 5)

if(ishuman_strict(target))
var/mob/living/carbon/human/human = target
Expand All @@ -149,10 +150,7 @@
target.AddDisease(new /datum/disease/black_goo)
to_chat(user, SPAN_XENOWARNING("<b>You sense your target is now infected.</b>"))

if(issynth(target))
target.apply_effect(2, SLOW)
else
target.apply_effect(2, SUPERSLOW)
target.apply_effect(2, SLOW)

/obj/item/weapon/zombie_claws/afterattack(obj/O as obj, mob/user as mob, proximity)
if(get_dist(src, O) > 1)
Expand Down
86 changes: 50 additions & 36 deletions code/datums/emergency_calls/cryo_marines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,65 +12,79 @@
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_cryo
shuttle_id = ""
var/leaders = 0
spawn_max_amount = TRUE

/datum/emergency_call/cryo_squad/spawn_candidates(announce, override_spawn_loc, announce_dispatch_message)
var/datum/squad/marine/cryo/cryo_squad = RoleAuthority.squads_by_type[/datum/squad/marine/cryo]
leaders = cryo_squad.num_leaders
. = ..()
if(length(members))
shipwide_ai_announcement("Successfully deployed [length(members)] Foxtrot marines.")
shipwide_ai_announcement("Successfully deployed [mob_max] Foxtrot marines, of which [length(members)] are ready for duty.")
if(mob_max > length(members))
announce_dchat("Some cryomarines were not taken, use the Join As Freed Mob verb to take one of them.")

/datum/emergency_call/cryo_squad/create_member(datum/mind/M, turf/override_spawn_loc)
/datum/emergency_call/cryo_squad/create_member(datum/mind/mind, turf/override_spawn_loc)
set waitfor = 0
if(SSmapping.configs[GROUND_MAP].map_name == MAP_WHISKEY_OUTPOST)
name_of_spawn = /obj/effect/landmark/ert_spawns/distress_wo
var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point()

if(!istype(spawn_loc)) return //Didn't find a useable spawn point.

var/mob/living/carbon/human/H = new(spawn_loc)
M.transfer_to(H, TRUE)
var/mob/living/carbon/human/human = new(spawn_loc)

if(mind)
mind.transfer_to(human, TRUE)
else
human.create_hud()

if(!mind)
for(var/obj/structure/machinery/cryopod/pod in view(7,human))
if(pod && !pod.occupant)
pod.go_in_cryopod(human, silent = TRUE)
break

sleep(5)
var/datum/squad/marine/cryo/cryo_squad = RoleAuthority.squads_by_type[/datum/squad/marine/cryo]
if(leaders < cryo_squad.max_leaders && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, JOB_SQUAD_LEADER, time_required_for_job))
leader = H
if(leaders < cryo_squad.max_leaders && (!mind || (HAS_FLAG(human.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(human.client, JOB_SQUAD_LEADER, time_required_for_job))))
leader = human
leaders++
H.client.prefs.copy_all_to(H, JOB_SQUAD_LEADER, TRUE, TRUE)
arm_equipment(H, /datum/equipment_preset/uscm/leader/cryo, FALSE, TRUE)
to_chat(H, SPAN_ROLE_HEADER("You are a Squad Leader in the USCM"))
to_chat(H, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command."))
to_chat(H, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced."))
else if (heavies < max_heavies && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_HEAVY) && check_timelock(H.client, JOB_SQUAD_SPECIALIST, time_required_for_job))
human.client?.prefs.copy_all_to(human, JOB_SQUAD_LEADER, TRUE, TRUE)
arm_equipment(human, /datum/equipment_preset/uscm/leader/cryo, mind == null, TRUE)
to_chat(human, SPAN_ROLE_HEADER("You are a Squad Leader in the USCM"))
to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command."))
to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced."))
else if (heavies < max_heavies && (!mind || (HAS_FLAG(human.client.prefs.toggles_ert, PLAY_HEAVY) && check_timelock(human.client, JOB_SQUAD_SPECIALIST, time_required_for_job))))
heavies++
H.client.prefs.copy_all_to(H, JOB_SQUAD_SPECIALIST, TRUE, TRUE)
arm_equipment(H, /datum/equipment_preset/uscm/spec/cryo, FALSE, TRUE)
to_chat(H, SPAN_ROLE_HEADER("You are a Weapons Specialist in the USCM"))
to_chat(H, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command."))
to_chat(H, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced."))
else if (medics < max_medics && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(H.client, JOB_SQUAD_MEDIC, time_required_for_job))
human.client?.prefs.copy_all_to(human, JOB_SQUAD_SPECIALIST, TRUE, TRUE)
arm_equipment(human, /datum/equipment_preset/uscm/spec/cryo, mind == null, TRUE)
to_chat(human, SPAN_ROLE_HEADER("You are a Weapons Specialist in the USCM"))
to_chat(human, SPAN_ROLE_BODY("Your squad is here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command."))
to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced."))
else if (medics < max_medics && (!mind || (HAS_FLAG(human.client.prefs.toggles_ert, PLAY_MEDIC) && check_timelock(human.client, JOB_SQUAD_MEDIC, time_required_for_job))))
medics++
H.client.prefs.copy_all_to(H, JOB_SQUAD_MEDIC, TRUE, TRUE)
arm_equipment(H, /datum/equipment_preset/uscm/medic/cryo, FALSE, TRUE)
to_chat(H, SPAN_ROLE_HEADER("You are a Hospital Corpsman in the USCM"))
to_chat(H, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command."))
to_chat(H, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced."))
else if (engineers < max_engineers && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_ENGINEER) && check_timelock(H.client, JOB_SQUAD_ENGI, time_required_for_job))
human.client?.prefs.copy_all_to(human, JOB_SQUAD_MEDIC, TRUE, TRUE)
arm_equipment(human, /datum/equipment_preset/uscm/medic/cryo, mind == null, TRUE)
to_chat(human, SPAN_ROLE_HEADER("You are a Hospital Corpsman in the USCM"))
to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command."))
to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced."))
else if (engineers < max_engineers && (!mind || (HAS_FLAG(human.client.prefs.toggles_ert, PLAY_ENGINEER) && check_timelock(human.client, JOB_SQUAD_ENGI, time_required_for_job))))
engineers++
H.client.prefs.copy_all_to(H, JOB_SQUAD_ENGI, TRUE, TRUE)
arm_equipment(H, /datum/equipment_preset/uscm/engineer/cryo, FALSE, TRUE)
to_chat(H, SPAN_ROLE_HEADER("You are an Engineer in the USCM"))
to_chat(H, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command."))
to_chat(H, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced."))
human.client?.prefs.copy_all_to(human, JOB_SQUAD_ENGI, TRUE, TRUE)
arm_equipment(human, /datum/equipment_preset/uscm/engineer/cryo, mind == null, TRUE)
to_chat(human, SPAN_ROLE_HEADER("You are an Engineer in the USCM"))
to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command."))
to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced."))
else
H.client.prefs.copy_all_to(H, JOB_SQUAD_MARINE, TRUE, TRUE)
arm_equipment(H, /datum/equipment_preset/uscm/pfc/cryo, FALSE, TRUE)
to_chat(H, SPAN_ROLE_HEADER("You are a Rifleman in the USCM"))
to_chat(H, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command."))
to_chat(H, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced."))
human.client?.prefs.copy_all_to(human, JOB_SQUAD_MARINE, TRUE, TRUE)
arm_equipment(human, /datum/equipment_preset/uscm/pfc/cryo, mind == null, TRUE)
to_chat(human, SPAN_ROLE_HEADER("You are a Rifleman in the USCM"))
to_chat(human, SPAN_ROLE_BODY("You are here to assist in the defence of the [SSmapping.configs[GROUND_MAP].map_name]. Listen to the chain of command."))
to_chat(human, SPAN_BOLDWARNING("If you wish to cryo or ghost upon spawning in, you must ahelp and inform staff so you can be replaced."))

sleep(10)
to_chat(H, SPAN_BOLD("Objectives: [objectives]"))
if(!mind)
human.free_for_ghosts()
to_chat(human, SPAN_BOLD("Objectives: [objectives]"))

/datum/emergency_call/cryo_squad/platoon
name = "Marine Cryo Reinforcements (Platoon)"
Expand Down
20 changes: 15 additions & 5 deletions code/datums/medal_awards.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ GLOBAL_LIST_EMPTY(jelly_awards)
var/recipient_rank
var/recipient_ckey
var/mob/recipient_mob
var/list/giver_name // Actually key for xenos
var/list/giver_rank // Actually name for xenos
var/list/giver_name // Designation for xenos
var/list/giver_rank // "Name" for xenos
var/list/giver_mob
var/list/giver_ckey

/datum/recipient_awards/New()
medal_names = list()
Expand All @@ -32,6 +33,7 @@ GLOBAL_LIST_EMPTY(jelly_awards)
giver_name = list()
giver_rank = list()
giver_mob = list()
giver_ckey = list()


/proc/give_medal_award(medal_location, as_admin = FALSE)
Expand Down Expand Up @@ -116,12 +118,13 @@ GLOBAL_LIST_EMPTY(jelly_awards)
recipient_award.medal_names += medal_type
recipient_award.medal_citations += citation
recipient_award.posthumous += posthumous
recipient_award.giver_ckey += usr.ckey

if(!as_admin)
recipient_award.giver_rank += recipient_ranks[usr.real_name] // Currently not used in marine award message
recipient_award.giver_name += usr.real_name // Currently not used in marine award message
else
recipient_award.giver_rank += "([usr.ckey])" // Just because it'll be displayed in the panel
recipient_award.giver_rank += null
recipient_award.giver_name += null

// Create an actual medal item
Expand Down Expand Up @@ -258,15 +261,21 @@ GLOBAL_LIST_EMPTY(jelly_awards)
recipient_award.medal_names += medal_type
recipient_award.medal_citations += citation
recipient_award.posthumous += posthumous
recipient_award.giver_ckey += usr.ckey

if(!admin_attribution)
recipient_award.giver_rank += usr.name
recipient_award.giver_name += usr.key
var/mob/living/carbon/xenomorph/giving_xeno = usr
if(istype(giving_xeno))
recipient_award.giver_name += giving_xeno.full_designation
else
recipient_award.giver_name += null
else if(admin_attribution == "none")
recipient_award.giver_rank += null
recipient_award.giver_name += null
else
recipient_award.giver_rank += admin_attribution
recipient_award.giver_name += null // If not null, rescinding it will take stats away from a mob with this key
recipient_award.giver_name += null

recipient_award.medal_items += null // TODO: Xeno award item?

Expand Down Expand Up @@ -337,6 +346,7 @@ GLOBAL_LIST_EMPTY(jelly_awards)
recipient_award.giver_name.Cut(index, index + 1)
recipient_award.giver_rank.Cut(index, index + 1)
recipient_award.giver_mob.Cut(index, index + 1)
recipient_award.giver_ckey.Cut(index, index + 1)
recipient_award.medal_items.Cut(index, index + 1)

// Remove giver's stat
Expand Down
4 changes: 2 additions & 2 deletions code/datums/redis/callbacks/asay.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
if(data["source"] == SSredis.instance_name)
return

var/msg = SPAN_ADMINSAY("<span class='prefix'>[data["rank"]]:</span> <EM>[data["author"]]@[data["source"]]</EM>: <span class='message'>[strip_html(data["message"])]</span>")
var/msg = SPAN_MOD("<span class='prefix'>[data["rank"]]:</span> <EM>[data["author"]]@[data["source"]]</EM>: <span class='message'>[strip_html(data["message"])]</span>")

for(var/client/client in GLOB.admins)
if(!(R_ADMIN & client.admin_holder.rights))
if(!(R_ADMIN & client.admin_holder.rights) && !(R_MOD & client.admin_holder.rights))
continue

to_chat(client, msg)
2 changes: 1 addition & 1 deletion code/datums/skills.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1009,7 +1009,7 @@ United States Colonial Marines
SKILL_CQC = SKILL_CQC_TRAINED,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED,
SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, //to use c4 in demo set.
SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL,
SKILL_SPEC_WEAPONS = SKILL_SPEC_TRAINED,
SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED,
SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED,
SKILL_JTAC = SKILL_JTAC_BEGINNER
Expand Down
2 changes: 2 additions & 0 deletions code/datums/statistics/random_facts/random_fact.dm
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
list_to_check += GLOB.living_xeno_list

for(var/mob/checked_mob as anything in list_to_check)
if(!checked_mob?.persistent_ckey)
continue // We don't care about NPCs
if(living_stat_gotten < life_grab_stat(checked_mob))
mob_to_report = checked_mob
living_stat_gotten = life_grab_stat(checked_mob)
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/cm_initialize.dm
Original file line number Diff line number Diff line change
Expand Up @@ -969,7 +969,7 @@ Additional game mode variables.
log_debug("Null client attempted to transform_joe")
return

var/turf/spawn_point = get_turf(pick(GLOB.latejoin))
var/turf/spawn_point = get_turf(pick(GLOB.latejoin_by_job[JOB_WORKING_JOE]))
var/mob/living/carbon/human/synthetic/new_joe = new(spawn_point)
joe_candidate.mind.transfer_to(new_joe, TRUE)
var/datum/job/joe_job = RoleAuthority.roles_by_name[JOB_WORKING_JOE]
Expand Down
Loading

0 comments on commit 58ad65d

Please sign in to comment.