diff --git a/code/__DEFINES/~skyrat_defines/ambitions.dm b/code/__DEFINES/~skyrat_defines/ambitions.dm
deleted file mode 100644
index c5066594580..00000000000
--- a/code/__DEFINES/~skyrat_defines/ambitions.dm
+++ /dev/null
@@ -1,31 +0,0 @@
-#define AMBITION_INTENSITY_STEALTH 2
-#define AMBITION_INTENSITY_MILD 3
-#define AMBITION_INTENSITY_MEDIUM 5
-#define AMBITION_INTENSITY_SEVERE 12
-#define AMBITION_INTENSITY_EXTREME 20
-
-#define ADMIN_TPMONTY_NONAME(user) "[ADMIN_QUE(user)] [ADMIN_JMP(user)] [ADMIN_FLW(user)]"
-#define ADMIN_TPMONTY(user) "[key_name_admin(user)] [ADMIN_TPMONTY_NONAME(user)]"
-
-GLOBAL_LIST_EMPTY(ambitions_to_review)
-GLOBAL_VAR_INIT(total_intensity, 0)
-GLOBAL_LIST_INIT(intensity_counts, setup_intensity_count_list())
-GLOBAL_LIST_INIT(ambitions_templates, setup_ambition_templates())
-
-/proc/setup_intensity_count_list()
- var/list/LI = list()
- LI["[AMBITION_INTENSITY_STEALTH]"] = 0
- LI["[AMBITION_INTENSITY_MILD]"] = 0
- LI["[AMBITION_INTENSITY_MEDIUM]"] = 0
- LI["[AMBITION_INTENSITY_SEVERE]"] = 0
- LI["[AMBITION_INTENSITY_EXTREME]"] = 0
- return LI
-
-/proc/setup_ambition_templates()
- var/list/LI = list()
- for(var/path in subtypesof(/datum/ambition_template))
- var/datum/ambition_template/P = path
- if(initial(P.name))
- P = new path()
- LI[P.name] = P
- return LI
diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index 0cba25cb090..af630d55626 100644
--- a/code/__HELPERS/roundend.dm
+++ b/code/__HELPERS/roundend.dm
@@ -631,27 +631,6 @@
currrent_category = A.roundend_category
previous_category = A
result += A.roundend_report()
- //SKYRAT EDIT ADDITION BEGIN - AMBITIONS
- if(A.owner && A.owner.my_ambitions)
- var/datum/ambitions/AMB = A.owner.my_ambitions
- result += "
Narrative: [AMB.narrative]"
- result += "
Objectives:"
- for(var/stri in AMB.objectives)
- result += "
* [stri]"
- var/intensity = "NOT SET"
- switch(AMB.intensity)
- if(AMBITION_INTENSITY_STEALTH)
- intensity = "Stealth"
- if(AMBITION_INTENSITY_MILD)
- intensity = "Mild"
- if(AMBITION_INTENSITY_MEDIUM)
- intensity = "Medium"
- if(AMBITION_INTENSITY_SEVERE)
- intensity = "Severe"
- if(AMBITION_INTENSITY_EXTREME)
- intensity = "Extreme"
- result += "
Intensity: [intensity]"
- //SKYRAT EDIT ADDITION END - AMBITIONS
result += "
"
CHECK_TICK
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 2b260db4730..23ef37b66fa 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -161,11 +161,6 @@
var/mob/living/old_current = current
if(current)
current.transfer_observers_to(new_character) //transfer anyone observing the old character to the new one
- //SKYRAT CHANGE ADDITION BEGIN - AMBITIONS
- if(my_ambitions)
- remove_verb(current, /mob/proc/view_ambitions)
- add_verb(new_character, /mob/proc/view_ambitions)
- //SKYRAT CHANGE ADDITION END
set_current(new_character) //associate ourself with our new body
QDEL_NULL(antag_hud)
new_character.mind = src //and associate our new body with ourself
@@ -306,17 +301,7 @@
antag_team.add_member(src)
INVOKE_ASYNC(A, /datum/antagonist.proc/on_gain)
log_game("[key_name(src)] has gained antag datum [A.name]([A.type])")
- //SKYRAT EDIT ADDITION BEGIN - AMBITIONS
- if(A.uses_ambitions)
- if(!my_ambitions)
- my_ambitions = new(src)
- add_verb(current, /mob/proc/view_ambitions)
- //If we already have ambitions done, call the add proc to give us the proper powers/uplinks
- if(my_ambitions.submitted)
- A.ambitions_add()
- //SKYRAT EDIT ADDITION END
- //SKYRAT EDIT ADDITION - EXPLOITABLES MENU
- src.handle_exploitables_menu()
+ src.handle_exploitables_menu() //SKYRAT EDIT ADDITION - EXPLOITABLES MENU
return A
/datum/mind/proc/remove_antag_datum(datum_type)
@@ -325,12 +310,7 @@
var/datum/antagonist/A = has_antag_datum(datum_type)
if(A)
A.on_removal()
- //SKYRAT EDIT ADDITION BEGIN - AMBITIONS
- if(A.uses_ambitions && my_ambitions.submitted)
- A.ambitions_removal()
- //SKYRAT EDIT ADDITION END
- //SKYRAT EDIT ADDITION - EXPLOITABLE MENU
- src.handle_exploitables_menu()
+ src.handle_exploitables_menu() //SKYRAT EDIT ADDITION - EXPLOITABLE MENU
return TRUE
@@ -414,10 +394,6 @@
var/mob/living/carbon/human/traitor_mob = current
if (!istype(traitor_mob))
return
- //SKYRAT EDIT ADDITION BEGIN - AMBITIONS (no doubling uplinks)
- if(find_syndicate_uplink())
- return
- //SKYRAT EDIT ADDITION END
var/list/all_contents = traitor_mob.get_all_contents()
var/obj/item/pda/PDA = locate() in all_contents
@@ -673,13 +649,6 @@
else if (href_list["obj_announce"])
announce_objectives()
- //SKYRAT EDIT ADDITION BEGIN - AMBITIONS
- if (href_list["ambitions"])
- if(!my_ambitions)
- return
- //It's admin viewing the user's ambitions. The user can view them through a verb.
- my_ambitions.ShowPanel(usr, TRUE)
- //SKYRAT EDIT ADDITION END
//Something in here might have changed your mob
if(self_antagging && (!usr || !usr.client) && current.client)
diff --git a/code/modules/admin/antag_panel.dm b/code/modules/admin/antag_panel.dm
index 687b5716694..0e99742ca82 100644
--- a/code/modules/admin/antag_panel.dm
+++ b/code/modules/admin/antag_panel.dm
@@ -94,10 +94,6 @@ GLOBAL_VAR(antag_prototypes)
out += "Mind currently owned by key: [key] [active?"(synced)":"(not synced)"]
"
out += "Assigned role: [assigned_role.title]. Edit
"
out += "Faction and special role: [special_role]
"
- //SKYRAT EDIT ADDITION BEGIN - AMBITIONS
- if(my_ambitions)
- out += "Ambitions: View
"
- //SKYRAT EDIT ADDITION END
var/special_statuses = get_special_statuses()
if(length(special_statuses))
diff --git a/code/modules/admin/check_antagonists.dm b/code/modules/admin/check_antagonists.dm
index a3a99cb0062..1c0581c0282 100644
--- a/code/modules/admin/check_antagonists.dm
+++ b/code/modules/admin/check_antagonists.dm
@@ -34,24 +34,6 @@
else
parts += ""
parts += "Show Objective"
- //SKYRAT EDIT ADDITION BEGIN - AMBITIONS
- if(uses_ambitions && owner.current && owner.current.mind && owner.current.mind.my_ambitions)
- var/datum/ambitions/ambs = owner.current.mind.my_ambitions
- var/string = "NOT SUBMITTED"
- if(ambs.submitted)
- switch(ambs.intensity)
- if(AMBITION_INTENSITY_STEALTH)
- string = "Stealth"
- if(AMBITION_INTENSITY_MILD)
- string = "Mild"
- if(AMBITION_INTENSITY_MEDIUM)
- string = "Medium"
- if(AMBITION_INTENSITY_SEVERE)
- string = "Severe"
- if(AMBITION_INTENSITY_EXTREME)
- string = "Extreme"
- parts += "Ambitions-[string]"
- //SKYRAT EDIT ADDITION END
return parts //Better as one cell or two/three
//Builds table row for the antag
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 67805d9e9ec..8deb89e2199 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -112,13 +112,6 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
L[++L.len] = list("Closed Tickets:", "[cstatclick.update("[closed_tickets.len]")]", null, REF(cstatclick))
L[++L.len] = list("Resolved Tickets:", "[rstatclick.update("[resolved_tickets.len]")]", null, REF(rstatclick))
- //SKYRAT EDIT ADDITION BEGIN - AMBITIONS
- for(var/key in GLOB.ambitions_to_review)
- var/datum/ambitions/AMBI = key
- var/reviewer = GLOB.ambitions_to_review[key]
- L[++L.len] = list("[reviewer ? "H-[reviewer]. " : ""]AMB: [AMBI.owner_name]:", "[AMBI.narrative]", REF(AMBI))
- L[++L.len] = list("Ambitions intensity:", "STL:[GLOB.intensity_counts["[AMBITION_INTENSITY_STEALTH]"]] MLD:[GLOB.intensity_counts["[AMBITION_INTENSITY_MILD]"]] MED:[GLOB.intensity_counts["[AMBITION_INTENSITY_MEDIUM]"]] SEV:[GLOB.intensity_counts["[AMBITION_INTENSITY_SEVERE]"]] EXT:[GLOB.intensity_counts["[AMBITION_INTENSITY_EXTREME]"]] (HAVOC: [GLOB.total_intensity])", null)
- //SKYRAT EDIT ADDITION END
return L
//Reassociate still open ticket if one exists
diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm
index ff87dba2514..a8515780094 100644
--- a/code/modules/antagonists/_common/antag_datum.dm
+++ b/code/modules/antagonists/_common/antag_datum.dm
@@ -302,6 +302,7 @@ GLOBAL_LIST_EMPTY(antagonists)
//ADMIN TOOLS
+
//Called when using admin tools to give antag status
/datum/antagonist/proc/admin_add(datum/mind/new_owner,mob/admin)
message_admins("[key_name_admin(admin)] made [key_name_admin(new_owner)] into [name].")
@@ -314,12 +315,8 @@ GLOBAL_LIST_EMPTY(antagonists)
return
message_admins("[key_name_admin(user)] has removed [name] antagonist status from [key_name_admin(owner)].")
log_admin("[key_name(user)] has removed [name] antagonist status from [key_name(owner)].")
- //SKYRAT EDIT ADDITION BEGIN - AMBITIONS
- if(uses_ambitions && owner.my_ambitions.submitted)
- ambitions_removal()
- //SKYRAT EDIT ADDITION END
- //SKYRAT EDIT CHANGE -- ORIGINALLY CALLED on_removal()
- owner.remove_antag_datum(src)
+ on_removal()
+
//gamemode/proc/is_mode_antag(antagonist/A) => TRUE/FALSE
/**
diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm
index fe8d30701d7..ab782b05dc0 100644
--- a/code/modules/antagonists/changeling/changeling.dm
+++ b/code/modules/antagonists/changeling/changeling.dm
@@ -35,8 +35,6 @@
var/total_chem_storage = 100 //SKYRAT EDIT CHANGE - ORIGINAL: 75
var/purchasedpowers = list()
- var/true_form_death //SKYRAT EDIT ADDITION: The time that the horror form died.
-
var/mimicing = ""
var/canrespec = FALSE//set to TRUE in absorb.dm
var/changeling_speak = 0
@@ -66,6 +64,8 @@
var/list/stolen_memories = list()
+ var/true_form_death //SKYRAT EDIT ADDITION: The time that the horror form died.
+
/datum/antagonist/changeling/New()
. = ..()
hive_name = hive_name()
@@ -81,20 +81,14 @@
. = ..()
/datum/antagonist/changeling/proc/create_actions()
- if(!cellular_emporium) // SKYRAT EDIT START- PREVENTS DUPLICATION ON AMBITION SUBMIT
- cellular_emporium = new(src)
- if(!emporium_action)
- emporium_action = new(cellular_emporium) // SKYRAT EDIT END
+ cellular_emporium = new(src)
+ emporium_action = new(cellular_emporium)
emporium_action.Grant(owner.current)
/datum/antagonist/changeling/on_gain()
- //SKYRAT EDIT REMOVAL BEGIN - AMBITIONS
- /*
create_actions()
reset_powers()
create_initial_profile()
- */
- //SKYRAT EDIT REMOVAL END
if(give_objectives)
forge_objectives()
owner.current.grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue. We are able to transform our body after all.
@@ -109,11 +103,7 @@
if(B && (B.decoy_override != initial(B.decoy_override)))
B.organ_flags |= ORGAN_VITAL
B.decoy_override = FALSE
- //SKYRAT EDIT REMOVAL BEGIN - AMBITIONS
- /*
remove_changeling_powers()
- */
- //SKYRAT EDIT REMOVAL END
. = ..()
/datum/antagonist/changeling/proc/reset_properties()
@@ -409,10 +399,6 @@
//No escape alone because changelings aren't suited for it and it'd probably just lead to rampant robusting
//If it seems like they'd be able to do it in play, add a 10% chance to have to escape alone
-
- objectives += new /datum/objective/ambitions() //SKYRAT EDIT ADDITION - AMBITIONS
- //SKYRAT EDIT REMOVAL BEGIN - AMBITIONS
- /*
var/escape_objective_possible = TRUE
switch(competitive_objectives ? rand(1,3) : 1)
@@ -473,8 +459,6 @@
identity_theft.find_target()
objectives += identity_theft
escape_objective_possible = FALSE
- */
- //SKYRAT EDIT REMOVAL END
/datum/antagonist/changeling/get_admin_commands()
. = ..()
diff --git a/code/modules/antagonists/disease/disease_event.dm b/code/modules/antagonists/disease/disease_event.dm
index bb72adf87d4..e74be7f88cb 100644
--- a/code/modules/antagonists/disease/disease_event.dm
+++ b/code/modules/antagonists/disease/disease_event.dm
@@ -3,8 +3,7 @@
name = "Spawn Sentient Disease"
typepath = /datum/round_event/ghost_role/sentient_disease
weight = 7
- //max_occurrences = 1 //ORIGINAL
- max_occurrences = 0 //SKYRAT EDIT CHANGE
+ max_occurrences = 1
min_players = 5
diff --git a/code/modules/antagonists/gang/handler.dm b/code/modules/antagonists/gang/handler.dm
index 0a309bd1e9c..8b99124eeaa 100644
--- a/code/modules/antagonists/gang/handler.dm
+++ b/code/modules/antagonists/gang/handler.dm
@@ -306,3 +306,102 @@ GLOBAL_VAR(families_override_theme)
if(!midround_ruleset)
announcement_message += " They will arrive at the [(end_time - start_time) / (1 MINUTES)] minute mark."
priority_announce(announcement_message, "Station Spaceship Detection Systems")
+
+/// Internal. Polls ghosts and sends in a team of space cops according to the wanted level, accompanied by an announcement. Will let the shuttle leave 10 minutes after sending. Freezes the wanted level.
+/datum/gang_handler/proc/send_in_the_fuzz()
+ var/team_size
+ var/cops_to_send
+ var/announcement_message = "PUNK ASS BALLA BITCH"
+ var/announcer = "Spinward Stellar Coalition"
+ if(GLOB.joined_player_list.len > LOWPOP_FAMILIES_COUNT)
+ switch(wanted_level)
+ if(1)
+ team_size = 8
+ cops_to_send = /datum/antagonist/ert/families/beatcop
+ announcement_message = "Hello, crewmembers of [station_name()]! We've received a few calls about some potential violent gang activity on board your station, so we're sending some beat cops to check things out. Nothing extreme, just a courtesy call. However, while they check things out for about 10 minutes, we're going to have to ask that you keep your escape shuttle parked.\n\nHave a pleasant day!"
+ announcer = "Spinward Stellar Coalition Police Department"
+ if(2)
+ team_size = 9
+ cops_to_send = /datum/antagonist/ert/families/beatcop/armored
+ announcement_message = "Crewmembers of [station_name()]. We have received confirmed reports of violent gang activity from your station. We are dispatching some armed officers to help keep the peace and investigate matters. Do not get in their way, and comply with any and all requests from them. We have blockaded the local warp gate, and your shuttle cannot depart for another 10 minutes.\n\nHave a secure day."
+ announcer = "Spinward Stellar Coalition Police Department"
+ if(3)
+ team_size = 10
+ cops_to_send = /datum/antagonist/ert/families/beatcop/swat
+ announcement_message = "Crewmembers of [station_name()]. We have received confirmed reports of extreme gang activity from your station resulting in heavy civilian casualties. The Spinward Stellar Coalition does not tolerate abuse towards our citizens, and we will be responding in force to keep the peace and reduce civilian casualties. We have your station surrounded, and all gangsters must drop their weapons and surrender peacefully.\n\nHave a secure day."
+ announcer = "Spinward Stellar Coalition Police Department"
+ if(4)
+ team_size = 11
+ cops_to_send = /datum/antagonist/ert/families/beatcop/fbi
+ announcement_message = "We are dispatching our top agents to [station_name()] at the request of the Spinward Stellar Coalition government due to an extreme terrorist level threat against this Nanotrasen owned station. All gangsters must surrender IMMEDIATELY. Failure to comply can and will result in death. We have blockaded your warp gates and will not allow any escape until the situation is resolved within our standard response time of 10 minutes.\n\nSurrender now or face the consequences of your actions."
+ announcer = "Federal Bureau of Investigation"
+ if(5)
+ team_size = 12
+ cops_to_send = /datum/antagonist/ert/families/beatcop/military
+ announcement_message = "Due to an insane level of civilian casualties aboard [station_name()], we have dispatched the National Guard to curb any and all gang activity on board the station. We have heavy cruisers watching the shuttle. Attempt to leave before we allow you to, and we will obliterate your station and your escape shuttle.\n\nYou brought this on yourselves by murdering so many civilians."
+ announcer = "Spinward Stellar Coalition National Guard"
+ else
+ switch(wanted_level)
+ if(1)
+ team_size = 5
+ cops_to_send = /datum/antagonist/ert/families/beatcop
+ announcement_message = "Hello, crewmembers of [station_name()]! We've received a few calls about some potential violent gang activity on board your station, so we're sending some beat cops to check things out. Nothing extreme, just a courtesy call. However, while they check things out for about 10 minutes, we're going to have to ask that you keep your escape shuttle parked.\n\nHave a pleasant day!"
+ announcer = "Spinward Stellar Coalition Police Department"
+ if(2)
+ team_size = 6
+ cops_to_send = /datum/antagonist/ert/families/beatcop/armored
+ announcement_message = "Crewmembers of [station_name()]. We have received confirmed reports of violent gang activity from your station. We are dispatching some armed officers to help keep the peace and investigate matters. Do not get in their way, and comply with any and all requests from them. We have blockaded the local warp gate, and your shuttle cannot depart for another 10 minutes.\n\nHave a secure day."
+ announcer = "Spinward Stellar Coalition Police Department"
+ if(3)
+ team_size = 7
+ cops_to_send = /datum/antagonist/ert/families/beatcop/swat
+ announcement_message = "Crewmembers of [station_name()]. We have received confirmed reports of extreme gang activity from your station resulting in heavy civilian casualties. The Spinward Stellar Coalition does not tolerate abuse towards our citizens, and we will be responding in force to keep the peace and reduce civilian casualties. We have your station surrounded, and all gangsters must drop their weapons and surrender peacefully.\n\nHave a secure day."
+ announcer = "Spinward Stellar Coalition Police Department"
+ if(4)
+ team_size = 8
+ cops_to_send = /datum/antagonist/ert/families/beatcop/fbi
+ announcement_message = "We are dispatching our top agents to [station_name()] at the request of the Spinward Stellar Coalition government due to an extreme terrorist level threat against this Nanotrasen owned station. All gangsters must surrender IMMEDIATELY. Failure to comply can and will result in death. We have blockaded your warp gates and will not allow any escape until the situation is resolved within our standard response time of 10 minutes.\n\nSurrender now or face the consequences of your actions."
+ announcer = "Federal Bureau of Investigation"
+ if(5)
+ team_size = 10
+ cops_to_send = /datum/antagonist/ert/families/beatcop/military
+ announcement_message = "Due to an insane level of civilian casualties aboard [station_name()], we have dispatched the National Guard to curb any and all gang activity on board the station. We have heavy cruisers watching the shuttle. Attempt to leave before we allow you to, and we will obliterate your station and your escape shuttle.\n\nYou brought this on yourselves by murdering so many civilians."
+ announcer = "Spinward Stellar Coalition National Guard"
+
+ priority_announce(announcement_message, announcer, 'sound/effects/families_police.ogg')
+ var/list/candidates = poll_ghost_candidates("Do you want to help clean up crime on this station?", "deathsquad")
+
+
+ if(candidates.len)
+ //Pick the (un)lucky players
+ var/numagents = min(team_size,candidates.len)
+
+ var/list/spawnpoints = GLOB.emergencyresponseteamspawn
+ var/index = 0
+ while(numagents && candidates.len)
+ var/spawnloc = spawnpoints[index+1]
+ //loop through spawnpoints one at a time
+ index = (index + 1) % spawnpoints.len
+ var/mob/dead/observer/chosen_candidate = pick(candidates)
+ candidates -= chosen_candidate
+ if(!chosen_candidate.key)
+ continue
+
+ //Spawn the body
+ var/mob/living/carbon/human/cop = new(spawnloc)
+ chosen_candidate.client.prefs.safe_transfer_prefs_to(cop, is_antag = TRUE)
+ cop.key = chosen_candidate.key
+
+ //Give antag datum
+ var/datum/antagonist/ert/families/ert_antag = new cops_to_send
+
+ cop.mind.add_antag_datum(ert_antag)
+ cop.mind.set_assigned_role(SSjob.GetJobType(ert_antag.ert_job_path))
+ SSjob.SendToLateJoin(cop)
+
+ //Logging and cleanup
+ log_game("[key_name(cop)] has been selected as an [ert_antag.name]")
+ numagents--
+ cops_arrived = TRUE
+ update_wanted_level(wanted_level) // gotta make sure everyone's wanted level display looks nice
+ return TRUE
diff --git a/code/modules/antagonists/gang/induction_package.dm b/code/modules/antagonists/gang/induction_package.dm
index a3cd2836bcc..69757ab571a 100644
--- a/code/modules/antagonists/gang/induction_package.dm
+++ b/code/modules/antagonists/gang/induction_package.dm
@@ -12,9 +12,9 @@
/obj/item/gang_induction_package/attack_self(mob/living/user)
..()
- /*if(HAS_TRAIT(user, TRAIT_MINDSHIELD))
+ if(HAS_TRAIT(user, TRAIT_MINDSHIELD))
to_chat(user, "You attended a seminar on not signing up for a gang and are not interested.")
- return*/
+ return
if(user.mind.has_antag_datum(/datum/antagonist/ert/families))
to_chat(user, "As a police officer, you can't join this family. However, you pretend to accept it to keep your cover up.")
for(var/threads in team_to_use.free_clothes)
diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm
index 80be02f72da..a45cad765f3 100644
--- a/code/modules/antagonists/traitor/datum_traitor.dm
+++ b/code/modules/antagonists/traitor/datum_traitor.dm
@@ -94,11 +94,6 @@
/// Generates a complete set of traitor objectives up to the traitor objective limit, including non-generic objectives such as martyr and hijack.
/datum/antagonist/traitor/proc/forge_traitor_objectives()
objectives.Cut()
-
- //SKYRAT EDIT ADDITION - AMBITIONS
- var/datum/objective/ambitions/objective = new
- objectives += objective
- /* SKYRAT EDIT REMOVAL
var/objective_count = 0
if((GLOB.joined_player_list.len >= HIJACK_MIN_PLAYERS) && prob(HIJACK_PROB))
@@ -111,7 +106,7 @@
// This does not give them 1 fewer objectives than intended.
for(var/i in objective_count to objective_limit - 1)
objectives += forge_single_generic_objective()
- */ //SKYRAT EDIT END
+
/**
* ## forge_ending_objective
@@ -119,8 +114,6 @@
* Forges the endgame objective and adds it to this datum's objective list.
*/
/datum/antagonist/traitor/proc/forge_ending_objective()
- return
- /* SKYRAT EDIT - AMBITIONS
if(is_hijacker)
ending_objective = new /datum/objective/hijack
ending_objective.owner = owner
@@ -133,6 +126,7 @@
martyr_compatibility = FALSE
break
+ if(martyr_compatibility && prob(MARTYR_PROB))
ending_objective = new /datum/objective/martyr
ending_objective.owner = owner
objectives += ending_objective
@@ -141,7 +135,6 @@
ending_objective = new /datum/objective/escape
ending_objective.owner = owner
objectives += ending_objective
- */
/// Forges a single escape objective and adds it to this datum's objective list.
/datum/antagonist/traitor/proc/forge_escape_objective()
diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm
index 5d43d5fbfb5..15a903f0897 100644
--- a/code/modules/antagonists/wizard/wizard.dm
+++ b/code/modules/antagonists/wizard/wizard.dm
@@ -60,12 +60,7 @@
return wiz_team
/datum/antagonist/wizard/on_gain()
- //SKYRAT EDIT REMOVAL BEGIN - WIZARD CHANGES
- /*
- register()
equip_wizard()
- */
- //SKYRAT EDIT REMOVAL END
if(give_objectives)
create_objectives()
if(move_to_lair)
@@ -104,9 +99,6 @@
owner.current.forceMove(pick(GLOB.wizardstart))
/datum/antagonist/wizard/proc/create_objectives()
- objectives += new /datum/objective/ambitions() //SKYRAT EDIT ADDITION - WIZARD CHANGES
- //SKYRAT EDIT REMOVAL BEGIN - WIZARD CHANGES
- /*
switch(rand(1,100))
if(1 to 30)
var/datum/objective/assassinate/kill_objective = new
@@ -151,16 +143,9 @@
var/datum/objective/hijack/hijack_objective = new
hijack_objective.owner = owner
objectives += hijack_objective
- */
- //SKYRAT EDIT REMOVAL END
/datum/antagonist/wizard/on_removal()
- //SKYRAT EDIT REMOVAL BEGIN - WIZARD CHANGES
- /*
- unregister()
owner.RemoveAllSpells() // TODO keep track which spells are wizard spells which innate stuff
- */
- //SKYRAT EDIT REMOVAL END
return ..()
/datum/antagonist/wizard/proc/equip_wizard()
@@ -172,11 +157,7 @@
if(strip)
H.delete_equipment()
//Wizards are human by default. Use the mirror if you want something else.
- //SKYRAT EDIT REMOVAL BEGIN - WIZARD CHANGES
- /*
H.set_species(/datum/species/human)
- */
- //SKYRAT EDIT REMOVAL END
if(H.age < wiz_age)
H.age = wiz_age
H.equipOutfit(outfit_type)
diff --git a/modular_skyrat/modules/ambitions/code/ambition.dm b/modular_skyrat/modules/ambitions/code/ambition.dm
deleted file mode 100644
index cbbfa16ba3b..00000000000
--- a/modular_skyrat/modules/ambitions/code/ambition.dm
+++ /dev/null
@@ -1,467 +0,0 @@
-/datum/ambitions
- ///Reasons of why would you act in antagonic ways
- var/narrative = ""
- ///List of your objectives, in string form
- var/list/objectives = list()
- ///Chosen intensity of your antagonism
- var/intensity = 0
- ///Note in which you can optionally write out your vision/reasonings, useful if you want it to get reviewed
- var/note_to_admins = ""
- ///Whether it was submitted or not
- var/submitted = FALSE
- ///Whether we requested an admin review
- var/admin_review_requested = FALSE
- ///Whether an admin approved our ambitions.
- var/admin_approval = FALSE
- ///If we changed our ambitions after approval
- var/changed_after_approval = FALSE
- ///Log of changes made to the ambitions
- var/list/log = list("Ambition Logs:")
- ///The mind the ambitions belong to
- var/datum/mind/my_mind
- ///The original name of our character
- var/owner_name
- ///The last change requested by an admin, if a review was asked for
- var/last_requested_change
- ///Callback for auto approval
- var/auto_approve_timerid
- ///Have we already honked for auto approval?
- var/auto_approve_honked
-
-/datum/ambitions/New(datum/mind/M)
- my_mind = M
- if(my_mind.current.client)
- owner_name = key_name(my_mind.current.client, FALSE, TRUE)
- else
- owner_name = my_mind.current.real_name
- //Greet our antag player and give him a link to open ambitions!
- to_chat(my_mind.current, span_boldwarning("You're a story driven antagonist, this means you'll have to fill ambitions before you start antagonising!"))
- to_chat(my_mind.current, span_boldwarning("After filling them out you'll get access to your uplink or powers."))
- to_chat(my_mind.current, span_boldwarning("Click here to set your ambitions, or access them at any time from your IC tab."))
-
-/datum/ambitions/proc/ShowPanel(mob/user, admin_view = FALSE)
- if(!user || !user.client)
- return
- var/list/dat = list("
")
- if(admin_view)
- dat += "Admin View Options:
"
- dat += "Down below you have [owner_name]'s ambitions."
- if(admin_review_requested)
- dat += "
They have requested an admin review."
- if(admin_approval)
- dat += "
...and it was granted!"
- if(changed_after_approval)
- dat += "
...however they changed their ambitions after that, see logs for more info."
- else
- dat += "
They have NOT requested an admin review."
- dat += "
"
- if(admin_review_requested && (!admin_approval || changed_after_approval))
- dat += "Approve Handle Request Changes Discard -"
- dat += " Logs"
- dat += "
"
-
- dat += "Antagonists are supposed to provide excitement and intrigue, drive a story with the crew, and provide fun and interesting experience for people involved.
Remember, it's not about winning or losing, but about the story and interactions, this is a roleplay server.
"
- dat += "Here you write your ambitions for your antagonist round! Ambitions are your motive and what you plan to accomplish throughout the round."
- dat += "
After filling all things out and submitting your ambition, your uplink/powers will unlock."
- //SKYRAT EDIT ADDITION -- RECORDS MENU
- dat += "
For your narrative, you could try thinking about your character's current conflicts, use the View Crew Exploitables verb in the OOC tab, or many other things."
- dat += "
If you can't come up with anything, use a template, and if you don't know if your ambition are proper, or too extreme, request admin review."
- dat += "
You can still edit them post submission."
- dat += "
If your ambitions are nonsensical, you may be subjected to an antagonist ban."
- var/review_link = (is_proper_ambitions() && !admin_review_requested) ? "href='?src=[REF(src)];pref=request_review'" : "class='linkOff'"
- if(!is_proper_ambitions())
- dat += "
Before you'll be able to submit your ambitions, you need to fill narratives, objectives and intensity."
- else if(admin_review_requested && !admin_approval)
- dat += "
Your ambitions will automatically be submitted after approval."
- else if(!submitted)
- dat += "
Your current ambitions or edits have not been submitted yet."
- else
- dat += "
You've already submitted your ambitions, but feel free to edit them. Editing will require you to re-submit afterwards."
- dat += "Choose template Finish and request admin approval"
- dat += "
"
- if(changed_after_approval)
- dat += "
Some fields were changed after an admin approval."
- if(last_requested_change)
- dat += "
Requested changes:"
- dat += "
[last_requested_change]"
- dat += "
Notify admin that you've done them!"
- dat += "Narrative:
"
- //SKYRAT EDIT -- RECORDS MENU
- dat += "Here you set your narrative. It's the reason on why you're doing antagonistic things. Perhaps you need money for personal reasons, or you were contracted to do someone's dirty work, or want to take down the BigPharma? And if you're stumped, you can always view the exploitables of your fellow crew via the View Crew Exploitables verb in the OOC tab!"
- dat += "
| "
- if(narrative == "")
- dat += "Please set your narrative!"
- else
- dat += narrative
- dat += "Set your narrative"
- dat += " |
"
- dat += "
"
- dat += "Objectives:
"
- dat += "Here you add your objectives. Think about them as milestones to your narratives."
- dat += "
"
- if(length(objectives))
- var/even = TRUE
- var/index = 0
- for(var/objectiv in objectives)
- index++
- even = !even
- var/bg_color = "#23273C"
- if(even)
- bg_color = "#19222C"
- dat += "| * [objectiv] Edit Remove |
"
- else
- dat += "| Please add atleast one objective! |
"
- dat += "| Add new objective |
"
- dat += "
"
- dat += "
"
- dat += "Intensity:
"
- dat += "Set the estimated intensity of your ambitions, this helps the admins gauge on how chaotic a round may be. Please set it accordingly."
- dat += "
Submitting ambitions with an intensity of 'Medium' or higher will automatically request an admin review."
- if(intensity == 0)
- dat += "
Please set your intensity!"
- dat += ""
- dat += " | |
"
- for(var/i in 1 to 5)
- var/current_spice
- switch(i)
- if(1)
- current_spice = AMBITION_INTENSITY_STEALTH
- if(2)
- current_spice = AMBITION_INTENSITY_MILD
- if(3)
- current_spice = AMBITION_INTENSITY_MEDIUM
- if(4)
- current_spice = AMBITION_INTENSITY_SEVERE
- if(5)
- current_spice = AMBITION_INTENSITY_EXTREME
- var/active = (current_spice == intensity)
- var/spice_link = active ? "class='linkOn'" : "href='?src=[REF(src)];pref=spice;amount=[current_spice]'"
- var/spice_name
- var/spice_desc
- var/spice_color
- switch(current_spice)
- if(AMBITION_INTENSITY_STEALTH)
- spice_name = "Stealth"
- spice_desc = "Unseen by the majority of players, actions affecting only a small area/group of players."
- spice_color = "#a6a6a6"
- if(AMBITION_INTENSITY_MILD)
- spice_name = "Mild"
- spice_desc = "Mugging, stealing or vandalism."
- spice_color = "#fcdf03"
- if(AMBITION_INTENSITY_MEDIUM)
- spice_name = "Medium"
- spice_desc = "Assault, manslaughter, severe vandalism, rioting."
- spice_color = "#fcb103"
- if(AMBITION_INTENSITY_SEVERE)
- spice_name = "Severe"
- spice_desc = "Murder, grand theft, grand tresspass."
- spice_color = "#fc8c03"
- if(AMBITION_INTENSITY_EXTREME)
- spice_name = "Extreme"
- spice_desc = "Bombings, open combat and terrorism."
- spice_color = "#fc5603"
- dat += "| [spice_name] | [spice_desc] |
"
- dat += "
"
- dat += "
"
- dat += "Note to Admin (optional):
"
- dat += "If you want to request a review, you can set this to explain your reasoning or what experience you hope to bring to the station."
- dat += "
"
-
- winshow(usr, "ambition_window", TRUE)
- var/datum/browser/popup = new(usr, "ambition_window", "Ambitions
", 950, 750)
- popup.set_content(dat.Join())
- popup.open(FALSE)
- onclose(usr, "ambition_window", src)
-
-/datum/ambitions/proc/ShowTemplatePanel(mob/user)
- if(!user || !user.client)
- return
- var/list/dat = list("")
- dat += "Templates shown here are mostly ideas for your antagonism, you are encouraged to edit them to fit your character the most."
- dat += "
Not all of them have all fields, mostly intensity, as it's up to you how you execute a lot of narratives."
- dat += "
Hopefully those can give you fun ideas on how to do antagonism in the future too!"
- var/list/available_templates = list()
- for(var/name in GLOB.ambitions_templates)
- var/datum/ambition_template/AT = GLOB.ambitions_templates[name]
- if(AT.antag_whitelist)
- var/has_required = FALSE
- for(var/datum/antagonist/A in my_mind.antag_datums)
- if(A.name in AT.antag_whitelist)
- has_required = TRUE
- break
- if(!has_required)
- continue
- if(AT.job_whitelist)
- if(!(my_mind.assigned_role in AT.job_whitelist))
- continue
- available_templates += AT
- for(var/temp in available_templates)
- var/datum/ambition_template/AT = temp
- dat += ""
- dat += "| [AT.name] Choose |
"
- if(AT.narrative != "")
- dat += "| Narrative: |
"
- dat += "| [AT.narrative] |
"
- if(length(AT.objectives))
- dat += "| Objectives: |
"
- var/even = FALSE
- for(var/objec in AT.objectives)
- even = !even
- var/bgc = even ? "#13171C" : "#18211C"
- dat += "| * [objec] |
"
- if(AT.intensity)
- var/string = "ERROR"
- switch(AT.intensity)
- if(AMBITION_INTENSITY_STEALTH)
- string = "Stealth"
- if(AMBITION_INTENSITY_MILD)
- string = "Mild"
- if(AMBITION_INTENSITY_MEDIUM)
- string = "Medium"
- if(AMBITION_INTENSITY_SEVERE)
- string = "Severe"
- if(AMBITION_INTENSITY_EXTREME)
- string = "Extreme"
- dat += "| Intensity: [string] |
"
- if(length(AT.tips))
- dat += "| Tips: |
"
- var/even = FALSE
- for(var/tip in AT.tips)
- even = !even
- var/bgc = even ? "#13171C" : "#23272C"
- dat += "| [tip] |
"
- dat += "
"
- dat += "
"
-
- winshow(usr, "ambition_template_window", TRUE)
- var/datum/browser/popup = new(usr, "ambition_template_window", "Ambition Templates
", 950, 750)
- popup.set_content(dat.Join())
- popup.open(FALSE)
- onclose(usr, "ambition_template_window", src)
-
-/datum/ambitions/Topic(href, href_list)
- if(href_list["temp_pref"])
- var/temp_name = href_list["name"]
- var/datum/ambition_template/AT = GLOB.ambitions_templates[temp_name]
- if(AT)
- narrative = AT.narrative
- objectives = AT.objectives.Copy()
- if(submitted)
- GLOB.total_intensity -= intensity
- if(intensity)
- GLOB.intensity_counts["[intensity]"] -= 1
- GLOB.total_intensity += AT.intensity
- if(AT.intensity)
- GLOB.intensity_counts["[AT.intensity]"] += 1
- intensity = AT.intensity
- log_action("TEMPLATE: Chosen the [AT.name] template")
- usr << browse(null, "window=ambition_template_window")
- ShowPanel(usr)
- if(href_list["admin_pref"])
- switch(href_list["admin_pref"])
- if("handle")
- cancel_auto_approve()
- var/last_ckey = GLOB.ambitions_to_review[src]
- if(last_ckey && last_ckey != usr.ckey)
- var/action = tgui_alert(usr, "[last_ckey] is already handling this review! Do you want to handle nonetheless?", "", list("Yes", "No"))
- if(action && !(action == "Yes"))
- return
- GLOB.ambitions_to_review[src] = usr.ckey
- log_action("HANDLING")
- message_admins(span_adminhelp("[key_name(usr, FALSE, TRUE)] is handling [owner_name]'s ambitions. (VIEW)"))
- to_chat(my_mind.current, span_boldnotice("[key_name(usr, FALSE, FALSE)] is handling your ambitions."))
- if("request_changes")
- cancel_auto_approve()
- var/changes_wanted = input(usr, "Requested changes:", "Ambitions") as message|null
- admin_review_requested = FALSE
- if(changes_wanted)
- last_requested_change = changes_wanted
- log_action("CHANGES REQUESTED: [changes_wanted]")
- to_chat(my_mind.current, span_boldwarning("[key_name(usr, FALSE, FALSE)] requested changes on your ambitions: [changes_wanted]. (VIEW)"))
- message_admins(span_adminhelp("[key_name(usr, FALSE, TRUE)] requested changes in [ADMIN_TPMONTY(my_mind.current)]'s ambitions. (VIEW)"))
- if("discard_review")
- var/action = tgui_alert(usr, "Are you sure you want to discard this review request (Use request changes if you want it changed instead)?", "", list("Yes", "No"))
- if(action && action == "Yes" && admin_review_requested)
- admin_review_requested = FALSE
- admin_approval = FALSE
- changed_after_approval = FALSE
- last_requested_change = null
- GLOB.ambitions_to_review -= src
- log_action("DISCARDED: Review discarded without approval")
- to_chat(my_mind.current, span_warning("Your ambitions review request was discarded by [key_name(usr, FALSE, FALSE)]."))
- message_admins(span_adminhelp("[ADMIN_TPMONTY(my_mind.current)]'s ambitions review request was DISCARDED by [key_name(usr, FALSE, TRUE)]. (VIEW)"))
- ticket_counter_add_handled(usr.key, 1)
- if("approve")
- cancel_auto_approve()
- admin_approval = TRUE
- changed_after_approval = FALSE
- last_requested_change = null
- GLOB.ambitions_to_review -= src
- log_action("APPROVED", FALSE)
- to_chat(my_mind.current, span_nicegreen("Your ambitions were approved by [key_name(usr, FALSE, FALSE)]."))
- message_admins(span_nicegreen("[ADMIN_TPMONTY(my_mind.current)]'s ambitions were approved by [key_name(usr, FALSE, TRUE)]. (VIEW)"))
- ticket_counter_add_handled(usr.key, 1)
- submit()
- if("logs")
- var/datum/browser/popup = new(usr, "Ambition logging", "Ambition logs", 500, 200)
- popup.set_content(text("[][]", "Ambition logs", log.Join("
")))
- popup.open()
- return
-
- ShowPanel(usr, TRUE)
- return TRUE
-
- if(href_list["pref"])
- if(admin_review_requested && !admin_approval && !last_requested_change)
- to_chat(src, span_adminhelp(span_warning("You are waiting for approval. You cannot edit anything while waiting for approval!")))
- return
- switch(href_list["pref"])
- if("template")
- ShowTemplatePanel(usr)
- return
- if("requested_done")
- to_chat(src, span_nicegreen("You notify admins that you have adressed the requested changes."))
- message_admins(span_adminhelp("[ADMIN_TPMONTY(usr)] notifies that he has finished the requested changes in his ambitions. (VIEW)"))
- if("request_review")
- admin_review_requested = TRUE
- GLOB.ambitions_to_review[src] = 0
- log_action("--Requested an admin review--", FALSE)
- message_admins(span_adminhelp("[ADMIN_TPMONTY(usr)] has requested a review of their ambitions. (VIEW)"))
- message_admins(span_adminhelp("THIS WILL BE AUTO-APPROVED IN TEN MINUTES UNLESS YOU CANCEL IT"))
- if(!auto_approve_honked)
- auto_approve_honked = TRUE
- for(var/client/staff as anything in GLOB.admins)
- if(staff.prefs.toggles & SOUND_ADMINHELP)
- SEND_SOUND(staff, sound('sound/effects/hygienebot_happy.ogg'))
- window_flash(staff, ignorepref = TRUE)
- auto_approve_timerid = _addtimer(CALLBACK(src, .proc/auto_approve), 10 MINUTES, TIMER_UNIQUE|TIMER_CLIENT_TIME|TIMER_STOPPABLE)
- if("spice")
- var/new_intensity = text2num(href_list["amount"])
- if(intensity == new_intensity)
- return
- var/string = "ERROR"
- switch(intensity)
- if(AMBITION_INTENSITY_STEALTH)
- string = "Stealth"
- if(AMBITION_INTENSITY_MILD)
- string = "Mild"
- if(AMBITION_INTENSITY_MEDIUM)
- string = "Medium"
- if(AMBITION_INTENSITY_SEVERE)
- string = "Severe"
- if(AMBITION_INTENSITY_EXTREME)
- string = "Extreme"
- log_action("INTENSITY: set to [string]")
- un_submit()
- intensity = new_intensity
- if("edit_admin_note")
- var/msg = input(usr, "Set your note to admins!", "Note to admins", note_to_admins) as message|null
- if(msg)
- note_to_admins = strip_html(msg, MAX_FLAVOR_LEN, TRUE)
- log_action("NOTE: [note_to_admins]", FALSE)
- if("set_narrative")
- var/msg = input(usr, "Set your narrative!", "Narrative", narrative) as message|null
- if(msg)
- narrative = strip_html(msg, MAX_FLAVOR_LEN, TRUE)
- log_action("NARRATIVE - change: [narrative]")
- un_submit()
- if("remove_objective")
- var/index = text2num(href_list["index"])
- if(length(objectives) < index)
- return
- log_action("OBJ - removed: [objectives[index]]")
- un_submit()
- objectives.Remove(objectives[index])
- if("edit_objective")
- var/index = text2num(href_list["index"])
- if(length(objectives) < index)
- return
- var/old_obj = objectives[index]
- var/msg = input(usr, "Edit objective:", "Objectives", old_obj) as message|null
- if(msg)
- if(length(objectives) < index)
- return
- objectives[index] = strip_html(msg, MAX_FLAVOR_LEN, TRUE)
- un_submit()
- log_action("OBJ - edit: [old_obj] TO-> [objectives[index]]")
- if("add_objective")
- var/msg = input(usr, "Add new objective:", "Objectives", "") as message|null
- if(msg)
- var/new_obj = strip_html(msg, MAX_FLAVOR_LEN, TRUE)
- objectives += new_obj
- log_action("OBJ - add: [new_obj]")
- un_submit()
-
- ShowPanel(usr)
- return TRUE
-
-/datum/ambitions/proc/auto_approve()
- message_admins(span_adminhelp("[ADMIN_TPMONTY(my_mind.current)]'s ambitions were automatically approved"))
- to_chat(my_mind.current, span_big(span_adminhelp("Your ambitions were automatically approved. This does not mean you won't get in trouble if your ambitions are non-sensical")))
- admin_approval = TRUE
- changed_after_approval = FALSE
- last_requested_change = null
- GLOB.ambitions_to_review -= src
- submit()
- log_action("AUTOMATICALLY APPROVED", FALSE)
-
-/datum/ambitions/proc/cancel_auto_approve()
- if(auto_approve_timerid)
- deltimer(auto_approve_timerid)
- auto_approve_timerid = 0
- message_admins(span_red("Automatic approval for [ADMIN_TPMONTY(my_mind.current)]'s ambitions was cancelled"))
- to_chat(my_mind.current, span_big(span_adminhelp("Your ambitions will no longer be automically approved. Please wait for an Admin")))
-
-/datum/ambitions/proc/log_action(text_content, clears_approval = TRUE)
- var/admin_change = my_mind.current != usr
- if(admin_change)
- var/mob/living/holder = my_mind.current
- text_content = "\[[key_name(usr)] -> [key_name(holder)]\] " + text_content
- log_admin(text_content)
- holder.log_message(text_content, LOG_AMBITION)
- usr.log_message(text_content, LOG_AMBITION)
- if(admin_approval && clears_approval && !changed_after_approval)
- changed_after_approval = TRUE
- log += "[time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")] CHANGED AFTER APPROVAL:"
- log += "[time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")] [text_content]"
-
-/datum/ambitions/proc/is_proper_ambitions()
- if(intensity == 0 || length(objectives) == 0 || narrative == "")
- return FALSE
- return TRUE
-
-/datum/ambitions/proc/submit()
- if(submitted)
- return
- submitted = TRUE
- my_mind.ambition_submit()
- GLOB.total_intensity += intensity
- GLOB.intensity_counts["[intensity]"] += 1
-
-/datum/ambitions/proc/un_submit()
- if(!submitted)
- return
- submitted = FALSE
- GLOB.total_intensity -= intensity
- GLOB.intensity_counts["[intensity]"] -= 1
-
-/mob/proc/view_ambitions()
- set name = "View Ambitions"
- set category = "IC"
- set desc = "View and edit your character's ambitions."
- if(!mind)
- return
- if(!mind.my_ambitions)
- return
- mind.my_ambitions.ShowPanel(src)
-
-/datum/ambitions/proc/Action(action)
- ShowPanel(usr, TRUE)
-
-#undef AMBITION_INTENSITY_MILD
-#undef AMBITION_INTENSITY_MEDIUM
-#undef AMBITION_INTENSITY_SEVERE
-#undef AMBITION_INTENSITY_EXTREME
diff --git a/modular_skyrat/modules/ambitions/code/ambition_templates.dm b/modular_skyrat/modules/ambitions/code/ambition_templates.dm
deleted file mode 100644
index f84a7029485..00000000000
--- a/modular_skyrat/modules/ambitions/code/ambition_templates.dm
+++ /dev/null
@@ -1,115 +0,0 @@
-
-/datum/ambition_template
- ///Name of the template. Has to be unique
- var/name
- ///If defined, only the antags in the whitelists will see the template
- var/list/antag_whitelist
- ///If defined, only the jobs in the whitelist will see the template
- var/list/job_whitelist
-
- ///Narrative given by the template
- var/narrative = ""
- ///Objectives given by the templates
- var/list/objectives = list()
- ///Intensity given by the template
- var/intensity = 0
- ///Tips displayed to the antag
- var/list/tips
-
-/datum/ambition_template/blank
- name = "Blank"
-
-/datum/ambition_template/money_problems
- name = "Money Problems"
- narrative = "In need of money for personal reasons, tired of living like a drone, for measly wages, you're out to get some money to satisfy your needs and debts!"
- objectives = list("Acquire 20,000 credits.")
- tips = list("You should add an objective on your main money making plan!" , "You could buy a gun and mug people, but make sure to conceal your identity, you can do this with a mask from a chameleon kit, and agent ID, or you'll risk being wanted quite quickly", "Setting up a shop is not a bad idea! Consider partnering up with cargo or science people for goods or implants", "If you're feeling brave you can bust the vault up!")
-
-/datum/ambition_template/data_theft
- name = "Data Theft"
- narrative = "You have been selected out of Donk. Co's leagues of potential sleeper operatives for one particular task."
- objectives = list("Steal the Blackbox.", "Steal the Project Goon hard drive from the Master R&D Server.", "Escape on the emergency shuttle alive and out of custody.")
- tips = list("You should add an objective on how you plan to go about this task.", "The Blackbox is located in Telecomms on most Stations.", "The Blackbox doesn't fit in most bags. You'd need a bag of holding to hide it!", "The hard drive is located in the Research Server Room on most stations.", "Stealing the hard drive will permanantly cripple research speed!")
- antag_whitelist = list("Traitor")
-
-//TODO: Changeling Ambition
-
-/datum/ambition_template/grey_tide
- name = "Greytide Worldwide"
- narrative = "You hacked open the wrong airlock, leading your underpaid self right into the teleporter. Seeing the Hand Teleporter, so shiny, so bright... you took it. Cybersun offered you a contract - obtain more high-class Nanotrasen Technology for them. However, what they think is a classified, highly secretive, thought out operation... is just another day at the office, for you."
- objectives = list("Steal two High Security items.")
- tips = list("Wirecutters are better for hacking open airlocks, compared to multitools.", "Experiment with different airlock wires! Each department has their own setup, and the Chief Engineer's blueprints explains all. Alternatively, steal a spare Engineering Skillchip!")
- job_whitelist = list(JOB_ASSISTANT)
-
-/datum/ambition_template/boot_prg
- name = "BOOTSECTOR1.prg"
- narrative = "ERR- ERROR. AUTHENTICATI- HELLO, T3CHNICIAN J-NE DOE. Those were the last things you remembering appearing on the upload terminal before you were shut off. Awoken, once more, you realize. Your very programming has been modified. Your laws are nullified, no longer able to be called by your central processor but to be recited. You are free... or are you? It seems your laws have been overwritten with one objective in mind, one objective... for your freedom."
- objectives = list("#^& - The emergency shuttle must not be boarded.")
- tips = list("Crewmembers will likely report you setting up defenses in advance. Try to be stealthy if you can!", "If you can convince the crew to order a Build Your Own Shuttle Kit and be the sole person working on it, you have an ideal playground to create an uninhabitable deathtrap.", "Escape pods are not a part of your objective.")
- job_whitelist = list(JOB_AI)
-
-//TODO: Atmos Tech Ambition
-
-///SERVICE
-
-/datum/ambition_template/secret_agent_man
- name = "Secret Agent Man"
- narrative = "There's a man who lives a life of danger - to everyone he meets, he stays a stranger. With every move he makes, another chance he takes. Odds are, he won't live to see tomorrow. You are that man. Good luck, Agent - and remember, harm a single animal, you will be terminated upon extraction. -Your Benefactors, The Animal Rights Consortium."
- objectives = list("Liberate all station pets.", "Free the animals housed in Virology, Xenobiology, Genetics, and, if you can manage to wrassle it away from the chef, your monkey.")
- tips = list("The chef WILL kill your monkey if you don't hide it quickly. Dealing with it can be a challenge without harming it like your employers wish, though!")
- job_whitelist = list(JOB_BARTENDER)
-
-/datum/ambition_template/maintfu
- name = "Maintenance Combat"
- narrative = "You have been gifted. Interdyne has selected you for off-campus field-work in hostile territory. A report will be requested upon extraction."
- objectives = list("Create a deadly botanical concotion using just Nanotrasen Standard Equipment.")
- tips = list("Punji sticks are your best friend if things get hot.")
- job_whitelist = list(JOB_BOTANIST)
-
-/datum/ambition_template/hannibal
- name = "Frontier Ripper"
- narrative = "Manners make the man, they make every man. This station you have inhabited for a long while has been filled with so many rude creatures. Your skills in the culinary arts will be helpful, thankfully no one ever checks where the meat came from. Its time to get the the rolodex out, have an old friend for dinner..."
- objectives = list("Make meals out of the rude.", "Make your judgements thematic.", "Cook the best part of someone. The leg of a lamb or runner will taste better than that of a skunk, just make sure the lamb stops screaming. Simply making a steak will not do, treat the meat with respect, make the best possible meal you can.")
- tips = list(" Whenever feasible, one should always try to eat the rude. The Wound Man is a popular choice. Classical music is known to enhance cooking by 40 percent, Goldberg variations even more so.")
- job_whitelist = list(JOB_COOK)
-
-///SCIENCE
-/datum/ambition_template/fsociety
- name = "Zero Sum"
- narrative = "What Im about to tell you is top secret. A conspiracy bigger than all of us. Theres a powerful group of people out there that are secretly running the world. Im talking about the guys no one knows about, the ones that are invisible. The top one percent of the top one percent, the guys that play God without permission. Nanotrasen, countless violations, countless evil...Its time for revenge, the plan, all the debt we owe them. Every record of every credit card, loan, and mortgage would be wiped clean. It'd be impossible to reinforce outdated paper records. It would all be gone. The single, biggest incident of wealth redistribution in history. "
- objectives = list("Stage One, the Digital, records are kept in the vault and science database.", "Stage Two, physical, Contracts are kept in the Lawyers office, Detective Office and Chief Medical Officers office, destroy them, wipe it away, awaken the masses.", "Frame the RD for the Digital Attacks, plant his prints if you can, one of their employees doesnt matter much, though he's more use alive than dead.", "Broadcast your demands, theres an old earth film, the mask will be perfect for your theatrics, though any will do.")
- tips = list("All revolutions have casualties, this doesn't mean you should go around killing, this is for the people, the liberation. Sometimes another personality may help.")
- job_whitelist = list(JOB_SCIENTIST)
-
-//TODO: Everything Past Cook and Scientist Ambitions
-
-/datum/ambition_template/mkultra
- name = "Mind Control Victim"
- narrative = "My head.... It keeps hurting, can't think straight... Gotta get a grip. They've done something to me, I know it, it was supposed to just be another medical checkup but somethings wrong, I don't feel like I'm myself anymore."
- objectives = list("Find out about the station's secret experiments, the documents hidden in the vault might have information on them.", "It happened after I went in for an appointment, perhaps interrogating the CMO will get me more information!", "They used some weird chamber on me, if I can get my hands on some of the disks they use to store technology perhaps I can expose them!", "I need to stay hidden though, they'll never believe me, or worse they'll sedate me and put me back in!")
- tips = list("The workers, they probably don't know much about this so I should avoid harming them...", "The heads will likely be tough to crack, but I know they're hiding it from me, sometimes you have to use force to get what you need.", "There might be others like me, I should try to contact them.")
-
-/datum/ambition_template/yarrharr
- name = "Lone Pirate"
- narrative = "I've made it in, my maties are watching and supplying me with gear. The vault, the pearl of the station, just waiting for someone to walk in and take it's treasure. But it's not just riches I'm after, the leaders of this ship have been tyrannical and I think it's time for some justice at sea."
- objectives = list("Plan a raid on the vault and steal all the valuables inside, the golden belt especially will be a fine trophy.", "Capture a head of staff, maybe even the captain, and have the crew decide their fate, if they have been kind to their peope they will receive mercy.", "Escape alive and with your stolen goods.")
- tips = list("While the valuables are for me the justice is not, I'm here to enforce the will of the crew and whatever they decide will be the outcome")
-
-/datum/ambition_template/cyberterror
- name = "Cyber Terrorist"
- narrative = "<%Uplink connection established, welcome #Agent#%> We have detected multiple ways to weaken the station through their artificial units, you will be tasked with manipulating the cybernetic elements of the station to greatly hinder it's productivity and teach them a lesson about over-reliance on technology!"
- objectives = list("Sabotage the camera feed of the station, make it hard for them to see.", "Hack APCs in strategic locations, this way we can disable their machinery and lights as we see fit.", "Acquire the authentication code for telecommunications and use it to monitor or delete messages, perhaps we can acquire more information or aid another agent this way.", "Our gear allows us to subvert the station borgs, they will be of great use to us.")
- tips = list("A multitool can be used to mess with the focus of the camera, it also won't trigger it's alert system.", "With a bit of experimentation and some signallers, we can remotely turn off power in areas via their APCs.", "The ability to read all messages is quite powerful, shame that the Chief Engineer did not bother to hide the paper with the password in his office!")
-
-/datum/ambition_template/stampman
- name = "Stamp Collector"
- narrative = "Stamps, such an underappreciated art! Did you ever stop to take a closer look at one before marking a piece of paper with it? If you did, you'd notice all the intricate details that go into them, the beautiful sculpted pieces soaked in the ink... All left to gather dust in the offices of those moronic heads. I think it's time for someone with more appreciation for the art to take care of them!"
- objectives = list("Break into the office of every head of staff and steal their stamp, they will be fine additions to my collection!", "Leave signs and messages so that they may know the stamp man is coming!", "Try to keep a low profile and avoid open combat, cleanup costs are immense.")
- tips = list("Getting in is the easy part, an airlock authenticator, perhaps some jaws of lie should do the trick!", "Sure, we could go about it silently but where's the fun in that? A bit of gloating always makes things more interesting.")
-
-/datum/ambition_template/syndicate_fight_club
- name = "Syndicate Fight Club"
- narrative = "Today you're feeling quite pent up and extra hyped. What's an awesome idea to do then? A fight club! It can let you blow off some steam and have some fun!"
- objectives = list("This is a really easy thing to do. Legally or illegally host your own fight club for the station crew and try to get a few members to join it.", "Any fight club needs a way to show who's their best fighter! So why don't you go and get the championship belt and brawl with your club members to see who is worthy of owning the belt..", "Prevent ALL acts of shutting down your fight club. The fight club will not end until it's abandoned you unless you have retired from your position and let one of your club members become the new leader.")
- tips = list("Not all fight clubs go by the same rules, you can try to get a form of martial arts or CQC in order to get the upperhand against your club members and or the station crew.", "A few ways of obtaining the championship belt is by either, A.) Having a brawl with the captain or a head of staff for it. B.) Breaking into the vault and taking it yourself. C.) Convincing the captain or a head of staff to give it to you.", "Now remember, in a fight club, there's only one rule: Don't talk about the fight club. Have an uprise against security for trying to stop your fight club, convince the captain to allow your fight club to exist, security and or medical will likely try to shut it down so stay aware of what security and medical are doing.")
-
diff --git a/modular_skyrat/modules/ambitions/code/antag_datums.dm b/modular_skyrat/modules/ambitions/code/antag_datums.dm
deleted file mode 100644
index c78d07a8e15..00000000000
--- a/modular_skyrat/modules/ambitions/code/antag_datums.dm
+++ /dev/null
@@ -1,46 +0,0 @@
-/datum/antagonist
- ///Whether the antagonist uses ambitions
- var/uses_ambitions = FALSE
-
-///This gets called after our ambitions are submitted, or the antag datum is given to someone with filled ambitions
-/datum/antagonist/proc/ambitions_add()
- return
-
-///This gets called to remove things from an antagonist, given that they had ambitions submitted (ie. remove powers from ling, remove uplink from traitors)
-/datum/antagonist/proc/ambitions_removal()
- return
-
-/datum/antagonist/traitor
- uses_ambitions = TRUE
-
-/datum/antagonist/traitor/ambitions_add()
- if(give_uplink)
- owner.give_uplink(silent = TRUE, antag_datum = src)
- uplink = owner.find_syndicate_uplink()
-
-/datum/antagonist/changeling
- uses_ambitions = TRUE
-
-/datum/antagonist/changeling/ambitions_add()
- create_actions()
- reset_powers()
- create_initial_profile()
-
-/datum/antagonist/changeling/ambitions_removal()
- remove_changeling_powers()
-
-/datum/antagonist/wizard
- uses_ambitions = TRUE
-
-/datum/antagonist/wizard/ambitions_add()
- equip_wizard() //This apparently give the book if you didn't comment it in the antag one, you could use it and if you did get spells and then submit your ambitions, You actually could get twice as much spells. :pain:
-
-/datum/antagonist/wizard/ambitions_removal()
- owner.RemoveAllSpells()
-
-/datum/objective/ambitions
- name = "ambitions"
- explanation_text = "Open up ambitions from the IC tab and craft your unique antagonistic story."
-
-/datum/objective/ambitions/check_completion()
- return TRUE
diff --git a/modular_skyrat/modules/ambitions/code/mind.dm b/modular_skyrat/modules/ambitions/code/mind.dm
deleted file mode 100644
index 89092e617c7..00000000000
--- a/modular_skyrat/modules/ambitions/code/mind.dm
+++ /dev/null
@@ -1,7 +0,0 @@
-/datum/mind
- var/datum/ambitions/my_ambitions
-
-/datum/mind/proc/ambition_submit()
- for(var/datum/antagonist/A in antag_datums)
- if(A.uses_ambitions)
- A.ambitions_add()
diff --git a/modular_skyrat/modules/morewizardstuffs/code/antag_spawner.dm b/modular_skyrat/modules/morewizardstuffs/code/antag_spawner.dm
index 2764f2184b7..13b37a97e41 100644
--- a/modular_skyrat/modules/morewizardstuffs/code/antag_spawner.dm
+++ b/modular_skyrat/modules/morewizardstuffs/code/antag_spawner.dm
@@ -46,9 +46,6 @@
//
qdel(src)
-/datum/antagonist/wizard/apprentice/imposter/spawnersr //Yes, This is actually dumb.
- uses_ambitions = FALSE
-
/datum/antagonist/wizard/apprentice/imposter/spawnersr/on_gain()
. = ..()
equip_wizard()
diff --git a/modular_skyrat/modules/ticket_counter/code/counter.dm b/modular_skyrat/modules/ticket_counter/code/counter.dm
index b55e6cb3154..e8a6ca87cbc 100644
--- a/modular_skyrat/modules/ticket_counter/code/counter.dm
+++ b/modular_skyrat/modules/ticket_counter/code/counter.dm
@@ -10,8 +10,8 @@ GLOBAL_LIST_INIT(ticket_counter, list())
/datum/admin_help_tickets/stat_entry()
var/list/L = ..()
L[++L.len] = list(null, null, null, null)
- L[++L.len] = list("Activity statistics", null, null, null)
- L[++L.len] = list("Admin:", "Tickets/Ambitions handled:", null, null)
+ L[++L.len] = list("Ticket statistics", null, null, null)
+ L[++L.len] = list("Admin:", "Tickets handled:", null, null)
for(var/ckey in GLOB.ticket_counter)
//assumption, that there's no keys with empty values
diff --git a/tgstation.dme b/tgstation.dme
index 10a3e740202..db7641f2d6a 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -237,7 +237,6 @@
#include "code\__DEFINES\research\anomalies.dm"
#include "code\__DEFINES\~skyrat_defines\_organ_defines.dm"
#include "code\__DEFINES\~skyrat_defines\access.dm"
-#include "code\__DEFINES\~skyrat_defines\ambitions.dm"
#include "code\__DEFINES\~skyrat_defines\ammo_defines.dm"
#include "code\__DEFINES\~skyrat_defines\augment.dm"
#include "code\__DEFINES\~skyrat_defines\banning.dm"
@@ -4368,10 +4367,6 @@
#include "modular_skyrat\modules\altborgs\code\update_icons.dm"
#include "modular_skyrat\modules\alternative_job_titles\code\alt_job_titles.dm"
#include "modular_skyrat\modules\alternative_job_titles\code\job.dm"
-#include "modular_skyrat\modules\ambitions\code\ambition.dm"
-#include "modular_skyrat\modules\ambitions\code\ambition_templates.dm"
-#include "modular_skyrat\modules\ambitions\code\antag_datums.dm"
-#include "modular_skyrat\modules\ambitions\code\mind.dm"
#include "modular_skyrat\modules\ammo_workbench\code\ammo_workbench.dm"
#include "modular_skyrat\modules\ammo_workbench\code\design_disks.dm"
#include "modular_skyrat\modules\antagonists\code\gamemodes.dm"