mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 14:37:04 +01:00
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:
@@ -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)
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user