diff --git a/code/_globalvars/lists/medals.dm b/code/_globalvars/lists/medals.dm new file mode 100755 index 0000000000..0d7903ef7e --- /dev/null +++ b/code/_globalvars/lists/medals.dm @@ -0,0 +1 @@ +GLOBAL_LIST_EMPTY(commendations) \ No newline at end of file diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm old mode 100644 new mode 100755 index e335669acc..afff0cdf59 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -583,6 +583,14 @@ SUBSYSTEM_DEF(ticker) mode.declare_station_goal_completion() + //medals, placed far down so that people can actually see the commendations. + if(GLOB.commendations) + to_chat(world, "Medal Commendations:") + for (var/com in GLOB.commendations) + to_chat(world, com) + + CHECK_TICK + CHECK_TICK //Adds the del() log to world.log in a format condensable by the runtime condenser found in tools diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm old mode 100644 new mode 100755 index 4c39d11691..1cced13cb4 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -22,6 +22,7 @@ var/internals_slot = null //ID of slot containing a gas tank var/list/backpack_contents = null // In the list(path=count,otherpath=count) format var/list/implants = null + var/accessory = null var/can_be_admin_equipped = TRUE // Set to FALSE if your outfit requires runtime parameters @@ -64,6 +65,13 @@ if(suit_store) H.equip_to_slot_or_del(new suit_store(H),slot_s_store) + if(accessory) + var/obj/item/clothing/under/U = H.w_uniform + if(U) + U.attach_accessory(new accessory(H)) + else + WARNING("Unable to equip accessory [accessory] in outfit [name]. No uniform present!") + if(l_hand) H.put_in_l_hand(new l_hand(H)) if(r_hand) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 3653d7a395..93321a053a 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -85,6 +85,7 @@ item_color = "bronze" materials = list(MAT_METAL=1000) resistance_flags = FIRE_PROOF + var/commended = FALSE //Pinning medals on people /obj/item/clothing/accessory/medal/attack(mob/living/carbon/human/M, mob/living/user) @@ -103,6 +104,9 @@ else user.visible_message("[user] is trying to pin [src] on [M]'s chest.", \ "You try to pin [src] on [M]'s chest.") + var/input + if(!commended && user != M) + input = stripped_input(user,"Please input a reason for this commendation, it will be recorded by Nanotrasen.", ,"", 140) if(do_after(user, delay, target = M)) if(U.attach_accessory(src, user, 0)) //Attach it, do not notify the user of the attachment if(user == M) @@ -110,6 +114,12 @@ else user.visible_message("[user] pins \the [src] on [M]'s chest.", \ "You pin \the [src] on [M]'s chest.") + if(input) + SSblackbox.add_details("commendation", json_encode(list("commender" = "[user.real_name]", "commendee" = "[M.real_name]", "medal" = "[src]", "reason" = input))) + GLOB.commendations += "[user.real_name] awarded [M.real_name] the [name]! \n- [input]" + commended = TRUE + log_game("[key_name(M)] was given the following commendation by [key_name(user)]: [input]") + message_admins("[key_name(M)] was given the following commendation by [key_name(user)]: [input]") else to_chat(user, "Medals can only be pinned on jumpsuits!") else ..() diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm old mode 100644 new mode 100755 index 25ae27f769..da7e3da6b3 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -47,6 +47,7 @@ Captain implants = list(/obj/item/weapon/implant/mindshield) + accessory = /obj/item/clothing/accessory/medal/gold/captain /* Head of Personnel diff --git a/tgstation.dme b/tgstation.dme index 792fbf7f0d..c1bbac4d4a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -111,6 +111,7 @@ #include "code\_globalvars\lists\flavor_misc.dm" #include "code\_globalvars\lists\maintenance_loot.dm" #include "code\_globalvars\lists\mapping.dm" +#include "code\_globalvars\lists\medals.dm" #include "code\_globalvars\lists\mobs.dm" #include "code\_globalvars\lists\names.dm" #include "code\_globalvars\lists\objects.dm" diff --git a/tgstation.dme.rej b/tgstation.dme.rej deleted file mode 100644 index 64015ccf29..0000000000 --- a/tgstation.dme.rej +++ /dev/null @@ -1,10 +0,0 @@ -diff a/tgstation.dme b/tgstation.dme (rejected hunks) -@@ -1169,7 +1169,7 @@ - #include "code\modules\clothing\masks\gasmask.dm" - #include "code\modules\clothing\masks\hailer.dm" - #include "code\modules\clothing\masks\miscellaneous.dm" --#include "code\modules\clothing\neck\ties.dm" -+#include "code\modules\clothing\neck\neck.dm" - #include "code\modules\clothing\outfits\ert.dm" - #include "code\modules\clothing\outfits\standard.dm" - #include "code\modules\clothing\shoes\bananashoes.dm"