mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 20:45:28 +01:00
Better groups for antagonists (#72576)
## About The Pull Request Better categorizes antagonists into groups for the orbit UI, admin traitor panel. Permanently hostile antags were intermixed in the "Alive" section, and it was sometimes tough to see what's going on. To do this, many minor antags needed new antag datums which were added with fluff objectives as a bonus. Group Name | Antags --- | --- Syndicate | Nukies, battlecruiser crew, lone op Extradimensional Abominations | Nightmare⭐, morph⭐, pyro slime⭐ Spaceborne Leviathans | Space dragon, (spawned) carps⭐ Invasive Overgrowth | Venus human traps⭐ Arachnid Infestation | Spiders⭐ Eldritch Horrors | Cult constructs⭐, revenant (⭐ = New antag datum, proper orbit category, new objective text) <details> <summary>Screenshots (outdated)</summary> Antags get more tooltip info  Populating space dragon + carps (now leviathans)  Detail to distinguish job & rank  New categories in action  Organized Traitor Panel  </details> ## Why It's Good For The Game Better UI, observer experience, admin panel. It's now very obvious when something is hostile from the orbit panel. ## Changelog 🆑 qol: The orbit menu now sorts antagonists into groups more effectively. Some get new named groups. admin: Traitor panel should have slightly more sane categories. add: Many minor antagonists now have "objectives". refactor: Refactors code in several antag datums. /🆑 Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
This commit is contained in:
@@ -132,66 +132,6 @@
|
||||
mob_mind.add_antag_datum(antag_datum_to_give, antag_team)
|
||||
antag_team.players_spawned += (spawned_mob.ckey)
|
||||
|
||||
/datum/team/battlecruiser
|
||||
name = "\improper Battlecruiser Crew"
|
||||
member_name = "crewmember"
|
||||
/// The central objective of this battlecruiser
|
||||
var/core_objective = /datum/objective/nuclear
|
||||
/// The assigned nuke of this team
|
||||
var/obj/machinery/nuclearbomb/nuke
|
||||
|
||||
/datum/team/battlecruiser/proc/update_objectives()
|
||||
if(core_objective)
|
||||
var/datum/objective/objective = new core_objective()
|
||||
objective.team = src
|
||||
objectives += objective
|
||||
|
||||
/datum/antagonist/battlecruiser
|
||||
name = "Battlecruiser Crewmember"
|
||||
show_to_ghosts = TRUE
|
||||
roundend_category = "battlecruiser syndicate operatives"
|
||||
suicide_cry = "FOR THE SYNDICATE!!!"
|
||||
antag_hud_name = "battlecruiser_crew"
|
||||
job_rank = ROLE_BATTLECRUISER_CREW
|
||||
var/datum/team/battlecruiser/battlecruiser_team
|
||||
|
||||
/datum/antagonist/battlecruiser/get_team()
|
||||
return battlecruiser_team
|
||||
|
||||
/datum/antagonist/battlecruiser/greet()
|
||||
owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/ops.ogg',100,0, use_reverb = FALSE)
|
||||
to_chat(owner, span_big("You are a [name]!"))
|
||||
owner.announce_objectives()
|
||||
|
||||
/datum/antagonist/battlecruiser/ally
|
||||
name = "Battlecruiser Ally"
|
||||
show_to_ghosts = FALSE
|
||||
|
||||
/datum/antagonist/battlecruiser/captain
|
||||
name = "Battlecruiser Captain"
|
||||
antag_hud_name = "battlecruiser_lead"
|
||||
job_rank = ROLE_BATTLECRUISER_CAPTAIN
|
||||
|
||||
/datum/antagonist/battlecruiser/create_team(datum/team/battlecruiser/team)
|
||||
if(!team)
|
||||
return
|
||||
if(!istype(team))
|
||||
stack_trace("Wrong team type passed to [type] initialization.")
|
||||
battlecruiser_team = team
|
||||
|
||||
/datum/antagonist/battlecruiser/apply_innate_effects(mob/living/mob_override)
|
||||
add_team_hud(mob_override || owner.current, /datum/antagonist/battlecruiser)
|
||||
|
||||
/datum/antagonist/battlecruiser/on_gain()
|
||||
if(battlecruiser_team)
|
||||
objectives |= battlecruiser_team.objectives
|
||||
if(battlecruiser_team.nuke)
|
||||
var/obj/machinery/nuclearbomb/nuke = battlecruiser_team.nuke
|
||||
antag_memory += "<B>[nuke] Code</B>: [nuke.r_code]<br>"
|
||||
owner.add_memory(/datum/memory/key/nuke_code, nuclear_code = nuke.r_code)
|
||||
to_chat(owner, "The nuclear authorization code is: <B>[nuke.r_code]</B>")
|
||||
return ..()
|
||||
|
||||
/datum/outfit/syndicate_empty/battlecruiser
|
||||
name = "Syndicate Battlecruiser Ship Operative"
|
||||
belt = /obj/item/storage/belt/military/assault
|
||||
|
||||
Reference in New Issue
Block a user