mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-24 09:03:57 +00:00
Merge pull request #3877 from TheGreatKitsune/non-crew-role
Non crew role added
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
//Department defines
|
||||
#define DEPARTMENT_NONCREW "Non crew"
|
||||
|
||||
//Material defines
|
||||
#define MAT_CARPET "red carpet"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
|
||||
var/list/shell_module_blacklist = list(
|
||||
"Sci-borg", "Research"
|
||||
)
|
||||
var/list/latejoin_gatewaystation = list()
|
||||
@@ -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
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
/datum/preferences
|
||||
var/digitigrade = 0 // 0 = no digi, 1 = default, 2+ = digi styles... (Not used yet)
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
15
modular_chomp/code/datums/outfits/jobs/noncrew.dm
Normal file
15
modular_chomp/code/datums/outfits/jobs/noncrew.dm
Normal 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
|
||||
6
modular_chomp/code/game/jobs/job/department.dm
Normal file
6
modular_chomp/code/game/jobs/job/department.dm
Normal file
@@ -0,0 +1,6 @@
|
||||
/datum/department/noncrew
|
||||
name = DEPARTMENT_NONCREW
|
||||
short_name = "N/A"
|
||||
sorting_order = -99
|
||||
visible = FALSE
|
||||
assignable = FALSE
|
||||
30
modular_chomp/code/game/jobs/job/noncrew.dm
Normal file
30
modular_chomp/code/game/jobs/job/noncrew.dm
Normal 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
|
||||
6
modular_chomp/code/global.dm
Normal file
6
modular_chomp/code/global.dm
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
var/list/shell_module_blacklist = list(
|
||||
"Sci-borg", "Research"
|
||||
)
|
||||
var/list/latejoin_gatewaystation = list()
|
||||
var/list/latejoin_plainspath = list()
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user