Merge pull request #3877 from TheGreatKitsune/non-crew-role

Non crew role added
This commit is contained in:
Nadyr
2022-10-29 19:08:16 -04:00
committed by GitHub
19 changed files with 94077 additions and 2747 deletions

View File

@@ -1,3 +1,5 @@
//Department defines
#define DEPARTMENT_NONCREW "Non crew"
//Material defines
#define MAT_CARPET "red carpet"

View File

@@ -174,6 +174,10 @@
//return (brain_type && LAZYACCESS(ideal_age_by_species, brain_type)) || LAZYACCESS(ideal_age_by_species, brain_type) || ideal_character_age //VOREStation Removal
/datum/job/proc/is_species_banned(species_name, brain_type)
// CHOMPEdit begin -- Shadekin cannot be any crew position
if(species_name == SPECIES_SHADEKIN)
return TRUE
// CHOMPEdit end
return FALSE // VOREStation Edit - Any species can be any job.
/* VOREStation Removal
if(banned_job_species == null)

View File

@@ -657,8 +657,7 @@ var/global/datum/controller/occupations/job_master
var/obj/belly/vore_spawn_gut
var/mob/living/prey_to_nomph
var/datum/job/J = SSjob.get_job(rank)
fail_deadly = J?.offmap_spawn
//CHOMPEdit - Remove fail_deadly addition on offmap_spawn
//Spawn them at their preferred one
if(C && C.prefs.spawnpoint)
@@ -804,7 +803,8 @@ var/global/datum/controller/occupations/job_master
.["msg"] = spawnpos.msg
.["channel"] = spawnpos.announce_channel
else
if(fail_deadly)
var/datum/job/J = SSjob.get_job(rank)
if(fail_deadly || J?.offmap_spawn)
to_chat(C, "<span class='warning'>Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Please correct your spawn point choice.</span>")
return
to_chat(C, "Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead.")

View File

@@ -51,6 +51,8 @@ var/const/ASSISTANT =(1<<11)
var/const/BRIDGE =(1<<12)
var/const/ENTERTAINER =(1<<13) //VOREStation Add
var/const/OTHER =(1<<10) //CHOMPStation Add
var/const/NONCREW =(1<<0) //CHOMPStation Add
/* // CHOMPedit: Comment out Talon positions, we don't have that here.
//VOREStation Add
var/const/TALON =(1<<3)

View File

@@ -42,6 +42,10 @@
latejoin_gatewaystation += loc
delete_me = 1
return
if("JoinLateSifPlains")
latejoin_plainspath += loc
delete_me = 1
return
//CHOMPEdit End
if("JoinLateElevator")
latejoin_elevator += loc

View File

@@ -1,5 +0,0 @@
var/list/shell_module_blacklist = list(
"Sci-borg", "Research"
)
var/list/latejoin_gatewaystation = list()

View File

@@ -19,6 +19,11 @@
S["job_talon_high"] >> pref.job_talon_high
//VOREStation Add End
S["player_alt_titles"] >> pref.player_alt_titles
//CHOMPStation Add
S["job_other_low"] >> pref.job_other_low
S["job_other_med"] >> pref.job_other_med
S["job_other_high"] >> pref.job_other_high
//CHOMPStation Add End
/datum/category_item/player_setup_item/occupation/save_character(var/savefile/S)
S["alternate_option"] << pref.alternate_option
@@ -37,6 +42,11 @@
S["job_talon_high"] << pref.job_talon_high
//VOREStation Add End
S["player_alt_titles"] << pref.player_alt_titles
//CHOMPStation Add
S["job_other_low"] << pref.job_other_low
S["job_other_med"] << pref.job_other_med
S["job_other_high"] << pref.job_other_high
//CHOMPStation Add End
/datum/category_item/player_setup_item/occupation/sanitize_character()
pref.alternate_option = sanitize_integer(pref.alternate_option, 0, 2, initial(pref.alternate_option))
@@ -54,6 +64,11 @@
pref.job_talon_med = sanitize_integer(pref.job_talon_med, 0, 65535, initial(pref.job_talon_med))
pref.job_talon_low = sanitize_integer(pref.job_talon_low, 0, 65535, initial(pref.job_talon_low))
//VOREStation Add End
//CHOMPStation Add
pref.job_other_high = sanitize_integer(pref.job_other_high, 0, 65535, initial(pref.job_other_high))
pref.job_other_med = sanitize_integer(pref.job_other_med, 0, 65535, initial(pref.job_other_med))
pref.job_other_low = sanitize_integer(pref.job_other_low, 0, 65535, initial(pref.job_other_low))
//CHOMPStation Add End
if(!(pref.player_alt_titles)) pref.player_alt_titles = new()
if(!job_master)
@@ -320,6 +335,7 @@
pref.job_medsci_high = 0
pref.job_engsec_high = 0
pref.job_talon_high = 0 //VOREStation Add
pref.job_other_high = 0 //CHOMPStation Add
// Level is equal to the desired new level of the job. So for a value of 4, we want to disable the job.
/datum/category_item/player_setup_item/occupation/proc/SetJobDepartment(var/datum/job/job, var/level)
@@ -377,6 +393,20 @@
if(3)
pref.job_talon_low |= job.flag
VOREStation Add End*/
//CHOMPStation Add
if(OTHER)
pref.job_other_low &= ~job.flag
pref.job_other_med &= ~job.flag
pref.job_other_high &= ~job.flag
switch(level)
if(1)
reset_jobhigh()
pref.job_other_high = job.flag
if(2)
pref.job_other_med |= job.flag
if(3)
pref.job_other_low |= job.flag
//CHOMPStation Add End
return 1
@@ -399,6 +429,12 @@
pref.job_talon_low = 0
//VOREStation Add End
//CHOMPStation Add
pref.job_other_high = 0
pref.job_other_med = 0
pref.job_other_low = 0
//CHOMPStation Add End
pref.player_alt_titles.Cut()
/datum/preferences/proc/GetPlayerAltTitle(datum/job/job)
@@ -431,4 +467,14 @@
return job_engsec_med
if(3)
return job_engsec_low
//CHOMPStation Add
if(OTHER)
switch(level)
if(1)
return job_other_high
if(2)
return job_other_med
if(3)
return job_other_low
//CHOMPStation Add End
return 0

