diff --git a/code/datums/mind.dm b/code/datums/mind.dm index c058e2ff5d..bee722f1b4 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -61,10 +61,13 @@ //put this here for easier tracking ingame var/datum/money_account/initial_account - + //used for antag tcrystal trading, more info in code\game\objects\items\telecrystals.dm var/accept_tcrystals = 0 + //used for optional self-objectives that antagonists can give themselves, which are displayed at the end of the round. + var/ambitions + /datum/mind/New(var/key) src.key = key @@ -147,7 +150,7 @@ if(href_list["add_antagonist"]) var/datum/antagonist/antag = all_antag_types[href_list["add_antagonist"]] - if(antag) + if(antag) if(antag.add_antagonist(src, 1, 1, 0, 1, 1)) // Ignore equipment and role type for this. log_admin("[key_name_admin(usr)] made [key_name(src)] into a [antag.role_text].") else diff --git a/code/game/antagonist/antagonist_create.dm b/code/game/antagonist/antagonist_create.dm index 65c7a080cd..5d1663b8dd 100644 --- a/code/game/antagonist/antagonist_create.dm +++ b/code/game/antagonist/antagonist_create.dm @@ -105,6 +105,11 @@ show_objectives(player) + player.current << "Once you decide on a goal to pursue, you can optionally display it to \ + everyone at the end of the shift with the Set Ambition verb, located in the IC tab. You can change this at any time, \ + and it otherwise has no bearing on your round." + player.current.verbs |= /mob/living/proc/write_ambition + // Clown clumsiness check, I guess downstream might use it. if (player.current.mind) if (player.current.mind.assigned_role == "Clown") diff --git a/code/game/antagonist/antagonist_objectives.dm b/code/game/antagonist/antagonist_objectives.dm index f9b3f8116b..b47bab2fe5 100644 --- a/code/game/antagonist/antagonist_objectives.dm +++ b/code/game/antagonist/antagonist_objectives.dm @@ -30,3 +30,21 @@ world << "[loss_text]" if(loss_feedback_tag) feedback_set_details("round_end_result","[loss_feedback_tag]") +/mob/living/proc/write_ambition() + set name = "Set Ambition" + set category = "IC" + set src = usr + + if(!mind) + return + if(!src.mind.special_role) + src << "While you may perhaps have goals, this verb's meant to only be visible \ + to antagonists. Please make a bug report!" + return + var/new_ambitions = input(src, "Write a short sentence of what your character hopes to accomplish \ + today as an antagonist. Remember that this is purely optional. It will be shown at the end of the \ + round for everybody else.", "Ambitions", mind.ambitions) as null|message + new_ambitions = sanitize(new_ambitions) + if(new_ambitions) + mind.ambitions = new_ambitions + src << "You've set your goal to be '[new_ambitions]'." diff --git a/code/game/antagonist/antagonist_print.dm b/code/game/antagonist/antagonist_print.dm index ea107824d5..62f9eabbd1 100644 --- a/code/game/antagonist/antagonist_print.dm +++ b/code/game/antagonist/antagonist_print.dm @@ -7,6 +7,9 @@ for(var/datum/mind/P in current_antagonists) text += print_player_full(P) text += get_special_objective_text(P) + if(P.ambitions) + text += "
Their goals for today were..." + text += "
[P.ambitions]" if(!global_objectives.len && P.objectives && P.objectives.len) var/failed var/num = 1