Tyr Update (#12633)

This commit is contained in:
FluffMedic
2026-04-08 18:16:49 +02:00
committed by GitHub
parent 765fa754fe
commit 5b16cbdf0e
19 changed files with 21370 additions and 21149 deletions
@@ -111,16 +111,29 @@
meat_type = /obj/item/reagent_containers/food/snacks/tyrant_bonus
special_attack_min_range = 0
special_attack_max_range = 2
special_attack_max_range = 4
special_attack_cooldown = 10 SECONDS
color = "#FF7D51"
glow_range = 5
glow_intensity = 2
glow_toggle = TRUE
var/exploded = FALSE
var/explosion_delay_lower = 2 SECOND // Lower bound for explosion delay.
var/explosion_delay_upper = 3 SECONDS // Upper bound.
/mob/living/simple_mob/animal/tyr/mineral_ants/agate/proc/explode()
if(src && !exploded)
visible_message(span_danger("\The [src]'s body detonates!"))
exploded = TRUE
explosion(src.loc, 3, 2, 1, 1)
/mob/living/simple_mob/animal/tyr/mineral_ants/agate/do_special_attack(atom/A)
explosion(src.loc, 2, 1, 1, 1)
visible_message(span_critical("\The [src]'s body begins to rupture!"))
var/delay = rand(explosion_delay_lower, explosion_delay_upper)
animate(src, color = "#000000", time = 0.1 SECONDS, loop = ceil(delay/2))
animate(color = "#FF0000", time = 0.1 SECONDS)
addtimer(CALLBACK(src, PROC_REF(explode)), delay, TIMER_DELETE_ME)
/mob/living/simple_mob/animal/tyr/mineral_ants/quartz //irl quartz is apparently tough?
name = "quartz metal ant"
@@ -248,11 +261,14 @@
)
meat_amount = 3
/mob/living/simple_mob/animal/tyr/mineral_ants/bronze/death()
visible_message(span_warning("\The [src]'s abdomen splits as it rolls over, spiderlings crawling from the wound.") )
for(var/i = 1 to 8)
new /obj/effect/spider/spiderling/antling (src.loc)
..()
special_attack_min_range = 1
special_attack_max_range = 7
special_attack_cooldown = 10 SECONDS
/mob/living/simple_mob/animal/tyr/mineral_ants/bronze/do_special_attack(atom/A)
for(var/mob/living/L in orange(src, 7))
if(IIsAlly(L))
L.add_modifier(/datum/modifier/technomancer/haste, 3, src)
/mob/living/simple_mob/animal/tyr/mineral_ants/graphite //nothing special here
name = "graphite ant"
@@ -579,3 +595,6 @@ ANT STRUCTURES
/mob/living/simple_mob/animal/tyr/mineral_ants/silver,
/mob/living/simple_mob/animal/tyr/mineral_ants/gold)
faction = FACTION_TYR_ANT
/obj/effect/spider/spiderling/antling/created
faction = FACTION_TYR
@@ -15,7 +15,7 @@
status_flags = null
special_attack_min_range = 0
special_attack_max_range = 14
wreckage = /obj/item/prop/tyrlore/gatekeeper
wreckage = /obj/item/trash/material/circuit
melee_miss_chance = 0
see_in_dark = 14
@@ -1134,3 +1134,347 @@
bullet_heck(target, 0, -7)
bullet_heck(target, 7, 0)
attackcycle = next_cycle
//Three spinning lines with occassional projectiles thrown in the middle
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_lines(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -7, 7)
bullet_heck(target, 7, 7)
bullet_heck(target, 0, -7)
bullet_heck(target, 7, -7)
bullet_heck(target, -7, -7)
bullet_heck(target, 0, 7)
addtimer(CALLBACK(src, PROC_REF(triple_linesA), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesA(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -6, 7)
bullet_heck(target, 7, 6)
bullet_heck(target, -1, -7)
addtimer(CALLBACK(src, PROC_REF(triple_linesB), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesB(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -5, 7)
bullet_heck(target, 7, 5)
bullet_heck(target, -2, -7)
bullet_heck(target, 5, -7)
bullet_heck(target, -7, -5)
bullet_heck(target, 2, 7)
addtimer(CALLBACK(src, PROC_REF(triple_linesC), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesC(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -4, 7)
bullet_heck(target, 7, 4)
bullet_heck(target, -3, -7)
addtimer(CALLBACK(src, PROC_REF(triple_linesD), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesD(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -3, 7)
bullet_heck(target, 7, 3)
bullet_heck(target, -4, -7)
bullet_heck(target, 3, -7)
bullet_heck(target, -7, -3)
bullet_heck(target, 4, 7)
addtimer(CALLBACK(src, PROC_REF(triple_linesE), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesE(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -2, 7)
bullet_heck(target, 7, 2)
bullet_heck(target, -5, -7)
addtimer(CALLBACK(src, PROC_REF(triple_linesF), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesF(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -1, 7)
bullet_heck(target, 7, 1)
bullet_heck(target, -6, -7)
bullet_heck(target, 1, -7)
bullet_heck(target, -7, -1)
bullet_heck(target, 6, 7)
addtimer(CALLBACK(src, PROC_REF(triple_linesG), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesG(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -0, 7)
bullet_heck(target, 7, 0)
bullet_heck(target, -7, -7)
attackcycle = next_cycle
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laser(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 7)
bullet_heck(target, 6, 7)
bullet_heck(target, 5, 7)
bullet_heck(target, 4, 7)
bullet_heck(target, 3, 7)
bullet_heck(target, 2, 7)
bullet_heck(target, 1, 7)
bullet_heck(target, 0, 7)
bullet_heck(target, -7, -7)
bullet_heck(target, -6, -7)
bullet_heck(target, -5, -7)
bullet_heck(target, -4, -7)
bullet_heck(target, -3, -7)
bullet_heck(target, -2, -7)
bullet_heck(target, -1, -7)
bullet_heck(target, 0, -7)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserA), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserA(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 6)
bullet_heck(target, 6, 6)
bullet_heck(target, 5, 6)
bullet_heck(target, 4, 6)
bullet_heck(target, 3, 6)
bullet_heck(target, 2, 6)
bullet_heck(target, 1, 6)
bullet_heck(target, 0, 6)
bullet_heck(target, -7, -6)
bullet_heck(target, -6, -6)
bullet_heck(target, -5, -6)
bullet_heck(target, -4, -6)
bullet_heck(target, -3, -6)
bullet_heck(target, -2, -6)
bullet_heck(target, -1, -6)
bullet_heck(target, 0, -6)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserB), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserB(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 5)
bullet_heck(target, 6, 5)
bullet_heck(target, 5, 5)
bullet_heck(target, 4, 5)
bullet_heck(target, 3, 5)
bullet_heck(target, 2, 5)
bullet_heck(target, 1, 5)
bullet_heck(target, 0, 5)
bullet_heck(target, -7, -5)
bullet_heck(target, -6, -5)
bullet_heck(target, -5, -5)
bullet_heck(target, -4, -5)
bullet_heck(target, -3, -5)
bullet_heck(target, -2, -5)
bullet_heck(target, -1, -5)
bullet_heck(target, 0, -5)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserC), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserC(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 4)
bullet_heck(target, 6, 4)
bullet_heck(target, 5, 4)
bullet_heck(target, 4, 4)
bullet_heck(target, 3, 4)
bullet_heck(target, 2, 4)
bullet_heck(target, 1, 4)
bullet_heck(target, 0, 4)
bullet_heck(target, -7, -4)
bullet_heck(target, -6, -4)
bullet_heck(target, -5, -4)
bullet_heck(target, -4, -4)
bullet_heck(target, -3, -4)
bullet_heck(target, -2, -4)
bullet_heck(target, -1, -4)
bullet_heck(target, 0, -4)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserD), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserD(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 3)
bullet_heck(target, 6, 3)
bullet_heck(target, 5, 3)
bullet_heck(target, 4, 3)
bullet_heck(target, 3, 3)
bullet_heck(target, 2, 3)
bullet_heck(target, 1, 3)
bullet_heck(target, 0, 3)
bullet_heck(target, -7, -3)
bullet_heck(target, -6, -3)
bullet_heck(target, -5, -3)
bullet_heck(target, -4, -3)
bullet_heck(target, -3, -3)
bullet_heck(target, -2, -3)
bullet_heck(target, -1, -3)
bullet_heck(target, 0, -3)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserE), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserE(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 2)
bullet_heck(target, 6, 2)
bullet_heck(target, 5, 2)
bullet_heck(target, 4, 2)
bullet_heck(target, 3, 2)
bullet_heck(target, 2, 2)
bullet_heck(target, 1, 2)
bullet_heck(target, 0, 2)
bullet_heck(target, -7, -2)
bullet_heck(target, -6, -2)
bullet_heck(target, -5, -2)
bullet_heck(target, -4, -2)
bullet_heck(target, -3, -2)
bullet_heck(target, -2, -2)
bullet_heck(target, -1, -2)
bullet_heck(target, 0, -2)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserF), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserF(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 1)
bullet_heck(target, 6, 1)
bullet_heck(target, 5, 1)
bullet_heck(target, 4, 1)
bullet_heck(target, 3, 1)
bullet_heck(target, 2, 1)
bullet_heck(target, 1, 1)
bullet_heck(target, 0, 1)
bullet_heck(target, -7, -1)
bullet_heck(target, -6, -1)
bullet_heck(target, -5, -1)
bullet_heck(target, -4, -1)
bullet_heck(target, -3, -1)
bullet_heck(target, -2, -1)
bullet_heck(target, -1, -1)
bullet_heck(target, 0, -1)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserG), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserG(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 0)
bullet_heck(target, 6, 0)
bullet_heck(target, 5, 0)
bullet_heck(target, 4, 0)
bullet_heck(target, 3, 0)
bullet_heck(target, 2, 0)
bullet_heck(target, 1, 0)
bullet_heck(target, -7, 0)
bullet_heck(target, -6, 0)
bullet_heck(target, -5, 0)
bullet_heck(target, -4, 0)
bullet_heck(target, -3, 0)
bullet_heck(target, -2, 0)
bullet_heck(target, -1, 0)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserH), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserH(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -1)
bullet_heck(target, 6, -1)
bullet_heck(target, 5, -1)
bullet_heck(target, 4, -1)
bullet_heck(target, 3, -1)
bullet_heck(target, 2, -1)
bullet_heck(target, 1, -1)
bullet_heck(target, 0, -1)
bullet_heck(target, -7, 1)
bullet_heck(target, -6, 1)
bullet_heck(target, -5, 1)
bullet_heck(target, -4, 1)
bullet_heck(target, -3, 1)
bullet_heck(target, -2, 1)
bullet_heck(target, -1, 1)
bullet_heck(target, 0, 1)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserI), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserI(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -2)
bullet_heck(target, 6, -2)
bullet_heck(target, 5, -2)
bullet_heck(target, 4, -2)
bullet_heck(target, 3, -2)
bullet_heck(target, 2, -2)
bullet_heck(target, 1, -2)
bullet_heck(target, 0, -2)
bullet_heck(target, -7, 2)
bullet_heck(target, -6, 2)
bullet_heck(target, -5, 2)
bullet_heck(target, -4, 2)
bullet_heck(target, -3, 2)
bullet_heck(target, -2, 2)
bullet_heck(target, -1, 2)
bullet_heck(target, 0, 2)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserJ), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserJ(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -3)
bullet_heck(target, 6, -3)
bullet_heck(target, 5, -3)
bullet_heck(target, 4, -3)
bullet_heck(target, 3, -3)
bullet_heck(target, 2, -3)
bullet_heck(target, 1, -3)
bullet_heck(target, 0, -3)
bullet_heck(target, -7, 3)
bullet_heck(target, -6, 3)
bullet_heck(target, -5, 3)
bullet_heck(target, -4, 3)
bullet_heck(target, -3, 3)
bullet_heck(target, -2, 3)
bullet_heck(target, -1, 3)
bullet_heck(target, 0, 3)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserK), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserK(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -4)
bullet_heck(target, 6, -4)
bullet_heck(target, 5, -4)
bullet_heck(target, 4, -4)
bullet_heck(target, 3, -4)
bullet_heck(target, 2, -4)
bullet_heck(target, 1, -4)
bullet_heck(target, 0, -4)
bullet_heck(target, -7, 4)
bullet_heck(target, -6, 4)
bullet_heck(target, -5, 4)
bullet_heck(target, -4, 4)
bullet_heck(target, -3, 4)
bullet_heck(target, -2, 4)
bullet_heck(target, -1, 4)
bullet_heck(target, 0, 4)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserL), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserL(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -5)
bullet_heck(target, 6, -5)
bullet_heck(target, 5, -5)
bullet_heck(target, 4, -5)
bullet_heck(target, 3, -5)
bullet_heck(target, 2, -5)
bullet_heck(target, 1, -5)
bullet_heck(target, 0, -5)
bullet_heck(target, -7, 5)
bullet_heck(target, -6, 5)
bullet_heck(target, -5, 5)
bullet_heck(target, -4, 5)
bullet_heck(target, -3, 5)
bullet_heck(target, -2, 5)
bullet_heck(target, -1, 5)
bullet_heck(target, 0, 5)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserM), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserM(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -6)
bullet_heck(target, 6, -6)
bullet_heck(target, 5, -6)
bullet_heck(target, 4, -6)
bullet_heck(target, 3, -6)
bullet_heck(target, 2, -6)
bullet_heck(target, 1, -6)
bullet_heck(target, 0, -6)
bullet_heck(target, -7, 6)
bullet_heck(target, -6, 6)
bullet_heck(target, -5, 6)
bullet_heck(target, -4, 6)
bullet_heck(target, -3, 6)
bullet_heck(target, -2, 6)
bullet_heck(target, -1, 6)
bullet_heck(target, 0, 6)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserN), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserN(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -7)
bullet_heck(target, 6, -7)
bullet_heck(target, 5, -7)
bullet_heck(target, 4, -7)
bullet_heck(target, 3, -7)
bullet_heck(target, 2, -7)
bullet_heck(target, 1, -7)
bullet_heck(target, 0, -7)
bullet_heck(target, -7, 7)
bullet_heck(target, -6, 7)
bullet_heck(target, -5, 7)
bullet_heck(target, -4, 7)
bullet_heck(target, -3, 7)
bullet_heck(target, -2, 7)
bullet_heck(target, -1, 7)
bullet_heck(target, 0, 7)
attackcycle = next_cycle
@@ -8,7 +8,6 @@
size_multiplier = 2
maxHealth = 500
health = 500
wreckage = /obj/item/prop/tyrlore/gatekeeper
ai_holder_type = /datum/ai_holder/simple_mob/intentional/three_phases/no_movement
anchored = 1
armor = list(melee = 40, bullet = 40, laser = 40, energy = 40, bomb = 50, bio = 100, rad = 100)
@@ -32,12 +32,9 @@
/datum/modifier/mmo_drop/blade_boss_short
puddleitem = /obj/item/grenade/shooter/auto_explode/blade_boss_short
/datum/modifier/mmo_drop/tyr_flora
puddleitem = /obj/item/grenade/shooter/auto_explode/tyr_flora
/obj/item/grenade/shooter/auto_explode
icon = 'icons/effects/effects.dmi'
icon_state = "drop_marker"
icon ='modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "explosion_marker"
mouse_opacity = 0 //no touching the attack
spread_range = 3
var/fuse_time = 3.5 SECONDS
@@ -46,18 +43,6 @@
. = ..()
addtimer(CALLBACK(src, PROC_REF(detonate)), fuse_time, TIMER_DELETE_ME)
/obj/item/grenade/shooter/auto_explode/blade_boss_long
spread_range = 1
projectile_types = list(/obj/item/projectile/bullet/astral_blade)
/obj/item/grenade/shooter/auto_explode/blade_boss_short
spread_range = 3
projectile_types = list(/obj/item/projectile/bullet/astral_blade/short)
/obj/item/grenade/shooter/auto_explode/tyr_flora
spread_range = 1
projectile_types = list(/obj/item/projectile/energy/neurotoxin/toxic/tyr_flora)
/obj/item/grenade/shooter/auto_explode/blood_boss
spread_range = 2
projectile_types = list(/obj/item/projectile/energy/blood_bullet)
@@ -70,6 +55,14 @@
speed = 4
damage = 10
/obj/item/grenade/shooter/auto_explode/blade_boss_long
spread_range = 1
projectile_types = list(/obj/item/projectile/bullet/astral_blade)
/obj/item/grenade/shooter/auto_explode/blade_boss_short
spread_range = 3
projectile_types = list(/obj/item/projectile/bullet/astral_blade/short)
/obj/item/grenade/shooter/auto_explode/occult_fireball
spread_range = 2
projectile_types = list(/obj/item/projectile/bullet/incendiary/dragonflame/occult)
@@ -83,3 +76,6 @@
/datum/modifier/mmo_drop/eclipse_iceball
puddleitem = /obj/item/grenade/shooter/auto_explode/eclipse_iceball
/datum/modifier/mmo_drop/metal_tomb
puddleitem = /obj/structure/foamedmetal
@@ -1,9 +1,5 @@
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss
health = 3000
maxHealth = 3000 //TG has megafauna with 2500 HP. Yet to see folks call those overly tanky. Tyr gun can deal 504 with a full clip of the single shot mode. Wanting longer fights, and this are meant for groups of three
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses
faction = FACTION_TYR
armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 100, rad = 100)
movement_cooldown = 40
icon = 'modular_chomp/icons/mob/tyr.dmi'
size_multiplier = 2
swallowTime = 2 SECONDS
@@ -19,7 +15,9 @@
vore_pounce_maxhealth = 100
vore_standing_too = TRUE
unacidable = TRUE
wreckage = /obj/item/prop/tyrlore/gatekeeper
projectiletype = /obj/item/projectile/energy/eclipse_boss/tyrjavelin
specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/tyrjavelin
loot_list = list(/obj/item/gun/energy/tyr_rifle = 30,
/obj/item/tool/wirecutters/hybrid/alien = 30,
@@ -45,78 +43,208 @@
/obj/item/prop/deconstructable/gigacell = 100,
)
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/acid_boss
name = "experiment 5"
desc = "A strange furball fused with plant life."
icon_state = "poison_boss"
icon_living = "poison_boss"
wreckage = /obj/item/prop/tyrlore/acid_boss
specialattackprojectile = /obj/item/projectile/energy/blob/tyrflora
projectiletype = /obj/item/projectile/energy/blob/tyrflora
var/regeneration_strength = -20
//So tyr mobs, Two types, the robots, and the expirments.
//Expirments will have less health but some defensive mechanic or the like
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores
health = 3300
maxHealth = 3300 //TG has megafauna with 2500 HP. Yet to see folks call those overly tanky. Tyr gun can deal 504 with a full clip of the single shot mode. Wanting longer fights, and this are meant for groups of three
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/acid_boss/load_default_bellies()
. = ..()
var/obj/belly/B = vore_selected
B.name = "flora gut"
B.desc = "You have been devoured by the vulpakin like plant beast. A mix of flesh and flora surrond you, purple bubbling fluid soaking into your body. The beast effortlessly carrying your body, it's motions seemingly exaggerated, alien words spoken, the beast trying to taunt you."
B.digest_brute = 1
B.digest_burn = 1
B.digestchance = 0
B.absorbchance = 0
B.escapechance = 15
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments
mob_class = MOB_CLASS_ABERRATION
health = 2100
maxHealth = 2100
armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 100, rad = 100)
movement_cooldown = 40
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/acid_boss/bullet_act(obj/item/projectile/P) //removal of E net cheese
if(P == /obj/item/projectile/energy/neurotoxin/toxic/tyr_flora)
return
if(P.damage_type && P.damage_type == BURN && P.damage)
visible_message(span_boldwarning(span_orange("The beast regenerates some of the damage!.")))
adjustBruteLoss(regeneration_strength)
adjustFireLoss(regeneration_strength)
..()
//Watch the ground. No seriously, 2/3s of it is glowing red
//phase 1 is rather simple, simple lines, bomb drop, limit the area, then another bomb drop
//phase 2 the normal BH stuff is gone. Arti lines of plus or X, then bomb drop, then randomized arti, then another bomb drop
//phase 3 alters things. Random arti, x or plus arti, bomb drop, bomb drop
//each phase speeds things up
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/sec_core
name = "defense core"
desc = "A mechanical weaponized ai core."
icon_state = "sec_core"
icon_living = "sec_core"
projectiletype = /obj/item/projectile/bullet/astral_blade
specialattackprojectile = /obj/item/projectile/bullet/astral_blade
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/acid_boss/do_special_attack(atom/A)
rng_cycle = rand(1,4)
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/sec_core/do_special_attack(atom/A)
switch(attackcycle)
if(1)
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 20), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 2), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 2), 1 SECOND, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 2), 0.75 SECONDS, TIMER_DELETE_ME)
if(2)
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 3, /datum/modifier/mmo_drop/blade_boss_long), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 3, /datum/modifier/mmo_drop/blade_boss_long), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 3), 0.75 SECONDS, TIMER_DELETE_ME)
if(3)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, rng_cycle, /datum/modifier/mmo_drop/tyr_flora), 2.5 SECONDS, TIMER_DELETE_ME)
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(cutoff), A, 4, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 3), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 4, /datum/modifier/mmo_drop/blade_boss_long), 1 SECOND, TIMER_DELETE_ME)
if(4)
addtimer(CALLBACK(src, PROC_REF(bullet_blossom), A, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 1, /datum/modifier/mmo_drop/blade_boss_short), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 1, /datum/modifier/mmo_drop/blade_boss_short), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 1, /datum/modifier/mmo_drop/blade_boss_short), 1 SECOND, TIMER_DELETE_ME)
//The eletrical boss
//Has some issues since lighting damage causes stuns, so never dirrectly attacks you with lighting
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/engi_core //Tries to limit your movement opitions
name = "power core"
desc = "A mechanical weaponized ai core."
icon_state = "engi_core"
icon_living = "engi_core"
specialattackprojectile = /obj/item/projectile/energy/agate_lighting
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/engi_core/do_special_attack(atom/A)
switch(attackcycle)
if(1)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(cutoff), A, 2, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(cross_spin), A, 2, 7), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 6, 2, 12), 0.5 SECONDS, TIMER_DELETE_ME)
if(2)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(cutoff), A, 3, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 3, 7), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 6, 3, 9), 0.5 SECONDS, TIMER_DELETE_ME)
if(3)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(cutoff_ulti), A, 1, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(triple_lines), A, 1, 7), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 6, 1, 6), 0.5 SECONDS, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/ark_core
name = "master core"
desc = "A mechanical weaponized ai core."
icon_state = "final_core"
icon_living = "final_core"
health = 4200
maxHealth = 4200
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/engi_core/do_special_attack(atom/A)
switch(attackcycle)
if(1)
specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/tyrjavelin
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 6, 2, 6), 0.5 SECONDS, TIMER_DELETE_ME)
if(2)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(triple_lines), A, 3, 7), 0.5 SECONDS, TIMER_DELETE_ME)
if(3)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(cutoff_ulti), A, 4, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(4)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 5, 7), 0.5 SECONDS, TIMER_DELETE_ME)
if(5)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, 6, 15), 0.5 SECONDS, TIMER_DELETE_ME)
if(6)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(rising_star), A, 7, 12), 0.5 SECONDS, TIMER_DELETE_ME)
if(7)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(bullet_blossom), A, 8, 8), 0.5 SECONDS, TIMER_DELETE_ME)
if(8)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 9, /datum/modifier/mmo_drop/blade_boss_short), 0.75 SECONDS, TIMER_DELETE_ME)
if(9)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 10), 0.75 SECONDS, TIMER_DELETE_ME)
if(10)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 11, /datum/modifier/mmo_drop/blade_boss_long), 0.75 SECONDS, TIMER_DELETE_ME)
if(11)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 12), 0.75 SECONDS, TIMER_DELETE_ME)
if(12)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 13, 5), 0.5 SECONDS, TIMER_DELETE_ME)
if(13)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 2, /datum/modifier/mmo_drop/metal_tomb), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(14)
specialattackprojectile = /obj/item/projectile/beam/heavylaser
Beam(A, icon_state = "sat_beam", time = 13 SECONDS, maxdistance = INFINITY)
addtimer(CALLBACK(src, PROC_REF(gattlingfire), A, 15, 2, 25), 5.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(15)
specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor
addtimer(CALLBACK(src, PROC_REF(vertical_double_laser), A, 16, 5), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(16)
addtimer(CALLBACK(src, PROC_REF(checker_board), A, 17), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(17)
addtimer(CALLBACK(src, PROC_REF(chain_burst), A, 1, 8), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/shield_boss
name = "experiment 15"
desc = "A strange furball gaurded by a transparent barrier."
specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/tyrjavelin
health = 700
maxHealth = 700 //shield mechanic
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/slime //summons a lot of adds slime_boss
name = "farm expirment"
icon_state = "slime_boss"
icon_living = "slime_boss"
health = 1200
maxHealth = 1200
special_attack_cooldown = 3 SECONDS
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/slime/bullet_act(obj/item/projectile/P)
for(var/i =1 to 4)
new /obj/effect/spider/spiderling/antling/created(src.loc)
..()
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/slime/attackby(var/obj/item/O as obj, var/mob/user as mob)
for(var/i =1 to 4)
new /obj/effect/spider/spiderling/antling/created(src.loc)
..()
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/slime/do_special_attack(atom/A)
for(var/i =1 to 4)
new /obj/effect/spider/spiderling/antling/created(src.loc)
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/barrier //has a regenerating shield
name = "spacial expirment"
icon_state = "UPshield_boss"
icon_living = "UPshield_boss"
projectiletype = /obj/item/projectile/energy/eclipse_boss/tyrjavelin
wreckage = /obj/item/prop/tyrlore/shield_boss
var/fullshield = 300
var/shieldrage = 300
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/shield_boss/load_default_bellies()
. = ..()
var/obj/belly/B = vore_selected
B.name = "alien gut"
B.desc = "You are dunked into a multi-colored, or maybe multi-fluid, stew. Blues, purples, oranges, and greens, all swishing around you as the alien creature contunies it's mindless guarding.."
B.digest_brute = 0.5
B.digest_burn = 1.5
B.digestchance = 0
B.absorbchance = 0
B.escapechance = 15
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/shield_boss/bullet_act(obj/item/projectile/P)
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/barrier/bullet_act(obj/item/projectile/P)
if(fullshield > 0)
fullshield -= P.damage
if(P == /obj/item/projectile/ion)
@@ -137,7 +265,7 @@
visible_message(span_boldwarning(span_orange("The shield reactivates!!.")))
icon_state = "UPshield_boss"
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/shield_boss/do_special_attack(atom/A)
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/barrier/do_special_attack(atom/A)
rng_cycle = rand(1,4)
switch(attackcycle)
if(1)
@@ -153,13 +281,13 @@
addtimer(CALLBACK(src, PROC_REF(gattlingfire), A, rng_cycle, 8, 7), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss
name = "experiment 20"
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss //immune to projectiles
name = "crystalized expirment"
icon = 'modular_chomp/icons/mob/tyr.dmi'
icon_state = "crystalized"
icon_living = "crystalized"
health = 400
maxHealth = 400 //15ish hits with E sword
wreckage = /obj/item/prop/tyrlore/crystal_boss
melee_damage_lower = 40
melee_damage_upper = 40
attack_armor_pen = 40
@@ -168,6 +296,17 @@
special_attack_cooldown = 8 SECONDS
var/parry_chance = 100
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/load_default_bellies()
. = ..()
var/obj/belly/B = vore_selected
B.name = "flora gut"
B.desc = "You have been devoured by the crystaline vulpine. A mix of flesh and flora surrond you, purple bubbling fluid soaking into your body. The beast effortlessly carrying your body, it's motions seemingly exaggerated, alien words spoken, the beast trying to taunt you."
B.digest_brute = 1
B.digest_burn = 1
B.digestchance = 0
B.absorbchance = 0
B.escapechance = 15
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/bullet_act(obj/item/projectile/P)
if(prob(parry_chance))
visible_message(span_danger("The [P.name] gets reflected by [src]'s armor!"), \
@@ -188,139 +327,4 @@
return (..(P))
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/do_special_attack(atom/A)
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 4), 1.5 SECONDS, TIMER_DELETE_ME)
//The Ai control units of Tyr
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/defense_ai
name = "defense automaton"
desc = "A large, very important looking ai. Plating appears similiar to albative plating."
icon = 'modular_chomp/icons/mob/hivebot.dmi'
icon_state = "cyan"
icon_living = "cyan"
size_multiplier = 3
projectiletype = /obj/item/projectile/bullet/astral_blade
wreckage = /obj/item/prop/tyrlore/shotgun
specialattackprojectile = /obj/item/projectile/bullet/astral_blade
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/defense_ai/do_special_attack(atom/A)
switch(attackcycle)
if(1)
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 3), 1.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(2)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(cutoff), A, 4, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(3)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 2, /datum/modifier/mmo_drop/blade_boss_long), 2.5 SECONDS, TIMER_DELETE_ME)
if(4)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 1, /datum/modifier/mmo_drop/blade_boss_short), 2.5 SECONDS, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/engi_ai //the enginer robot's fighting style is quite simple, restrain your movement so it can hit you with it's main projectile
name = "engineering automaton"
desc = "A large important looking robot, crackling with lighting."
icon = 'modular_chomp/icons/mob/hivebot.dmi'
icon_state = "yellow"
icon_living = "yellow"
size_multiplier = 3
wreckage = /obj/item/prop/tyrlore/engi_boss
specialattackprojectile = /obj/item/projectile/energy/agate_lighting
projectiletype = /obj/item/projectile/energy/agate_lighting
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/engi_ai/do_special_attack(atom/A)
switch(attackcycle)
if(1)
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 3, 10), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(2)
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 4), 1.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(3)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(cutoff), A, 2, 5, 15), 0.5 SECONDS, TIMER_DELETE_ME)
if(4)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(cutoff_ulti), A, 1, 5, 15), 0.5 SECONDS, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/swarm_ai
name = "swarm controler"
desc = "A massive hivebot that has shifting bits of metal upon it's body."
health = 400
maxHealth = 400
icon_state = "bright_green"
icon_living = "bright_green"
icon = 'modular_chomp/icons/mob/hivebot.dmi'
size_multiplier = 3
wreckage = /obj/item/prop/tyrlore/swarm_boss
special_attack_cooldown = 12 SECONDS
melee_damage_lower = 20
melee_damage_upper = 20
attack_armor_pen = 0
movement_cooldown = 8
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/swarm_ai/bullet_act(obj/item/projectile/P)
for(var/i =1 to 3)
new /mob/living/simple_mob/mechanical/hivebot/tyr/swarm(src.loc)
..()
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/swarm_ai/attackby(var/obj/item/O as obj, var/mob/user as mob)
for(var/i =1 to 3)
new /mob/living/simple_mob/mechanical/hivebot/tyr/swarm(src.loc)
..()
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/swarm_ai/do_special_attack(atom/A)
for(var/i =1 to 3)
new /mob/living/simple_mob/mechanical/hivebot/tyr/swarm(src.loc)
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/meteor_ai
name = "swarm controler"
desc = "A massive hivebot that has shifting bits of metal upon it's body."
icon_state = "orange"
icon_living = "orange"
icon = 'modular_chomp/icons/mob/hivebot.dmi'
size_multiplier = 3
specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor
projectiletype = /obj/item/projectile/arc/blue_energy/precusor
wreckage = /obj/item/prop/tyrlore/meteor_boss
special_attack_cooldown = 5
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/meteor_ai/do_special_attack(atom/A, var/strike_downx, var/strikedowny)
strike_downx = rand(-7,7)
strikedowny = rand(-7,7)
wreckage = bullet_heck(A, strike_downx, strikedowny)
//the add tutortial
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/medical_bot //tutortial for ADD invul mechanics
name = "medical robot"
desc = "A massive hivebot with medical equipment."
health = 1000
maxHealth = 1000
icon_state = "white"
icon_living = "white"
icon = 'icons/mob/hivebot.dmi'
size_multiplier = 3
wreckage = /obj/item/prop/tyrlore/medical_boss
melee_damage_lower = 10
melee_damage_upper = 10
attack_armor_pen = 80
movement_cooldown = 4
special_attack_cooldown = 15 SECONDS
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
var/datum/disease/base_disease = /datum/disease/advance/agate_rot
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/medical_bot/apply_melee_effects(atom/A)
if(ishuman(A) && prob(25))
var/mob/living/carbon/human/H = A
H.ContractDisease(base_disease)
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/medical_bot/do_special_attack(atom/A)
visible_message(span_boldwarning(span_orange("The beast restores itself to a prime condition!.")))
adjustBruteLoss(-1000)
adjustFireLoss(-1000)
adjustToxLoss(-1000)
adjustOxyLoss(-1000)
adjustCloneLoss(-1000)
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 4), 0.5 SECONDS, TIMER_DELETE_ME)
@@ -7,7 +7,7 @@
icon_living = "medi"
icon_dead = "medi"
taser_kill = 0
catalogue_data = list(/datum/category_item/catalogue/fauna/astralcollective)
faction = FACTION_ECLIPSE
movement_cooldown = 0
@@ -112,6 +112,12 @@
var/expirmental
/datum/category_item/catalogue/fauna/astralcollective
name = "Astral Collective"
desc = "A faction that lingers upon and beyond the frontier of space. Abnormal obsessive over precursor technology and \
things that seem abnormal."
value = CATALOGUER_REWARD_EASY
/mob/living/simple_mob/humanoid/astral_collective/Initialize(mapload)
. = ..()
expirmental = rand(1,7)
@@ -225,8 +231,8 @@
attack_armor_pen = 20
melee_attack_delay = 1.5 SECONDS
health = 200
maxHealth = 200
health = 100
maxHealth = 100
special_attack_cooldown = 7 SECONDS
special_attack_min_range = 0
@@ -146,6 +146,10 @@
var/leech = 50
var/chain_number = 0
/mob/living/simple_mob/vore/boss_jellyfish/death()
..()
qdel(src)
/mob/living/simple_mob/vore/boss_jellyfish/load_default_bellies()
. = ..()
var/obj/belly/B = vore_selected