View File

@@ -1,2 +0,0 @@
/datum/preferences
var/digitigrade = 0 // 0 = no digi, 1 = default, 2+ = digi styles... (Not used yet)

View File

@@ -13,6 +13,7 @@ var/list/spawntypes = list()
var/list/restrict_job = null
var/list/disallow_job = null
var/announce_channel = "Common"
var/allow_offmap_spawn = FALSE //CHOMPEdit - add option to allow offmap spawns to a spawnpoint without entirely restricting that spawnpoint
var/allowed_mob_types = JOB_SILICON|JOB_CARBON
/datum/spawnpoint/proc/check_job_spawning(job)
@@ -26,7 +27,7 @@ var/list/spawntypes = list()
if(!J) // Couldn't find, admin shenanigans? Allow it
return 1
if(J.offmap_spawn && !(job in restrict_job))
if(J.offmap_spawn && !allow_offmap_spawn && !(job in restrict_job)) //CHOMPEdit - add option to allow offmap spawns to a spawnpoint without entirely restricting that spawnpoint
return 0
if(!(J.mob_type & allowed_mob_types))
@@ -40,6 +41,7 @@ var/list/spawntypes = list()
/datum/spawnpoint/arrivals
display_name = "Arrivals Shuttle"
msg = "will arrive to the station shortly by shuttle"
disallow_job = list("Non-Crew") //CHOMPEdit add
/datum/spawnpoint/arrivals/New()
..()
@@ -65,6 +67,7 @@ var/list/spawntypes = list()
display_name = "Cryogenic Storage"
msg = "has completed cryogenic revival"
allowed_mob_types = JOB_CARBON
disallow_job = list("Non-Crew") //CHOMPEdit add
/datum/spawnpoint/cryo/New()
..()
@@ -74,6 +77,7 @@ var/list/spawntypes = list()
display_name = "Cyborg Storage"
msg = "has been activated from storage"
allowed_mob_types = JOB_SILICON
disallow_job = list("Non-Crew") //CHOMPEdit add
/datum/spawnpoint/cyborg/New()
..()
@@ -100,6 +104,7 @@ var/global/list/latejoin_tram = list()
/datum/spawnpoint/tram
display_name = "Tram Station"
msg = "will arrive to the station shortly by shuttle"
disallow_job = list("Non-Crew") //CHOMPEdit add
/datum/spawnpoint/tram/New()
..()

