From 5d255afbf5ba0919f1f94b5c5afdb75c338976de Mon Sep 17 00:00:00 2001 From: Blundir <100090741+Blundir@users.noreply.github.com> Date: Mon, 28 Oct 2024 00:29:13 +0200 Subject: [PATCH] Minimap/orbit icons resprite and remake (#6791) # About the pull request Visually redoes how minimap and orbit icons look. The ones that were redone look like this (old ones on the right, new ones on the left)
![image](https://github.com/user-attachments/assets/e3b3e0d3-6f9c-4eee-8347-d8ef7c3747d4)
Adds support and new icons for all factions that have special huds, adds yautja unique icons, all icons for jobs that lack it, so on. All sprites by me. # Explain why it's good for the game Current icons are very hard to tell apart, especially orbit icons, some colors are extremely off, orbit icons do not utilize backgrounds at all (it's just plain color fill), also some things there aren't working correctly at all, resulting in many icons being gray mess (shipside) Here is an example of current icons:
![image](https://github.com/user-attachments/assets/0e7d6201-249b-494f-9fbb-62af9256c03d) ![image](https://github.com/user-attachments/assets/136ad322-0963-4ab4-a1fe-923af3520c1d) ![hTH7SC46jJ](https://github.com/user-attachments/assets/9155f6a2-c9ea-42a6-b5b2-2d152a717637) ![U3hYykHC7u](https://github.com/user-attachments/assets/b569c4fe-f11b-48f4-bb3d-bcfc228e7659)
I overhaul them to looks something like this
![chrome_4IcDecN80W](https://github.com/user-attachments/assets/7254271c-6a25-41f2-adb7-206c4e4ee2cc) ![image](https://github.com/user-attachments/assets/92bc8efc-aefa-47d5-8e89-6d46dcbf684f) ![image](https://github.com/user-attachments/assets/d37b7787-552e-4e3d-80a1-a2b506c59a08) ![PYlGchbRLX](https://github.com/user-attachments/assets/b8ac13cf-5f04-4520-86e7-1cab59e862bb)
# Testing Photographs and Procedure
![3SCyS7VqhF](https://github.com/user-attachments/assets/19a01ae6-2ea8-4150-ab68-42edf4749221) ![vNWh6gJtUV](https://github.com/user-attachments/assets/3a017ff8-db07-442d-95e1-9239bdac85d9) ![gXkkL9QxGG](https://github.com/user-attachments/assets/1dd2dd87-da26-4002-80af-e22d7a6d9487) ![dreammaker_2SkTzjlmAW](https://github.com/user-attachments/assets/35ec94c1-873d-4196-ae49-f6aa8c0a69de) ![dreammaker_zmQ9lWMm3B](https://github.com/user-attachments/assets/f4713d72-94c1-4e39-b4db-ff9d159d8286)
# Changelog :cl: add: minimap icons for all factions, roles, etc code: tweaked how icons are assembled, added support for custom icon background on equipment preset imageadd: added a lot of new minimap icons /:cl: --------- Co-authored-by: harryob --- code/__DEFINES/minimap.dm | 11 --- code/game/jobs/job/marine/squads.dm | 16 ++++ code/modules/cm_preds/yaut_bracers.dm | 8 +- .../modules/gear_presets/_select_equipment.dm | 10 +-- code/modules/gear_presets/clf.dm | 17 ++++ code/modules/gear_presets/cmb.dm | 18 ++++ code/modules/gear_presets/colonist.dm | 1 - code/modules/gear_presets/pmc.dm | 19 +++++ code/modules/gear_presets/royal_marines.dm | 15 ++++ .../survivors/lv_522/forcon_survivors.dm | 9 ++ .../survivors/lv_624/clfship_insert_lv624.dm | 2 + code/modules/gear_presets/survivors/misc.dm | 2 + .../gear_presets/survivors/survivors.dm | 2 +- .../crashlanding_upp_bar_insert_trijent.dm | 14 +++ code/modules/gear_presets/synths.dm | 9 ++ code/modules/gear_presets/upp.dm | 29 +++++++ code/modules/gear_presets/uscm.dm | 10 ++- code/modules/gear_presets/uscm_event.dm | 10 +++ code/modules/gear_presets/uscm_medical.dm | 11 ++- code/modules/gear_presets/uscm_police.dm | 8 +- code/modules/gear_presets/uscm_ship.dm | 46 +++++----- code/modules/gear_presets/wo.dm | 48 ++++++++--- code/modules/gear_presets/wy_goons.dm | 5 ++ code/modules/gear_presets/yautja.dm | 7 ++ code/modules/mob/dead/observer/orbit.dm | 5 +- .../living/carbon/xenomorph/castes/Queen.dm | 2 + .../carbon/xenomorph/castes/caste_datum.dm | 4 +- icons/mob/hud/marine_hud.dmi | Bin 13462 -> 14507 bytes icons/ui_icons/map_blips.dmi | Bin 3005 -> 8500 bytes tgui/packages/tgui/interfaces/Orbit/index.tsx | 80 ++++++++++++++---- tgui/packages/tgui/interfaces/Orbit/types.ts | 1 + 31 files changed, 334 insertions(+), 85 deletions(-) diff --git a/code/__DEFINES/minimap.dm b/code/__DEFINES/minimap.dm index 0d05b7be6e1b..b1e775bb8e49 100644 --- a/code/__DEFINES/minimap.dm +++ b/code/__DEFINES/minimap.dm @@ -68,17 +68,6 @@ GLOBAL_LIST_INIT(all_minimap_flags, bitfield2list(MINIMAP_FLAG_ALL)) #define MINIMAP_SQUAD_SOF "#400000" #define MINIMAP_SQUAD_INTEL "#053818" -#define MINIMAP_ICON_BACKGROUND_CIVILIAN "#7D4820" -#define MINIMAP_ICON_BACKGROUND_CIC "#3f3f3f" -#define MINIMAP_ICON_BACKGROUND_USCM "#888888" -#define MINIMAP_ICON_BACKGROUND_XENO "#3a064d" - -#define MINIMAP_ICON_COLOR_COMMANDER "#c6fcfc" -#define MINIMAP_ICON_COLOR_HEAD "#F0C542" -#define MINIMAP_ICON_COLOR_BRONZE "#eb9545" - -#define MINIMAP_ICON_COLOR_DOCTOR "#b83737" - //Prison #define MINIMAP_AREA_CELL_MAX "#570101ee" diff --git a/code/game/jobs/job/marine/squads.dm b/code/game/jobs/job/marine/squads.dm index 40fc6e872c07..8552ea658fea 100644 --- a/code/game/jobs/job/marine/squads.dm +++ b/code/game/jobs/job/marine/squads.dm @@ -108,10 +108,14 @@ var/minimap_color = MINIMAP_SQUAD_UNKNOWN + ///Icon for the background of minimap icon + var/background_icon = "background" + ///Should we add the name of our squad in front of their name? Ex: Alpha Hospital Corpsman var/prepend_squad_name_to_assignment = TRUE + /datum/squad/marine name = "Root" usable = TRUE @@ -126,6 +130,7 @@ access = list(ACCESS_MARINE_ALPHA) radio_freq = ALPHA_FREQ minimap_color = MINIMAP_SQUAD_ALPHA + background_icon = "background_alpha" /datum/squad/marine/bravo name = SQUAD_MARINE_2 @@ -134,6 +139,7 @@ access = list(ACCESS_MARINE_BRAVO) radio_freq = BRAVO_FREQ minimap_color = MINIMAP_SQUAD_BRAVO + background_icon = "background_bravo" /datum/squad/marine/charlie name = SQUAD_MARINE_3 @@ -142,6 +148,7 @@ access = list(ACCESS_MARINE_CHARLIE) radio_freq = CHARLIE_FREQ minimap_color = MINIMAP_SQUAD_CHARLIE + background_icon = "background_charlie" /datum/squad/marine/delta name = SQUAD_MARINE_4 @@ -150,6 +157,7 @@ access = list(ACCESS_MARINE_DELTA) radio_freq = DELTA_FREQ minimap_color = MINIMAP_SQUAD_DELTA + background_icon = "background_delta" /datum/squad/marine/echo name = SQUAD_MARINE_5 @@ -159,6 +167,7 @@ radio_freq = ECHO_FREQ omni_squad_vendor = TRUE minimap_color = MINIMAP_SQUAD_ECHO + background_icon = "background_echo" active = FALSE roundstart = FALSE @@ -170,6 +179,7 @@ chat_color = "#c47a50" access = list(ACCESS_MARINE_ALPHA, ACCESS_MARINE_BRAVO, ACCESS_MARINE_CHARLIE, ACCESS_MARINE_DELTA) minimap_color = MINIMAP_SQUAD_FOXTROT + background_icon = "background_foxtrot" omni_squad_vendor = TRUE radio_freq = CRYO_FREQ @@ -184,6 +194,7 @@ equipment_color = "#053818" minimap_color = MINIMAP_SQUAD_INTEL radio_freq = INTEL_FREQ + background_icon = "background_intel" roundstart = FALSE prepend_squad_name_to_assignment = FALSE @@ -205,6 +216,7 @@ squad_type = "Team" lead_icon = "soctl" minimap_color = MINIMAP_SQUAD_SOF + background_icon = "background_sof" active = FALSE roundstart = FALSE @@ -216,6 +228,7 @@ chat_color = "#553EB2" radio_freq = CBRN_FREQ minimap_color = "#3B2A7B" + background_icon = "background_cbrn" active = FALSE roundstart = FALSE @@ -227,6 +240,7 @@ chat_color = "#32CD32" radio_freq = FORECON_FREQ minimap_color = "#32CD32" + background_icon = "background_forecon" active = FALSE roundstart = FALSE @@ -238,6 +252,7 @@ chat_color = "#5a2c2c" radio_freq = SOF_FREQ minimap_color = "#5a2c2c" + background_icon = "background_civillian" active = FALSE roundstart = FALSE @@ -277,6 +292,7 @@ chat_color = "#c47a50" squad_type = "Team" locked = TRUE + //############################### /datum/squad/pmc name = "Root" diff --git a/code/modules/cm_preds/yaut_bracers.dm b/code/modules/cm_preds/yaut_bracers.dm index 300c91801167..4d034b344521 100644 --- a/code/modules/cm_preds/yaut_bracers.dm +++ b/code/modules/cm_preds/yaut_bracers.dm @@ -46,7 +46,7 @@ var/obj/item/clothing/gloves/yautja/linked_bracer //Bracer linked to this one (thrall or mentor). COOLDOWN_DECLARE(bracer_recharge) /// What minimap icon this bracer should have - var/minimap_icon = "predator" + var/minimap_icon /obj/item/clothing/gloves/yautja/equipped(mob/user, slot) . = ..() @@ -54,6 +54,8 @@ START_PROCESSING(SSobj, src) if(!owner) owner = user + if(isyautja(owner)) + minimap_icon = owner.assigned_equipment_preset?.minimap_icon toggle_lock_internal(user, TRUE) RegisterSignal(user, list(COMSIG_MOB_STAT_SET_ALIVE, COMSIG_MOB_DEATH), PROC_REF(update_minimap_icon)) INVOKE_NEXT_TICK(src, PROC_REF(update_minimap_icon), user) @@ -130,9 +132,9 @@ SSminimaps.add_marker(owner, wearer_turf.z, MINIMAP_FLAG_YAUTJA, "bracer_stolen", 'icons/ui_icons/map_blips.dmi') else if(owner?.stat >= DEAD) - SSminimaps.add_marker(owner, wearer_turf.z, MINIMAP_FLAG_YAUTJA, minimap_icon, 'icons/ui_icons/map_blips.dmi', overlay_iconstates = list("undefibbable")) //defib/undefib status doesn't really matter because they're gonna explode in the end regardless + SSminimaps.add_marker(owner, wearer_turf.z, MINIMAP_FLAG_YAUTJA, human_owner.assigned_equipment_preset.minimap_icon,, 'icons/ui_icons/map_blips.dmi', overlay_iconstates = list("undefibbable")) //defib/undefib status doesn't really matter because they're gonna explode in the end regardless else - SSminimaps.add_marker(owner, wearer_turf.z, MINIMAP_FLAG_YAUTJA, minimap_icon, 'icons/ui_icons/map_blips.dmi') + SSminimaps.add_marker(owner, wearer_turf.z, MINIMAP_FLAG_YAUTJA, human_owner.assigned_equipment_preset.minimap_icon, 'icons/ui_icons/map_blips.dmi') /* *This is the main proc for checking AND draining the bracer energy. It must have human passed as an argument. *It can take a negative value in amount to restore energy. diff --git a/code/modules/gear_presets/_select_equipment.dm b/code/modules/gear_presets/_select_equipment.dm index def3fd4ade06..d5b688a37804 100644 --- a/code/modules/gear_presets/_select_equipment.dm +++ b/code/modules/gear_presets/_select_equipment.dm @@ -23,7 +23,7 @@ var/origin_override var/minimap_icon = "private" - var/minimap_background = MINIMAP_ICON_BACKGROUND_USCM + var/minimap_background = "background" var/always_minimap_visible = TRUE //Uniform data @@ -286,13 +286,9 @@ character_trait.apply_trait(new_human, src) /datum/equipment_preset/proc/get_minimap_icon(mob/living/carbon/human/user) - var/image/background = mutable_appearance('icons/ui_icons/map_blips.dmi', "background") + var/image/background = mutable_appearance('icons/ui_icons/map_blips.dmi', minimap_background) if(user.assigned_squad) - background.color = user.assigned_squad.minimap_color - else if(minimap_background) - background.color = minimap_background - else - background.color = MINIMAP_ICON_BACKGROUND_CIVILIAN + minimap_background = user.assigned_squad.background_icon if(islist(minimap_icon)) for(var/icons in minimap_icon) diff --git a/code/modules/gear_presets/clf.dm b/code/modules/gear_presets/clf.dm index e9570bbbab9f..e8d1e0cb746a 100644 --- a/code/modules/gear_presets/clf.dm +++ b/code/modules/gear_presets/clf.dm @@ -6,6 +6,7 @@ paygrades = list(PAY_SHORT_REB = JOB_PLAYTIME_TIER_0) faction = FACTION_CLF origin_override = ORIGIN_CIVILIAN + minimap_background = "background_clf" idtype = /obj/item/card/id/data /datum/equipment_preset/clf/New() @@ -54,6 +55,8 @@ rank = JOB_CLF role_comm_title = "GRL" + minimap_icon = "clf_mil" + skills = /datum/skills/clf /datum/equipment_preset/clf/soldier/load_gear(mob/living/carbon/human/new_human) @@ -159,6 +162,8 @@ rank = JOB_CLF_ENGI role_comm_title = "TECH" + minimap_icon = "clf_engi" + skills = /datum/skills/clf/combat_engineer /datum/equipment_preset/clf/engineer/load_gear(mob/living/carbon/human/new_human) @@ -283,6 +288,7 @@ assignment = JOB_CLF_MEDIC rank = JOB_CLF_MEDIC role_comm_title = "MED" + minimap_icon = "clf_med" paygrades = list(PAY_SHORT_CDOC = JOB_PLAYTIME_TIER_0) skills = /datum/skills/clf/combat_medic @@ -441,6 +447,9 @@ assignment = JOB_CLF_SPECIALIST rank = JOB_CLF_SPECIALIST role_comm_title = "SPC" + + minimap_icon = "clf_spec" + skills = /datum/skills/clf/specialist /datum/equipment_preset/clf/specialist/New() @@ -565,6 +574,9 @@ assignment = JOB_CLF_LEADER rank = JOB_CLF_LEADER role_comm_title = "LDR" + + minimap_icon = "clf_sl" + skills = /datum/skills/clf/leader /datum/equipment_preset/clf/leader/New() @@ -718,6 +730,8 @@ paygrades = list(PAY_SHORT_SYN = JOB_PLAYTIME_TIER_0) role_comm_title = "Syn" + minimap_icon = "clf_synth" + /datum/equipment_preset/clf/synth/New() . = ..() access = get_access(ACCESS_LIST_CLF_ALL) @@ -961,6 +975,9 @@ rank = JOB_CLF_COMMANDER paygrades = list(PAY_SHORT_REBC = JOB_PLAYTIME_TIER_0) role_comm_title = "CMDR" + + minimap_icon = "deputy" + skills = /datum/skills/clf/commander /datum/equipment_preset/clf/commander/New() diff --git a/code/modules/gear_presets/cmb.dm b/code/modules/gear_presets/cmb.dm index c5ae3998a0aa..cd1c4f5f0a80 100644 --- a/code/modules/gear_presets/cmb.dm +++ b/code/modules/gear_presets/cmb.dm @@ -5,6 +5,7 @@ rank = JOB_CMB idtype = /obj/item/card/id/deputy languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) + minimap_background = "background_cmb" var/human_versus_human = FALSE var/headset_type = /obj/item/device/radio/headset/distress/CMB @@ -62,6 +63,9 @@ flags = EQUIPMENT_PRESET_EXTRA assignment = "CMB Deputy" rank = JOB_CMB + + minimap_icon = "deputy" + skills = /datum/skills/cmb /datum/equipment_preset/cmb/standard/load_gear(mob/living/carbon/human/new_human) @@ -145,6 +149,8 @@ role_comm_title = "CMB MAR" flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "xo" + assignment = "CMB Marshal" rank = JOB_CMB_TL skills = /datum/skills/cmb/leader @@ -199,6 +205,8 @@ role_comm_title = "CMB Syn" flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "cmb_syn" + assignment = "CMB Investigative Synthetic" rank = JOB_CMB_SYN languages = ALL_SYNTH_LANGUAGES @@ -301,6 +309,8 @@ role_comm_title = "ICC Rep." flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "icc" + assignment = "Interstellar Commerce Commission Corporate Liaison" rank = JOB_CMB_ICC skills = /datum/skills/civilian/survivor @@ -360,6 +370,8 @@ role_comm_title = "OBS" flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "obs" + assignment = "Interstellar Human Rights Observer" rank = JOB_CMB_OBS skills = /datum/skills/civilian/survivor/doctor @@ -415,6 +427,8 @@ skills = /datum/skills/pfc/crafty faction = FACTION_MARSHAL faction_group = list(FACTION_MARSHAL, FACTION_MARINE) + minimap_icon = "private" + minimap_background = "background_cmb" /datum/equipment_preset/uscm/cmb/New() . = ..() @@ -465,6 +479,7 @@ role_comm_title = "A-TL" minimum_age = 25 skills = /datum/skills/SL + minimap_icon = "leader" /datum/equipment_preset/uscm/cmb/leader/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine, WEAR_BODY) @@ -506,6 +521,7 @@ paygrades = list(PAY_SHORT_ME4 = JOB_PLAYTIME_TIER_0) role_comm_title = "A-TS" skills = /datum/skills/tl + minimap_icon = "tl" /datum/equipment_preset/uscm/cmb/rto/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/rto, WEAR_BODY) @@ -548,6 +564,7 @@ paygrades = list(PAY_SHORT_ME3 = JOB_PLAYTIME_TIER_0) role_comm_title = "A-HM" skills = /datum/skills/combat_medic + minimap_icon = "medic" utility_under = list(/obj/item/clothing/under/marine/medic) @@ -606,6 +623,7 @@ paygrades = list(PAY_SHORT_ME3 = JOB_PLAYTIME_TIER_0) role_comm_title = "A-SG" skills = /datum/skills/smartgunner + minimap_icon = "smartgunner" /datum/equipment_preset/uscm/cmb/smartgunner/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine, WEAR_BODY) diff --git a/code/modules/gear_presets/colonist.dm b/code/modules/gear_presets/colonist.dm index 59b508f078af..5e42cb9aee5d 100644 --- a/code/modules/gear_presets/colonist.dm +++ b/code/modules/gear_presets/colonist.dm @@ -11,7 +11,6 @@ idtype = /obj/item/card/id/lanyard minimap_icon = "surv" - minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN /datum/equipment_preset/colonist/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) diff --git a/code/modules/gear_presets/pmc.dm b/code/modules/gear_presets/pmc.dm index e280060cae34..5de19c84a707 100644 --- a/code/modules/gear_presets/pmc.dm +++ b/code/modules/gear_presets/pmc.dm @@ -7,6 +7,7 @@ faction = FACTION_PMC faction_group = FACTION_LIST_WY languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) + minimap_background = "background_pmc" var/human_versus_human = FALSE var/headset_type = /obj/item/device/radio/headset/distress/pmc @@ -331,6 +332,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_MEDIC rank = JOB_PMC_MEDIC + minimap_icon = "pmc_md" paygrades = list(PAY_SHORT_PMC_MS = JOB_PLAYTIME_TIER_0) skills = /datum/skills/pmc/medic headset_type = /obj/item/device/radio/headset/distress/pmc/medic @@ -507,6 +509,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_INVESTIGATOR rank = JOB_PMC_INVESTIGATOR + minimap_icon = "pmc_td" paygrades = list(PAY_SHORT_PMC_MS = JOB_PLAYTIME_TIER_0) skills = /datum/skills/pmc/medic/chem headset_type = /obj/item/device/radio/headset/distress/pmc/medic @@ -689,6 +692,9 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), rank = JOB_PMC_LEADER paygrades = list(PAY_SHORT_PMC_TL = JOB_PLAYTIME_TIER_0) role_comm_title = "SL" + + minimap_icon = "pmc_ld" + skills = /datum/skills/pmc/SL headset_type = /obj/item/device/radio/headset/distress/pmc/command @@ -988,6 +994,9 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), rank = JOB_PMC_GUNNER paygrades = list(PAY_SHORT_PMC_SS = JOB_PLAYTIME_TIER_0) role_comm_title = "SG" + + minimap_icon = "pmc_sg" + skills = /datum/skills/pmc/smartgunner /datum/equipment_preset/pmc/pmc_gunner/load_gear(mob/living/carbon/human/new_human) @@ -1489,6 +1498,9 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), rank = JOB_PMC_DOCTOR paygrades = list(PAY_SHORT_PMC_DOC = JOB_PLAYTIME_TIER_0) role_comm_title = "SGN" + + minimap_icon = "pmc_ld" + skills = /datum/skills/pmc/doctor headset_type = /obj/item/device/radio/headset/distress/pmc/medic @@ -1664,6 +1676,9 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), rank = JOB_PMC_ENGINEER paygrades = list(PAY_SHORT_PMC_TEC = JOB_PLAYTIME_TIER_0) role_comm_title = "TEC" + + minimap_icon = "engi" + skills = /datum/skills/pmc/engineer headset_type = /obj/item/device/radio/headset/distress/pmc/cct @@ -1814,6 +1829,9 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), paygrades = list(PAY_SHORT_PMC_DIR = JOB_PLAYTIME_TIER_0) role_comm_title = "DIR" skills = /datum/skills/pmc/director + + minimap_icon = "pmc_sd" + headset_type = /obj/item/device/radio/headset/distress/pmc/command/director /datum/equipment_preset/pmc/director/load_gear(mob/living/carbon/human/new_human) @@ -1850,6 +1868,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), idtype = /obj/item/card/id/pmc assignment = JOB_PMC_SYNTH rank = JOB_PMC_SYNTH + minimap_icon = "pmc_syn" paygrades = list(PAY_SHORT_SYN = JOB_PLAYTIME_TIER_0) role_comm_title = "WY Syn" headset_type = /obj/item/device/radio/headset/distress/pmc/command diff --git a/code/modules/gear_presets/royal_marines.dm b/code/modules/gear_presets/royal_marines.dm index f59ade2eb75b..b648e0fb31b8 100644 --- a/code/modules/gear_presets/royal_marines.dm +++ b/code/modules/gear_presets/royal_marines.dm @@ -3,6 +3,7 @@ faction = FACTION_TWE faction_group = list(FACTION_TWE, FACTION_MARINE) languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) + minimap_background = "background_twe" /datum/equipment_preset/twe/royal_marine/load_name(mob/living/carbon/human/new_human, randomise) new_human.gender = pick_weight(list(MALE = 80, FEMALE = 20,)) @@ -63,6 +64,9 @@ flags = EQUIPMENT_PRESET_EXTRA assignment = "Royal Marines Rifleman" rank = JOB_TWE_RMC_RIFLEMAN + + minimap_icon = "rmc_rifleman" + skills = /datum/skills/rmc /datum/equipment_preset/twe/royal_marine/standard/load_gear(mob/living/carbon/human/new_human) @@ -118,6 +122,7 @@ name = "TWE Royal Marine Commando (Marksman)" assignment = "Royal Marines Marksman" rank = JOB_TWE_RMC_MARKSMAN + minimap_icon = "rmc_marksman" /datum/equipment_preset/twe/royal_marine/spec/marksman/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) @@ -159,6 +164,7 @@ name = "TWE Royal Marine Commando (Breacher)" assignment = "Royal Marines Breacher" rank = JOB_TWE_RMC_BREACHER + minimap_icon = "rmc_breacher" /datum/equipment_preset/twe/royal_marine/spec/breacher/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) @@ -203,6 +209,9 @@ role_comm_title = "RMC SG" assignment = "Royal Marines Smartgunner" rank = JOB_TWE_RMC_SMARTGUNNER + + minimap_icon = "rmc_sg" + skills = /datum/skills/rmc/smartgun /datum/equipment_preset/twe/royal_marine/spec/machinegun/load_gear(mob/living/carbon/human/new_human) @@ -247,6 +256,9 @@ flags = EQUIPMENT_PRESET_EXTRA assignment = "Royal Marines Team Leader" rank = JOB_TWE_RMC_TEAMLEADER + + minimap_icon = "rmc_teamleader" + skills = /datum/skills/rmc/leader /datum/equipment_preset/twe/royal_marine/team_leader/load_gear(mob/living/carbon/human/new_human) @@ -296,6 +308,9 @@ flags = EQUIPMENT_PRESET_EXTRA assignment = "Royal Marines Team Commander" rank = JOB_TWE_RMC_LIEUTENANT + + minimap_icon = "rmc_lieutenant" + skills = /datum/skills/rmc/leader /datum/equipment_preset/twe/royal_marine/lieuteant/load_gear(mob/living/carbon/human/new_human) diff --git a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm index c27fa213592f..4b2ce9cd38f7 100644 --- a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm +++ b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm @@ -4,6 +4,7 @@ paygrades = list(PAY_SHORT_ME5 = JOB_PLAYTIME_TIER_0) idtype = /obj/item/card/id/dogtag role_comm_title = "FORECON" + minimap_background = "background_forecon" rank = JOB_SURVIVOR faction_group = list(FACTION_MARINE, FACTION_SURVIVOR) flags = EQUIPMENT_PRESET_START_OF_ROUND @@ -110,6 +111,7 @@ name = "Survivor - USCM Reconnaissance Marine" assignment = JOB_FORECON_RIFLEMAN skills = /datum/skills/military/survivor/forecon_standard + minimap_icon = "private" /datum/equipment_preset/survivor/forecon/standard/load_gear(mob/living/carbon/human/new_human) ..() @@ -124,6 +126,7 @@ name = "Survivor - USCM Reconnaissance Support Technician" assignment = JOB_FORECON_SUPPORT skills = /datum/skills/military/survivor/forecon_techician + minimap_icon = "engi" /datum/equipment_preset/survivor/forecon/tech/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/big(new_human), WEAR_BACK) @@ -146,6 +149,7 @@ name = "Survivor - USCM Reconnaissance Designated Marksman" assignment = JOB_FORECON_MARKSMAN skills = /datum/skills/military/survivor/forecon_marksman + minimap_icon = "spec" /datum/equipment_preset/survivor/forecon/marksman/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m4ra_custom(new_human), WEAR_L_HAND) @@ -162,6 +166,7 @@ name = "Survivor - USCM Reconnaissance Smartgunner" assignment = JOB_FORECON_SMARTGUNNER skills = /datum/skills/military/survivor/forecon_smartgunner + minimap_icon = "smartgunner" /datum/equipment_preset/survivor/forecon/smartgunner/load_gear(mob/living/carbon/human/new_human) ..() @@ -180,6 +185,7 @@ name = "Survivor - USCM Reconnaissance Sniper" assignment = JOB_FORECON_SNIPER skills = /datum/skills/military/survivor/forecon_sniper + minimap_icon = "spec" /datum/equipment_preset/survivor/forecon/sniper/load_gear(mob/living/carbon/human/new_human) var/obj/item/clothing/under/marine/reconnaissance/uniform = new() @@ -215,6 +221,7 @@ assignment = JOB_FORECON_SL skills = /datum/skills/military/survivor/forecon_squad_leader paygrades = list(PAY_SHORT_MO1 = JOB_PLAYTIME_TIER_0) + minimap_icon = "leader" dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) @@ -247,6 +254,8 @@ paygrades = list(PAY_SHORT_MO4 = JOB_PLAYTIME_TIER_0) idtype = /obj/item/card/id/gold role_comm_title = "FORECON CO" + minimap_icon = "co" + minimap_background = "background_command" dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) diff --git a/code/modules/gear_presets/survivors/lv_624/clfship_insert_lv624.dm b/code/modules/gear_presets/survivors/lv_624/clfship_insert_lv624.dm index 1bfeaaad9c43..d199e19e452b 100644 --- a/code/modules/gear_presets/survivors/lv_624/clfship_insert_lv624.dm +++ b/code/modules/gear_presets/survivors/lv_624/clfship_insert_lv624.dm @@ -7,6 +7,8 @@ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) faction = FACTION_CLF faction_group = list(FACTION_CLF, FACTION_SURVIVOR) + minimap_background = "background_clf" + minimap_icon = "clf_mil" access = list(ACCESS_CIVILIAN_PUBLIC) survivor_variant = HOSTILE_SURVIVOR diff --git a/code/modules/gear_presets/survivors/misc.dm b/code/modules/gear_presets/survivors/misc.dm index 1a24ca5d58b9..4485624a4c27 100644 --- a/code/modules/gear_presets/survivors/misc.dm +++ b/code/modules/gear_presets/survivors/misc.dm @@ -181,6 +181,8 @@ Everything below isn't used or out of place. skills = /datum/skills/civilian/survivor/goon languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_COMMAND, ACCESS_CIVILIAN_BRIG, ACCESS_WY_COLONIAL) + minimap_icon = "goon_standard" + minimap_background = "background_goon" survivor_variant = SECURITY_SURVIVOR diff --git a/code/modules/gear_presets/survivors/survivors.dm b/code/modules/gear_presets/survivors/survivors.dm index bdfd47dd20ca..8446ca1b37ef 100644 --- a/code/modules/gear_presets/survivors/survivors.dm +++ b/code/modules/gear_presets/survivors/survivors.dm @@ -14,7 +14,7 @@ access = list(ACCESS_CIVILIAN_PUBLIC) minimap_icon = "surv" - minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN + minimap_background = "background_civillian" var/survivor_variant = CIVILIAN_SURVIVOR diff --git a/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm b/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm index 25136c172b6d..d098f242ed82 100644 --- a/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm +++ b/code/modules/gear_presets/survivors/trijent/crashlanding_upp_bar_insert_trijent.dm @@ -9,6 +9,8 @@ languages = list(LANGUAGE_RUSSIAN, LANGUAGE_GERMAN, LANGUAGE_CHINESE) faction = FACTION_UPP faction_group = list(FACTION_UPP, FACTION_SURVIVOR) + minimap_icon = "upp_pvt" + minimap_background = "background_upp" role_comm_title = "173/RECON" idtype = /obj/item/card/id/dogtag flags = EQUIPMENT_PRESET_EXTRA @@ -69,6 +71,9 @@ paygrades = list(PAY_SHORT_UE3 = JOB_PLAYTIME_TIER_0) assignment = JOB_UPP_ENGI rank = JOB_UPP_ENGI + + minimap_icon = "upp_sapper" + skills = /datum/skills/military/survivor/upp_sapper /datum/equipment_preset/survivor/upp/sapper/load_gear(mob/living/carbon/human/new_human) @@ -97,6 +102,9 @@ paygrades = list(PAY_SHORT_UE3 = JOB_PLAYTIME_TIER_0) assignment = JOB_UPP_MEDIC rank = JOB_UPP_MEDIC + + minimap_icon = "upp_med" + skills = /datum/skills/military/survivor/upp_medic /datum/equipment_preset/survivor/upp/medic/load_gear(mob/living/carbon/human/new_human) @@ -126,6 +134,7 @@ name = "Survivor - UPP Specialist" assignment = JOB_UPP_SPECIALIST rank = JOB_UPP_SPECIALIST + minimap_icon = "upp_spec" paygrades = list(PAY_SHORT_UE4 = JOB_PLAYTIME_TIER_0) skills = /datum/skills/military/survivor/upp_spec @@ -150,6 +159,9 @@ rank = JOB_UPP_LEADER languages = list(LANGUAGE_RUSSIAN, LANGUAGE_ENGLISH, LANGUAGE_GERMAN, LANGUAGE_CHINESE) role_comm_title = "173/RECON SL" + + minimap_icon = "upp_sl" + skills = /datum/skills/military/survivor/upp_sl /datum/equipment_preset/survivor/upp/squad_leader/load_gear(mob/living/carbon/human/new_human) @@ -176,6 +188,8 @@ paygrades = list(PAY_SHORT_SYN = JOB_PLAYTIME_TIER_0) idtype = /obj/item/card/id/dogtag role_comm_title = "173/RECON Syn" + minimap_background = "background_upp" + minimap_icon = "upp_synth" /datum/equipment_preset/synth/survivor/upp/load_gear(mob/living/carbon/human/new_human) var/obj/item/clothing/under/marine/veteran/UPP/medic/uniform = new() diff --git a/code/modules/gear_presets/synths.dm b/code/modules/gear_presets/synths.dm index e28ef2e81f49..d7536e436aa6 100644 --- a/code/modules/gear_presets/synths.dm +++ b/code/modules/gear_presets/synths.dm @@ -43,6 +43,8 @@ rank = "Synthetic" role_comm_title = "Syn" + minimap_icon = "synth" + /datum/equipment_preset/synth/uscm/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -434,6 +436,7 @@ name = "Survivor - Synthetic - CMB Synth" idtype = /obj/item/card/id/deputy role_comm_title = "CMB Syn" + minimap_background = "background_cmb" equipment_to_spawn = list( WEAR_HEAD = /obj/item/clothing/head/CMB, WEAR_L_EAR = /obj/item/device/radio/headset/distress/CMB/limited, @@ -458,6 +461,7 @@ name = "Survivor - Synthetic - Corporate Security Synth" idtype = /obj/item/card/id/silver/cl role_comm_title = "WY Syn" + minimap_background = "background_pmc" equipment_to_spawn = list( WEAR_HEAD = /obj/item/clothing/head/soft/sec/corp, WEAR_L_EAR = /obj/item/device/radio/headset/distress/WY, @@ -482,6 +486,7 @@ name = "Survivor - Synthetic - Corporate Protection Synth" idtype = /obj/item/card/id/pmc role_comm_title = "WY Syn" + minimap_background = "background_pmc" equipment_to_spawn = list( WEAR_HEAD = /obj/item/clothing/head/helmet/marine/veteran/pmc, WEAR_L_EAR = /obj/item/device/radio/headset/distress/pmc/hvh, @@ -528,6 +533,7 @@ name = "Survivor - Synthetic - Interstellar Commerce Commission Synthetic" idtype = /obj/item/card/id/silver/cl role_comm_title = "ICC Syn" + minimap_background = "background_cmb" equipment_to_spawn = list( WEAR_L_EAR = /obj/item/device/radio/headset/distress/CMB/limited, WEAR_R_EAR = /obj/item/tool/pen/clicky, @@ -573,6 +579,9 @@ faction_group = list(FACTION_MARINE) assignment = JOB_WORKING_JOE rank = JOB_WORKING_JOE + + minimap_icon = "joe" + skills = /datum/skills/working_joe languages = list(LANGUAGE_ENGLISH, LANGUAGE_APOLLO, LANGUAGE_RUSSIAN, LANGUAGE_JAPANESE, LANGUAGE_GERMAN, LANGUAGE_SCANDINAVIAN, LANGUAGE_SPANISH, LANGUAGE_CHINESE) /// Used to set species when loading race diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm index ea32b0e5de72..7c630176b309 100644 --- a/code/modules/gear_presets/upp.dm +++ b/code/modules/gear_presets/upp.dm @@ -3,6 +3,7 @@ languages = list(LANGUAGE_RUSSIAN, LANGUAGE_ENGLISH, LANGUAGE_CHINESE) faction = FACTION_UPP idtype = /obj/item/card/id/dogtag + minimap_background = "background_upp" origin_override = ORIGIN_UPP /datum/equipment_preset/upp/New() @@ -68,6 +69,7 @@ assignment = JOB_UPP rank = JOB_UPP role_comm_title = "Sol" + minimap_icon = "upp_pvt" paygrades = list(PAY_SHORT_UE1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_UE2 = JOB_PLAYTIME_TIER_1) /datum/equipment_preset/upp/soldier/load_gear(mob/living/carbon/human/new_human) @@ -235,6 +237,7 @@ assignment = JOB_UPP_MEDIC rank = JOB_UPP_MEDIC role_comm_title = "Med" + minimap_icon = "upp_med" paygrades = list(PAY_SHORT_UE3 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/medic/load_gear(mob/living/carbon/human/new_human) @@ -406,6 +409,7 @@ assignment = JOB_UPP_ENGI rank = JOB_UPP_ENGI role_comm_title = "Sap" + minimap_icon = "upp_sapper" paygrades = list(PAY_SHORT_UE3 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/sapper/load_gear(mob/living/carbon/human/new_human) @@ -542,6 +546,7 @@ assignment = JOB_UPP_SPECIALIST rank = JOB_UPP_SPECIALIST role_comm_title = "Spc" + minimap_icon = "upp_spec" paygrades = list(PAY_SHORT_UE5 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/specialist/load_gear(mob/living/carbon/human/new_human) @@ -671,6 +676,7 @@ assignment = JOB_UPP_SPECIALIST rank = JOB_UPP_SPECIALIST role_comm_title = "Spc" + minimap_icon = "upp_spec" paygrades = list(PAY_SHORT_UE5 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/machinegunner/load_gear(mob/living/carbon/human/new_human) @@ -798,6 +804,7 @@ assignment = JOB_UPP_LEADER rank = JOB_UPP_LEADER role_comm_title = "SL" + minimap_icon = "upp_sl" paygrades = list(PAY_SHORT_UE6 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/leader/load_gear(mob/living/carbon/human/new_human) @@ -972,6 +979,7 @@ assignment = JOB_UPP_POLICE rank = JOB_UPP_POLICE role_comm_title = "MP" + minimap_icon = "upp_mp" paygrades = list(PAY_SHORT_UE6 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/military_police/load_gear(mob/living/carbon/human/new_human) @@ -1271,6 +1279,7 @@ assignment = JOB_UPP_SUPPLY rank = JOB_UPP_SUPPLY role_comm_title = "Log." + minimap_icon = "upp_cargo" paygrades = list(PAY_SHORT_UE3 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/supply/load_gear(mob/living/carbon/human/new_human) @@ -1354,6 +1363,7 @@ assignment = JOB_UPP_LT_OFFICER rank = JOB_UPP_LT_OFFICER role_comm_title = "Lt." + minimap_icon = "upp_lt" paygrades = list(PAY_SHORT_UO1 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/officer/load_gear(mob/living/carbon/human/new_human) @@ -1513,6 +1523,7 @@ assignment = JOB_UPP_SRLT_OFFICER rank = JOB_UPP_SRLT_OFFICER role_comm_title = "Sr-Lt." + minimap_icon = "upp_slt" paygrades = list(PAY_SHORT_UO2 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/officer/senior/load_gear(mob/living/carbon/human/new_human) @@ -1672,6 +1683,7 @@ assignment = JOB_UPP_KPT_OFFICER rank = JOB_UPP_KPT_OFFICER role_comm_title = "May." + minimap_icon = "upp_xo" paygrades = list(PAY_SHORT_UO3 = JOB_PLAYTIME_TIER_0) skills = /datum/skills/upp/kapitan @@ -1832,6 +1844,7 @@ assignment = JOB_UPP_MAY_OFFICER rank = JOB_UPP_MAY_OFFICER role_comm_title = "May." + minimap_icon = "upp_co" paygrades = list(PAY_SHORT_UO4 = JOB_PLAYTIME_TIER_0) skills = /datum/skills/upp/commander @@ -1994,6 +2007,7 @@ assignment = JOB_UPP_LTKOL_OFFICER rank = JOB_UPP_LTKOL_OFFICER role_comm_title = "Lt. Kol." + minimap_icon = "upp_co" paygrades = list(PAY_SHORT_UO5 = JOB_PLAYTIME_TIER_0) skills = /datum/skills/upp/commander @@ -2155,6 +2169,7 @@ assignment = JOB_UPP_BRIG_GENERAL rank = JOB_UPP_BRIG_GENERAL role_comm_title = "Kol." + minimap_icon = "upp_co" paygrades = list(PAY_SHORT_UO7 = JOB_PLAYTIME_TIER_0) skills = /datum/skills/upp/commander @@ -2320,6 +2335,7 @@ assignment = JOB_UPP_MAY_GENERAL rank = JOB_UPP_MAY_GENERAL role_comm_title = "May. Gen." + minimap_icon = "upp_co" paygrades = list(PAY_SHORT_UO7 = JOB_PLAYTIME_TIER_0) skills = /datum/skills/upp/commander @@ -2481,6 +2497,7 @@ assignment = JOB_UPP_LT_GENERAL rank = JOB_UPP_LT_GENERAL role_comm_title = "Lt. Gen." + minimap_icon = "upp_co" paygrades = list(PAY_SHORT_UO8 = JOB_PLAYTIME_TIER_0) skills = /datum/skills/upp/commander @@ -2642,6 +2659,7 @@ assignment = JOB_UPP_GENERAL rank = JOB_UPP_GENERAL role_comm_title = "Gen." + minimap_icon = "upp_co" paygrades = list(PAY_SHORT_UO9 = JOB_PLAYTIME_TIER_0) skills = /datum/skills/upp/commander @@ -2848,6 +2866,7 @@ skills = /datum/skills/synthetic assignment = JOB_UPP_SUPPORT_SYNTH rank = JOB_UPP_SUPPORT_SYNTH + minimap_icon = "upp_synth" paygrades = list(PAY_SHORT_SYN = JOB_PLAYTIME_TIER_0) idtype = /obj/item/card/id/dogtag @@ -3124,6 +3143,9 @@ role_comm_title = "JKdo" paygrades = list(PAY_SHORT_UC1 = JOB_PLAYTIME_TIER_0) idtype = /obj/item/card/id/data + + minimap_icon = "upp_com" + languages = list(LANGUAGE_RUSSIAN, LANGUAGE_ENGLISH, LANGUAGE_TSL, LANGUAGE_SPANISH, LANGUAGE_CHINESE) /datum/equipment_preset/upp/commando/New() @@ -3249,6 +3271,7 @@ assignment = JOB_UPP_COMMANDO_MEDIC rank = JOB_UPP_COMMANDO_MEDIC role_comm_title = "2ndKdo" + minimap_icon = "upp_commed" paygrades = list(PAY_SHORT_UC2 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/commando/medic/load_gear(mob/living/carbon/human/new_human) @@ -3416,6 +3439,7 @@ assignment = JOB_UPP_COMMANDO_LEADER rank = JOB_UPP_COMMANDO_LEADER role_comm_title = "1stKdo" + minimap_icon = "upp_comsl" paygrades = list(PAY_SHORT_UC3 = JOB_PLAYTIME_TIER_0) idtype = /obj/item/card/id/silver @@ -3676,6 +3700,9 @@ rank = JOB_UPP_CREWMAN paygrades = list(PAY_SHORT_UE5 = JOB_PLAYTIME_TIER_0) role_comm_title = "TANK" + + minimap_icon = "upp_vc" + minimum_age = 30 skills = /datum/skills/tank_crew @@ -3795,6 +3822,7 @@ assignment = JOB_UPP_CONSCRIPT rank = JOB_UPP_CONSCRIPT role_comm_title = "Cons" + minimap_icon = "upp_pvt" paygrades = list(PAY_SHORT_UE1 = JOB_PLAYTIME_TIER_0) /datum/equipment_preset/upp/conscript/load_gear(mob/living/carbon/human/new_human) @@ -3903,6 +3931,7 @@ rank = JOB_UPP_COMMISSAR paygrades = list(PAY_SHORT_UO4P = JOB_PLAYTIME_TIER_0) role_comm_title = "Commissar" + minimap_icon = "upp_plt" minimum_age = 30 skills = /datum/skills/upp/commissar diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm index 855ed07f7976..8511fdc246eb 100644 --- a/code/modules/gear_presets/uscm.dm +++ b/code/modules/gear_presets/uscm.dm @@ -163,6 +163,7 @@ skills = /datum/skills/tank_crew minimap_icon = "vc" + minimap_background = "background_intel" /datum/equipment_preset/uscm/tank/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -223,6 +224,8 @@ paygrades = list(PAY_SHORT_MO1 = JOB_PLAYTIME_TIER_0) role_comm_title = "IO" skills = /datum/skills/intel + minimap_icon = "io" + minimap_background = "background_intel" utility_under = list(/obj/item/clothing/under/marine/officer/intel) @@ -811,7 +814,7 @@ ert_squad = TRUE paygrades = list(PAY_SHORT_ME6 = JOB_PLAYTIME_TIER_0, PAY_SHORT_ME7 = JOB_PLAYTIME_TIER_3) - minimap_icon = "private" + minimap_icon = "sof_sg" /datum/equipment_preset/uscm/marsoc/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -863,6 +866,7 @@ /datum/equipment_preset/uscm/marsoc/covert name = "Marine Raider (!DEATHSQUAD! Covert)" uses_special_name = TRUE + /datum/equipment_preset/uscm/marsoc/covert/load_name(mob/living/carbon/human/new_human, randomise) new_human.gender = MALE new_human.change_real_name(new_human, "[pick(GLOB.nato_phonetic_alphabet)]") @@ -880,7 +884,7 @@ paygrades = list(PAY_SHORT_MO1 = JOB_PLAYTIME_TIER_0, PAY_SHORT_MO2 = JOB_PLAYTIME_TIER_3) skills = /datum/skills/commando/deathsquad/leader - minimap_icon = "leader" + minimap_icon = "sof_sl" dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) @@ -890,6 +894,7 @@ /datum/equipment_preset/uscm/marsoc/sl/covert name = "Marine Raider Team Leader (!DEATHSQUAD! Covert)" uses_special_name = TRUE + /datum/equipment_preset/uscm/marsoc/sl/covert/load_name(mob/living/carbon/human/new_human, randomise) new_human.gender = MALE new_human.change_real_name(new_human, "[pick(GLOB.nato_phonetic_alphabet)]") @@ -904,6 +909,7 @@ assignment = JOB_MARINE_RAIDER_CMD rank = JOB_MARINE_RAIDER_CMD role_comm_title = "CMD." + minimap_icon = "sof_officer" paygrades = list(PAY_SHORT_MO3 = JOB_PLAYTIME_TIER_0, PAY_SHORT_MO4 = JOB_PLAYTIME_TIER_3) skills = /datum/skills/commando/deathsquad/officer dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) diff --git a/code/modules/gear_presets/uscm_event.dm b/code/modules/gear_presets/uscm_event.dm index 94f03f0d7e7f..b5fc3ebf1f4d 100644 --- a/code/modules/gear_presets/uscm_event.dm +++ b/code/modules/gear_presets/uscm_event.dm @@ -64,6 +64,8 @@ paygrades = list(PAY_SHORT_MO7 = JOB_PLAYTIME_TIER_0) role_comm_title = "GEN" minimum_age = 50 + minimap_icon = "deputy" + minimap_background = "background_command" skills = /datum/skills/general languages = ALL_HUMAN_LANGUAGES //Know your enemy. @@ -190,6 +192,7 @@ idtype = /obj/item/card/id/provost skills = /datum/skills/provost + minimap_background = "background_mp" /datum/equipment_preset/uscm_event/provost/New() . = ..() @@ -202,6 +205,7 @@ paygrades = list(PAY_SHORT_ME5 = JOB_PLAYTIME_TIER_0, PAY_SHORT_ME6 = JOB_PLAYTIME_TIER_1, PAY_SHORT_ME7 = JOB_PLAYTIME_TIER_3) role_comm_title = "PvE" flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "pve" dress_under = list(/obj/item/clothing/under/marine/dress/blues) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) @@ -247,6 +251,7 @@ paygrades = list(PAY_SHORT_ME8 = JOB_PLAYTIME_TIER_0, PAY_SHORT_ME9 = JOB_PLAYTIME_TIER_3) role_comm_title = "PvTML" flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "pve_leader" dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) @@ -292,6 +297,7 @@ paygrades = list(PAY_SHORT_PVI = JOB_PLAYTIME_TIER_0) role_comm_title = "PvI" flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "pve_inspector" dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) @@ -332,6 +338,7 @@ paygrades = list(PAY_SHORT_PVCI = JOB_PLAYTIME_TIER_0) role_comm_title = "PvCI" flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "pve_chief_inspector" dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) @@ -371,6 +378,7 @@ paygrades = list(PAY_SHORT_ME8E = JOB_PLAYTIME_TIER_0, PAY_SHORT_ME9E = JOB_PLAYTIME_TIER_3) role_comm_title = "PvA" flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "pve_advisor" /datum/equipment_preset/uscm_event/provost/marshal/deputy name = "Provost Deputy Marshal (MO6)" @@ -382,6 +390,7 @@ paygrades = list(PAY_SHORT_PVDM = JOB_PLAYTIME_TIER_0) role_comm_title = PAY_SHORT_PVDM flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "deputy" /datum/equipment_preset/uscm_event/provost/marshal name = "Provost Marshal (MO7)" @@ -393,6 +402,7 @@ paygrades = list(PAY_SHORT_PVM = JOB_PLAYTIME_TIER_0) role_comm_title = PAY_SHORT_PVM flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = "deputy" dress_under = list(/obj/item/clothing/under/marine/dress/blues/general) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) diff --git a/code/modules/gear_presets/uscm_medical.dm b/code/modules/gear_presets/uscm_medical.dm index 6e727381b6ff..ad72cb3a1178 100644 --- a/code/modules/gear_presets/uscm_medical.dm +++ b/code/modules/gear_presets/uscm_medical.dm @@ -40,8 +40,8 @@ role_comm_title = "CMO" skills = /datum/skills/CMO - minimap_icon = list("medic" = MINIMAP_ICON_COLOR_HEAD) - minimap_background = MINIMAP_ICON_BACKGROUND_CIC + minimap_icon = list("doctor") + minimap_background = "background_command" utility_under = list(/obj/item/clothing/under/rank/chief_medical_officer) utility_hat = list() @@ -70,7 +70,8 @@ role_comm_title = "Doc" skills = /datum/skills/doctor - minimap_icon = list("medic" = MINIMAP_ICON_COLOR_DOCTOR) + minimap_icon = list("doctor") + minimap_background = "background_medical" /datum/equipment_preset/uscm_ship/uscm_medical/doctor/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -108,7 +109,8 @@ role_comm_title = "Nurse" skills = /datum/skills/nurse - minimap_icon = list("medic") + minimap_icon = list("nurse") + minimap_background = "background_shipside" dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) @@ -138,6 +140,7 @@ skills = /datum/skills/researcher minimap_icon = "researcher" + minimap_background = "background_medical" utility_under = list(/obj/item/clothing/under/marine/officer/researcher) utility_hat = list() diff --git a/code/modules/gear_presets/uscm_police.dm b/code/modules/gear_presets/uscm_police.dm index dcb926e804d7..8322b4e808c0 100644 --- a/code/modules/gear_presets/uscm_police.dm +++ b/code/modules/gear_presets/uscm_police.dm @@ -1,6 +1,7 @@ /datum/equipment_preset/uscm_ship/uscm_police name = "USCM (police roles)" faction = FACTION_MARINE + minimap_background = "background_mp" minimum_age = 27 //*****************************************************************************************************/ @@ -150,8 +151,7 @@ role_comm_title = "CMP" skills = /datum/skills/CMP - minimap_icon = list("mp" = MINIMAP_ICON_COLOR_HEAD) - minimap_background = MINIMAP_ICON_BACKGROUND_CIC + minimap_icon = list("cmp") utility_under = list(/obj/item/clothing/under/marine/officer/warrant) utility_hat = list(/obj/item/clothing/head/beret/marine/mp/cmp) @@ -194,6 +194,8 @@ role_comm_title = "RMP" skills = /datum/skills/CMP + minimap_icon = list("rmp") + utility_under = list(/obj/item/clothing/under/marine/officer/warrant) utility_hat = list(/obj/item/clothing/head/beret/marine/mp/cmp) utility_extra = list(/obj/item/clothing/head/cmcap, /obj/item/clothing/head/beret/cm, /obj/item/clothing/head/beret/cm/tan) @@ -236,6 +238,8 @@ name = "USCM Riot Chief MP (RCMP)" flags = EQUIPMENT_PRESET_EXTRA + minimap_icon = list("crmp") + assignment = JOB_RIOT_CHIEF rank = JOB_RIOT_CHIEF paygrades = list(PAY_SHORT_MO1 = JOB_PLAYTIME_TIER_0) diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm index 6832900e752b..fe94e7707434 100644 --- a/code/modules/gear_presets/uscm_ship.dm +++ b/code/modules/gear_presets/uscm_ship.dm @@ -51,7 +51,7 @@ skills = /datum/skills/civilian minimap_icon = "cl" - minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN + minimap_background = "background_civillian" dress_under = list( /obj/item/clothing/under/liaison_suit/black, @@ -167,8 +167,7 @@ idtype = /obj/item/card/id/silver/cl minimap_icon = "correspondent" - minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN - + minimap_background = "background_civillian" dress_under = list() dress_over = list() dress_hat = list() @@ -202,7 +201,7 @@ idtype = /obj/item/card/id/dogtag minimap_icon = "correspondent" - minimap_background = MINIMAP_ICON_BACKGROUND_CIC + minimap_background = "background_civillian" dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) dress_hat = list(/obj/item/clothing/head/marine/dress_cover) @@ -252,8 +251,8 @@ minimum_age = 27 skills = /datum/skills/CE - minimap_icon = list("engi" = MINIMAP_ICON_COLOR_HEAD) - minimap_background = MINIMAP_ICON_BACKGROUND_CIC + minimap_icon = "ce" + minimap_background = "background_command" utility_under = list(/obj/item/clothing/under/marine/officer/ce) @@ -287,7 +286,8 @@ role_comm_title = "MT" skills = /datum/skills/MT - minimap_icon = "engi" + minimap_icon = "mt" + minimap_background = "background_shipside" utility_under = list(/obj/item/clothing/under/marine/officer/engi) dress_under = list(/obj/item/clothing/under/marine/dress/blues) @@ -323,6 +323,7 @@ skills = /datum/skills/OT minimap_icon = "ot" + minimap_background = "background_shipside" utility_under = list(/obj/item/clothing/under/marine/officer/engi) dress_under = list(/obj/item/clothing/under/marine/dress/blues) @@ -367,8 +368,8 @@ minimum_age = 27 skills = /datum/skills/RO - minimap_background = MINIMAP_ICON_BACKGROUND_CIC - minimap_icon = list("ct" = MINIMAP_ICON_COLOR_HEAD) + minimap_icon = "cargo" + minimap_background = "background_command" utility_under = list(/obj/item/clothing/under/rank/qm_suit) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) @@ -401,7 +402,8 @@ role_comm_title = "CT" skills = /datum/skills/CT - minimap_icon = "ct" + minimap_icon = "cargo" + minimap_background = "background_shipside" utility_under = list(/obj/item/clothing/under/rank/cargotech) dress_under = list(/obj/item/clothing/under/marine/dress/blues) @@ -436,8 +438,9 @@ minimum_age = 30 skills = /datum/skills/commander - minimap_icon = list("cic" = MINIMAP_ICON_COLOR_COMMANDER) - minimap_background = MINIMAP_ICON_BACKGROUND_CIC + minimap_icon = "co" + minimap_background = "background_command" + utility_under = list(/obj/item/clothing/under/marine, /obj/item/clothing/under/marine/officer/command, /obj/item/clothing/under/marine/officer/boiler) utility_hat = list(/obj/item/clothing/head/cmcap,/obj/item/clothing/head/beret/cm/tan) @@ -551,8 +554,8 @@ minimum_age = 35 skills = /datum/skills/XO - minimap_icon = list("cic" = MINIMAP_ICON_COLOR_HEAD) - minimap_background = MINIMAP_ICON_BACKGROUND_CIC + minimap_icon = "xo" + minimap_background = "background_command" dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) @@ -590,8 +593,8 @@ minimum_age = 25 skills = /datum/skills/SO - minimap_icon = list("cic" = MINIMAP_ICON_COLOR_BRONZE) - minimap_background = MINIMAP_ICON_BACKGROUND_CIC + minimap_icon = "so" + minimap_background = "background_command" /datum/equipment_preset/uscm_ship/so/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel @@ -622,6 +625,7 @@ skills = /datum/skills/SEA minimap_icon = "sea" + minimap_background = "background_command" service_hat = list(/obj/item/clothing/head/cmcap, /obj/item/clothing/head/drillhat) dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) @@ -668,8 +672,8 @@ minimum_age = 27 skills = /datum/skills/auxiliary_officer - minimap_icon = list("cic" = COLOR_SILVER) - minimap_background = MINIMAP_ICON_BACKGROUND_CIC + minimap_icon = "aso" + minimap_background = "background_command" /datum/equipment_preset/uscm_ship/auxiliary_officer/New() . = ..() @@ -726,7 +730,8 @@ role_comm_title = "GP" skills = /datum/skills/pilot - minimap_icon = "pilot" + minimap_icon = "gp" + minimap_background = "background_command" /datum/equipment_preset/uscm_ship/gp/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel @@ -777,6 +782,7 @@ skills = /datum/skills/pilot minimap_icon = "pilot" + minimap_background = "background_command" /datum/equipment_preset/uscm_ship/dp/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel @@ -827,6 +833,7 @@ skills = /datum/skills/crew_chief minimap_icon = "dcc" + minimap_background = "background_shipside" dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) dress_hat = list(/obj/item/clothing/head/marine/dress_cover) @@ -918,6 +925,7 @@ skills = /datum/skills/mess_technician minimap_icon = "mst" + minimap_background = "background_shipside" utility_under = list(/obj/item/clothing/under/marine/chef) dress_under = list(/obj/item/clothing/under/marine/dress/blues) diff --git a/code/modules/gear_presets/wo.dm b/code/modules/gear_presets/wo.dm index 17138b208a58..f77341ed5549 100644 --- a/code/modules/gear_presets/wo.dm +++ b/code/modules/gear_presets/wo.dm @@ -22,7 +22,8 @@ skills = /datum/skills/commander idtype = /obj/item/card/id/gold - minimap_icon = "co" + minimap_icon = "co_wo" + minimap_background = "background_command" utility_under = list(/obj/item/clothing/under/marine,/obj/item/clothing/under/marine/officer/command) utility_hat = list(/obj/item/clothing/head/cmcap,/obj/item/clothing/head/beret/cm/tan) @@ -101,7 +102,8 @@ skills = /datum/skills/XO idtype = /obj/item/card/id/silver - minimap_icon = "xo" + minimap_icon = "xo_wo" + minimap_background = "background_command" dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) @@ -145,7 +147,8 @@ skills = /datum/skills/honor_guard/lead idtype = /obj/item/card/id/silver - minimap_icon = "cmp" + minimap_icon = "hgsl" + minimap_background = "background_mp" /datum/equipment_preset/wo/cmp/load_gear(mob/living/carbon/human/new_human) @@ -181,7 +184,8 @@ skills = /datum/skills/honor_guard/vet idtype = /obj/item/card/id/silver - minimap_icon = "so" + minimap_icon = "vhg" + minimap_background = "background_mp" /datum/equipment_preset/wo/vhg/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec @@ -223,7 +227,8 @@ skills = /datum/skills/honor_guard/spec idtype = /obj/item/card/id/gold - minimap_icon = "spec" + minimap_icon = "hgspec" + minimap_background = "background_mp" /datum/equipment_preset/wo/hgs/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec @@ -262,7 +267,8 @@ role_comm_title = "HG" skills = /datum/skills/honor_guard - minimap_icon = "mp" + minimap_icon = "hg" + minimap_background = "background_mp" /datum/equipment_preset/wo/hg/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec @@ -296,7 +302,8 @@ role_comm_title = "MC" skills = /datum/skills/mortar_crew - minimap_icon = "vc" + minimap_icon = "wo_mcrew" + minimap_background = "background_shipside" /datum/equipment_preset/wo/mortar_crew/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -332,7 +339,8 @@ skills = /datum/skills/RO idtype = /obj/item/card/id/silver - minimap_icon = "ro" + minimap_icon = "cargo" + minimap_background = "background_medical" /datum/equipment_preset/wo/quartermaster/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -362,6 +370,9 @@ skills = /datum/skills/CE idtype = /obj/item/card/id + minimap_icon = "cargo" + minimap_background = "background_shipside" + /datum/equipment_preset/wo/cargo/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -394,7 +405,8 @@ skills = /datum/skills/CMO idtype = /obj/item/card/id/silver - minimap_icon = "cmo" + minimap_icon = "cmo_wo" + minimap_background = "background_medical_WO" /datum/equipment_preset/wo/head_surgeon/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/medic @@ -437,7 +449,8 @@ skills = /datum/skills/doctor idtype = /obj/item/card/id - minimap_icon = "doctor" + minimap_icon = "medic" + minimap_background = "background_medical_WO" /datum/equipment_preset/wo/doctor/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/medic @@ -477,7 +490,8 @@ skills = /datum/skills/researcher idtype = /obj/item/card/id - minimap_icon = "researcher" + minimap_icon = "chemist_wo" + minimap_background = "background_medical_WO" /datum/equipment_preset/wo/chemist/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/medic @@ -518,6 +532,7 @@ idtype = /obj/item/card/id/silver minimap_icon = "ce" + minimap_background = "background_medical" /datum/equipment_preset/wo/bcm/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -552,6 +567,7 @@ idtype = /obj/item/card/id minimap_icon = "mt" + minimap_background = "background_shipside" /datum/equipment_preset/wo/bc/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -584,8 +600,8 @@ skills = /datum/skills/civilian idtype = /obj/item/card/id/silver/cl - minimap_icon = "surv" - minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN + minimap_icon = "correspondent" + minimap_background = "background_civillian" /datum/equipment_preset/wo/reporter/New() . = ..() @@ -613,6 +629,7 @@ /datum/equipment_preset/wo/marine name = "WO Dust Raider" //Stub other Marine equipment stems from flags = EQUIPMENT_PRESET_STUB + minimap_background = "background_intel" //*****************************************************************************************************/ @@ -626,6 +643,7 @@ paygrades = list(PAY_SHORT_ME5 = JOB_PLAYTIME_TIER_0) role_comm_title = "SL" skills = /datum/skills/SL + minimap_icon = "leader" /datum/equipment_preset/wo/marine/sl/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -661,6 +679,7 @@ paygrades = list(PAY_SHORT_ME3 = JOB_PLAYTIME_TIER_0) role_comm_title = "Spc" skills = /datum/skills/specialist + minimap_icon = "spec" /datum/equipment_preset/wo/marine/spec/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -696,6 +715,7 @@ paygrades = list(PAY_SHORT_ME3 = JOB_PLAYTIME_TIER_0) role_comm_title = "SG" skills = /datum/skills/smartgunner + minimap_icon = "smartgunner" /datum/equipment_preset/wo/marine/sg/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine(new_human), WEAR_BODY) @@ -720,6 +740,7 @@ paygrades = list(PAY_SHORT_ME3 = JOB_PLAYTIME_TIER_0) role_comm_title = "ComTech" skills = /datum/skills/combat_engineer + minimap_icon = "engi" /datum/equipment_preset/wo/marine/engineer/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -754,6 +775,7 @@ paygrades = list(PAY_SHORT_ME3 = JOB_PLAYTIME_TIER_0) role_comm_title = "HM" skills = /datum/skills/combat_medic + minimap_icon = "medic" /datum/equipment_preset/wo/marine/medic/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/medic diff --git a/code/modules/gear_presets/wy_goons.dm b/code/modules/gear_presets/wy_goons.dm index eb91be64c91e..0d5717dfcf73 100644 --- a/code/modules/gear_presets/wy_goons.dm +++ b/code/modules/gear_presets/wy_goons.dm @@ -6,6 +6,7 @@ faction = FACTION_WY faction_group = list(FACTION_WY) languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) + minimap_background = "background_goon" /datum/equipment_preset/goon/New() . = ..() @@ -62,6 +63,7 @@ rank = JOB_WY_GOON paygrades = list(PAY_SHORT_CPO = JOB_PLAYTIME_TIER_0) skills = /datum/skills/wy_goon + minimap_icon = "goon_standard" /datum/equipment_preset/goon/standard/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) @@ -95,6 +97,7 @@ rank = JOB_WY_GOON_TECH paygrades = list(PAY_SHORT_CPO = JOB_PLAYTIME_TIER_0) skills = /datum/skills/wy_goon_tech + minimap_icon = "goon_engi" /datum/equipment_preset/goon/engineer/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) @@ -129,6 +132,7 @@ rank = JOB_WY_GOON_LEAD paygrades = list(PAY_SHORT_CSPO = JOB_PLAYTIME_TIER_0) skills = /datum/skills/wy_goon_lead + minimap_icon = "goon_leader" /datum/equipment_preset/goon/lead/New() . = ..() @@ -165,6 +169,7 @@ rank = JOB_WY_GOON_RESEARCHER paygrades = list(PAY_SHORT_CCMO = JOB_PLAYTIME_TIER_0) skills = /datum/skills/researcher + minimap_icon = "goon_sci" dress_under = list( /obj/item/clothing/under/liaison_suit/black, diff --git a/code/modules/gear_presets/yautja.dm b/code/modules/gear_presets/yautja.dm index 9b8e64948c62..d408d6b4178b 100644 --- a/code/modules/gear_presets/yautja.dm +++ b/code/modules/gear_presets/yautja.dm @@ -8,6 +8,8 @@ uses_special_name = TRUE skills = /datum/skills/yautja/warrior + minimap_icon = "predator" + var/default_cape_type = "None" var/clan_rank @@ -93,6 +95,7 @@ // YOUNG BLOOD /datum/equipment_preset/yautja/youngblood name = "Yautja Young" + minimap_icon = "predator_young" flags = EQUIPMENT_PRESET_START_OF_ROUND clan_rank = CLAN_RANK_UNBLOODED_INT @@ -111,6 +114,7 @@ // ELITE /datum/equipment_preset/yautja/elite name = "Yautja Elite" + minimap_icon = "predator_elite" flags = EQUIPMENT_PRESET_START_OF_ROUND default_cape_type = PRED_YAUTJA_HALF_CAPE clan_rank = CLAN_RANK_ELITE_INT @@ -123,6 +127,7 @@ // ELDER /datum/equipment_preset/yautja/elder name = "Yautja Elder" + minimap_icon = "predator_elder" flags = EQUIPMENT_PRESET_START_OF_ROUND default_cape_type = PRED_YAUTJA_THIRD_CAPE clan_rank = CLAN_RANK_ELDER_INT @@ -139,6 +144,7 @@ // CLAN LEADER /datum/equipment_preset/yautja/leader name = "Yautja Leader" + minimap_icon = "predator_leader" flags = EQUIPMENT_PRESET_START_OF_ROUND default_cape_type = PRED_YAUTJA_CAPE clan_rank = CLAN_RANK_LEADER_INT @@ -155,6 +161,7 @@ // ANCIENT /datum/equipment_preset/yautja/ancient name = "Yautja Ancient" + minimap_icon = "predator_ancient" flags = EQUIPMENT_PRESET_START_OF_ROUND default_cape_type = PRED_YAUTJA_PONCHO clan_rank = CLAN_RANK_ADMIN_INT diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index 871bae54b8fd..28b043d5f796 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -119,6 +119,7 @@ var/datum/caste_datum/caste = xeno.caste serialized["caste"] = caste.caste_type serialized["icon"] = caste.minimap_icon + serialized["background_icon"] = caste.minimap_background serialized["hivenumber"] = xeno.hivenumber serialized["area_name"] = get_area_name(xeno) xenos += list(serialized) @@ -142,9 +143,9 @@ serialized["icon"] = icon ? icon : "private" if(human.assigned_squad) - serialized["background_color"] = human.assigned_squad.equipment_color ? human.assigned_squad.equipment_color : human.assigned_squad.minimap_color + serialized["background_icon"] = human.assigned_squad.background_icon else - serialized["background_color"] = human.assigned_equipment_preset?.minimap_background + serialized["background_icon"] = human.assigned_equipment_preset?.minimap_background if(istype(get_area(human), /area/tdome)) in_thunderdome += list(serialized) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm b/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm index 254ed91e4391..556b221f21ab 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm @@ -47,6 +47,8 @@ minimap_icon = "xenoqueen" + minimap_background = "xeno_ruler" + royal_caste = TRUE /proc/update_living_queens() // needed to update when you change a queen to a different hive diff --git a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm index feee2edecb67..995f4985487a 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm @@ -132,6 +132,7 @@ var/minimum_evolve_time = 1 MINUTES /// Iconstate for the xeno on the minimap var/minimap_icon = "xeno" + var/minimap_background = "background_xeno" ///The iconstate for leadered xenos on the minimap, added as overlay var/minimap_leadered_overlay = "xenoleader" @@ -175,8 +176,7 @@ return minimum_xeno_playtime - client.get_total_xeno_playtime() /datum/caste_datum/proc/get_minimap_icon() - var/image/background = mutable_appearance('icons/ui_icons/map_blips.dmi', "background") - background.color = MINIMAP_ICON_BACKGROUND_XENO + var/image/background = mutable_appearance('icons/ui_icons/map_blips.dmi', minimap_background) var/iconstate = minimap_icon ? minimap_icon : "unknown" var/mutable_appearance/icon = image('icons/ui_icons/map_blips.dmi', icon_state = iconstate) diff --git a/icons/mob/hud/marine_hud.dmi b/icons/mob/hud/marine_hud.dmi index 8aff95b8b33ddf780dcb6899151b828fc082372d..d1ad4eedb312a022b961c31b6ffd516cc25f1666 100644 GIT binary patch literal 14507 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 literal 13462 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 { const { act } = useBackend(); const { color, item } = props; - const { health, icon, full_name, nickname, orbiters, ref, background_color } = - item; + const { + health, + icon, + full_name, + nickname, + orbiters, + ref, + background_color, + background_icon, + } = item; const displayHealth = typeof health === 'number'; @@ -465,7 +473,11 @@ const ObservableItem = (props: { > {displayHealth && } {!!icon && ( - + )} {capitalizeFirst(getDisplayName(full_name, nickname))} {!!orbiters && ( @@ -482,7 +494,15 @@ const ObservableItem = (props: { /** Displays some info on the mob as a tooltip. */ const ObservableTooltip = (props: { readonly item: Observable }) => { const { - item: { caste, health, job, full_name, icon, background_color }, + item: { + caste, + health, + job, + full_name, + icon, + background_color, + background_icon, + }, } = props; const displayHealth = typeof health === 'number'; @@ -496,7 +516,11 @@ const ObservableTooltip = (props: { readonly item: Observable }) => { {!!caste && ( {!!icon && ( - + )} {caste} @@ -504,7 +528,11 @@ const ObservableTooltip = (props: { readonly item: Observable }) => { {!!job && ( {!!icon && ( - + )} {job} @@ -520,24 +548,40 @@ const ObservableTooltip = (props: { readonly item: Observable }) => { const ObservableIcon = (props: { readonly icon: Observable['icon']; readonly background_color: Observable['background_color']; + readonly background_icon: Observable['background_icon']; }) => { const { data } = useBackend(); const { icons = [] } = data; - const { icon, background_color } = props; - if (!icon || !icons[icon]) { + const { icon, background_color, background_icon } = props; + if (!icon || !icons[icon] || !background_icon || !icons[background_icon]) { return null; } return ( - + <> + + + ); }; diff --git a/tgui/packages/tgui/interfaces/Orbit/types.ts b/tgui/packages/tgui/interfaces/Orbit/types.ts index d1a360de0d72..3ef1268762ee 100644 --- a/tgui/packages/tgui/interfaces/Orbit/types.ts +++ b/tgui/packages/tgui/interfaces/Orbit/types.ts @@ -35,6 +35,7 @@ export type Observable = { icon?: string; job?: string; background_color?: string; + background_icon?: string; full_name: string; nickname?: string; orbiters?: number;