more work
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
//Jay Sparrow
|
||||
//A less murder traitor for low chaos dynamic rounds.
|
||||
|
||||
/datum/game_mode/traitor/thief
|
||||
name = "thief traitor"
|
||||
config_tag = "thief traitor"
|
||||
antag_flag = ROLE_TRAITOR
|
||||
false_report_weight = 20 //Reports of traitors are pretty common.
|
||||
restricted_jobs = list("AI","Cyborg")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
required_players = 0
|
||||
required_enemies = 0
|
||||
|
||||
announce_span = "danger"
|
||||
announce_text = "There are enemy agents on the station!\n\
|
||||
<span class='danger'>Traitors</span>: Accomplish your objectives.\n\
|
||||
<span class='notice'>Crew</span>: Do not let the traitors succeed!"
|
||||
|
||||
traitors_possible = 3 //hard limit on traitors if scaling is turned off //Let it be high for now. Testing phase.
|
||||
num_modifier = 0 // Used for gamemodes, that are a child of traitor, that need more than the usual.
|
||||
antag_datum = /datum/antagonist/traitor/thief //what type of antag to create
|
||||
|
||||
/datum/antagonist/traitor/thief
|
||||
name = "Thief Traitor"
|
||||
roundend_category = "traitors"
|
||||
antagpanel_category = "Traitor"
|
||||
job_rank = ROLE_TRAITOR
|
||||
antag_moodlet = /datum/mood_event/focused
|
||||
special_role = ROLE_TRAITOR
|
||||
employer = "The Syndicate"
|
||||
give_objectives = TRUE
|
||||
should_give_codewords = TRUE
|
||||
should_equip = TRUE
|
||||
traitor_kind = TRAITOR_HUMAN //Set on initial assignment
|
||||
can_hijack = HIJACK_NEUTRAL
|
||||
|
||||
|
||||
/datum/game_mode/traitor/thief/generate_report()
|
||||
return "Although more specific threats are commonplace, you should always remain vigilant for Syndicate agents aboard your station. Syndicate communications have implied that many \
|
||||
GATO employees are Syndicate agents with hidden memories that may be activated at a moment's notice, so it's possible that these agents might not even know their positions."
|
||||
|
||||
/datum/mind/proc/make_ThiefTraitor()
|
||||
if(!(has_antag_datum(/datum/antagonist/traitor/thief)))
|
||||
add_antag_datum(/datum/antagonist/traitor/thief)
|
||||
|
||||
|
||||
/datum/antagonist/traitor/thief/proc/forge_objectives()
|
||||
forge_single_objective()
|
||||
forge_single_objective()
|
||||
var/datum/objective/escape/escape_objective = new
|
||||
escape_objective.owner = owner
|
||||
add_objective(escape_objective)
|
||||
|
||||
|
||||
/datum/antagonist/traitor/thief/forge_human_objectives()
|
||||
forge_single_objective()
|
||||
forge_single_objective()
|
||||
var/datum/objective/escape/escape_objective = new
|
||||
escape_objective.owner = owner
|
||||
add_objective(escape_objective)
|
||||
|
||||
/datum/antagonist/traitor/thief/forge_single_objective()
|
||||
if(prob(15) && !(locate(/datum/objective/download) in owner.objectives) && !(owner.assigned_role in list("Research Director", "Scientist", "Roboticist")))
|
||||
var/datum/objective/download/download_objective = new
|
||||
download_objective.owner = owner
|
||||
download_objective.gen_amount_goal()
|
||||
add_objective(download_objective)
|
||||
else
|
||||
var/datum/objective/steal/steal_objective = new
|
||||
steal_objective.owner = owner
|
||||
steal_objective.find_target()
|
||||
add_objective(steal_objective)
|
||||
return
|
||||
|
||||
|
||||
/datum/antagonist/traitor/thief/on_gain()
|
||||
if(owner.current && isAI(owner.current))
|
||||
traitor_kind = TRAITOR_AI
|
||||
|
||||
SSticker.mode.traitors += owner
|
||||
owner.special_role = special_role
|
||||
if(give_objectives)
|
||||
forge_objectives()
|
||||
finalize_traitor()
|
||||
Reference in New Issue
Block a user