View File

@@ -482,7 +482,13 @@
ticker.mode.latespawn(character)
if(J.mob_type & JOB_SILICON)
//CHOMPEdit Begin - non-crew join don't get a message
if(rank == "Non-Crew")
log_and_message_admins("has joined the round as non-crew. (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</a>)",character)
if(!(J.mob_type & JOB_SILICON))
ticker.minds += character.mind
//CHOMPEdit End
else if(J.mob_type & JOB_SILICON)
AnnounceCyborg(character, rank, join_message, announce_channel, character.z)
else
AnnounceArrival(character, rank, join_message, announce_channel, character.z)

File diff suppressed because it is too large Load Diff

View File

@@ -98,7 +98,7 @@ but they don't actually change anything about the load order
NETWORK_SUPPLY
)
usable_email_tlds = list("freemail.nt")
allowed_spawns = list("Arrivals Shuttle","Gateway", "Cryogenic Storage", "Cyborg Storage", "Station gateway")
allowed_spawns = list("Arrivals Shuttle","Gateway", "Cryogenic Storage", "Cyborg Storage", "Station gateway", "Sif plains")
default_skybox = /datum/skybox_settings/southern_cross
unit_test_exempt_areas = list(/area/ninja_dojo, /area/shuttle/ninja)
unit_test_exempt_from_atmos = list(/area/tcomm/chamber)

View File

@@ -0,0 +1,15 @@
/decl/hierarchy/outfit/noncrew
name = OUTFIT_JOB_NAME("Non-Crew")
//hierarchy_type = /decl/hierarchy/outfit/noncrew
uniform = /obj/item/clothing/under/primitive
shoes = /obj/item/clothing/shoes/primitive
r_pocket = /obj/item/weapon/spacecash/ewallet
l_pocket = /obj/item/device/survivalcapsule/superpose
flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL
/decl/hierarchy/outfit/noncrew/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/weapon/spacecash/ewallet/wallet = H.r_store
if(istype(wallet))
wallet.owner_name = H.real_name
wallet.worth = 1000

View File

@@ -0,0 +1,6 @@
/datum/department/noncrew
name = DEPARTMENT_NONCREW
short_name = "N/A"
sorting_order = -99
visible = FALSE
assignable = FALSE

View File

