Quarantined Outpost tweaks and bugfixes (#21586)

## About PR

- Reduces the site's cost from `2` to `1`.
- Tweaks wall destroying logic of horde type mobs to a saner
alternative.
- Fixes corpses created by landmarks not getting assigned with the
specified access. Fixes #21527
- Creates an abomination subtype that is guaranteed to spawn with a
disguise.
This commit is contained in:
Kano
2025-11-15 22:15:36 +00:00
committed by GitHub
parent a608689ff6
commit eef02c1876
6 changed files with 19 additions and 6 deletions
+1
View File
@@ -888,5 +888,6 @@
desc = "Himean Military Patrol Vessel"
#define ACCESS_QUARANTINED_OUTPOST_ENGINEER 254
/datum/access/quarantined_outpost_engineer
id = ACCESS_QUARANTINED_OUTPOST_ENGINEER
desc = "Outpost Nemora, Engineering Clearance"
+1 -1
View File
@@ -107,7 +107,7 @@
if(jobdatum)
W.access = jobdatum.get_access()
else
W.access = list()
W.access = corpseidaccess
if(corpseidjob)
W.assignment = corpseidjob
M.set_id_info(W)
@@ -0,0 +1,7 @@
author: Kano
delete-after: True
changes:
- rscadd: "Tweaked and fixed a few things in the Quarantined Outpost map."
@@ -10,7 +10,7 @@
sectors = list(ALL_CRESCENT_EXPANSE_SECTORS, ALL_VOID_SECTORS, SECTOR_WEEPING_STARS, SECTOR_BADLANDS, SECTOR_VALLEY_HALE)
spawn_weight = 1
spawn_cost = 2 // chonky ruin
spawn_cost = 1
id = "quarantined_outpost"
unit_test_groups = list(1)
@@ -2,7 +2,7 @@
/area/quarantined_outpost
name = "base type"
ambience = list(AMBIENCE_FOREBODING, AMBIENCE_LAVA)
base_turf = /turf/simulated/floor/exoplanet/abyss
base_turf = /turf/simulated/floor/exoplanet/asteroid/ash/rocky
area_flags = AREA_FLAG_INDESTRUCTIBLE_TURFS
/area/quarantined_outpost/exterior
@@ -171,6 +171,8 @@ GLOBAL_LIST_EMPTY(trackables_pool)
var/language = LANGUAGE_TCB
/// Used for disabling some abilities for horde and a few other subtypes.
var/disguise_disabled = FALSE
/// If true, the mob will start with disguise.
var/starts_disguised = FALSE
bypass_blood_overlay = TRUE
/mob/living/simple_animal/hostile/revivable/abomination/Initialize()
@@ -181,7 +183,7 @@ GLOBAL_LIST_EMPTY(trackables_pool)
return
if(prob(40))
trap_split = TRUE
if(prob(20))
if(prob(20) || starts_disguised)
mob_in_disguise = TRUE
maxHealth = 400 // the mob in disguise makes it easy target for a few bullets. This should even the odds.
health = 400
@@ -273,6 +275,9 @@ GLOBAL_LIST_EMPTY(trackables_pool)
playsound(loc, 'sound/effects/splat.ogg', 50, 1)
playsound(loc, 'sound/effects/creatures/siro_shriek.ogg', 60, 1)
/mob/living/simple_animal/hostile/revivable/abomination/disguised
starts_disguised = TRUE
// Lesser Abomination
/mob/living/simple_animal/hostile/giant_spider/lesser_abomination
name = "lesser abomination"
@@ -392,7 +397,7 @@ GLOBAL_LIST_EMPTY(trackables_pool)
if(istype(target_turf, /turf/simulated/wall) && !QDELETED(src) && stat != DEAD && get_dist(src, target_turf) == 1) // we check again
visible_message(SPAN_DANGER("With a loud thud, \the [src] breaks down the [target_turf]!"))
playsound(target_turf, 'sound/effects/meteorimpact.ogg', 50, 1)
target_turf.ChangeTurf(/turf/simulated/floor/exoplanet/asteroid/ash/rocky)
target_turf.ex_act(2)
new /obj/effect/decal/cleanable/floor_damage/broken6(target_turf)
breaking_wall = FALSE
return
@@ -450,7 +455,7 @@ GLOBAL_LIST_EMPTY(trackables_pool)
if(istype(target_turf, /turf/simulated/wall) && !QDELETED(src) && stat != DEAD && get_dist(src, target_turf) == 1) // we check again
visible_message(SPAN_DANGER("With a loud thud, \the [src] breaks down the [target_turf]!"))
playsound(target_turf, 'sound/effects/meteorimpact.ogg', 50, 1)
target_turf.ChangeTurf(/turf/simulated/floor/exoplanet/asteroid/ash/rocky)
target_turf.ex_act(2)
new /obj/effect/decal/cleanable/floor_damage/broken6(target_turf)
breaking_wall = FALSE
return