diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index 8d16d6cc9ec..e2f9527c3ff 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -79,7 +79,6 @@ #define ANTAG_HUD_SPACECOP 24 #define ANTAG_HUD_HERETIC 25 #define ANTAG_HUD_BRAINWASHED 26 -#define ANTAG_HUD_BLOODSUCKER 27 // Fulp edit - Bloodsuckers //Put this one last! DON'T LEAVE SPACE BETWEEN HUDS! // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 5b49849dde1..5c87b105f02 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -15,10 +15,6 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f) //socks init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, GLOB.socks_list) - // Fulp edit START - Species - init_sprite_accessory_subtypes(/datum/sprite_accessory/beef/eyes, GLOB.eyes_beefman) - init_sprite_accessory_subtypes(/datum/sprite_accessory/beef/mouth, GLOB.mouths_beefman) - // Fulp edit END //bodypart accessories (blizzard intensifies) init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard) diff --git a/code/___fulp_defines/bloodsucker_defines.dm b/code/___fulp_defines/bloodsucker_defines.dm index 63614fc1c20..bf76ef8fd66 100644 --- a/code/___fulp_defines/bloodsucker_defines.dm +++ b/code/___fulp_defines/bloodsucker_defines.dm @@ -109,3 +109,5 @@ #define ui_vamprank_display "WEST:6,CENTER-2:-5" /// 6 pixels to the right, zero tiles & 5 pixels DOWN. #define ui_sunlight_display "WEST:6,CENTER-0:0" +/// Define for Bloodsucker Antag HUDs +#define ANTAG_HUD_BLOODSUCKER 1 diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index ff493fa19ea..b8b7d815321 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -50,15 +50,6 @@ SUBSYSTEM_DEF(job) * See [/datum/controller/subsystem/ticker/proc/equip_characters] */ var/list/chain_of_command = list( - // Fulp edit START - Jobs - "Captain" = 1, - "Head of Personnel" = 2, - "Head of Security" = 3, - "Research Director" = 4, - "Chief Engineer" = 5, - "Chief Medical Officer" = 6, - "Quartermaster" = 7) - /* "Captain" = 1, "Head of Personnel" = 2, "Research Director" = 3, @@ -66,7 +57,6 @@ SUBSYSTEM_DEF(job) "Chief Medical Officer" = 5, "Head of Security" = 6, "Quartermaster" = 7) - */ // Fulp edit END /// If TRUE, some player has been assigned Captaincy or Acting Captaincy at some point during the shift and has been given the spare ID safe code. var/assigned_captain = FALSE @@ -791,9 +781,6 @@ SUBSYSTEM_DEF(job) /datum/controller/subsystem/job/proc/setup_job_lists() station_jobs = list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician", \ "Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", \ - // Fulp edit START - Jobs - "Brig Physician", "Deputy", "Supply Deputy", "Engineering Deputy", "Medical Deputy", "Science Deputy", "Service Deputy", \ - // Fulp edit END "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Paramedic", "Chemist", "Geneticist", "Virologist", "Psychologist", \ "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer", "Prisoner") diff --git a/code/datums/hud.dm b/code/datums/hud.dm index e34a5775a68..0fa0ac2cf21 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -30,7 +30,6 @@ GLOBAL_LIST_INIT(huds, list( ANTAG_HUD_SPACECOP = new/datum/atom_hud/antag(), ANTAG_HUD_HERETIC = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_BRAINWASHED = new/datum/atom_hud/antag/hidden(), - ANTAG_HUD_BLOODSUCKER = new/datum/atom_hud/antag/bloodsucker(), // Fulp edit - Bloodsuckers //This HAS to be last. )) /datum/atom_hud diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 491a59b6117..35b73f74fa1 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -137,15 +137,6 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) "Janitor" = 68, "Lawyer" = 69, "Psychologist" = 71, - // Fulp edit START - Jobs - "Brig Physician" = 18, - "Deputy" = 17, - "Supply Deputy" = 54, - "Engineering Deputy" = 43, - "Medical Deputy" = 25, - "Science Deputy" = 34, - "Service Deputy" = 72, - // Fulp edit END // ANYTHING ELSE = UNKNOWN_JOB_ID, Unknowns/custom jobs will appear after civilians, and before assistants "Assistant" = 999, diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index eff01660e0b..b7497ae8fff 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -101,8 +101,6 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( cmd_admin_pm(href_list["priv_msg"],null) return - if(mentor_client_procs(href_list)) // Fulp edit - Mentors - return switch(href_list["_src_"]) if("holder") hsrc = holder diff --git a/fulp_modules/fulp_configs/code/fulp_world.dm b/fulp_modules/fulp_configs/code/fulp_world.dm index b50a52401ad..fc95bce0f11 100644 --- a/fulp_modules/fulp_configs/code/fulp_world.dm +++ b/fulp_modules/fulp_configs/code/fulp_world.dm @@ -1,7 +1,10 @@ /// We're loading Mentors from here /world/New() . = ..() + // Load Mentors load_mentors() + // Load Fulp race datums + make_fulp_datum_references_lists() /// Redirect of update_status to use our own via not calling parent. /world/update_status() diff --git a/fulp_modules/main_features/beefmen/code/beefman_integration.dm b/fulp_modules/main_features/beefmen/code/beefman_integration.dm index 5ef16aaefc7..1d80637019c 100644 --- a/fulp_modules/main_features/beefmen/code/beefman_integration.dm +++ b/fulp_modules/main_features/beefmen/code/beefman_integration.dm @@ -2,3 +2,19 @@ /atom var/use_without_hands = FALSE // Now you can use something regardless of having a hand. EX: Beefman Phobetor Tears + +/// We're making Beefmen load their accessories +/world/proc/make_fulp_datum_references_lists() + init_sprite_accessory_subtypes(/datum/sprite_accessory/beef/eyes, GLOB.eyes_beefman) + init_sprite_accessory_subtypes(/datum/sprite_accessory/beef/mouth, GLOB.mouths_beefman) + +/** + * # If you're looking to improve this: + * + * Request a change at the upstream to change + * /proc/make_datum_references_lists() + * to + * /world/proc/make_datum_references_lists() + * + * This one line change will allow us to use that proc directly, rather than make our own off of /world/New() + */ diff --git a/fulp_modules/main_features/bloodsuckers/code/antagonists/bloodsucker_datum.dm b/fulp_modules/main_features/bloodsuckers/code/antagonists/bloodsucker_datum.dm index 98d0a14e56b..15ab7293200 100644 --- a/fulp_modules/main_features/bloodsuckers/code/antagonists/bloodsucker_datum.dm +++ b/fulp_modules/main_features/bloodsuckers/code/antagonists/bloodsucker_datum.dm @@ -154,10 +154,10 @@ // Called when using admin tools to give antag status /datum/antagonist/bloodsucker/admin_add(datum/mind/new_owner, mob/admin) var/levels = input("How many unspent Ranks would you like [new_owner] to have?","Bloodsucker Rank", bloodsucker_level_unspent) as null | num - var/msg = " made [key_name_admin(new_owner)] into [name]" + var/msg = " made [key_name_admin(new_owner)] into \a [name]" if(!isnull(levels)) bloodsucker_level_unspent = levels - msg += "with [levels] extra unspent Ranks." + msg += " with [levels] extra unspent Ranks." message_admins("[key_name_admin(usr)][msg]") log_admin("[key_name(usr)][msg]") new_owner.add_antag_datum(src) @@ -697,13 +697,13 @@ icontype = "masquerade_broken" else icontype = "bloodsucker" - var/datum/atom_hud/antag/vamphud = GLOB.huds[ANTAG_HUD_BLOODSUCKER] + var/datum/atom_hud/antag/vamphud = GLOB.fulp_huds[ANTAG_HUD_BLOODSUCKER] vamphud.join_hud(owner.current) set_antag_hud(owner.current, icontype) owner.current.hud_list[ANTAG_HUD].icon = image('fulp_modules/main_features/bloodsuckers/icons/bloodsucker_icons.dmi', owner.current, icontype) // Check prepare_huds in mob.dm to see why. /datum/antagonist/bloodsucker/proc/update_bloodsucker_icons_removed(datum/mind/m) - var/datum/atom_hud/antag/vamphud = GLOB.huds[ANTAG_HUD_BLOODSUCKER] + var/datum/atom_hud/antag/vamphud = GLOB.fulp_huds[ANTAG_HUD_BLOODSUCKER] vamphud.leave_hud(owner.current) set_antag_hud(owner.current, null) owner.current.prepare_huds() diff --git a/fulp_modules/main_features/bloodsuckers/code/antagonists/vassal_datum.dm b/fulp_modules/main_features/bloodsuckers/code/antagonists/vassal_datum.dm index 47eab7e2cb3..c599ae42ef6 100644 --- a/fulp_modules/main_features/bloodsuckers/code/antagonists/vassal_datum.dm +++ b/fulp_modules/main_features/bloodsuckers/code/antagonists/vassal_datum.dm @@ -178,13 +178,13 @@ else icontype = "vassal" // This is a copy of Bloodsucker's hud. - var/datum/atom_hud/antag/bloodsucker/hud = GLOB.huds[ANTAG_HUD_BLOODSUCKER] + var/datum/atom_hud/antag/bloodsucker/hud = GLOB.fulp_huds[ANTAG_HUD_BLOODSUCKER] hud.join_hud(owner.current) set_antag_hud(owner.current, icontype) owner.current.hud_list[ANTAG_HUD].icon = image('fulp_modules/main_features/bloodsuckers/icons/bloodsucker_icons.dmi', owner.current, icontype) /datum/antagonist/vassal/proc/update_vassal_icons_removed(datum/mind/vassal) - var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_BLOODSUCKER] + var/datum/atom_hud/antag/hud = GLOB.fulp_huds[ANTAG_HUD_BLOODSUCKER] set_antag_hud(owner.current, null) hud.leave_hud(owner.current) diff --git a/fulp_modules/main_features/bloodsuckers/code/bloodsucker/bloodsucker_integration.dm b/fulp_modules/main_features/bloodsuckers/code/bloodsucker/bloodsucker_integration.dm index f5747825358..f9005fb285f 100644 --- a/fulp_modules/main_features/bloodsuckers/code/bloodsucker/bloodsucker_integration.dm +++ b/fulp_modules/main_features/bloodsuckers/code/bloodsucker/bloodsucker_integration.dm @@ -1,3 +1,17 @@ +GLOBAL_LIST_INIT(fulp_huds, list( + ANTAG_HUD_BLOODSUCKER = new/datum/atom_hud/antag/bloodsucker(), +)) + +/client/has_antag_hud() + var/adding_hud = !has_fulp_antag_hud() + for(var/datum/atom_hud/antag/H in GLOB.fulp_huds) // add antag huds + (adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr) + . = ..() + +/client/proc/has_fulp_antag_hud() + var/datum/atom_hud/A = GLOB.fulp_huds[ANTAG_HUD_TRAITOR] + return A.hudusers[mob] + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // TG OVERWRITES diff --git a/fulp_modules/main_features/jobs/deputy/code/deputy_clothing.dm b/fulp_modules/main_features/jobs/deputy/code/deputy_clothing.dm index 9030d8f3195..599a362cbdc 100644 --- a/fulp_modules/main_features/jobs/deputy/code/deputy_clothing.dm +++ b/fulp_modules/main_features/jobs/deputy/code/deputy_clothing.dm @@ -1,5 +1,6 @@ /// Default Deputy /datum/outfit/job/deputy + name = "Deputy" jobtype = /datum/job/fulp/deputy backpack = /obj/item/storage/backpack/security @@ -15,12 +16,12 @@ uniform = /obj/item/clothing/under/rank/security/officer/mallcop belt = /obj/item/storage/belt/security/deputy shoes = /obj/item/clothing/shoes/laceup - l_pocket = /obj/item/flashlight/seclite - r_pocket = /obj/item/pda/security + l_pocket = /obj/item/pda/security + r_pocket = /obj/item/flashlight/seclite + pda_slot = ITEM_SLOT_LPOCKET id_trim = /datum/id_trim/job/deputy box = /obj/item/storage/box/survival - pda_slot = ITEM_SLOT_RPOCKET /// Engineering Deputy /datum/outfit/job/deputy/engineering diff --git a/fulp_modules/main_features/jobs/job_integration.dm b/fulp_modules/main_features/jobs/job_integration.dm index 8cdeb760d92..4fed4410fd1 100644 --- a/fulp_modules/main_features/jobs/job_integration.dm +++ b/fulp_modules/main_features/jobs/job_integration.dm @@ -18,3 +18,43 @@ for(var/turf/T in shuffle(get_area_turfs(room))) if(!T.is_blocked_turf(TRUE)) return T + +/// We're overwriting TG's Chain of Command with our own via /New() +/datum/controller/subsystem/job + chain_of_command = list( + "Captain" = 1, + "Head of Personnel" = 2, + "Head of Security" = 3, + "Research Director" = 4, + "Chief Medical Officer" = 5, + "Chief Engineer" = 6, + "Quartermaster" = 7, + "Warden" = 8, + ) + + +// Add Fulp jobs to the list of station jobs +/datum/controller/subsystem/job/setup_job_lists() + . = ..() + station_jobs += list( + "Brig Physician", + "Deputy", + "Supply Deputy", + "Engineering Deputy", + "Medical Deputy", + "Science Deputy", + "Service Deputy", + ) + +// Add Fulp jobs to the Crew monitor, at their assigned position (/datum/crewmonitor/var/list/jobs) +/datum/crewmonitor/New() + . = ..() + jobs += list( + "Brig Physician" = 18, + "Deputy" = 17, + "Supply Deputy" = 54, + "Engineering Deputy" = 43, + "Medical Deputy" = 25, + "Science Deputy" = 34, + "Service Deputy" = 72, + ) diff --git a/fulp_modules/main_features/jobs/readme.MD b/fulp_modules/main_features/jobs/readme.MD index a06ed45ca0a..0a880753a2b 100644 --- a/fulp_modules/main_features/jobs/readme.MD +++ b/fulp_modules/main_features/jobs/readme.MD @@ -6,13 +6,13 @@ ## TG edits: -- code/controllers/subsystem/job.dm > Adds Fulp jobs to the station job list datum. -- code/modules/jobs/jobs.dm > Adds Fulp jobs to GLOBAL_LIST_INIT(security_positions, list() & GLOBAL_LIST_INIT(security_sub_positions, list() -- code/game/machinery/computer/crew.dm > Adds Fulp jobs to the crew monitor. +- None ## TG proc overwrites: - sec_hud_set_ID() (code/game/data_huds.dm) > Assigns HUD Overlays for Fulp jobs. +- setup_job_lists() (code/controllers/subsystem/job.dm) > Adds Fulp jobs to the list of all jobs +- /datum/crewmonitor/var/list/jobs (code/game/machinery/computer/crew.dm) > Adds Fulp jobs to the Crew monitor ## TG sounds/sprites used: diff --git a/fulp_modules/main_features/mentorhelp/mentor_clientprocs.dm b/fulp_modules/main_features/mentorhelp/mentor_clientprocs.dm index 464d27f7a4d..cab1c297dd5 100644 --- a/fulp_modules/main_features/mentorhelp/mentor_clientprocs.dm +++ b/fulp_modules/main_features/mentorhelp/mentor_clientprocs.dm @@ -2,6 +2,12 @@ . = ..() mentor_datum_set() +// Overwrites /client/Topic to return for mentor client procs +/client/Topic(href, href_list, hsrc) + if(mentor_client_procs(href_list)) + return + . = ..() + /client/proc/mentor_client_procs(href_list) if(href_list["mentor_msg"]) cmd_mentor_pm(href_list["mentor_msg"],null) diff --git a/fulp_modules/tg_edits.md b/fulp_modules/tg_edits.md index d99fc0b03dd..845a1fdb295 100644 --- a/fulp_modules/tg_edits.md +++ b/fulp_modules/tg_edits.md @@ -2,24 +2,16 @@ - _maps/_basemap.dm > Adds our maps to the list of playable maps -- code/__DEFINES/atom_hud.dm > Bloodsucker HUDs - - code/__DEFINES/role_preferences.dm > Bloodsuckers/Monster Hunters as antagonist preference options -- code/__HELPERS/global_lists.dm > Beefmen customization/preferences. - code/__HELPERS/roundend.dm > Plays our roundend music instead -- code/controllers/subsystem/job.dm > Adds Fulp jobs to the station job list datum. || Replaces var/list/chain_of_command with our own version. - code/controllers/subsystem/ticker.dm > Adds pick_round_end_sound() to the round_end_song -- code/datums/hud.dm > Bloodsucker HUDs - - code/game/area/areas/shuttle.dm > Plays ApproachingFulp instead of ApproachingTG - code/game/gamemodes/objective.dm > Added Bloodsucker objectives to the list of objectives Admins can make -- code/game/machinery/computer/crew.dm > Adds Fulp jobs to the crew monitor. - code/game/objects/items/devices/scanners.dm > Falsifies health analyzers if you're on Masquerade -- code/modules/client/client_procs.dm > Gives the mentorhelp verb - code/modules/mob/living/carbon/human/examine.dm > Changes examine text for Beefmen || Added examining Bloodsuckers/Vassals || adds ShowAsPaleExamine() - code/modules/mob/living/carbon/human/species.dm > Beefmen customization/preferences || Makes Digitigrade shoes fit Digi Lizards. - code/modules/surgery/bodyparts/_bodyparts.dm > Changes bodypart .dmi files for Beefmen