diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index f319e8ec47..d9788db20f 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -416,6 +416,7 @@ SUBSYSTEM_DEF(job) if(job.dresscodecompliant)// CIT CHANGE - dress code compliance equip_loadout(N, H) // CIT CHANGE - allows players to spawn with loadout items job.after_spawn(H, M) + equip_loadout(N, H, TRUE)//CIT CHANGE - makes players spawn with in-backpack loadout items properly. A little hacky but it works handle_roundstart_items(H, M.ckey, H.mind.assigned_role, H.mind.special_role) //CIT CHANGE - makes donators spawn with their items. This can safely be commented out when all of the donator items are migrated to the loadout system diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 469318b0be..7f9d928c9a 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -571,14 +571,21 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Description" for(var/j in GLOB.loadout_items[gear_tab]) var/datum/gear/gear = GLOB.loadout_items[gear_tab][j] + var/donoritem + if(gear.ckeywhitelist && gear.ckeywhitelist.len) + donoritem = TRUE + if(!(user.ckey in gear.ckeywhitelist)) + continue var/class_link = "" if(gear.type in chosen_gear) - class_link = "class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=0'" + class_link = "style='white-space:normal;' class='linkOn' href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=0'" else if(gear_points <= 0) - class_link = "class='linkOff'" + class_link = "style='white-space:normal;' class='linkOff'" + else if(donoritem) + class_link = "style='white-space:normal;background:#ebc42e;' href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=1'" else - class_link = "href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=1'" - dat += "[j]" + class_link = "style='white-space:normal;' href='?_src_=prefs;preference=gear;toggle_gear_path=[j];toggle_gear=1'" + dat += "[j]" dat += "[gear.cost]" if(islist(gear.restricted_roles)) if(gear.restricted_roles.len) @@ -1690,6 +1697,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(!is_loadout_slot_available(G.category)) to_chat(user, "You cannot take this loadout, as you've already chosen too many of the same category!") return + if(G.ckeywhitelist && G.ckeywhitelist.len && !(user.ckey in G.ckeywhitelist)) + to_chat(user, "This is an item intended for donator use only. You are not authorized to use this item.") + return if(gear_points >= initial(G.cost)) LAZYADD(chosen_gear, G.type) gear_points -= initial(G.cost) diff --git a/modular_citadel/code/controllers/subsystem/job.dm b/modular_citadel/code/controllers/subsystem/job.dm index 16351bc534..b7517675e9 100644 --- a/modular_citadel/code/controllers/subsystem/job.dm +++ b/modular_citadel/code/controllers/subsystem/job.dm @@ -1,4 +1,4 @@ -/datum/controller/subsystem/job/proc/equip_loadout(mob/dead/new_player/N, mob/living/M) +/datum/controller/subsystem/job/proc/equip_loadout(mob/dead/new_player/N, mob/living/M, equipbackpackstuff) var/mob/the_mob = N if(!the_mob) the_mob = M // cause this doesn't get assigned if player is a latejoiner @@ -13,7 +13,11 @@ var/permitted = TRUE if(G.restricted_roles && G.restricted_roles.len && !(M.job in G.restricted_roles)) permitted = FALSE - if(G.ckeywhitelist && !(M.ckey in G.ckeywhitelist)) + if(G.ckeywhitelist && G.ckeywhitelist.len && !(the_mob.client.ckey in G.ckeywhitelist)) + permitted = FALSE + if(!equipbackpackstuff && G.category == slot_in_backpack)//snowflake check since plopping stuff in the backpack doesnt work for pre-job equip loadout stuffs + permitted = FALSE + if(equipbackpackstuff && G.category != slot_in_backpack)//snowflake check since plopping stuff in the backpack doesnt work for pre-job equip loadout stuffs permitted = FALSE if(!permitted) continue diff --git a/modular_citadel/code/modules/client/loadout/backpack.dm b/modular_citadel/code/modules/client/loadout/backpack.dm new file mode 100644 index 0000000000..2779d6f124 --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/backpack.dm @@ -0,0 +1,24 @@ +/datum/gear/plushcarp + name = "Space carp plushie" + category = slot_in_backpack + path = /obj/item/toy/plush/carpplushie + +/datum/gear/plushliz + name = "Lizard plushie" + category = slot_in_backpack + path = /obj/item/toy/plush/lizardplushie + +/datum/gear/plushsnek + name = "Snake plushie" + category = slot_in_backpack + path = /obj/item/toy/plush/snakeplushie + +/datum/gear/plushslime + name = "Slime plushie" + category = slot_in_backpack + path = /obj/item/toy/plush/slimeplushie + +/datum/gear/dildo + name = "Customizable dildo" + category = slot_in_backpack + path = /obj/item/dildo/custom diff --git a/modular_citadel/code/modules/client/loadout/donator.dm b/modular_citadel/code/modules/client/loadout/donator.dm new file mode 100644 index 0000000000..893a4281a5 --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/donator.dm @@ -0,0 +1,13 @@ +//This is the file that handles donator loadout items. + +/datum/gear/aaapingcoderfailsafe + name = "IF YOU SEE THIS, PING A CODER RIGHT NOW!" + category = slot_in_backpack + path = /obj/item/bikehorn/golden + ckeywhitelist = list("This entry should never appear with this variable set. If it does, then that means somebody fucked up the whitelist system hardcore") + +/datum/gear/donortestingbikehorn + name = "Only coders should see this" + category = slot_in_backpack + path = /obj/item/bikehorn + ckeywhitelist = list("deathride58") diff --git a/modular_citadel/code/modules/client/loadout/hands.dm b/modular_citadel/code/modules/client/loadout/hands.dm index 8768517a31..cc5e6b8e71 100644 --- a/modular_citadel/code/modules/client/loadout/hands.dm +++ b/modular_citadel/code/modules/client/loadout/hands.dm @@ -13,11 +13,6 @@ category = slot_hands path = /obj/item/storage/pill_bottle/dice -/datum/gear/flyswatter - name = "Flyswatter" - category = slot_hands - path = /obj/item/melee/flyswatter - /datum/gear/eightball name = "Magic eightball" category = slot_hands diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm new file mode 100644 index 0000000000..9e0a3272ab --- /dev/null +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -0,0 +1,59 @@ +/datum/gear/poncho + name = "Poncho" + category = slot_wear_suit + path = /obj/item/clothing/suit/poncho + +/datum/gear/ponchogreen + name = "Green poncho" + category = slot_wear_suit + path = /obj/item/clothing/suit/poncho/green + +/datum/gear/ponchored + name = "Red poncho" + category = slot_wear_suit + path = /obj/item/clothing/suit/poncho/red + +/datum/gear/jacketbomber + name = "Bomber jacket" + category = slot_wear_suit + path = /obj/item/clothing/suit/jacket + +/datum/gear/jacketleather + name = "Leather jacket" + category = slot_wear_suit + path = /obj/item/clothing/suit/jacket/leather + +/datum/gear/overcoatleather + name = "Leather overcoat" + category = slot_wear_suit + path = /obj/item/clothing/suit/jacket/leather/overcoat + +/datum/gear/jacketpuffer + name = "Puffer jacket" + category = slot_wear_suit + path = /obj/item/clothing/suit/jacket/puffer + +/datum/gear/vestpuffer + name = "Puffer vest" + category = slot_wear_suit + path = /obj/item/clothing/suit/jacket/puffer/vest + +/datum/gear/jacketlettermanbrown + name = "Brown letterman jacket" + category = slot_wear_suit + path = /obj/item/clothing/suit/jacket/letterman + +/datum/gear/jacketlettermanred + name = "Red letterman jacket" + category = slot_wear_suit + path = /obj/item/clothing/suit/jacket/letterman_red + +/datum/gear/jacketlettermanNT + name = "Nanotrasen letterman jacket" + category = slot_wear_suit + path = /obj/item/clothing/suit/jacket/letterman_nanotrasen + +/datum/gear/coat + name = "Winter coat" + category = slot_wear_suit + path = /obj/item/clothing/suit/hooded/wintercoat diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index 38a462641f..c500c1acc8 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -1,39 +1,39 @@ -/datum/gear/suit +/datum/gear/suitblack name = "Black suit" category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket -/datum/gear/greensuit +/datum/gear/suitgreen name = "Green suit" category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/green -/datum/gear/redsuit +/datum/gear/suitred name = "Red suit" category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/red -/datum/gear/charcoalsuit +/datum/gear/suitcharcoal name = "Charcoal suit" category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/charcoal -/datum/gear/navysuit +/datum/gear/suitnavy name = "Navy suit" category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/navy -/datum/gear/burgundysuit +/datum/gear/suitburgundy name = "Burgundy suit" category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/burgundy -/datum/gear/tansuit +/datum/gear/suittan name = "Tan suit" category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/tan -/datum/gear/whitesuit +/datum/gear/suitwhite name = "White suit" category = slot_w_uniform path = /obj/item/clothing/under/suit_jacket/white @@ -47,3 +47,33 @@ name = "Maid costume" category = slot_w_uniform path = /obj/item/clothing/under/maid + +/datum/gear/mailmanuniform + name = "Mailman's jumpsuit" + category = slot_w_uniform + path = /obj/item/clothing/under/rank/mailman + +/datum/gear/skirtblack + name = "Black skirt" + category = slot_w_uniform + path = /obj/item/clothing/under/skirt/black + +/datum/gear/skirtblue + name = "Blue skirt" + category = slot_w_uniform + path = /obj/item/clothing/under/skirt/blue + +/datum/gear/skirtred + name = "Red skirt" + category = slot_w_uniform + path = /obj/item/clothing/under/skirt/red + +/datum/gear/skirtpurple + name = "Purple skirt" + category = slot_w_uniform + path = /obj/item/clothing/under/skirt/purple + +/datum/gear/kilt + name = "Kilt" + category = slot_w_uniform + path = /obj/item/clothing/under/kilt diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm index 35504ed475..259dc58c8b 100644 --- a/modular_citadel/code/modules/client/preferences.dm +++ b/modular_citadel/code/modules/client/preferences.dm @@ -3,7 +3,7 @@ #define BACKPACK_SLOT_AMT 3 /datum/preferences - var/gear_points = 5 + var/gear_points = 10 var/list/gear_categories var/list/chosen_gear var/gear_tab diff --git a/tgstation.dme b/tgstation.dme index c016542d9a..7dd1a55432 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2499,6 +2499,8 @@ #include "modular_citadel\code\game\objects\items\melee\eutactic_blades.dm" #include "modular_citadel\code\modules\client\preferences.dm" #include "modular_citadel\code\modules\client\preferences_savefile.dm" +#include "modular_citadel\code\modules\client\loadout\backpack.dm" +#include "modular_citadel\code\modules\client\loadout\donator.dm" #include "modular_citadel\code\modules\client\loadout\glasses.dm" #include "modular_citadel\code\modules\client\loadout\hands.dm" #include "modular_citadel\code\modules\client\loadout\head.dm" @@ -2506,6 +2508,7 @@ #include "modular_citadel\code\modules\client\loadout\mask.dm" #include "modular_citadel\code\modules\client\loadout\neck.dm" #include "modular_citadel\code\modules\client\loadout\shoes.dm" +#include "modular_citadel\code\modules\client\loadout\suit.dm" #include "modular_citadel\code\modules\client\loadout\uniform.dm" #include "modular_citadel\code\modules\crafting\recipes.dm" #include "modular_citadel\code\modules\mining\mine_items.dm"