Skip to content

Commit

Permalink
Raise Corpsespawner Limit (#7389)
Browse files Browse the repository at this point in the history
# About the pull request

Raises corpsespawner quota from 25 to 100. Limits intel points from
human corpses to 5 (50 bodies).
Adds a bunch of corpsespawners to Trijent. Adds a couple to shivas and
fiorina. Removes a bunch from solaris.

This would likely need a TM to see if the increased amount of bodies
impacts server performance.

# Explain why it's good for the game

As it stands right now, there is a hard limit on 25 corpses per map. On
a map like LV-624 this is mostly OK as it's fairly small and the
corpsespawners are fairly spread out. On a map like Trijent and
potentially Hybrisa, this severely limits the amount of bodies the
average player will see in a given round. You would expect bigger maps
to have more bodies but this is not the case. This has negatively
affected Solaris specifically because the map has almost 100
corpsespawners, many of which are in caves or research labs, making the
colony proper nearly devoid of life. Mappers are also in an arms race,
competing for the 25 corpse spots in their map additions.

Big Red needs to have some of it's corpse spawners removed if the limit
is raised as many of these were placed down with the assumption that not
all of them were going to spawn at once.

Trijent now looks more like a xenomorph outbreak has swept through the
colony and less like the rapture occured and everyone vanished without a
trace.

Shivas has a few extra bodies now.

Fiorina had almost no prisoner and scientist bodies and almost
exclusively guard bodies. Isn't much of a prison science annex with no
prisoners or scientists.

non-comprehensive before and after:

<details>
<summary>before</summary>


![bigred1](https://github.com/user-attachments/assets/e6a9d65b-6d48-401e-8b87-064c7bdf2b57)


</details>

<details>
<summary>after</summary>


![bigred4](https://github.com/user-attachments/assets/48934d27-13ee-4e01-9c79-fbd313fe44ca)

</details>

<details>
<summary>some trijent stuff</summary>


![trijent1](https://github.com/user-attachments/assets/24d1553f-817e-46a0-b046-76c6b12fb902)

![trijent2](https://github.com/user-attachments/assets/b8873249-4be8-4435-9727-1e14bcff2ca1)


</details>



There doesn't need to ever be 10 bodies stuffed in the Eta locks but
because the mapper wanted there to always be a couple, he put down ten
to make it likely that a few would actually spawn. This is roundabout
and stupid and causes "individual" corpsespawners to very rarely
actually spawn a corpse, which is unintuitive from the mapper's
perspective.

Also limits intel points from human bodies to prevent IOs from printing
intel points from maps/inserts with a bunch of bodies.


# Testing Photographs and Procedure
Tested by starting big red on local and using my eyes. Also killed a
bunch of dudes in research and human bodies stopped giving points after
5.


# Changelog
:cl: BOBAMA
maptweak: quadrupled the limit for roundstart corpses on maps.
maptweak: Removed Corpses from Solaris. Added corpses to Shivas,
Fiorina, and Trijent
maptweak: added some "last stand" holds to Trijent and Shivas to put
bodies in. Trijent research lab had most CMB weapons replaced with
corporate/goon stuff.
balance: Intel points from human bodies are now capped at 5 (50 bodies)
/:cl:
  • Loading branch information
BOBAMAx authored Nov 7, 2024
1 parent f6e2bf8 commit 63214cd
Show file tree
Hide file tree
Showing 9 changed files with 10,891 additions and 10,101 deletions.
2 changes: 1 addition & 1 deletion code/controllers/subsystem/objectives_controller.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#define CORPSES_TO_SPAWN 25
#define CORPSES_TO_SPAWN 100

SUBSYSTEM_DEF(objectives)
name = "Objectives"
Expand Down
12 changes: 8 additions & 4 deletions code/modules/objectives/mob_objectives.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
controller = TREE_MARINE
/// List of list of active corpses per tech-faction ownership
var/list/corpses = list()
var/list/scored_corpses = list()
var/list/scored_other_corpses = list()
var/list/scored_humansynth_corpses = list()

/datum/cm_objective/recover_corpses/New()
. = ..()
Expand Down Expand Up @@ -54,7 +55,7 @@
return

// This mob has already been scored before
if(LAZYISIN(scored_corpses, dead_mob))
if(LAZYISIN(scored_other_corpses, dead_mob) || LAZYISIN(scored_humansynth_corpses, dead_mob))
return

LAZYDISTINCTADD(corpses, dead_mob)
Expand Down Expand Up @@ -117,7 +118,7 @@
if(isqueen(X)) //Queen is Tier 0 for some reason...
value = OBJECTIVE_ABSOLUTE_VALUE

else if(ishumansynth_strict(target))
else if(ishumansynth_strict(target) && length(scored_humansynth_corpses) <= 49) // Limit human corpse recovery to 5 total points (.1 each)
return OBJECTIVE_LOW_VALUE

return value
Expand All @@ -141,7 +142,10 @@
award_points(corpse_val)

corpses -= target
scored_corpses += target
if(ishumansynth_strict(target))
scored_humansynth_corpses += target
else
scored_other_corpses += target

if (isxeno(target))
UnregisterSignal(target, COMSIG_XENO_REVIVED)
Expand Down
Loading

0 comments on commit 63214cd

Please sign in to comment.