diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 0e23b99a9cc2..752d1b5ccae6 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -398,7 +398,6 @@ SUBSYSTEM_DEF(ticker) var/mob/M = J.spawn_in_player(player) if(istype(M)) J.equip_job(M) - EquipCustomItems(M) if(M.client) var/client/C = M.client @@ -428,7 +427,6 @@ SUBSYSTEM_DEF(ticker) captainless = FALSE if(player.job) RoleAuthority.equip_role(player, RoleAuthority.roles_by_name[player.job], late_join = FALSE) - EquipCustomItems(player) if(player.client) var/client/C = player.client if(C.player_data && C.player_data.playtime_loaded && length(C.player_data.playtimes) == 0) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index ba5d52a23f97..ee8a710cd495 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -393,6 +393,21 @@ var/list/roundstart_mod_verbs = list( prefs.save_preferences() return +/client/proc/claim_donor() + set category = "OOC.Donor" + set name = "Claim Donor Gear" + if(!donator) + to_chat(usr, SPAN_WARNING("You are not a donator. How did you get this?")) + log_debug("[key_name(mob)] attempted to claim donor gear without being on the donor list.") + remove_verb(src, /client/proc/claim_donor)//Little bit of self-policing. + return FALSE + if(!ishuman(mob)) + to_chat(usr, SPAN_WARNING("You need to be a living human to do this.")) + return FALSE + log_game("[key_name(mob)] claimed their donor gear at [get_area_name(mob)].")//No gaming it in the field for free stuff. + mob.attack_log += text("\[[time_stamp()]\] [key_name(mob)] claimed their donor gear at [get_area_name(mob)].") + EquipCustomItems(mob) + return TRUE #define MAX_WARNS 3 #define AUTOBANTIME 10 diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 6926175c835a..af9e52307b32 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -436,6 +436,8 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( if(src.ckey == line) src.donator = 1 add_verb(src, /client/proc/set_ooc_color_self) + add_verb(src, /client/proc/claim_donor) + to_chat(src, SPAN_YAUTJABOLDBIG("If you have special donor gear, you may claim it from the OOC tab.")) //if(prefs.window_skin & TOGGLE_WINDOW_SKIN) // set_night_skin() diff --git a/code/modules/customitems/item_spawning.dm b/code/modules/customitems/item_spawning.dm index 3bf8e5e71f33..2d407dcca3d0 100644 --- a/code/modules/customitems/item_spawning.dm +++ b/code/modules/customitems/item_spawning.dm @@ -7,17 +7,19 @@ GLOBAL_LIST_FILE_LOAD(custom_items, "config/custom_items.txt") /proc/EquipCustomItems(mob/living/carbon/human/M) + var/client/donor = M.client + remove_verb(donor, /client/proc/claim_donor) for(var/line in GLOB.custom_items) // split & clean up var/list/Entry = splittext(line, ":") for(var/i = 1 to Entry.len) Entry[i] = trim(Entry[i]) - if(Entry.len < 3) + if(Entry.len < 2) continue; - if(Entry[1] == M.ckey && Entry[2] == M.real_name) - var/list/Paths = splittext(Entry[3], ",") + if(Entry[1] == M.ckey) + var/list/Paths = splittext(Entry[2], ",") for(var/P in Paths) var/ok = 0 // 1 if the item was placed successfully P = trim(P) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 9f88f0f9d611..341fc9406396 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -245,7 +245,6 @@ var/mob/living/carbon/human/character = create_character(TRUE) //creates the human and transfers vars and mind RoleAuthority.equip_role(character, RoleAuthority.roles_for_mode[rank], late_join = TRUE) - EquipCustomItems(character) if(security_level > SEC_LEVEL_BLUE || EvacuationAuthority.evac_status) to_chat(character, SPAN_HIGHDANGER("As you stagger out of hypersleep, the sleep bay blares: '[EvacuationAuthority.evac_status ? "VESSEL UNDERGOING EVACUATION PROCEDURES, SELF DEFENSE KIT PROVIDED" : "VESSEL IN HEIGHTENED ALERT STATUS, SELF DEFENSE KIT PROVIDED"]'."))