Modularizes a ton of Fulp edits within TG code (#362)

* removes fulp edits from job.dm

* crew monitor and basemap

* revert

* MODULAR BLOODSUCKER HUDS FINALLY

* 2 more fulp edits knocked out

* re-adds chain of command but modular

* moves bloodsucker define to new bloodsucker defines file

* chain of command fix

* ok good enough

* Update mentor_clientprocs.dm
This commit is contained in:
John Willard
2021-09-26 21:16:16 -04:00
committed by GitHub
parent ddf2c76ff9
commit 7be3d5e69a
17 changed files with 94 additions and 50 deletions

View File

@@ -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"

View File

@@ -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)

View File

@@ -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

View File

@@ -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")

View File

@@ -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

View File

@@ -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,

View File

@@ -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

View File

@@ -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()

View File

@@ -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()
*/

View File

@@ -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()

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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,
)

View File

@@ -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:

View File

@@ -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)

View File

@@ -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