@@ -0,0 +1,30 @@
/datum/job/noncrew
title = "Non-Crew"
disallow_jobhop = TRUE
total_positions = 3
spawn_positions = 6
supervisors = "no one."
flag = NONCREW
departments = list(DEPARTMENT_NONCREW)
department_flag = OTHER
faction = "Station"
assignable = FALSE
account_allowed = 0
offmap_spawn = TRUE
outfit_type = /decl/hierarchy/outfit/noncrew
job_description = {"Players taking a role of a visitor outside of NT property with no special mechanics or items outside of the item loadout. Excluding one superpose pod.
-----Goes without saying, server rules still apply to the fullest
-----Neutral-crew are considered unauthorized personnel on SouthernCross.
-----Neutral-crew are not allowed to take part in events and mini-event areas unless the EM says otherwise.
-----Neutral-crew are not allowed to take station jobs.
-----Neutral-crew are not allowed to know more than two department jobs.
-----Neutral-crew are expected to behave and respect station SOP and Corp.Reg regardless of their IC knowledge.
-----Neutral-crew are not allowed to log-off with station key items. (Captain spare, Station Blueprints, Nuke-key, Bluespace harpoon, any valuable or large amount of materials, chems, guns, etc. . .). Please discard these items on station or crew with relevant job roles.
-----We encourage Neutral-crew to take on exploration content as a group, staff will not help you for any hardships of solo play.
-----Notice: Not all of "Neutral-crew play" bugs have been fixed but we are aware of some of them that still need fixing, if you do encounter one that can be abused mechanically, please notify the staff member and be mindful of the exploit itself."}
/datum/job/noncrew/is_species_banned(species_name, brain_type)
// Any species can join as non-crew, including shadekin.
return FALSE

View File

@@ -0,0 +1,6 @@
var/list/shell_module_blacklist = list(
"Sci-borg", "Research"
)
var/list/latejoin_gatewaystation = list()
var/list/latejoin_plainspath = list()

View File

@@ -1,3 +1,10 @@
/datum/preferences
var/digitigrade = 0 // 0 = no digi, 1 = default, 2+ = digi styles... (Not used yet)
var/job_other_low = 0
var/job_other_med = 0
var/job_other_high = 0
/client/verb/toggle_random_emote_pitch()
set name = "Toggle Random Emote Pitch"
set category = "Preferences"

View File

@@ -1,6 +1,7 @@
/datum/spawnpoint/stationgateway
display_name = "Station gateway"
msg = "has completed translation from station gateway"
disallow_job = list("Non-Crew")
/datum/spawnpoint/stationgateway/New()
..()
@@ -9,6 +10,7 @@
/datum/spawnpoint/vore
display_name = "Vorespawn - Prey"
msg = "has arrived on the station"
allow_offmap_spawn = TRUE
/datum/spawnpoint/vore/pred
display_name = "Vorespawn - Pred"
@@ -17,3 +19,12 @@
/datum/spawnpoint/vore/New()
..()
turfs = latejoin
/datum/spawnpoint/plainspath
display_name = "Sif plains"
msg = "has checked in at the plains gate"
restrict_job = list("Non-Crew")
/datum/spawnpoint/plainspath/New()
..()
turfs = latejoin_plainspath

View File

@@ -17,7 +17,6 @@
#include "code\_map_tests.dm"
#include "code\_unit_tests.dm"
#include "code\global.dm"
#include "code\global_ch.dm"
#include "code\global_init.dm"
#include "code\global_vr.dm"
#include "code\global_yw.dm"
@@ -1985,11 +1984,9 @@
#include "code\modules\client\client procs_vr.dm"
#include "code\modules\client\movement.dm"
#include "code\modules\client\preferences.dm"
#include "code\modules\client\preferences_ch.dm"
#include "code\modules\client\preferences_factions.dm"
#include "code\modules\client\preferences_savefile.dm"
#include "code\modules\client\preferences_spawnpoints.dm"
#include "code\modules\client\preferences_spawnpoints_ch.dm"
#include "code\modules\client\preferences_toggle_procs.dm"
#include "code\modules\client\preferences_vr.dm"
#include "code\modules\client\preferences_yw.dm"
@@ -4501,15 +4498,20 @@
#include "maps\submaps\surface_submaps\wilderness\wilderness.dm"
#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm"
#include "maps\~map_system\maps.dm"
#include "modular_chomp\code\global.dm"
#include "modular_chomp\code\datums\autolathe\arms.dm"
#include "modular_chomp\code\datums\autolathe\engineering_ch.dm"
#include "modular_chomp\code\datums\autolathe\general_ch.dm"
#include "modular_chomp\code\datums\outfits\jobs\noncrew.dm"
#include "modular_chomp\code\game\jobs\job\department.dm"
#include "modular_chomp\code\game\jobs\job\noncrew.dm"
#include "modular_chomp\code\game\machinery\airconditioner_ch.dm"
#include "modular_chomp\code\game\objects\structures\watercloset_ch.dm"
#include "modular_chomp\code\game\objects\structures\crate_lockers\largecrate.dm"
#include "modular_chomp\code\game\turfs\simulated\outdoors\desert_planet.dm"
#include "modular_chomp\code\modules\admin\functions\modify_traits.dm"
#include "modular_chomp\code\modules\client\preferences.dm"
#include "modular_chomp\code\modules\client\preferences_spawnpoints.dm"
#include "modular_chomp\code\modules\client\preference_setup\global\setting_datums.dm"
#include "modular_chomp\code\modules\clothing\clothing.dm"
#include "modular_chomp\code\modules\clothing\face\gasmask.dm"