Tyr Update attempt 2 (#11191)

This commit is contained in:
FluffMedic
2025-07-15 00:20:49 +02:00
committed by GitHub
parent 110e5c2587
commit 659a4304cb
7 changed files with 4829 additions and 4052 deletions
@@ -953,3 +953,103 @@
return -1 // complete projectile permutation
return (..(P))
//mining zone
/mob/living/simple_mob/humanoid/eclipse/solar/miner
name = "Solar Eclipse Miner"
desc = "A miner wearing orange armor, shielding itself from lasers and energy."
icon_state = "solar_miner"
icon_state = "solar_miner"
projectiletype = null
melee_damage_lower = 20
melee_damage_upper = 20
attack_armor_pen = 30
loot_list = list(/obj/item/slime_extract/sepia = 1,
/obj/item/bone/skull = 100,
/obj/item/plastique = 10,
/obj/item/pickaxe/anamolous = 30
)
/mob/living/simple_mob/humanoid/eclipse/solar/miner/do_special_attack(atom/A)
summon_drones(A, 2, 1)
/mob/living/simple_mob/humanoid/eclipse/solar/xenoarch
name = "Solar Eclipse Antiquarian"
desc = "An indivual wearing orange armor, shielding itself from lasers and energy. Lighting is crackling around them"
icon_state = "solar_anomalous"
icon_living = "solar_anomalous"
projectiletype = /obj/item/projectile/energy/lightingspark
specialattackprojectile = /obj/item/projectile/beam/lightning/slime
reload_max = 2
reload_time = 3 SECONDS
loot_list = list(/obj/item/slime_extract/sepia = 1,
/obj/item/bone/skull = 100,
/obj/item/research_sample/rare = 10,
/obj/item/stack/nanopaste/advanced = 30
)
/mob/living/simple_mob/humanoid/eclipse/solar/xenoarch/do_special_attack(atom/A)
Beam(A, icon_state = "holo_beam", time = 5 SECONDS, maxdistance = INFINITY)
addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 5.5 SECONDS, TIMER_DELETE_ME)
/mob/living/simple_mob/humanoid/eclipse/solar/xenoarch/bullet_act(obj/item/projectile/P, atom/A)
..()
if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam))
special_projectile(A)
/mob/living/simple_mob/humanoid/eclipse/lunar/miner
name = "Lunar Eclipse Drill Tech"
desc = "An indivual wearing red and purple armor, shielding itself from bullets and physical trauma."
icon_state = "lunar_miner"
icon_state = "lunar_miner"
projectiletype = null
melee_damage_lower = 20
melee_damage_upper = 20
attack_armor_pen = 30
specialattackprojectile = /obj/item/projectile/energy/eclipse/mining
loot_list = list(/obj/item/slime_extract/sepia = 1,
/obj/item/bone/skull = 100,
/obj/item/stack/material/void_opal = 10,
/obj/item/stack/material/mhydrogen = 70
)
/mob/living/simple_mob/humanoid/eclipse/lunar/miner/do_special_attack(atom/A)
Beam(A, icon_state = "holo_beam", time = 1 SECOND, maxdistance = INFINITY)
addtimer(CALLBACK(src, PROC_REF(special_projectile), A), 1.5 SECONDS, TIMER_DELETE_ME)
/mob/living/simple_mob/humanoid/eclipse/lunar/xenoarch
name = "Lunar Eclipse Xenoarcholgist"
desc = "An indivual wearing red and purple armor, shielding itself from bullets and physical trauma."
icon_state = "lunar_anomalous"
icon_living = "lunar_anomalous"
loot_list = list(/obj/item/slime_extract/sepia = 1,
/obj/item/bone/skull = 100,
/obj/item/research_sample/rare = 10,
/obj/item/extraction_pack = 30
)
/mob/living/simple_mob/humanoid/eclipse/lunar/xenoarch/do_special_attack(atom/A)
Beam(A, icon_state = "drain_life_grey", time = 1 SECOND, maxdistance = 4)
addtimer(CALLBACK(src, PROC_REF(blood_siphon), A), 1.5 SECONDS, TIMER_DELETE_ME)
/mob/living/simple_mob/humanoid/eclipse/proc/blood_siphon(atom/A, var/mob/living/carbon/human/M)
if(!A)
return
if(A in view(src, 4))
if(ishuman(M))
var/target = pick(M.organs_by_name)
M.apply_damage(rand(5, 10), SEARING, target)
to_chat(M, span_critical("The skin on your [parse_zone(target)] feels like it's ripping apart, and a stream of blood flies out."))
var/blood_to_remove = (rand(10,30))
M.remove_blood(blood_to_remove)
@@ -12,10 +12,18 @@
special_attack_cooldown = 10 //This things attack soley via speical attacks hence basically no cooldown
grab_resist = 100
shock_resist = -0.2
deflect_chance = 0
movement_cooldown = 10
var/specialattackprojectile = /obj/item/projectile/energy/phase/bolt
var/attackcycle = 1
/mob/living/simple_mob/mechanical/mecha/eclipse/handle_special()
if(stat != DEAD)
src.SetStunned(0)
src.SetWeakened(0)
src.SetParalysis(0)
..()
/mob/living/simple_mob/mechanical/mecha/eclipse/do_special_attack(atom/A)
bullet_heck(A, 3, 3)
@@ -424,7 +432,6 @@
icon_state = "mecha_top"
icon_living = "mecha_top"
armor = list(melee = 20, bullet = 20, laser = 20, energy = 20, bomb = 80, bio = 100, rad = 100) //Smol armor to compensate for the gimmick
deflect_chance = 100 //yes, this looks absurd
wreckage = /obj/item/melee/energy/sword/top_shield
specialattackprojectile = /obj/item/projectile/energy/eclipse/chillingwind
desc = "It appears to be spinning at rapid speeds; enough to deflect projectiles. The air around it feels frigid.."
@@ -440,16 +447,15 @@
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
/mob/living/simple_mob/mechanical/mecha/eclipse/battle_top/bullet_act(obj/item/projectile/P)
/mob/living/simple_mob/mechanical/mecha/eclipse/battle_top/handle_special()
if(stat != DEAD)
frozen_aura()
..()
if(deflect_chance > 30)
visible_message(span_cult("The mecha is deflecting most projectiles!."))
/mob/living/simple_mob/mechanical/mecha/eclipse/battle_top/attackby(var/obj/item/O as obj, var/mob/user as mob) //but melees lowers the deflect chance
.=..()
if(deflect_chance > 10)
to_chat(user, span_cult("The strike slows down the mecha!."))
deflect_chance -= 10
/mob/living/simple_mob/mechanical/mecha/eclipse/battle_top/proc/frozen_aura()
for(var/mob/living/L in view(src, 14))
if(!IIsAlly(L))
L.add_modifier(/datum/modifier/chilled, 3, src)
/mob/living/simple_mob/mechanical/mecha/eclipse/excavate_head
name = "Xenoarch Lead"
@@ -24,6 +24,7 @@
loot_list = list(/obj/structure/foamedmetal = 100
)
pass_flags = PASSTABLE
hovering = TRUE
movement_cooldown = -3
icon_state = "janitor"
icon_living = "janitor"
@@ -39,7 +40,7 @@
maxHealth = 500
health = 500
wreckage = /obj/item/prop/tyrlore/reddisc
ai_holder_type = /datum/ai_holder/simple_mob/intentional/three_phases/nomove
ai_holder_type = /datum/ai_holder/simple_mob/intentional/three_phases
anchored = 1
armor = list(melee = 40, bullet = 40, laser = 80, energy = 80, bomb = 50, bio = 100, rad = 100)