diff --git a/_maps/map_files220/delta/delta.dmm b/_maps/map_files220/delta/delta.dmm index 08b227093d71..226a7b20c6b4 100644 --- a/_maps/map_files220/delta/delta.dmm +++ b/_maps/map_files220/delta/delta.dmm @@ -1533,11 +1533,6 @@ /turf/simulated/floor/plating, /area/station/maintenance/starboard) "amh" = ( -/obj/structure/disposalpipe/sortjunction/reversed{ - dir = 4; - name = "Disposals Maint"; - sort_type_txt = "1" - }, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /obj/structure/cable{ @@ -1560,6 +1555,10 @@ d2 = 8; icon_state = "2-8" }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel, /area/station/maintenance/disposal/west) "amu" = ( @@ -3460,9 +3459,6 @@ }, /area/station/maintenance/disposal/west) "asN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -3474,6 +3470,10 @@ d2 = 8; icon_state = "4-8" }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "brown" @@ -7218,6 +7218,9 @@ }, /area/station/hallway/primary/fore) "aFD" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ dir = 6; @@ -11094,10 +11097,11 @@ /turf/simulated/floor/plasteel, /area/station/security/permabrig) "aWG" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, /obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "brown" @@ -22721,16 +22725,15 @@ }, /area/station/maintenance/fsmaint) "bPq" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4; - name = "CORPSE disposal unit" - }, /obj/structure/disposalpipe/trunk{ dir = 4 }, /obj/structure/window/reinforced{ dir = 4 }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, /turf/simulated/floor/plating, /area/station/maintenance/disposal/west) "bPs" = ( @@ -61634,16 +61637,18 @@ }, /area/station/medical/paramedic) "ipY" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 +/obj/structure/disposalpipe/sortjunction{ + dir = 1; + name = "Disposals Maint"; + sort_type_txt = "1" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "brown" @@ -72645,10 +72650,12 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, /turf/simulated/floor/plasteel{ icon_state = "brown" }, diff --git a/code/controllers/subsystem/SSjobs.dm b/code/controllers/subsystem/SSjobs.dm index 0f18a2ff0298..2197594c0d64 100644 --- a/code/controllers/subsystem/SSjobs.dm +++ b/code/controllers/subsystem/SSjobs.dm @@ -473,7 +473,7 @@ SUBSYSTEM_DEF(jobs) var/turf/T = null var/obj/S = null for(var/obj/effect/landmark/start/sloc in GLOB.landmarks_list) - if(sloc.name != rank) + if(sloc.name != rank && sloc.name != job.relate_job) // SS220 EDIT - Novice Jobs - Jobs relate module continue if(locate(/mob/living) in sloc.loc) continue diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 7baab0c11f85..d7898ccf2a32 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -480,6 +480,25 @@ GLOBAL_VAR_INIT(record_id_num, 1001) clothes_s = new /icon('icons/mob/clothing/under/rnd.dmi', "robotics_s") clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY) + + // SS220 ADDITION - START + if("Student Scientist") + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "student_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY) + if("Intern") + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "intern_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY) + if("Security Cadet") + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "cadet_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY) + if("Trainee Engineer") + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "trainee_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "orange"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY) + // SS220 ADDITION - END + if("Syndicate Agent") clothes_s = new /icon('icons/mob/clothing/under/syndicate.dmi', "syndicate_s") clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "black"), ICON_UNDERLAY) diff --git a/code/game/jobs/job/engineering_jobs.dm b/code/game/jobs/job/engineering_jobs.dm index e3081f425b23..030e3f2d2a86 100644 --- a/code/game/jobs/job/engineering_jobs.dm +++ b/code/game/jobs/job/engineering_jobs.dm @@ -83,7 +83,7 @@ dufflebag = /obj/item/storage/backpack/duffel/engineering box = /obj/item/storage/box/engineer - +/datum/job/engineer/trainee // SS220 ADDITION - new jobs /datum/job/atmos title = "Life Support Specialist" diff --git a/code/game/jobs/job/medical_jobs.dm b/code/game/jobs/job/medical_jobs.dm index 3449f62a653a..38eb18540a7b 100644 --- a/code/game/jobs/job/medical_jobs.dm +++ b/code/game/jobs/job/medical_jobs.dm @@ -76,6 +76,8 @@ satchel = /obj/item/storage/backpack/satchel_med dufflebag = /obj/item/storage/backpack/duffel/medical +/datum/job/doctor/intern // SS220 ADDITION - new jobs + /datum/job/coroner title = "Coroner" flag = JOB_CORONER diff --git a/code/game/jobs/job/science_jobs.dm b/code/game/jobs/job/science_jobs.dm index d6e468418fce..e8c6fad99846 100644 --- a/code/game/jobs/job/science_jobs.dm +++ b/code/game/jobs/job/science_jobs.dm @@ -86,6 +86,7 @@ satchel = /obj/item/storage/backpack/satchel_tox dufflebag = /obj/item/storage/backpack/duffel/science +/datum/job/scientist/student // SS220 ADDITION - new jobs /datum/job/roboticist title = "Roboticist" diff --git a/code/game/jobs/job/security_jobs.dm b/code/game/jobs/job/security_jobs.dm index f7c1a83c16fc..a4875d44b420 100644 --- a/code/game/jobs/job/security_jobs.dm +++ b/code/game/jobs/job/security_jobs.dm @@ -197,3 +197,4 @@ satchel = /obj/item/storage/backpack/satchel_sec dufflebag = /obj/item/storage/backpack/duffel/security +/datum/job/officer/cadet // SS220 ADDITION - new jobs diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index fb0eb2397277..b2e2fe1fa82f 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -92,7 +92,7 @@ */ /datum/antagonist/traitor/proc/forge_human_objectives() // Hijack objective. - if(prob(10) && !(locate(/datum/objective/hijack) in owner.get_all_objectives())) + if(prob(2) && !(locate(/datum/objective/hijack) in owner.get_all_objectives())) // SS220 EDIT prob(10 -> 2) add_antag_objective(/datum/objective/hijack) return // Hijack should be their only objective (normally), so return. diff --git a/config/example/config.toml b/config/example/config.toml index 9ed6d4634711..a5e6a38d0039 100644 --- a/config/example/config.toml +++ b/config/example/config.toml @@ -418,17 +418,21 @@ job_slot_amounts = [ # Engineering {name = "Life Support Specialist", lowpop = 3, highpop = 4}, {name = "Station Engineer", lowpop = 5, highpop = 6}, + {name = "Trainee Engineer", lowpop = 0, highpop = 0}, # Medical {name = "Chemist", lowpop = 2, highpop = 2}, {name = "Geneticist", lowpop = 2, highpop = 2}, {name = "Medical Doctor", lowpop = 5, highpop = 6}, + {name = "Intern", lowpop = 0, highpop = 0}, {name = "Virologist", lowpop = 1, highpop = 1}, # Science {name = "Roboticist", lowpop = 2, highpop = 2}, {name = "Scientist", lowpop = 6, highpop = 7}, + {name = "Student Scientist", lowpop = 0, highpop = 0}, # Security {name = "Detective", lowpop = 1, highpop = 1}, {name = "Security Officer", lowpop = 8, highpop = 9}, + {name = "Security Cadet", lowpop = 0, highpop = 0}, {name = "Warden", lowpop = 1, highpop = 1}, {name = "Internal Affairs Agent", lowpop = 2, highpop = 2}, # Service diff --git a/icons/_nanomaps/Cyberiad220_nanomap_z1.png b/icons/_nanomaps/Cyberiad220_nanomap_z1.png index a337e75675c5..57682c7a55ba 100644 Binary files a/icons/_nanomaps/Cyberiad220_nanomap_z1.png and b/icons/_nanomaps/Cyberiad220_nanomap_z1.png differ diff --git a/icons/_nanomaps/Delta220_nanomap_z1.png b/icons/_nanomaps/Delta220_nanomap_z1.png index ed69ddf80485..08d332985660 100644 Binary files a/icons/_nanomaps/Delta220_nanomap_z1.png and b/icons/_nanomaps/Delta220_nanomap_z1.png differ diff --git a/icons/_nanomaps/MetaStation220_nanomap_z1.png b/icons/_nanomaps/MetaStation220_nanomap_z1.png index 28ef72697d8d..d840453eceea 100644 Binary files a/icons/_nanomaps/MetaStation220_nanomap_z1.png and b/icons/_nanomaps/MetaStation220_nanomap_z1.png differ diff --git a/modular_ss220/_defines220/_defines220.dme b/modular_ss220/_defines220/_defines220.dme index 65c29efd5930..898c1b3f08a8 100644 --- a/modular_ss220/_defines220/_defines220.dme +++ b/modular_ss220/_defines220/_defines220.dme @@ -12,3 +12,5 @@ #include "code/hud_ss220.dm" #include "code/layers_ss220.dm" #include "code/signals_atom.dm" +#include "code/jobs_defines.dm" +#include "code/donor.dm" diff --git a/modular_ss220/_defines220/code/donor.dm b/modular_ss220/_defines220/code/donor.dm new file mode 100644 index 000000000000..053c420212cf --- /dev/null +++ b/modular_ss220/_defines220/code/donor.dm @@ -0,0 +1,7 @@ +// Special tiers for ss220 staff +#define BIG_WORKER_TIER 220 +#define LITTLE_WORKER_TIER 110 + +// What TTS level does it give access to? +#define BIG_WORKER_TTS_LEVEL 3 +#define LITTLE_WORKER_TTS_LEVEL 1 diff --git a/modular_ss220/_defines220/code/jobs_defines.dm b/modular_ss220/_defines220/code/jobs_defines.dm new file mode 100644 index 000000000000..fed4ba8651fa --- /dev/null +++ b/modular_ss220/_defines220/code/jobs_defines.dm @@ -0,0 +1,11 @@ +#define NOVICE_JOB_MINUTES 120 +#define NOVICE_CADET_JOB_MINUTES 300 + +// JOBCAT_ENGSEC +#define JOB_TRAINEE (1<<15) +#define JOB_CADET (1<<16) + +// JOBCAT_MEDSCI +#define JOB_INTERN (1<<11) +#define JOB_STUDENT (1<<12) +// Если ОФФы добавят новую должность в отдел, то потребуется смещение diff --git a/modular_ss220/donor/code/client_procs.dm b/modular_ss220/donor/code/client_procs.dm index 97819cbc77b1..4088d6d80072 100644 --- a/modular_ss220/donor/code/client_procs.dm +++ b/modular_ss220/donor/code/client_procs.dm @@ -2,8 +2,10 @@ /datum/client_login_processor/donator_check/proc/CheckAutoDonatorLevel(client/C) + var/list/big_worker = list("Админ", "Старший Администратор", "Разработчик", "Бригадир мапперов", "Маппер") + if(C.holder) - C.donator_level = 2 + C.donator_level = (C.holder.rank in big_worker) ? BIG_WORKER_TIER : LITTLE_WORKER_TIER return var/is_wl = GLOB.configuration.overflow.reroute_cap == 0.5 ? TRUE : FALSE @@ -17,7 +19,7 @@ return while(rank_ckey_read.NextRow()) - C.donator_level = 2 + C.donator_level = (rank_ckey_read.item[1] in big_worker) ? BIG_WORKER_TIER : LITTLE_WORKER_TIER qdel(rank_ckey_read) @@ -42,7 +44,13 @@ if(10000 to INFINITY) donator_level = DONATOR_LEVEL_MAX - C.donator_level = max(donator_level, C.donator_level) + switch(C.donator_level) + if(LITTLE_WORKER_TIER) + C.donator_level = LITTLE_WORKER_TTS_LEVEL > donator_level ? C.donator_level : donator_level + if(BIG_WORKER_TIER) + C.donator_level = BIG_WORKER_TTS_LEVEL > donator_level ? C.donator_level : donator_level + else + C.donator_level = donator_level C.donor_loadout_points() @@ -77,6 +85,10 @@ prefs.max_gear_slots += 12 if(5) prefs.max_gear_slots += 16 + if(LITTLE_WORKER_TIER) + prefs.max_gear_slots += 1 + if(BIG_WORKER_TIER) + prefs.max_gear_slots += 5 /client/proc/donor_character_slots() if(!prefs) @@ -84,6 +96,12 @@ prefs.max_save_slots = MAX_SAVE_SLOTS_SS220 + 5 * donator_level + switch(donator_level) + if(LITTLE_WORKER_TIER) + prefs.max_save_slots = 7 + if(BIG_WORKER_TIER) + prefs.max_save_slots = 10 + prefs.character_saves.len = prefs.max_save_slots #undef MAX_SAVE_SLOTS_SS220 diff --git a/modular_ss220/jobs/_jobs.dm b/modular_ss220/jobs/_jobs.dm index 47f40207e7b0..803bc7f75729 100644 --- a/modular_ss220/jobs/_jobs.dm +++ b/modular_ss220/jobs/_jobs.dm @@ -2,3 +2,13 @@ name = "Работы" desc = "Новые джобки и изменения старых" author = "furior, PhantomRU" + +/datum/modpack/jobs/initialize() + . = ..() + + GLOB.security_positions |= GLOB.security_positions_ss220 + GLOB.active_security_positions |= GLOB.security_positions_ss220 + + GLOB.medical_positions |= GLOB.medical_positions_ss220 + GLOB.engineering_positions |= GLOB.engineering_positions_ss220 + GLOB.science_positions |= GLOB.science_positions_ss220 diff --git a/modular_ss220/jobs/_jobs.dme b/modular_ss220/jobs/_jobs.dme index 5d7beee17f91..7a0fc3422801 100644 --- a/modular_ss220/jobs/_jobs.dme +++ b/modular_ss220/jobs/_jobs.dme @@ -1,13 +1,24 @@ #include "_jobs.dm" #include "code/access.dm" -// #include "code/cards_ids.dm" -// #include "code/jobs.dm" -// #include "code/clothing/engineering_clothing.dm" -// #include "code/clothing/medical_clothing.dm" -// #include "code/clothing/science_clothing.dm" -// #include "code/clothing/security_clothing.dm" -// #include "code/job/engineering_jobs.dm" -// #include "code/job/medical_jobs.dm" -// #include "code/job/science_jobs.dm" -// #include "code/job/security_jobs.dm" +#include "code/card_computer.dm" +#include "code/card_id.dm" +#include "code/departaments.dm" +#include "code/jobs_global_list.dm" +#include "code/jobs_character.dm" +#include "code/jobs_gamemodes.dm" +#include "code/jobs.dm" +#include "code/clothing/engineering_clothing.dm" +#include "code/clothing/medical_clothing.dm" +#include "code/clothing/science_clothing.dm" +#include "code/clothing/security_clothing.dm" +#include "code/job/engineering_jobs.dm" +#include "code/job/medical_jobs.dm" +#include "code/job/science_jobs.dm" +#include "code/job/security_jobs.dm" +#include "code/objects/job_objects.dm" +#include "code/objects/engineering_job_objects.dm" +#include "code/objects/medical_job_objects.dm" +#include "code/objects/science_job_objects.dm" +#include "code/objects/security_job_objects.dm" +#include "code/objects/wardrobe_vendors.dm" diff --git a/modular_ss220/jobs/code/card_computer.dm b/modular_ss220/jobs/code/card_computer.dm new file mode 100644 index 000000000000..e9c9e834e77c --- /dev/null +++ b/modular_ss220/jobs/code/card_computer.dm @@ -0,0 +1,21 @@ +/obj/machinery/computer/card/ui_data(mob/user) + var/list/data = ..() + + if(mode == IDCOMPUTER_SCREEN_TRANSFER) // JOB TRANSFER + if(modify && scan && !target_dept) + data["card_skins"] |= format_card_skins(GLOB.card_skins_ss220) + + return data + +/obj/machinery/computer/card/ui_act(action, params) + . = ..() + switch(action) + if("skin") + if(!modify) + return FALSE + var/skin = params["skin_target"] + if(!skin || !(skin in GLOB.card_skins_ss220)) + return FALSE + + modify.icon_state = skin//get_card_skins_ss220(skin) + return TRUE diff --git a/modular_ss220/jobs/code/card_id.dm b/modular_ss220/jobs/code/card_id.dm new file mode 100644 index 000000000000..f00685c26674 --- /dev/null +++ b/modular_ss220/jobs/code/card_id.dm @@ -0,0 +1,56 @@ +/mob/living/carbon/human/sec_hud_set_ID() + var/image/holder = hud_list[ID_HUD] + holder.icon = 'icons/mob/hud/sechud.dmi' + if(wear_id && (wear_id.get_job_name() in GLOB.jobs_positions_ss220)) + holder.icon = 'modular_ss220/jobs/icons/hud.dmi' + . = ..() + +/obj/item/get_job_name() //Used in secHUD icon generation + var/assignmentName = get_ID_assignment(if_no_id = "Unknown") + var/rankName = get_ID_rank(if_no_id = "Unknown") + + var/list/titles = GLOB.jobs_positions_ss220 + + if(assignmentName in titles) //Check if the job has a hud icon + return assignmentName + if(rankName in titles) + return rankName + + . = ..() + +GLOBAL_LIST_INIT(card_skins_ss220, list( + "intern", "student", "trainee", "cadet", +)) + +/obj/item/card/id/medical/intern + name = "Intern ID" + registered_name = "Intern" + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "intern" + item_state = "intern-id" + rank = "Intern" + +/obj/item/card/id/research/student + name = "Student ID" + registered_name = "Student" + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "student" + item_state = "student-id" + +/obj/item/card/id/engineering/trainee + name = "Trainee ID" + registered_name = "Trainee" + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "trainee" + item_state = "trainee-id" + +/obj/item/card/id/security/cadet + name = "Cadet ID" + registered_name = "Cadet" + icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' + icon_state = "cadet" + item_state = "cadet-id" + +/obj/item/card/id/syndicate/Initialize() + . = ..() + appearances |= GLOB.card_skins_ss220 diff --git a/modular_ss220/jobs/code/cards_ids.dm b/modular_ss220/jobs/code/cards_ids.dm deleted file mode 100644 index 5eec7f64ea30..000000000000 --- a/modular_ss220/jobs/code/cards_ids.dm +++ /dev/null @@ -1,101 +0,0 @@ -// Для отрисовки ХУД'ов. -GLOBAL_LIST_INIT(Jobs_SS220, list("intern", "cadet", "trainee", "student")) -GLOBAL_LIST_INIT(Jobs_titles_SS220, list("Intern", "Security Cadet", "Trainee Engineer", "Student Scientist")) - -/proc/get_all_medical_novice_titles() - return list("Intern", "Medical Assistant", "Student Medical Doctor") - -/proc/get_all_security_novice_titles() - return list("Security Cadet", "Security Assistant", "Security Graduate") - -/proc/get_all_engineering_novice_titles() - return list("Trainee Engineer", "Engineer Assistant", "Technical Assistant", "Engineer Student", "Technical Student", "Technical Trainee") - -/proc/get_all_science_novice_titles() - return list("Student Scientist", "Scientist Assistant", "Scientist Pregraduate", "Scientist Graduate", "Scientist Postgraduate") - -/proc/get_all_novice_titles() - return get_all_medical_novice_titles() + get_all_security_novice_titles() + get_all_engineering_novice_titles() + get_all_science_novice_titles() - -/mob/living/carbon/human/sec_hud_set_ID() - var/image/holder = hud_list[ID_HUD] - holder.icon = 'icons/mob/hud/sechud.dmi' - if(wear_id && (wear_id.get_job_name() in GLOB.Jobs_SS220)) - holder.icon = 'modular_ss220/jobs/icons/hud.dmi' - . = ..() - -/obj/item/get_job_name() //Used in secHUD icon generation - var/assignmentName = get_ID_assignment(if_no_id = "Unknown") - var/rankName = get_ID_rank(if_no_id = "Unknown") - - var/novmed = get_all_medical_novice_titles() - var/novsec = get_all_security_novice_titles() - var/noveng = get_all_engineering_novice_titles() - var/novrnd = get_all_science_novice_titles() - - if((assignmentName in novmed) || (rankName in novmed)) - return "intern" - if((assignmentName in novsec) || (rankName in novsec)) - return "cadet" - if((assignmentName in noveng) || (rankName in noveng)) - return "trainee" - if((assignmentName in novrnd) || (rankName in novrnd)) - return "student" - - . = ..() - -/obj/machinery/computer/card/ui_data(mob/user) - var/list/data = ..() - - if(mode == IDCOMPUTER_SCREEN_TRANSFER) // JOB TRANSFER - if(modify && scan && !target_dept) - data["jobs_engineering"] |= "Trainee Engineer" - data["jobs_medical"] |= "Intern" - data["jobs_science"] |= "Student Scientist" - data["jobs_security"] |= "Security Cadet" - data["card_skins"] |= format_card_skins(GLOB.Jobs_SS220) // + format_card_skins(list("intern", "cadet", "trainee", "student")) - - return data - -/obj/machinery/computer/card/ui_act(action, params) - . = ..() - - switch(action) - if("skin") - if(!modify) - return FALSE - var/skin = params["skin_target"] - if(!skin || !(skin in GLOB.Jobs_SS220)) - return FALSE - - modify.icon_state = skin - return TRUE - -/obj/item/card/id/medical/intern - name = "Intern ID" - registered_name = "Intern" - icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' - icon_state = "intern" - item_state = "intern-id" - rank = "Intern" - -/obj/item/card/id/research/student - name = "Student ID" - registered_name = "Student" - icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' - icon_state = "student" - item_state = "student-id" - -/obj/item/card/id/engineering/trainee - name = "Trainee ID" - registered_name = "Trainee" - icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' - icon_state = "trainee" - item_state = "trainee-id" - -/obj/item/card/id/security/cadet - name = "Cadet ID" - registered_name = "Cadet" - icon = 'modular_ss220/aesthetics/better_ids/icons/better_ids.dmi' - icon_state = "cadet" - item_state = "cadet-id" diff --git a/modular_ss220/jobs/code/clothing/engineering_clothing.dm b/modular_ss220/jobs/code/clothing/engineering_clothing.dm index 7e7078bec5c8..9d01c2a5f5d9 100644 --- a/modular_ss220/jobs/code/clothing/engineering_clothing.dm +++ b/modular_ss220/jobs/code/clothing/engineering_clothing.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/under/rank/engineer/trainee +/obj/item/clothing/under/rank/engineering/engineer/trainee name = "engineer trainee jumpsuit" icon = 'modular_ss220/jobs/icons/clothing/uniforms.dmi' icon_override = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi' @@ -8,18 +8,18 @@ item_color = "trainee" sprite_sheets = null -/obj/item/clothing/under/rank/engineer/trainee/skirt +/obj/item/clothing/under/rank/engineering/engineer/trainee/skirt name = "engineer trainee jumpskirt" icon_state = "traineef_s" item_color = "traineef" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS -/obj/item/clothing/under/rank/engineer/trainee/assistant +/obj/item/clothing/under/rank/engineering/engineer/trainee/assistant name = "engineer assistant jumpsuit" icon_state = "eng_ass_s" item_color = "eng_ass" -/obj/item/clothing/under/rank/engineer/trainee/assistant/skirt +/obj/item/clothing/under/rank/engineering/engineer/trainee/assistant/skirt name = "engineer assistant jumpskirt" icon_state = "eng_ass_f_s" item_color = "eng_ass_f" diff --git a/modular_ss220/jobs/code/clothing/medical_clothing.dm b/modular_ss220/jobs/code/clothing/medical_clothing.dm index 43e99519aacf..f9ffc439ad70 100644 --- a/modular_ss220/jobs/code/clothing/medical_clothing.dm +++ b/modular_ss220/jobs/code/clothing/medical_clothing.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/under/rank/medical/intern +/obj/item/clothing/under/rank/medical/doctor/intern icon = 'modular_ss220/jobs/icons/clothing/uniforms.dmi' icon_override = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi' //lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi' @@ -9,18 +9,18 @@ icon_state = "intern_s" item_color = "intern" -/obj/item/clothing/under/rank/medical/intern/skirt +/obj/item/clothing/under/rank/medical/doctor/intern/skirt name = "intern jumpskirt" icon_state = "internf_s" item_color = "internf" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS -/obj/item/clothing/under/rank/medical/intern/assistant +/obj/item/clothing/under/rank/medical/doctor/intern/assistant name = "medical assistant jumpsuit" icon_state = "med_ass_s" item_color = "med_ass" -/obj/item/clothing/under/rank/medical/intern/assistant/skirt +/obj/item/clothing/under/rank/medical/doctor/intern/assistant/skirt name = "medical assistant jumpskirt" icon_state = "med_ass_f_s" item_color = "med_ass_f" diff --git a/modular_ss220/jobs/code/clothing/science_clothing.dm b/modular_ss220/jobs/code/clothing/science_clothing.dm index d885bff41bbf..4f501916c7b3 100644 --- a/modular_ss220/jobs/code/clothing/science_clothing.dm +++ b/modular_ss220/jobs/code/clothing/science_clothing.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/under/rank/scientist/student +/obj/item/clothing/under/rank/rnd/scientist/student name = "scientist student jumpsuit" icon = 'modular_ss220/jobs/icons/clothing/uniforms.dmi' icon_override = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi' @@ -8,18 +8,18 @@ item_color = "student" sprite_sheets = null -/obj/item/clothing/under/rank/scientist/student/skirt +/obj/item/clothing/under/rank/rnd/scientist/student/skirt name = "scientist student jumpskirt" icon_state = "studentf_s" item_color = "studentf" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS -/obj/item/clothing/under/rank/scientist/student/assistant +/obj/item/clothing/under/rank/rnd/scientist/student/assistant name = "scientist assistant jumpsuit" icon_state = "sci_ass_s" item_color = "sci_ass" -/obj/item/clothing/under/rank/scientist/student/assistant/skirt +/obj/item/clothing/under/rank/rnd/scientist/student/assistant/skirt name = "scientist assistant jumpskirt" icon_state = "sci_ass_f_s" item_color = "sci_ass_f" diff --git a/modular_ss220/jobs/code/clothing/security_clothing.dm b/modular_ss220/jobs/code/clothing/security_clothing.dm index 681b4581b9ef..a767485df6eb 100644 --- a/modular_ss220/jobs/code/clothing/security_clothing.dm +++ b/modular_ss220/jobs/code/clothing/security_clothing.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/under/rank/security/cadet +/obj/item/clothing/under/rank/security/officer/cadet name = "security cadet jumpsuit" icon = 'modular_ss220/jobs/icons/clothing/uniforms.dmi' icon_override = 'modular_ss220/jobs/icons/clothing/mob/uniform.dmi' @@ -7,19 +7,21 @@ icon_state = "cadet_s" item_color = "cadet" sprite_sheets = null + sensor_mode = SENSOR_COORDS + random_sensor = FALSE -/obj/item/clothing/under/rank/security/cadet/skirt +/obj/item/clothing/under/rank/security/officer/cadet/skirt name = "security cadet jumpskirt" icon_state = "cadetf_s" item_color = "cadetf" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS -/obj/item/clothing/under/rank/security/cadet/assistant +/obj/item/clothing/under/rank/security/officer/cadet/assistant name = "security assistant jumpsuit" icon_state = "sec_ass_s" item_color = "sec_ass" -/obj/item/clothing/under/rank/security/cadet/assistant/skirt +/obj/item/clothing/under/rank/security/officer/cadet/assistant/skirt name = "security assistant jumpskirt" icon_state = "sec_ass_f_s" item_color = "sec_ass_f" diff --git a/modular_ss220/jobs/code/departaments.dm b/modular_ss220/jobs/code/departaments.dm new file mode 100644 index 000000000000..1624d0353f92 --- /dev/null +++ b/modular_ss220/jobs/code/departaments.dm @@ -0,0 +1,15 @@ +/datum/station_department/engineering/New() + . = ..() + department_roles |= GLOB.engineering_positions_ss220 + get_all_engineering_alt_titles_ss220() + +/datum/station_department/medical/New() + . = ..() + department_roles |= GLOB.medical_positions_ss220 + get_all_medical_alt_titles_ss220() + +/datum/station_department/science/New() + . = ..() + department_roles |= GLOB.science_positions_ss220 + get_all_science_alt_titles_ss220() + +/datum/station_department/security/New() + . = ..() + department_roles |= GLOB.security_positions_ss220 + get_all_security_alt_titles_ss220() diff --git a/modular_ss220/jobs/code/job/engineering_jobs.dm b/modular_ss220/jobs/code/job/engineering_jobs.dm index 8b472cde20cf..eb4c3c280f99 100644 --- a/modular_ss220/jobs/code/job/engineering_jobs.dm +++ b/modular_ss220/jobs/code/job/engineering_jobs.dm @@ -1,37 +1,56 @@ -/datum/job/engineer/New() - . = ..() - alt_titles |= get_all_engineering_novice_titles() +/datum/job/engineer/trainee + title = "Trainee Engineer" + flag = JOB_TRAINEE + total_positions = 0 + spawn_positions = 3 + //selection_color = "#dbd6c4" + alt_titles = list("Engineer Assistant", "Technical Assistant", "Engineer Student", "Technical Student", "Technical Trainee") + exp_map = list(EXP_TYPE_CREW = NOVICE_JOB_MINUTES) + outfit = /datum/outfit/job/engineer/trainee + important_information = "Ваша должность ограничена во всех взаимодействиях с рабочим имуществом отдела и экипажем станции, при отсутствии приставленного к нему квалифицированного сотрудника или полученного разрешения от вышестоящего начальства." -/datum/station_department/engineering/New() - . = ..() - department_roles |= get_all_engineering_novice_titles() +/datum/outfit/job/engineer/trainee + name = "Trainee Engineer" + jobtype = /datum/job/engineer/trainee -/datum/outfit/job/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee + suit = /obj/item/clothing/suit/storage/hazardvest + belt = /obj/item/storage/belt/utility/full + shoes = /obj/item/clothing/shoes/workboots + gloves = /obj/item/clothing/gloves/color/orange + head = /obj/item/clothing/head/hardhat/orange + l_ear = /obj/item/radio/headset/headset_eng + id = /obj/item/card/id/engineering/trainee + l_pocket = /obj/item/t_scanner + pda = /obj/item/pda/engineering + + backpack = /obj/item/storage/backpack/industrial + satchel = /obj/item/storage/backpack/satchel_eng + dufflebag = /obj/item/storage/backpack/duffel/engineering + box = /obj/item/storage/box/engineer + +/datum/outfit/job/engineer/trainee/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - if(H.mind && H.mind.role_alt_title) - if(H.mind.role_alt_title in get_all_engineering_novice_titles()) - uniform = /obj/item/clothing/under/rank/engineer/trainee - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/engineer/trainee/skirt - id = /obj/item/card/id/engineering/trainee - gloves = /obj/item/clothing/gloves/color/orange - switch(H.mind.role_alt_title) - if("Engineer Assistant") - uniform = /obj/item/clothing/under/rank/engineer/trainee/assistant - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/engineer/trainee/assistant/skirt - if("Technical Assistant") - uniform = /obj/item/clothing/under/rank/engineer/trainee/assistant - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/engineer/trainee/assistant/skirt - head = /obj/item/clothing/head/soft/orange - if("Technical Student", "Technical Trainee") - head = /obj/item/clothing/head/soft/orange - if("Engineer Student") - head = /obj/item/clothing/head/beret/eng + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee/skirt -// Identification jobs for console -/datum/job/engineer/trainee - title = "Trainee Engineer" - hidden_from_job_prefs = TRUE + switch(H.mind.role_alt_title) + if("Engineer Assistant") + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant/skirt + if("Technical Assistant") + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant/skirt + head = /obj/item/clothing/head/soft/orange + if("Technical Student", "Technical Trainee") + head = /obj/item/clothing/head/soft/orange + if("Engineer Student") + head = /obj/item/clothing/head/beret/eng + +/datum/outfit/job/engineer/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/engineering/engineer/skirt diff --git a/modular_ss220/jobs/code/job/medical_jobs.dm b/modular_ss220/jobs/code/job/medical_jobs.dm index c1f674bb28c7..1d3623e7f038 100644 --- a/modular_ss220/jobs/code/job/medical_jobs.dm +++ b/modular_ss220/jobs/code/job/medical_jobs.dm @@ -1,37 +1,49 @@ -/datum/job/doctor/New() - . = ..() - alt_titles |= get_all_medical_novice_titles() +/datum/job/doctor/intern + title = "Intern" + flag = JOB_INTERN + total_positions = 0 + spawn_positions = 3 + //selection_color = "#ebe2e3" + alt_titles = list("Medical Assistant", "Student Medical Doctor") + exp_map = list(EXP_TYPE_CREW = NOVICE_JOB_MINUTES) + outfit = /datum/outfit/job/doctor/intern + important_information = "Ваша должность ограничена во всех взаимодействиях с рабочим имуществом отдела и экипажем станции, при отсутствии приставленного к нему квалифицированного сотрудника или полученного разрешения от вышестоящего начальства." -/datum/station_department/medical/New() - . = ..() - department_roles |= get_all_medical_novice_titles() +/datum/outfit/job/doctor/intern + name = "Intern" + jobtype = /datum/job/doctor/intern -/datum/outfit/job/doctor/pre_equip(mob/living/carbon/human/H, visualsOnly) + uniform = /obj/item/clothing/under/rank/medical/doctor/intern + suit = /obj/item/clothing/suit/storage/labcoat + mask = /obj/item/clothing/mask/surgical + gloves = /obj/item/clothing/gloves/color/latex + shoes = /obj/item/clothing/shoes/white + l_ear = /obj/item/radio/headset/headset_med + id = /obj/item/card/id/medical/intern + suit_store = /obj/item/flashlight/pen + l_hand = /obj/item/storage/firstaid/o2 + pda = /obj/item/pda/medical + + backpack = /obj/item/storage/backpack/medic + satchel = /obj/item/storage/backpack/satchel_med + dufflebag = /obj/item/storage/backpack/duffel/medical + +/datum/outfit/job/doctor/intern/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - if(H.mind && H.mind.role_alt_title) - if(H.mind.role_alt_title in get_all_medical_novice_titles()) - uniform = /obj/item/clothing/under/rank/medical/intern - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/medical/intern/skirt - id = /obj/item/card/id/medical/intern - l_hand = /obj/item/storage/firstaid/o2 - mask = /obj/item/clothing/mask/surgical - gloves = /obj/item/clothing/gloves/color/latex - switch(H.mind.role_alt_title) - if("Intern") - uniform = /obj/item/clothing/under/rank/medical/intern - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/medical/intern/skirt - if("Medical Assistant") - uniform = /obj/item/clothing/under/rank/medical/intern/assistant - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/medical/intern/assistant/skirt - if("Student Medical Doctor") - head = /obj/item/clothing/head/surgery/green/light - uniform = /obj/item/clothing/under/rank/medical/scrubs/green/light + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/medical/doctor/intern/skirt -// Identification jobs for console -/datum/job/doctor/intern - title = "Intern" - hidden_from_job_prefs = TRUE + switch(H.mind.role_alt_title) + if("Medical Assistant") + uniform = /obj/item/clothing/under/rank/medical/doctor/intern/assistant + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/medical/doctor/intern/assistant/skirt + if("Student Medical Doctor") + head = /obj/item/clothing/head/surgery/green/light + uniform = /obj/item/clothing/under/rank/medical/scrubs/green/light + +/datum/outfit/job/doctor/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/medical/doctor/skirt diff --git a/modular_ss220/jobs/code/job/science_jobs.dm b/modular_ss220/jobs/code/job/science_jobs.dm index b3387f831acc..fc4cb90bb06c 100644 --- a/modular_ss220/jobs/code/job/science_jobs.dm +++ b/modular_ss220/jobs/code/job/science_jobs.dm @@ -1,27 +1,42 @@ -/datum/job/scientist/New() - . = ..() - alt_titles |= get_all_science_novice_titles() +/datum/job/scientist/student + title = "Student Scientist" + flag = JOB_STUDENT + total_positions = 0 + spawn_positions = 4 + //selection_color = "#ece5ec" + alt_titles = list("Scientist Assistant", "Scientist Pregraduate", "Scientist Graduate", "Scientist Postgraduate") + exp_map = list(EXP_TYPE_CREW = NOVICE_JOB_MINUTES) + outfit = /datum/outfit/job/scientist/student + important_information = "Ваша должность ограничена во всех взаимодействиях с рабочим имуществом отдела и экипажем станции, при отсутствии приставленного к нему квалифицированного сотрудника или полученного разрешения от вышестоящего начальства." -/datum/station_department/science/New() - . = ..() - department_roles |= get_all_science_novice_titles() +/datum/outfit/job/scientist/student + name = "Student Scientist" + jobtype = /datum/job/scientist/student -/datum/outfit/job/scientist/pre_equip(mob/living/carbon/human/H, visualsOnly) + uniform = /obj/item/clothing/under/rank/rnd/scientist/student + suit = /obj/item/clothing/suit/storage/labcoat/science + shoes = /obj/item/clothing/shoes/white + l_ear = /obj/item/radio/headset/headset_sci + id = /obj/item/card/id/research/student + pda = /obj/item/pda/toxins + + backpack = /obj/item/storage/backpack/science + satchel = /obj/item/storage/backpack/satchel_tox + dufflebag = /obj/item/storage/backpack/duffel/science + +/datum/outfit/job/scientist/student/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - if(H.mind && H.mind.role_alt_title) - if(H.mind.role_alt_title in get_all_science_novice_titles()) - uniform = /obj/item/clothing/under/rank/scientist/student - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/scientist/student/skirt - id = /obj/item/card/id/research/student - switch(H.mind.role_alt_title) - if("Scientist Assistant") - uniform = /obj/item/clothing/under/rank/scientist/student/assistant - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/scientist/student/assistant/skirt + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/rnd/scientist/student/skirt -// Identification jobs for console -/datum/job/scientist/student - title = "Student Scientist" - hidden_from_job_prefs = TRUE + switch(H.mind.role_alt_title) + if("Scientist Assistant") + uniform = /obj/item/clothing/under/rank/rnd/scientist/student/assistant + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/rnd/scientist/student/assistant/skirt + +/datum/outfit/job/scientist/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/rnd/scientist/skirt diff --git a/modular_ss220/jobs/code/job/security_jobs.dm b/modular_ss220/jobs/code/job/security_jobs.dm index 6b5e68ba1cea..6cbf63cce39c 100644 --- a/modular_ss220/jobs/code/job/security_jobs.dm +++ b/modular_ss220/jobs/code/job/security_jobs.dm @@ -1,31 +1,51 @@ -/datum/job/officer/New() - . = ..() - alt_titles = get_all_security_novice_titles() // =, а не |=, т.к. отсутствуют альт. названия +/datum/job/officer/cadet + title = "Security Cadet" + flag = JOB_CADET + total_positions = 0 // miss add slots + spawn_positions = 2 + //selection_color = "#efe6e6" + alt_titles = list("Security Assistant", "Security Graduate") + exp_map = list(EXP_TYPE_CREW = NOVICE_CADET_JOB_MINUTES) + outfit = /datum/outfit/job/officer/cadet + important_information = "Космический закон это необходимость, а не рекомендация. Ваша должность ограничена во всех взаимодействиях с рабочим имуществом отдела и экипажем станции, при отсутствии приставленного к нему квалифицированного сотрудника или полученного разрешения от вышестоящего начальства." -/datum/station_department/security/New() - . = ..() - department_roles |= get_all_security_novice_titles() +/datum/outfit/job/officer/cadet + name = "Security Cadet" + jobtype = /datum/job/officer/cadet + uniform = /obj/item/clothing/under/rank/security/officer/cadet + suit = /obj/item/clothing/suit/armor/vest/security + gloves = /obj/item/clothing/gloves/color/black + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/soft/sec + l_ear = /obj/item/radio/headset/headset_sec/alt + id = /obj/item/card/id/security/cadet + l_pocket = /obj/item/reagent_containers/spray/pepper + suit_store = /obj/item/gun/energy/disabler + pda = /obj/item/pda/security + backpack_contents = list( + /obj/item/restraints/handcuffs = 1 + ) + //box = /obj/item/storage/box/survival_security/cadet -/datum/outfit/job/officer/pre_equip(mob/living/carbon/human/H, visualsOnly) + +/datum/outfit/job/officer/cadet/pre_equip(mob/living/carbon/human/H, visualsOnly) . = ..() - if(H.mind && H.mind.role_alt_title) - if(H.mind.role_alt_title in get_all_security_novice_titles()) - uniform = /obj/item/clothing/under/rank/security/cadet + + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/security/officer/cadet/skirt + + switch(H.mind.role_alt_title) + if("Security Assistant") + uniform = /obj/item/clothing/under/rank/security/officer/cadet/assistant if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/security/cadet/skirt - head = /obj/item/clothing/head/soft/sec - id = /obj/item/card/id/security/cadet - l_pocket = /obj/item/reagent_containers/spray/pepper - //box = /obj/item/storage/box/survival_security/cadet - switch(H.mind.role_alt_title) - if("Security Assistant") - uniform = /obj/item/clothing/under/rank/security/cadet/assistant - if(H.gender == FEMALE) - uniform = /obj/item/clothing/under/rank/security/cadet/assistant/skirt - if("Security Graduate") - head = /obj/item/clothing/head/beret/sec + uniform = /obj/item/clothing/under/rank/security/officer/cadet/assistant/skirt + if("Security Graduate") + head = /obj/item/clothing/head/beret/sec -// Identification jobs for console -/datum/job/officer/cadet - title = "Security Cadet" - hidden_from_job_prefs = TRUE +/datum/job/officer + alt_titles = list("Security Trainer", "Junior Security Officer") + +/datum/outfit/job/officer/pre_equip(mob/living/carbon/human/H, visualsOnly) + . = ..() + if(H.gender == FEMALE) + uniform = /obj/item/clothing/under/rank/security/officer/skirt diff --git a/modular_ss220/jobs/code/jobs.dm b/modular_ss220/jobs/code/jobs.dm index 75e8d8db2f55..c1b8d290b371 100644 --- a/modular_ss220/jobs/code/jobs.dm +++ b/modular_ss220/jobs/code/jobs.dm @@ -1,24 +1,76 @@ /datum/nttc_configuration/New() . = ..() var/list/job_radio_dict = list() - - for(var/i in get_all_medical_novice_titles()) + for(var/i in (GLOB.medical_positions_ss220 + get_all_medical_alt_titles_ss220())) job_radio_dict.Add(list("[i]" = "medradio")) - for(var/i in get_all_security_novice_titles()) + for(var/i in (GLOB.security_positions_ss220 + get_all_security_alt_titles_ss220())) job_radio_dict.Add(list("[i]" = "secradio")) - for(var/i in get_all_engineering_novice_titles()) + for(var/i in (GLOB.engineering_positions_ss220 + get_all_engineering_alt_titles_ss220())) job_radio_dict.Add(list("[i]" = "engradio")) - for(var/i in get_all_science_novice_titles()) + for(var/i in (GLOB.science_positions_ss220 + get_all_science_alt_titles_ss220())) job_radio_dict.Add(list("[i]" = "scirradio")) all_jobs |= job_radio_dict + +// ======================================= +// relate jobs for relate job slots +// ======================================= +/datum/job/proc/try_relate_jobs() + return FALSE + +/datum/job + var/relate_job // for novice role and etc + +/datum/job/doctor + relate_job = "Intern" +/datum/job/doctor/intern + relate_job = "Medical Doctor" + +/datum/job/scientist + relate_job = "Student Scientist" +/datum/job/scientist/student + relate_job = "Scientist" + +/datum/job/engineer + relate_job = "Trainee Engineer" +/datum/job/engineer/trainee + relate_job = "Station Engineer" + +/datum/job/officer + relate_job = "Security Cadet" +/datum/job/officer/cadet + relate_job = "Security Officer" + /datum/job/is_position_available() - . = ..() + if(job_banned_gamemode) + return FALSE + if(check_hidden_from_job_prefs()) + return FALSE + + return relate_job ? check_relate_positions() : ..() + +/datum/job/proc/check_relate_positions() + var/datum/job/temp = SSjobs.GetJob(relate_job) + + var/current_count_positions = current_positions + temp.current_positions + var/total_count_positions = total_positions + temp.total_positions + + if(total_positions == -1) + total_count_positions = -1 + + return (current_count_positions < total_count_positions) || (total_count_positions == -1) + +/datum/job/proc/check_hidden_from_job_prefs() if(hidden_from_job_prefs) - for(var/job_title in GLOB.Jobs_titles_SS220) + for(var/job_title in GLOB.jobs_positions_ss220) if(job_title in alt_titles) - return FALSE - if(title in GLOB.Jobs_titles_SS220) - return FALSE + return TRUE + if(title in GLOB.jobs_positions_ss220) + return TRUE + return FALSE + +// OFFICIAL parameters: 17 / HOS, Bart / 400 / 700 +/datum/character_save/SetChoices(mob/user, limit = 18, list/splitJobs = list("Head of Security", "Bartender"), widthPerColumn = 450, height = 700) + . = ..() diff --git a/modular_ss220/jobs/code/jobs_character.dm b/modular_ss220/jobs/code/jobs_character.dm new file mode 100644 index 000000000000..4e526b4c4aa1 --- /dev/null +++ b/modular_ss220/jobs/code/jobs_character.dm @@ -0,0 +1,110 @@ +// Будь прокляты те кто вставлял списки прямо в код. Это не ТОГЭ. Поэтому оставь здравомыслие всяк сюда входящий. +/datum/species/plasmaman/before_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + var/current_job = J.title + var/datum/outfit/plasmaman/O = new /datum/outfit/plasmaman + switch(current_job) + + if("Security Cadet") + O = new /datum/outfit/plasmaman/security + + if("Intern") + O = new /datum/outfit/plasmaman/medical + + if("Student Scientist") + O = new /datum/outfit/plasmaman/science + + if("Trainee Engineer") + O = new /datum/outfit/plasmaman/engineering + + H.equipOutfit(O, visualsOnly) + H.internal = H.r_hand + H.update_action_buttons_icon() + return FALSE + + +// это копипаст мерзопакости. Я не буду рефакторить это в модуле, я шо, ебанутый? +// Оно работает и ладно. И я не буду этот комментарий на английский переводить. +// Эту хуйню должен видеть каждый кто сюда зайдет и полезет посмотреть какой в родителе оригинальный код на 1000 строчек. +/datum/character_save/update_preview_icon(for_observer=0) + . = ..() + + // qdel(preview_icon_front) + // qdel(preview_icon_side) + // qdel(preview_icon) + + var/g = "" + if(gender == FEMALE) + g = "f" + + var/icon/clothes_s = null + + if(job_medsci_high) + switch(job_medsci_high) + if(JOB_STUDENT) + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "student[g]_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "metroid"), ICON_OVERLAY) + switch(backbag) + if(2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "backpack"), ICON_OVERLAY) + if(3) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-tox"), ICON_OVERLAY) + if(4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + if(JOB_INTERN) + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "intern[g]_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "white"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "labcoat_open"), ICON_OVERLAY) + switch(backbag) + if(2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "medicalpack"), ICON_OVERLAY) + if(3) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-med"), ICON_OVERLAY) + if(4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + else if(job_engsec_high) + switch(job_engsec_high) + if(JOB_CADET) + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "cadet[g]_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY) + if(prob(1)) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "justice_up"), ICON_OVERLAY) + else + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "secsoft"), ICON_OVERLAY) + switch(backbag) + if(2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "securitypack"), ICON_OVERLAY) + if(3) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-sec"), ICON_OVERLAY) + if(4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + if(JOB_TRAINEE) + clothes_s = new /icon('modular_ss220/jobs/icons/clothing/mob/uniform.dmi', "trainee[g]_s") + clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "orange"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/belt.dmi', "utility"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/clothing/head.dmi', "hardhat0_orange"), ICON_OVERLAY) + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "orangegloves"), ICON_OVERLAY) + if(prob(70)) + clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "hazard"), ICON_OVERLAY) + switch(backbag) + if(2) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "engiepack"), ICON_OVERLAY) + if(3) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-eng"), ICON_OVERLAY) + if(4) + clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY) + + if(clothes_s) + preview_icon.Blend(clothes_s, ICON_OVERLAY) + + preview_icon_front = new(preview_icon, dir = SOUTH) + preview_icon_side = new(preview_icon, dir = WEST) + + qdel(clothes_s) diff --git a/modular_ss220/jobs/code/jobs_gamemodes.dm b/modular_ss220/jobs/code/jobs_gamemodes.dm new file mode 100644 index 000000000000..4db68643f8f3 --- /dev/null +++ b/modular_ss220/jobs/code/jobs_gamemodes.dm @@ -0,0 +1,27 @@ +/datum/game_mode/changeling/New() + . = ..() + protected_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/cult/New() + . = ..() + restricted_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/revolution/New() + . = ..() + restricted_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/traitor/New() + . = ..() + protected_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/trifecta/New() + . = ..() + protected_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/traitor/vampire/New() + . = ..() + protected_jobs |= GLOB.security_positions_ss220 + +/datum/game_mode/vampire/New() + . = ..() + protected_jobs |= GLOB.security_positions_ss220 diff --git a/modular_ss220/jobs/code/jobs_global_list.dm b/modular_ss220/jobs/code/jobs_global_list.dm new file mode 100644 index 000000000000..3ae7787fba1f --- /dev/null +++ b/modular_ss220/jobs/code/jobs_global_list.dm @@ -0,0 +1,41 @@ +GLOBAL_LIST_INIT(medical_positions_ss220, list( + "Intern", +)) + +GLOBAL_LIST_INIT(science_positions_ss220, list( + "Student Scientist", +)) + +GLOBAL_LIST_INIT(engineering_positions_ss220, list( + "Trainee Engineer", +)) + +GLOBAL_LIST_INIT(security_positions_ss220, list( + "Security Cadet", +)) + +GLOBAL_LIST_INIT(jobs_positions_ss220, (list() + ( + medical_positions_ss220 + science_positions_ss220 + engineering_positions_ss220 + security_positions_ss220))) + +/proc/get_alt_titles(list/positions) + var/list/all_titles = list() + for(var/rank in positions) + var/datum/job/job = SSjobs.GetJob(rank) + if(length(job.alt_titles)) + all_titles |= job.alt_titles + return all_titles + +/proc/get_all_medical_alt_titles_ss220() + return get_alt_titles(GLOB.medical_positions_ss220) + +/proc/get_all_security_alt_titles_ss220() + return get_alt_titles(GLOB.security_positions_ss220) + +/proc/get_all_engineering_alt_titles_ss220() + return get_alt_titles(GLOB.engineering_positions_ss220) + +/proc/get_all_science_alt_titles_ss220() + return get_alt_titles(GLOB.science_positions_ss220) + +/proc/get_all_alt_titles_ss220() + return get_all_medical_alt_titles_ss220() + get_all_security_alt_titles_ss220() + get_all_engineering_alt_titles_ss220() + get_all_science_alt_titles_ss220() diff --git a/modular_ss220/jobs/code/objects/engineering_job_objects.dm b/modular_ss220/jobs/code/objects/engineering_job_objects.dm new file mode 100644 index 000000000000..907234ddf11b --- /dev/null +++ b/modular_ss220/jobs/code/objects/engineering_job_objects.dm @@ -0,0 +1,47 @@ +// others +/obj/item/envelope/engineering/Initialize(mapload) + . = ..() + job_list |= GLOB.engineering_positions_ss220 + +/datum/uplink_item/jobspecific/powergloves/New() + . = ..() + job |= GLOB.engineering_positions_ss220 + +/datum/theft_objective/supermatter_sliver/New() + . = ..() + protected_jobs |= GLOB.engineering_positions_ss220 + + +// loadout +/datum/gear/accessory/armband_job/engineering/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/mug/department/eng/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/hat/hhat_yellow/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/hat/hhat_orange/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/hat/hhat_blue/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/hat/beret_job/eng/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/suit/coat/job/engi/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + +/datum/gear/uniform/skirt/job/eng/New() + . = ..() + allowed_roles |= GLOB.engineering_positions_ss220 + diff --git a/modular_ss220/jobs/code/objects/job_objects.dm b/modular_ss220/jobs/code/objects/job_objects.dm new file mode 100644 index 000000000000..fe18b83d9c6a --- /dev/null +++ b/modular_ss220/jobs/code/objects/job_objects.dm @@ -0,0 +1,31 @@ +/obj/machinery/computer/arcade/recruiter/Initialize(mapload) + . = ..() + jobs |= GLOB.jobs_positions_ss220 + get_all_alt_titles_ss220() + incorrect_jobs |= list( + "Medical Sasistant", "Shitcurity Cadet", "Traneer Enginer", "Assistant Captain", "Engineer Cadet", + "Traine Engener", "Intarn", "Entern", "Student Directar", "Head of Scientest", "Junior Codet" + ) + +/obj/effect/mob_spawn/human/intern + name = "Intern" + mob_name = "Intern" + id_job = "Intern" + outfit = /datum/outfit/job/doctor/intern + +/obj/effect/mob_spawn/human/trainee + name = "Trainee Engineer" + mob_name = "Trainee Engineer" + id_job = "Trainee Engineer" + outfit = /datum/outfit/job/engineer/trainee + +/obj/effect/mob_spawn/human/student + name = "Student Scientist" + mob_name = "Student Scientist" + id_job = "Student Scientist" + outfit = /datum/outfit/job/scientist/student + +/obj/effect/mob_spawn/human/cadet + name = "Security Cadet" + mob_name = "Security Cadet" + id_job = "Security Cadet" + outfit = /datum/outfit/job/officer/cadet diff --git a/modular_ss220/jobs/code/objects/medical_job_objects.dm b/modular_ss220/jobs/code/objects/medical_job_objects.dm new file mode 100644 index 000000000000..76b3e9782d87 --- /dev/null +++ b/modular_ss220/jobs/code/objects/medical_job_objects.dm @@ -0,0 +1,58 @@ +// others +/obj/item/envelope/medical/Initialize(mapload) + . = ..() + job_list |= GLOB.medical_positions_ss220 + +/datum/uplink_item/jobspecific/viral_injector/New() + . = ..() + job |= GLOB.medical_positions_ss220 + + +// loadout +/datum/gear/accessory/stethoscope/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/accessory/armband_job/medical/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/medhudgoggles/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/mug/department/med/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/hat/beret_job/med/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/hat/surgicalcap_purple/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/hat/surgicalcap_green/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/racial/taj/med/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/suit/coat/job/med/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/uniform/skirt/job/med/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/uniform/medical/pscrubs/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 + +/datum/gear/uniform/medical/gscrubs/New() + . = ..() + allowed_roles |= GLOB.medical_positions_ss220 diff --git a/modular_ss220/jobs/code/objects/science_job_objects.dm b/modular_ss220/jobs/code/objects/science_job_objects.dm new file mode 100644 index 000000000000..b5cfd535d901 --- /dev/null +++ b/modular_ss220/jobs/code/objects/science_job_objects.dm @@ -0,0 +1,35 @@ +// others +/obj/item/envelope/science/Initialize(mapload) + . = ..() + job_list |= GLOB.science_positions_ss220 + +/datum/uplink_item/jobspecific/stims/New() + . = ..() + job |= GLOB.science_positions_ss220 + +/datum/theft_objective/reactive/New() + . = ..() + protected_jobs |= GLOB.science_positions_ss220 + + +// loadout +/datum/gear/accessory/armband_job/sci/New() + . = ..() + allowed_roles |= GLOB.science_positions_ss220 + +/datum/gear/diaghudgoggles/New() + . = ..() + allowed_roles |= GLOB.science_positions_ss220 + +/datum/gear/mug/department/sci/New() + . = ..() + allowed_roles |= GLOB.science_positions_ss220 + +/datum/gear/hat/beret_job/sci/New() + . = ..() + allowed_roles |= GLOB.science_positions_ss220 + +/datum/gear/suit/coat/job/sci/New() + . = ..() + allowed_roles |= GLOB.science_positions_ss220 + diff --git a/modular_ss220/jobs/code/objects/security_job_objects.dm b/modular_ss220/jobs/code/objects/security_job_objects.dm new file mode 100644 index 000000000000..6eb2167daa48 --- /dev/null +++ b/modular_ss220/jobs/code/objects/security_job_objects.dm @@ -0,0 +1,75 @@ +/obj/item/envelope/security/Initialize(mapload) + . = ..() + job_list |= GLOB.security_positions_ss220 + +/datum/gear/accessory/holobadge/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/accessory/holobadge_n/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/accessory/armband_job/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/sechud/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/sechudgoggles/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/mug/department/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/hat/capcsec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/hat/capsec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/hat/beret_job/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/racial/taj/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/suit/coat/job/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/suit/bomber/job/sec/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/suit/secjacket/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/uniform/skirt/job/security/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/uniform/sec/formal/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/uniform/sec/secorporate/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/uniform/sec/dispatch/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 + +/datum/gear/uniform/sec/casual/New() + . = ..() + allowed_roles |= GLOB.security_positions_ss220 diff --git a/modular_ss220/jobs/code/objects/wardrobe_vendors.dm b/modular_ss220/jobs/code/objects/wardrobe_vendors.dm new file mode 100644 index 000000000000..f508f3d87774 --- /dev/null +++ b/modular_ss220/jobs/code/objects/wardrobe_vendors.dm @@ -0,0 +1,40 @@ +/obj/machinery/economy/vending/medidrobe/Initialize(mapload) + . = ..() + products |= list( + /obj/item/clothing/under/rank/medical/doctor/intern = 5, + /obj/item/clothing/under/rank/medical/doctor/intern/skirt = 5, + /obj/item/clothing/under/rank/medical/doctor/intern/assistant = 5, + /obj/item/clothing/under/rank/medical/doctor/intern/assistant/skirt = 5, + /obj/item/clothing/head/surgery/green/light = 5, + /obj/item/clothing/under/rank/medical/scrubs/green/light = 5, + ) + + +/obj/machinery/economy/vending/secdrobe/Initialize(mapload) + . = ..() + products |= list( + /obj/item/clothing/under/rank/security/officer/cadet = 5, + /obj/item/clothing/under/rank/security/officer/cadet/skirt = 5, + /obj/item/clothing/under/rank/security/officer/cadet/assistant = 5, + /obj/item/clothing/under/rank/security/officer/cadet/assistant/skirt = 5, + ) + + +/obj/machinery/economy/vending/scidrobe/Initialize(mapload) + . = ..() + products |= list( + /obj/item/clothing/under/rank/rnd/scientist/student = 5, + /obj/item/clothing/under/rank/rnd/scientist/student/skirt = 5, + /obj/item/clothing/under/rank/rnd/scientist/student/assistant = 5, + /obj/item/clothing/under/rank/rnd/scientist/student/assistant/skirt = 5, + ) + + +/obj/machinery/economy/vending/engidrobe/Initialize(mapload) + . = ..() + products |= list( + /obj/item/clothing/under/rank/engineering/engineer/trainee = 5, + /obj/item/clothing/under/rank/engineering/engineer/trainee/skirt = 5, + /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant = 5, + /obj/item/clothing/under/rank/engineering/engineer/trainee/assistant/skirt = 5, + ) diff --git a/modular_ss220/jobs/icons/hud.dmi b/modular_ss220/jobs/icons/hud.dmi index b2a80ca3a66d..cc08b6d4a546 100644 Binary files a/modular_ss220/jobs/icons/hud.dmi and b/modular_ss220/jobs/icons/hud.dmi differ diff --git a/modular_ss220/maps220/_maps220.dme b/modular_ss220/maps220/_maps220.dme index 5b95af74ec3f..070df167bf47 100644 --- a/modular_ss220/maps220/_maps220.dme +++ b/modular_ss220/maps220/_maps220.dme @@ -8,6 +8,7 @@ #include "code/Station/cyberiad.dm" #include "code/Station/delta.dm" #include "code/Station/metastation.dm" +#include "code/Station/cerestation.dm" #include "code/corpses.dm" #include "code/directions.dm" #include "code/helpers.dm" diff --git a/modular_ss220/maps220/code/Station/cerestation.dm b/modular_ss220/maps220/code/Station/cerestation.dm new file mode 100644 index 000000000000..aa86c4387186 --- /dev/null +++ b/modular_ss220/maps220/code/Station/cerestation.dm @@ -0,0 +1,2 @@ +/datum/map/cerestation + voteable = FALSE diff --git a/modular_ss220/maps220/code/mobs.dm b/modular_ss220/maps220/code/mobs.dm index a1c7e2d342da..d57a98b1681d 100644 --- a/modular_ss220/maps220/code/mobs.dm +++ b/modular_ss220/maps220/code/mobs.dm @@ -860,7 +860,6 @@ melee_damage_lower = 15 melee_damage_upper = 21 attack_sound = 'modular_ss220/mobs/sound/creatures/zombie_attack.ogg' - gold_core_spawnable = HOSTILE_SPAWN alert_cooldown_time = 8 SECONDS alert_sounds = list( 'modular_ss220/mobs/sound/creatures/zombie_idle1.ogg',, @@ -1047,6 +1046,7 @@ vision_range = 8 attack_sound = 'sound/weapons/bite.ogg' loot = list(/obj/item/stack/sheet/bone) + gold_core_spawnable = HOSTILE_SPAWN alert_sounds = list( 'modular_ss220/aesthetics_sounds/sound/mobs/vortigaunt/alert01.ogg', 'modular_ss220/aesthetics_sounds/sound/mobs/vortigaunt/alert01b.ogg', @@ -1141,7 +1141,6 @@ wander = FALSE attack_sound = 'sound/weapons/genhit3.ogg' loot = list(/obj/item/crowbar/freeman/ultimate) - gold_core_spawnable = NO_SPAWN /obj/structure/xen_pylon/freeman shield_range = 30 diff --git a/modular_ss220/maps220/code/objects.dm b/modular_ss220/maps220/code/objects.dm index e95d4534c2a8..59aa172db275 100644 --- a/modular_ss220/maps220/code/objects.dm +++ b/modular_ss220/maps220/code/objects.dm @@ -581,6 +581,7 @@ var/shield_count = 0 faction = list("xen") tts_seed = "Vortiger" + gold_core_spawnable = NO_SPAWN /mob/living/simple_animal/hostile/blackmesa/xen/update_overlays() . = ..() diff --git a/modular_ss220/modular_ss220.dme b/modular_ss220/modular_ss220.dme index 55018b78a458..60c308745131 100644 --- a/modular_ss220/modular_ss220.dme +++ b/modular_ss220/modular_ss220.dme @@ -99,19 +99,3 @@ ---------------------------------------------------------------------*/ // #include "crit_rework/_crit_rework.dme" - -// in jobs modpack -/*------------------------------------------------------------------ - - #include "code/cards_ids.dm" - #include "code/jobs.dm" - #include "code/clothing/engineering_clothing.dm" - #include "code/clothing/medical_clothing.dm" - #include "code/clothing/science_clothing.dm" - #include "code/clothing/security_clothing.dm" - #include "code/job/engineering_jobs.dm" - #include "code/job/medical_jobs.dm" - #include "code/job/science_jobs.dm" - #include "code/job/security_jobs.dm" - - ---------------------------------------------------------------------*/ diff --git a/modular_ss220/text_to_speech/code/tts_preferences.dm b/modular_ss220/text_to_speech/code/tts_preferences.dm index 7e86aed414fb..c19f23b3d7c3 100644 --- a/modular_ss220/text_to_speech/code/tts_preferences.dm +++ b/modular_ss220/text_to_speech/code/tts_preferences.dm @@ -101,7 +101,16 @@ client.prefs.ShowChoices(src) return FALSE var/datum/tts_seed/seed = SStts220.tts_seeds[client.prefs.active_character.tts_seed] - if(client.donator_level < seed.required_donator_level) + + switch(client.donator_level) + if(LITTLE_WORKER_TIER) + if(LITTLE_WORKER_TTS_LEVEL >= seed.required_donator_level) + return TRUE + if(BIG_WORKER_TIER) + if(BIG_WORKER_TTS_LEVEL >= seed.required_donator_level) + return TRUE + + if(client.donator_level < seed.required_donator_level || client.donator_level > DONATOR_LEVEL_MAX) to_chat(usr, span_danger("Выбранный голос персонажа более недоступен на текущем уровне подписки!")) client.prefs.ShowChoices(src) return FALSE diff --git a/modular_ss220/text_to_speech/code/tts_subsystem.dm b/modular_ss220/text_to_speech/code/tts_subsystem.dm index f6712b290cb7..e37caed029b5 100644 --- a/modular_ss220/text_to_speech/code/tts_subsystem.dm +++ b/modular_ss220/text_to_speech/code/tts_subsystem.dm @@ -114,6 +114,8 @@ SUBSYSTEM_DEF(tts220) "detective" = "Детектив", "forensic technician" = "Криминалист", "security officer" = "Офицер службы безопасности", + "security trainer" = "Тренер службы безопасности", + "junior security officer" = "Младший офицер службы безопасности", "security cadet" = "Кадет службы безопасности", "Security Assistant" = "Ассистент службы безопасности", "Security Graduate" = "Выпускник кадетской академии",