diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index f9e31b558eb..91b49143bbd 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -69,11 +69,11 @@ return 1 return ..() -/mob/living/simple_animal/hostile/blob/blobspore/New(loc, obj/structure/blob/factory/linked_node) +/mob/living/simple_animal/hostile/blob/blobspore/Initialize(mapload, obj/structure/blob/factory/linked_node) + . = ..() if(istype(linked_node)) factory = linked_node factory.spores += src - ..() /mob/living/simple_animal/hostile/blob/blobspore/Life(seconds, times_fired) @@ -200,8 +200,8 @@ adjustFireLoss(0.2) ..() -/mob/living/simple_animal/hostile/blob/blobbernaut/New() - ..() +/mob/living/simple_animal/hostile/blob/blobbernaut/Initialize(mapload) + . = ..() if(name == "blobbernaut") name = text("blobbernaut ([rand(1, 1000)])") diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 0a098c4e431..24659ef9a83 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -114,8 +114,8 @@ to_chat(src, "3. Biological and sentient resources will be harvested at a later date, do not harm them.") to_chat(src, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Swarmer)") -/mob/living/simple_animal/hostile/swarmer/New() - ..() +/mob/living/simple_animal/hostile/swarmer/Initialize(mapload) + . = ..() add_language("Swarmer", 1) verbs -= /mob/living/verb/pulled for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diff --git a/code/game/gamemodes/miniantags/guardian/types/healer.dm b/code/game/gamemodes/miniantags/guardian/types/healer.dm index 9703483100f..b4e74eb45bf 100644 --- a/code/game/gamemodes/miniantags/guardian/types/healer.dm +++ b/code/game/gamemodes/miniantags/guardian/types/healer.dm @@ -29,8 +29,9 @@ melee_damage_type = STAMINA admin_spawned = TRUE -/mob/living/simple_animal/hostile/guardian/healer/New() - ..() +/mob/living/simple_animal/hostile/guardian/healer/Destroy() + beacon = null + return ..() /mob/living/simple_animal/hostile/guardian/healer/Life(seconds, times_fired) ..() diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm index 9dcc62aa000..b6b2d2c2955 100644 --- a/code/game/gamemodes/miniantags/morph/morph.dm +++ b/code/game/gamemodes/miniantags/morph/morph.dm @@ -76,7 +76,7 @@ real_name = "magical morph" desc = "A revolting, pulsating pile of flesh. This one looks somewhat.. magical." -/mob/living/simple_animal/hostile/morph/wizard/New() +/mob/living/simple_animal/hostile/morph/wizard/Initialize(mapload) . = ..() AddSpell(new /obj/effect/proc_holder/spell/smoke) AddSpell(new /obj/effect/proc_holder/spell/forcewall) diff --git a/code/modules/mining/lavaland/loot/colossus_loot.dm b/code/modules/mining/lavaland/loot/colossus_loot.dm index c5548890a85..f290ba498ac 100644 --- a/code/modules/mining/lavaland/loot/colossus_loot.dm +++ b/code/modules/mining/lavaland/loot/colossus_loot.dm @@ -274,8 +274,8 @@ stop_automated_movement = TRUE var/heal_power = 5 -/mob/living/simple_animal/hostile/lightgeist/New() - ..() +/mob/living/simple_animal/hostile/lightgeist/Initialize(mapload) + . = ..() verbs -= /mob/living/verb/pulled verbs -= /mob/verb/me_verb var/datum/atom_hud/medsensor = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 18a4eadbcda..29c2caba747 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -40,22 +40,19 @@ var/mesons_active var/obj/item/gun/energy/kinetic_accelerator/minebot/stored_gun - var/datum/action/innate/minedrone/toggle_light/toggle_light_action - var/datum/action/innate/minedrone/toggle_meson_vision/toggle_meson_vision_action - var/datum/action/innate/minedrone/toggle_mode/toggle_mode_action - var/datum/action/innate/minedrone/dump_ore/dump_ore_action -/mob/living/simple_animal/hostile/mining_drone/New() - ..() +/mob/living/simple_animal/hostile/mining_drone/Initialize(mapload) + . = ..() stored_gun = new(src) - toggle_light_action = new() - toggle_light_action.Grant(src) - toggle_meson_vision_action = new() - toggle_meson_vision_action.Grant(src) - toggle_mode_action = new() - toggle_mode_action.Grant(src) - dump_ore_action = new() - dump_ore_action.Grant(src) + var/static/list/action_paths = list( + /datum/action/innate/minedrone/toggle_light, + /datum/action/innate/minedrone/toggle_meson_vision, + /datum/action/innate/minedrone/toggle_mode, + /datum/action/innate/minedrone/dump_ore, + ) + for(var/action_path in action_paths) + var/datum/action/act = new action_path + act.Grant(src) SetCollectBehavior() diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 982659e3627..ff9804c5ab8 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -32,7 +32,7 @@ /// Message to send to the construct when they are created, containing information about their role. var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this." -/mob/living/simple_animal/hostile/construct/New() +/mob/living/simple_animal/hostile/construct/Initialize(mapload) . = ..() if(!SSticker.mode)//work around for maps with runes and cultdat is not loaded all the way name = "[construct_type] ([rand(1, 1000)])" diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 23ba42e5c60..5e91ce4dc92 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -32,9 +32,9 @@ gender = FEMALE footstep_type = FOOTSTEP_MOB_SHOE -/mob/living/simple_animal/hostile/retaliate/goat/New() - udder = new() +/mob/living/simple_animal/hostile/retaliate/goat/Initialize(mapload) . = ..() + udder = new() /mob/living/simple_animal/hostile/retaliate/goat/Destroy() QDEL_NULL(udder) diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 55861669bcd..a63b2161bf0 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -41,8 +41,8 @@ name = "Hudson" desc = "Feared outlaw, this guy is one bad news bear." //I'm sorry... -/mob/living/simple_animal/hostile/bear/Hudson/New() - ..() +/mob/living/simple_animal/hostile/bear/Hudson/Initialize(mapload) + . = ..() var/unbearable_pun = pick("He's unbearably cute.", "It looks like he is a bearer of bad news.", "Sadly, he is bearly able to comprehend puns.") desc = "That's Hudson. " + unbearable_pun// I am not sorry for this. diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 15c6a87e3da..3ef00b378a1 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -59,11 +59,14 @@ /mob/living/simple_animal/hostile/poison/bees/Process_Spacemove(movement_dir = 0) return TRUE -/mob/living/simple_animal/hostile/poison/bees/New() +/mob/living/simple_animal/hostile/poison/bees/ComponentInitialize() ..() - generate_bee_visuals() AddComponent(/datum/component/swarming) +/mob/living/simple_animal/hostile/poison/bees/Initialize(mapload) + . = ..() + generate_bee_visuals() + /mob/living/simple_animal/hostile/poison/bees/Destroy() beegent = null if(beehome) @@ -346,9 +349,9 @@ var/list/master_and_friends = list() mouse_opacity = MOUSE_OPACITY_OPAQUE -/mob/living/simple_animal/hostile/poison/bees/syndi/New() +/mob/living/simple_animal/hostile/poison/bees/syndi/Initialize(mapload) + . = ..() beegent = GLOB.chemical_reagents_list["facid"] //Prepare to die - ..() /mob/living/simple_animal/hostile/poison/bees/syndi/Destroy() master_and_friends.Cut() diff --git a/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm b/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm index bc50172fe43..fc9f01da932 100644 --- a/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm +++ b/code/modules/mob/living/simple_animal/hostile/floorcluwne.dm @@ -44,7 +44,7 @@ var/admincluwne = FALSE -/mob/living/simple_animal/hostile/floor_cluwne/New() +/mob/living/simple_animal/hostile/floor_cluwne/Initialize(mapload) . = ..() remove_from_all_data_huds() var/obj/item/card/id/access_card = new (src) @@ -59,8 +59,8 @@ return Acquire_Victim() - /mob/living/simple_animal/hostile/floor_cluwne/Destroy() + current_victim = null return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/hellhound.dm b/code/modules/mob/living/simple_animal/hostile/hellhound.dm index d4020a9b47a..a0b2f234911 100644 --- a/code/modules/mob/living/simple_animal/hostile/hellhound.dm +++ b/code/modules/mob/living/simple_animal/hostile/hellhound.dm @@ -33,12 +33,11 @@ var/life_regen_amount = -10 // negative, because negative = healing var/smoke_lastuse = 0 var/smoke_freq = 300 // 30 seconds - var/datum/action/innate/demon/whisper/whisper_action footstep_type = FOOTSTEP_MOB_CLAW -/mob/living/simple_animal/hostile/hellhound/New() +/mob/living/simple_animal/hostile/hellhound/Initialize(mapload) . = ..() - whisper_action = new() + var/datum/action/innate/demon/whisper/whisper_action = new whisper_action.Grant(src) ADD_TRAIT(src, TRAIT_NOBREATH, SPECIES_TRAIT) @@ -116,7 +115,7 @@ melee_damage_upper = 30 environment_smash = 2 -/mob/living/simple_animal/hostile/hellhound/greater/New() +/mob/living/simple_animal/hostile/hellhound/greater/Initialize(mapload) . = ..() // Movement AddSpell(new /obj/effect/proc_holder/spell/ethereal_jaunt/shift) diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index 8497a2541ac..4bd08ddff6f 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -72,8 +72,8 @@ var/bot_amt = 10 var/spawn_delay = 600 -/mob/living/simple_animal/hostile/hivebot/tele/New() - ..() +/mob/living/simple_animal/hostile/hivebot/tele/Initialize(mapload) + . = ..() var/datum/effect_system/smoke_spread/smoke = new smoke.set_up(5, 0, src.loc) smoke.start() diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 88d602d8d6f..1fddb766a56 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -108,16 +108,20 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca /mob/living/simple_animal/hostile/mimic/copy health = 100 maxHealth = 100 + gold_core_spawnable = NO_SPAWN var/mob/living/creator = null // the creator var/destroy_objects = 0 var/knockdown_people = 0 var/image/googly_eyes = null - gold_core_spawnable = NO_SPAWN -/mob/living/simple_animal/hostile/mimic/copy/New(loc, obj/copy, mob/living/creator, destroy_original = 0) - ..(loc) +/mob/living/simple_animal/hostile/mimic/copy/Initialize(mapload, obj/copy, mob/living/creator, destroy_original = 0) + . = ..() CopyObject(copy, creator, destroy_original) +/mob/living/simple_animal/hostile/mimic/copy/Destroy() + creator = null + return ..() + /mob/living/simple_animal/hostile/mimic/copy/Life() ..() if(!target && !ckey) //Objects eventually revert to normal if no one is around to terrorize diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 228077c5c02..ab284fd5156 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -48,7 +48,8 @@ if(!stat)//Mushrooms slowly regenerate if conscious, for people who want to save them from being eaten adjustBruteLoss(-2) -/mob/living/simple_animal/hostile/mushroom/New()//Makes every shroom a little unique +/mob/living/simple_animal/hostile/mushroom/Initialize(mapload) //Makes every shroom a little unique + . = ..() melee_damage_lower += rand(3, 5) melee_damage_upper += rand(10,20) maxHealth += rand(40,60) @@ -60,7 +61,6 @@ cap_dead.color = cap_color UpdateMushroomCap() health = maxHealth - ..() /mob/living/simple_animal/hostile/mushroom/CanAttack(atom/the_target) // Mushroom-specific version of CanAttack to handle stupid attack_same = 2 crap so we don't have to do it for literally every single simple_animal/hostile because this shit never gets spawned if(!the_target || isturf(the_target) || istype(the_target, /atom/movable/lighting_object)) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm index 60a4caa393c..86079485cb4 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm @@ -25,7 +25,7 @@ var/attack_cycles_max = 3 footstep_type = FOOTSTEP_MOB_SHOE -/mob/living/simple_animal/hostile/retaliate/kangaroo/New() +/mob/living/simple_animal/hostile/retaliate/kangaroo/Initialize(mapload) . = ..() // Leap spell, player-only usage AddSpell(new /obj/effect/proc_holder/spell/leap) diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 9ccbce6f6fd..7cba2581662 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -53,8 +53,8 @@ // No movement while seen code. -/mob/living/simple_animal/hostile/statue/New(loc, mob/living/creator) - ..() +/mob/living/simple_animal/hostile/statue/Initialize(mapload, mob/living/creator) + . = ..() // Give spells AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/flicker_lights(null)) AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/blindness(null)) @@ -64,6 +64,10 @@ if(creator) src.creator = creator +/mob/living/simple_animal/hostile/statue/Destroy() + creator = null + return ..() + /mob/living/simple_animal/hostile/statue/Move(turf/NewLoc) if(can_be_seen(NewLoc)) if(client) diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/brown.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/brown.dm index 4dd64209344..8c81e860983 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/brown.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/brown.dm @@ -27,9 +27,8 @@ freq_ventcrawl_combat = 600 // Ventcrawls very frequently, breaking open vents as it goes. freq_ventcrawl_idle = 1800 web_type = null - var/datum/action/innate/terrorspider/ventsmash/ventsmash_action -/mob/living/simple_animal/hostile/poison/terror_spider/brown/New() - ..() - ventsmash_action = new() - ventsmash_action.Grant(src) +/mob/living/simple_animal/hostile/poison/terror_spider/brown/Initialize(mapload) + . = ..() + var/datum/action/innate/terrorspider/ventsmash/act = new + act.Grant(src) diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress.dm index ecfa1332630..d1aee676adb 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress.dm @@ -28,16 +28,14 @@ icon_state = "terror_empress" icon_living = "terror_empress" icon_dead = "terror_empress_dead" - var/datum/action/innate/terrorspider/queen/empress/empresslings/empresslings_action - var/datum/action/innate/terrorspider/queen/empress/empresserase/empresserase_action atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) -/mob/living/simple_animal/hostile/poison/terror_spider/queen/empress/New() - ..() - empresslings_action = new() - empresslings_action.Grant(src) - empresserase_action = new() - empresserase_action.Grant(src) +/mob/living/simple_animal/hostile/poison/terror_spider/queen/empress/Initialize(mapload) + . = ..() + var/datum/action/innate/terrorspider/queen/empress/empresslings/act_ling = new + act_ling.Grant(src) + var/datum/action/innate/terrorspider/queen/empress/empresserase/act_erase = new + act_erase.Grant(src) /mob/living/simple_animal/hostile/poison/terror_spider/queen/empress/spider_special_action() return diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/green.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/green.dm index 403b4ee5d0c..1cb62998c94 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/green.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/green.dm @@ -22,13 +22,12 @@ melee_damage_upper = 20 web_type = /obj/structure/spider/terrorweb/green var/feedings_to_lay = 2 - var/datum/action/innate/terrorspider/greeneggs/greeneggs_action -/mob/living/simple_animal/hostile/poison/terror_spider/green/New() - ..() - greeneggs_action = new() - greeneggs_action.Grant(src) +/mob/living/simple_animal/hostile/poison/terror_spider/green/Initialize(mapload) + . = ..() + var/datum/action/innate/terrorspider/greeneggs/act = new + act.Grant(src) /mob/living/simple_animal/hostile/poison/terror_spider/green/proc/DoLayGreenEggs() var/obj/structure/spider/eggcluster/E = locate() in get_turf(src) diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/mother.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/mother.dm index 57bf707ad90..a998e58790a 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/mother.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/mother.dm @@ -28,26 +28,22 @@ loudspeaker = TRUE spider_opens_doors = 2 web_type = /obj/structure/spider/terrorweb/mother - var/datum/action/innate/terrorspider/ventsmash/ventsmash_action - var/datum/action/innate/terrorspider/remoteview/remoteview_action - var/datum/action/innate/terrorspider/mother/royaljelly/royaljelly_action - var/datum/action/innate/terrorspider/mother/gatherspiderlings/gatherspiderlings_action - var/datum/action/innate/terrorspider/mother/incubateeggs/incubateeggs_action + var/jelly_cost = 100 -/mob/living/simple_animal/hostile/poison/terror_spider/mother/New() - ..() - ventsmash_action = new() - ventsmash_action.Grant(src) - remoteview_action = new() - remoteview_action.Grant(src) - royaljelly_action = new() - royaljelly_action.Grant(src) - gatherspiderlings_action = new() - gatherspiderlings_action.Grant(src) - incubateeggs_action = new() - incubateeggs_action.Grant(src) +/mob/living/simple_animal/hostile/poison/terror_spider/mother/Initialize(mapload) + . = ..() + var/static/list/action_paths = list( + /datum/action/innate/terrorspider/ventsmash, + /datum/action/innate/terrorspider/remoteview, + /datum/action/innate/terrorspider/mother/royaljelly, + /datum/action/innate/terrorspider/mother/gatherspiderlings, + /datum/action/innate/terrorspider/mother/incubateeggs, + ) + for(var/action_path in action_paths) + var/datum/action/act = new action_path + act.Grant(src) /mob/living/simple_animal/hostile/poison/terror_spider/mother/death(gibbed) DropSpiderlings() diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm index fae0239c272..5680ea7763a 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen.dm @@ -50,15 +50,13 @@ var/datum/action/innate/terrorspider/queen/queennest/queennest_action var/datum/action/innate/terrorspider/queen/queensense/queensense_action var/datum/action/innate/terrorspider/queen/queeneggs/queeneggs_action - var/datum/action/innate/terrorspider/ventsmash/ventsmash_action - var/datum/action/innate/terrorspider/remoteview/remoteview_action -/mob/living/simple_animal/hostile/poison/terror_spider/queen/New() - ..() - ventsmash_action = new() +/mob/living/simple_animal/hostile/poison/terror_spider/queen/Initialize(mapload) + . = ..() + var/datum/action/innate/terrorspider/ventsmash/ventsmash_action = new ventsmash_action.Grant(src) - remoteview_action = new() + var/datum/action/innate/terrorspider/remoteview/remoteview_action = new remoteview_action.Grant(src) grant_queen_subtype_abilities() spider_myqueen = src diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm index cab2fcb6e03..c5197468da8 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/terror_spiders.dm @@ -149,9 +149,7 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list) var/chasecycles = 0 var/spider_creation_time = 0 - var/datum/action/innate/terrorspider/web/web_action var/web_type = /obj/structure/spider/terrorweb - var/datum/action/innate/terrorspider/wrap/wrap_action // Breathing - require some oxygen, and no toxins atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -262,8 +260,8 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list) if(killcount >= 1) . += "[p_they(TRUE)] has blood dribbling from [p_their()] mouth." -/mob/living/simple_animal/hostile/poison/terror_spider/New() - ..() +/mob/living/simple_animal/hostile/poison/terror_spider/Initialize(mapload) + . = ..() GLOB.ts_spiderlist += src add_language("Spider Hivemind") if(spider_tier >= TS_TIER_2) @@ -271,12 +269,12 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list) default_language = GLOB.all_languages["Spider Hivemind"] if(web_type) - web_action = new() - web_action.Grant(src) + var/datum/action/innate/terrorspider/web/web_act = new + web_act.Grant(src) if(regen_points_per_tick < regen_points_per_hp) // Only grant the Wrap action button to spiders who need to use it to regenerate their health - wrap_action = new() - wrap_action.Grant(src) + var/datum/action/innate/terrorspider/wrap/wrap_act = new + wrap_act.Grant(src) name += " ([rand(1, 1000)])" real_name = name msg_terrorspiders("[src] has grown in [get_area(src)].") @@ -316,6 +314,15 @@ GLOBAL_LIST_EMPTY(ts_spiderling_list) var/datum/atom_hud/U = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] U.remove_hud_from(src) handle_dying() + + spider_mymother = null + spider_myqueen = null + + entry_vent = null + exit_vent = null + nest_vent = null + + cocoon_target = null return ..() /mob/living/simple_animal/hostile/poison/terror_spider/Life(seconds, times_fired)