Axes TS gateway (#18825)

* Axes TS gateway

* This too

* Commit for MDB

* This PR finna become my MDB2 test

* aaaaaaaaa
This commit is contained in:
AffectedArc07
2022-08-18 23:48:29 +01:00
committed by GitHub
parent f41e0f111d
commit 4140275ca8
13 changed files with 41 additions and 31385 deletions
@@ -18,8 +18,6 @@
error_on_humanize = "You are not able to control any terror spider this round."
else if(cannotPossess(user))
error_on_humanize = "You have enabled antag HUD and are unable to re-enter the round."
else if(spider_awaymission)
error_on_humanize = "Terror spiders that are part of an away mission cannot be controlled by ghosts."
else if(!ai_playercontrol_allowtype)
error_on_humanize = "This specific type of terror spider is not player-controllable."
else if(degenerate)
@@ -6,8 +6,6 @@
to_chat(src, "Your Brood: ")
for(var/thing in GLOB.ts_spiderlist)
var/mob/living/simple_animal/hostile/poison/terror_spider/T = thing
if(T.spider_awaymission != spider_awaymission)
continue
hsline = "* [T] in [get_area(T)], "
if(T.stat == DEAD)
hsline += "DEAD"
@@ -23,7 +21,7 @@
var/numspiders = 0
for(var/thing in GLOB.ts_spiderlist)
var/mob/living/simple_animal/hostile/poison/terror_spider/T = thing
if(T.stat != DEAD && !T.spider_placed && spider_awaymission == T.spider_awaymission)
if(T.stat != DEAD && !T.spider_placed)
numspiders += 1
return numspiders
@@ -34,7 +32,7 @@
spider_totals[thistype] = 0
for(var/thing in GLOB.ts_spiderlist)
var/mob/living/simple_animal/hostile/poison/terror_spider/T = thing
if(T.stat == DEAD || T.spider_placed || spider_awaymission != T.spider_awaymission)
if(T.stat == DEAD || T.spider_placed)
continue
if(check_mine && T.spider_myqueen != src)
continue
@@ -32,11 +32,6 @@
ai_spins_webs = FALSE
gender = MALE
/mob/living/simple_animal/hostile/poison/terror_spider/prince/death(gibbed)
if(can_die() && !hasdied && spider_uo71)
UnlockBlastDoors("UO71_SciStorage")
return ..()
/mob/living/simple_animal/hostile/poison/terror_spider/prince/spider_specialattack(mob/living/carbon/human/L)
L.KnockDown(10 SECONDS)
return ..()
@@ -59,10 +59,7 @@
var/datum/action/innate/terrorspider/remoteview/remoteview_action = new
remoteview_action.Grant(src)
grant_queen_subtype_abilities()
spider_myqueen = src
if(spider_awaymission)
spider_growinstantly = TRUE
spider_spawnfrequency = 150
spider_myqueen = src // ???
/mob/living/simple_animal/hostile/poison/terror_spider/queen/proc/grant_queen_subtype_abilities()
@@ -96,8 +93,6 @@
/mob/living/simple_animal/hostile/poison/terror_spider/queen/death(gibbed)
if(can_die() && !hasdied)
if(spider_uo71)
UnlockBlastDoors("UO71_Caves")
// When a queen (or subtype!) dies, so do all of her spiderlings, and half of all her fully grown offspring
// This feature is intended to provide a way for crew to still win even if the queen has overwhelming numbers - by sniping the queen.
for(var/thing in GLOB.ts_spiderlist)
@@ -194,8 +189,6 @@
if(world.time > (spider_lastspawn + spider_spawnfrequency))
if(prob(20))
if(ai_nest_is_full())
if(spider_awaymission)
spider_spawnfrequency = spider_spawnfrequency_stable
neststep = 4
else
spider_lastspawn = world.time
@@ -345,12 +345,3 @@
if(!target)
return
. = ..()
// --------------------------------------------------------------------------------
// --------------------- TERROR SPIDERS: MISC AI CODE -----------------------------
// --------------------------------------------------------------------------------
/mob/living/simple_animal/hostile/poison/terror_spider/proc/UnlockBlastDoors(target_id_tag)
for(var/obj/machinery/door/poddoor/P in GLOB.airlocks)
if(P.density && P.id_tag == target_id_tag && P.z == z && !P.operating)
P.open()
@@ -119,9 +119,6 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list)
var/spider_opens_doors = 1 // all spiders can open firedoors (they have no security). 1 = can open depowered doors. 2 = can open powered doors
faction = list("terrorspiders")
var/spider_awaymission = FALSE // if TRUE, limits certain behavior in away missions
var/spider_uo71 = FALSE // if TRUE, spider is in the UO71 away mission
var/spider_unlock_id_tag = "" // if defined, unlock awaymission blast doors with this tag on death
var/spider_role_summary = "UNDEFINED"
var/spider_placed = FALSE
@@ -162,6 +159,7 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list)
var/spider_debug = FALSE
footstep_type = FOOTSTEP_MOB_CLAW
// --------------------------------------------------------------------------------
// --------------------- TERROR SPIDERS: SHARED ATTACK CODE -----------------------
// --------------------------------------------------------------------------------
@@ -278,19 +276,7 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list)
name += " ([rand(1, 1000)])"
real_name = name
msg_terrorspiders("[src] has grown in [get_area(src)].")
if(is_away_level(z))
spider_awaymission = TRUE
GLOB.ts_count_alive_awaymission++
if(spider_tier >= 3)
ai_ventcrawls = FALSE // means that pre-spawned bosses on away maps won't ventcrawl. Necessary to keep prince/mother in one place.
if(istype(get_area(src), /area/awaymission/UO71)) // if we are playing the away mission with our special spiders...
spider_uo71 = TRUE
if(world.time < 600)
// these are static spiders, specifically for the UO71 away mission, make them stay in place
ai_ventcrawls = FALSE
spider_placed = TRUE
else
GLOB.ts_count_alive_station++
GLOB.ts_count_alive_station++
// after 3 seconds, assuming nobody took control of it yet, offer it to ghosts.
addtimer(CALLBACK(src, .proc/CheckFaction), 20)
addtimer(CALLBACK(src, .proc/announcetoghosts), 30)
@@ -299,8 +285,6 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list)
spider_creation_time = world.time
/mob/living/simple_animal/hostile/poison/terror_spider/proc/announcetoghosts()
if(spider_awaymission)
return
if(stat == DEAD)
return
if(ckey)
@@ -353,10 +337,7 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list)
hasdied = TRUE
GLOB.ts_count_dead++
GLOB.ts_death_last = world.time
if(spider_awaymission)
GLOB.ts_count_alive_awaymission--
else
GLOB.ts_count_alive_station--
GLOB.ts_count_alive_station--
/mob/living/simple_animal/hostile/poison/terror_spider/death(gibbed)
if(can_die())
@@ -469,8 +450,6 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list)
var/mob/living/simple_animal/hostile/poison/terror_spider/T = thing
if(T.stat == DEAD)
continue
if(T.spider_awaymission != spider_awaymission)
continue
targets |= T // we use |= instead of += to avoid adding src to the list twice
var/mob/living/L = input("Choose a terror to watch.", "Selection") in targets
if(istype(L))
@@ -30,11 +30,6 @@
attackcycles = 0
..()
/mob/living/simple_animal/hostile/poison/terror_spider/white/death(gibbed)
if(can_die() && !hasdied && spider_uo71)
UnlockBlastDoors("UO71_Bridge")
return ..(gibbed)
/mob/living/simple_animal/hostile/poison/terror_spider/white/spider_specialattack(mob/living/carbon/human/L, poisonable)
if(!poisonable)
..()