mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-29 11:31:38 +00:00
Repath a bunch of things to /mob/abstract childtypes (#4111)
* Repaths eyes, observers, dview, and new_players to /mob/abstract subtypes. * Adds /mob/abstract, a base type for 'abstract' mobs that aren't meant to be directly affected by the game world.
This commit is contained in:
@@ -765,8 +765,6 @@
|
||||
SearchVar(base_miss_chance)
|
||||
SearchVar(organ_rel_size)
|
||||
SearchVar(intents)
|
||||
SearchVar(ghost_darkness_images)
|
||||
SearchVar(ghost_sightless_images)
|
||||
SearchVar(department_radio_keys)
|
||||
SearchVar(channel_to_radio_key)
|
||||
SearchVar(cleanbot_types)
|
||||
|
||||
@@ -67,10 +67,10 @@
|
||||
if(!job) return 0
|
||||
return job.create_record
|
||||
|
||||
/datum/controller/subsystem/jobs/proc/GetPlayerAltTitle(mob/new_player/player, rank)
|
||||
/datum/controller/subsystem/jobs/proc/GetPlayerAltTitle(mob/abstract/new_player/player, rank)
|
||||
. = player.client.prefs.GetPlayerAltTitle(GetJob(rank))
|
||||
|
||||
/datum/controller/subsystem/jobs/proc/AssignRole(mob/new_player/player, rank, latejoin = FALSE)
|
||||
/datum/controller/subsystem/jobs/proc/AssignRole(mob/abstract/new_player/player, rank, latejoin = FALSE)
|
||||
Debug("Running AR, Player: [player], Rank: [rank], LJ: [latejoin]")
|
||||
if(player && player.mind && rank)
|
||||
var/datum/job/job = GetJob(rank)
|
||||
@@ -104,7 +104,7 @@
|
||||
/datum/controller/subsystem/jobs/proc/FindOccupationCandidates(datum/job/job, level, flag)
|
||||
Debug("Running FOC, Job: [job], Level: [level], Flag: [flag]")
|
||||
. = list()
|
||||
for(var/mob/new_player/player in unassigned)
|
||||
for(var/mob/abstract/new_player/player in unassigned)
|
||||
if(jobban_isbanned(player, job.title))
|
||||
Debug("FOC isbanned failed, Player: [player]")
|
||||
continue
|
||||
@@ -115,7 +115,7 @@
|
||||
Debug("FOC pass, Player: [player], Level:[level]")
|
||||
. += player
|
||||
|
||||
/datum/controller/subsystem/jobs/proc/GiveRandomJob(mob/new_player/player)
|
||||
/datum/controller/subsystem/jobs/proc/GiveRandomJob(mob/abstract/new_player/player)
|
||||
Debug("GRJ Giving random job, Player: [player]")
|
||||
for(var/thing in shuffle(occupations))
|
||||
var/datum/job/job = thing
|
||||
@@ -139,7 +139,7 @@
|
||||
break
|
||||
|
||||
/datum/controller/subsystem/jobs/proc/ResetOccupations()
|
||||
for(var/mob/new_player/player in player_list)
|
||||
for(var/mob/abstract/new_player/player in player_list)
|
||||
if((player) && (player.mind))
|
||||
player.mind.assigned_role = null
|
||||
player.mind.special_role = null
|
||||
@@ -182,7 +182,7 @@
|
||||
// If there's ABSOLUTELY NOBODY ELSE
|
||||
if(candidates.len == 1) weightedCandidates[V] = 1
|
||||
|
||||
var/mob/new_player/candidate = pickweight(weightedCandidates)
|
||||
var/mob/abstract/new_player/candidate = pickweight(weightedCandidates)
|
||||
if(AssignRole(candidate, command_position))
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -195,7 +195,7 @@
|
||||
if(!job) continue
|
||||
var/list/candidates = FindOccupationCandidates(job, level)
|
||||
if(!candidates.len) continue
|
||||
var/mob/new_player/candidate = pick(candidates)
|
||||
var/mob/abstract/new_player/candidate = pick(candidates)
|
||||
AssignRole(candidate, command_position)
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
break
|
||||
|
||||
//Get the players who are ready
|
||||
for(var/mob/new_player/player in player_list)
|
||||
for(var/mob/abstract/new_player/player in player_list)
|
||||
if(player.ready && player.mind && !player.mind.assigned_role)
|
||||
unassigned += player
|
||||
|
||||
@@ -234,7 +234,7 @@
|
||||
var/datum/job/assist = new DEFAULT_JOB_TYPE ()
|
||||
var/list/assistant_candidates = FindOccupationCandidates(assist, 3)
|
||||
Debug("AC1, Candidates: [assistant_candidates.len]")
|
||||
for(var/mob/new_player/player in assistant_candidates)
|
||||
for(var/mob/abstract/new_player/player in assistant_candidates)
|
||||
Debug("AC1 pass, Player: [player]")
|
||||
AssignRole(player, "Assistant")
|
||||
assistant_candidates -= player
|
||||
@@ -261,7 +261,7 @@
|
||||
CheckHeadPositions(level)
|
||||
|
||||
// Loop through all unassigned players
|
||||
for(var/mob/new_player/player in unassigned)
|
||||
for(var/mob/abstract/new_player/player in unassigned)
|
||||
|
||||
// Loop through all jobs
|
||||
for(var/datum/job/job in shuffledoccupations) // SHUFFLE ME BABY
|
||||
@@ -284,7 +284,7 @@
|
||||
|
||||
// Hand out random jobs to the people who didn't get any in the last check
|
||||
// Also makes sure that they got their preference correct
|
||||
for(var/mob/new_player/player in unassigned)
|
||||
for(var/mob/abstract/new_player/player in unassigned)
|
||||
if(player.client.prefs.alternate_option == GET_RANDOM_JOB)
|
||||
GiveRandomJob(player)
|
||||
|
||||
@@ -293,13 +293,13 @@
|
||||
Debug("DO, Running AC2")
|
||||
|
||||
// For those who wanted to be assistant if their preferences were filled, here you go.
|
||||
for(var/mob/new_player/player in unassigned)
|
||||
for(var/mob/abstract/new_player/player in unassigned)
|
||||
if(player.client.prefs.alternate_option == BE_ASSISTANT)
|
||||
Debug("AC2 Assistant located, Player: [player]")
|
||||
AssignRole(player, "Assistant")
|
||||
|
||||
//For ones returning to lobby
|
||||
for(var/mob/new_player/player in unassigned)
|
||||
for(var/mob/abstract/new_player/player in unassigned)
|
||||
if(player.client.prefs.alternate_option == RETURN_TO_LOBBY)
|
||||
player.ready = 0
|
||||
player.new_player_panel_proc()
|
||||
@@ -654,7 +654,7 @@
|
||||
var/level3 = 0 //low
|
||||
var/level4 = 0 //never
|
||||
var/level5 = 0 //banned
|
||||
for(var/mob/new_player/player in player_list)
|
||||
for(var/mob/abstract/new_player/player in player_list)
|
||||
if(!(player.ready && player.mind && !player.mind.assigned_role))
|
||||
continue //This player is not ready
|
||||
if(jobban_isbanned(player, job.title))
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
var/list/greatworms = list()
|
||||
var/list/greatasses = list()
|
||||
|
||||
var/list/ghost_darkness_images = list() //this is a list of images for things ghosts should still be able to see when they toggle darkness
|
||||
var/list/ghost_sightless_images = list() //this is a list of images for things ghosts should still be able to see even without ghost sight
|
||||
|
||||
/datum/controller/subsystem/mobs/New()
|
||||
NEW_SS_GLOBAL(SSmob)
|
||||
|
||||
|
||||
@@ -253,7 +253,7 @@
|
||||
for(var/datum/paiCandidate/c in SSpai.pai_candidates)
|
||||
if(c.ready)
|
||||
var/found = 0
|
||||
for(var/mob/dead/observer/o in player_list)
|
||||
for(var/mob/abstract/observer/o in player_list)
|
||||
if(o.key == c.key && o.MayRespawn())
|
||||
found = 1
|
||||
if(found)
|
||||
@@ -365,7 +365,7 @@
|
||||
|
||||
/datum/controller/subsystem/pai/proc/requestRecruits(mob/user)
|
||||
inquirer = user
|
||||
for(var/mob/dead/observer/O in player_list)
|
||||
for(var/mob/abstract/observer/O in player_list)
|
||||
if(!O.MayRespawn())
|
||||
continue
|
||||
if(jobban_isbanned(O, "pAI"))
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
if (config.kick_inactive)
|
||||
var/inactivity_threshold = config.kick_inactive MINUTES
|
||||
for (var/client/C in clients)
|
||||
if (!istype(C.mob, /mob/dead))
|
||||
if (!istype(C.mob, /mob/abstract))
|
||||
if (C.is_afk(inactivity_threshold))
|
||||
log_access("AFK: [key_name(C)]")
|
||||
C << span("warning", "You have been inactive for more than [config.kick_inactive] minute\s and have been disconnected.")
|
||||
|
||||
@@ -221,8 +221,8 @@ var/datum/controller/subsystem/ticker/SSticker
|
||||
else
|
||||
Player << "<font color='blue'><b>You missed the crew transfer after the events on [station_name()] as [Player.real_name].</b></font>"
|
||||
else
|
||||
if(istype(Player,/mob/dead/observer))
|
||||
var/mob/dead/observer/O = Player
|
||||
if(istype(Player,/mob/abstract/observer))
|
||||
var/mob/abstract/observer/O = Player
|
||||
if(!O.started_as_observer)
|
||||
Player << "<font color='red'><b>You did not survive the events on [station_name()]...</b></font>"
|
||||
else
|
||||
@@ -536,7 +536,7 @@ var/datum/controller/subsystem/ticker/SSticker
|
||||
// Round setup stuff.
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/create_characters()
|
||||
for(var/mob/new_player/player in player_list)
|
||||
for(var/mob/abstract/new_player/player in player_list)
|
||||
if(player && player.ready && player.mind)
|
||||
if(player.mind.assigned_role=="AI")
|
||||
player.close_spawn_windows()
|
||||
@@ -567,7 +567,7 @@ var/datum/controller/subsystem/ticker/SSticker
|
||||
CHECK_TICK
|
||||
if(captainless)
|
||||
for(var/mob/M in player_list)
|
||||
if(!istype(M,/mob/new_player))
|
||||
if(!istype(M,/mob/abstract/new_player))
|
||||
M << "Captainship not forced on anyone."
|
||||
|
||||
// Registers a callback to run on round-start.
|
||||
|
||||
@@ -214,7 +214,7 @@ var/datum/controller/subsystem/vote/SSvote
|
||||
usr << "<span class='warning'>You must be playing or have been playing to start a vote.</span>"
|
||||
return 0
|
||||
else if (isobserver(usr))
|
||||
var/mob/dead/observer/O = usr
|
||||
var/mob/abstract/observer/O = usr
|
||||
if (O.started_as_observer)
|
||||
usr << "<span class='warning'>You must be playing or have been playing to start a vote.</span>"
|
||||
return 0
|
||||
@@ -239,7 +239,7 @@ var/datum/controller/subsystem/vote/SSvote
|
||||
usr << "<span class='warning'>You must be playing or have been playing to start a vote.</span>"
|
||||
return 0
|
||||
else if (isobserver(usr))
|
||||
var/mob/dead/observer/O = usr
|
||||
var/mob/abstract/observer/O = usr
|
||||
if (O.started_as_observer)
|
||||
usr << "<span class='warning'>You must be playing or have been playing to start a vote.</span>"
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user