[MIRROR] Ashwalker Tribe roundend reporting revamp [MDB IGNORE] (#21336)

* Ashwalker Tribe roundend reporting revamp (#75506)

## About The Pull Request

This PR changes how ashwalkers are listed in the roundend report.
Originally, they would be listed as individual "other" antagonists,
which isn't a particularly great way of handling it and leads to
weirdness like this:

![image](https://github.com/tgstation/tgstation/assets/28870487/c00a2cfc-3f08-46f6-a290-ef632cac0371)

_(That's an authentic ninja greentext from a live server, by the by)_

Now, the roundend report gives each ashwalker team their own section
within the report, whether or not they succeeded, and some bonus stats.

![image](https://github.com/tgstation/tgstation/assets/28870487/c2dc3c00-62a7-4784-90be-5a8bb5cc5a50)

This new roundend report handling also supports having multiple
Necropolises (Necropoli?) in the same round. Each tribe has their stats
and success reported individually.

This also slightly modifies the protect_object objective, preventing
hard deletes when linked to objects that don't clear their own
references.

## Why It's Good For The Game

Gives Ashwalkers a much better roundend report, and handles how the
reporting is done in a much more sensible manner.

Reduces how much space that large nests take up with their individual
listings.
## Changelog
🆑 Rhials
qol: Ashwalker roundend reporting has been revamped. Glory to the
Necropolis!
/🆑

* Ashwalker Tribe roundend reporting revamp

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
This commit is contained in:
SkyratBot
2023-05-22 12:06:13 +00:00
committed by GitHub
co-authored by Rhials
parent 6e25245def
commit 17534b3e7f
5 changed files with 51 additions and 11 deletions
@@ -24,14 +24,14 @@
ashies = new /datum/team/ashwalkers()
var/datum/objective/protect_object/objective = new
objective.set_target(src)
objective.team = ashies
linked_objective = objective
ashies.objectives += objective
START_PROCESSING(SSprocessing, src)
/obj/structure/lavaland/ash_walker/Destroy()
ashies.objectives -= linked_objective
ashies = null
QDEL_NULL(linked_objective)
linked_objective = null
STOP_PROCESSING(SSprocessing, src)
return ..()
@@ -91,6 +91,7 @@
L.add_mood_event("oogabooga", /datum/mood_event/sacrifice_good)
else
L.add_mood_event("oogabooga", /datum/mood_event/sacrifice_bad)
ashies.sacrifices_made++
//PLEASE VIEW SKYRAT ASHWALKER MODULE FOR REPLACEMENT
/obj/structure/lavaland/ash_walker/proc/remake_walker(datum/mind/oldmind, oldname)
@@ -110,5 +111,6 @@
new /obj/effect/mob_spawn/ghost_role/human/ash_walker(get_step(loc, pick(GLOB.alldirs)), ashies)
visible_message(span_danger("One of the eggs swells to an unnatural size and tumbles free. It's ready to hatch!"))
meat_counter -= ASH_WALKER_SPAWN_THRESHOLD
ashies.eggs_created++
#undef ASH_WALKER_SPAWN_THRESHOLD