diff --git a/.vscode/settings.json b/.vscode/settings.json index 201562aaf7..c7b218b775 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ "**/.pnp.*": true }, "editor.codeActionsOnSave": { - "source.fixAll.eslint": true + "source.fixAll.eslint": "explicit" }, "files.eol": "\n", "files.insertFinalNewline": true, diff --git a/code/datums/medal_awards.dm b/code/datums/medal_awards.dm index 54af48fd33..c60409dab2 100644 --- a/code/datums/medal_awards.dm +++ b/code/datums/medal_awards.dm @@ -3,6 +3,8 @@ #define MARINE_VALOR_MEDAL "medal of valor" #define MARINE_HEROISM_MEDAL "medal of exceptional heroism" +#define ALL_MARINE_MEDALS list(MARINE_CONDUCT_MEDAL, MARINE_BRONZE_HEART_MEDAL, MARINE_VALOR_MEDAL, MARINE_HEROISM_MEDAL) + #define XENO_SLAUGHTER_MEDAL "royal jelly of slaughter" #define XENO_RESILIENCE_MEDAL "royal jelly of resilience" #define XENO_SABOTAGE_MEDAL "royal jelly of sabotage" @@ -35,7 +37,6 @@ GLOBAL_LIST_EMPTY(jelly_awards) giver_mob = list() giver_ckey = list() - /proc/give_medal_award(medal_location, as_admin = FALSE) if(as_admin && !check_rights(R_ADMIN)) as_admin = FALSE @@ -45,14 +46,22 @@ GLOBAL_LIST_EMPTY(jelly_awards) var/list/recipient_ranks = list() for(var/datum/data/record/record in GLOB.data_core.general) var/recipient_name = record.fields["name"] + if(usr.real_name == recipient_name && !as_admin) + continue recipient_ranks[recipient_name] = record.fields["rank"] possible_recipients += recipient_name + var/chosen_recipient = tgui_input_list(usr, "Who do you want to award a medal to?", "Medal Recipient", possible_recipients) if(!chosen_recipient) return FALSE + var/list/choosable_medals = list(MARINE_CONDUCT_MEDAL) + + if(as_admin) + choosable_medals = ALL_MARINE_MEDALS + // Pick a medal - var/medal_type = tgui_input_list(usr, "What type of medal do you want to award?", "Medal Type", list(MARINE_CONDUCT_MEDAL, MARINE_BRONZE_HEART_MEDAL, MARINE_VALOR_MEDAL, MARINE_HEROISM_MEDAL)) + var/medal_type = tgui_input_list(usr, "What type of medal do you want to award?", "Medal Type", choosable_medals) if(!medal_type) return FALSE @@ -179,6 +188,14 @@ GLOBAL_LIST_EMPTY(jelly_awards) user.visible_message("ERROR: ID card not registered for [user.real_name] in USCM registry. Potential medal fraud detected.") return + if(!(FACTION_USCM in user.faction_group)) + to_chat(user, SPAN_WARNING("Medals only available for USCM personnel.")) + return + + if(length(GLOB.medal_awards)) + to_chat(user, SPAN_WARNING("Only one medal may be awarded per operation.")) + return + if(give_medal_award(get_turf(printer))) user.visible_message(SPAN_NOTICE("[printer] prints a medal.")) diff --git a/code/datums/paygrades/paygrade.dm b/code/datums/paygrades/paygrade.dm index bb0a3aa84b..947f9dc094 100644 --- a/code/datums/paygrades/paygrade.dm +++ b/code/datums/paygrades/paygrade.dm @@ -51,7 +51,10 @@ GLOBAL_LIST_INIT(co_paygrades, list( "MO6E", "MO6C", "MO5", - "MO4" + "MO4", + "MO3", + "MO2", + "MO1", )) GLOBAL_LIST_INIT(wy_paygrades, list( diff --git a/code/modules/cm_marines/overwatch.dm b/code/modules/cm_marines/overwatch.dm index 7b6572a781..243ecd9342 100644 --- a/code/modules/cm_marines/overwatch.dm +++ b/code/modules/cm_marines/overwatch.dm @@ -464,10 +464,17 @@ return change_lead(user, params["ref"]) + if("award_medal") + print_medal(user, src) + return + if("insubordination") mark_insubordination() + return + if("transfer_marine") transfer_squad() + return if("change_locations_ignored") switch(z_hidden) diff --git a/tgui/packages/tgui/interfaces/OverwatchConsole.js b/tgui/packages/tgui/interfaces/OverwatchConsole.js index 62d1b6ee0d..c3f33ec023 100644 --- a/tgui/packages/tgui/interfaces/OverwatchConsole.js +++ b/tgui/packages/tgui/interfaces/OverwatchConsole.js @@ -418,11 +418,8 @@ const SquadMonitor = (props, context) => { onClick={() => act('transfer_marine')}> Transfer Marine - }>