mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-23 21:27:01 +01:00
Tyr Update (#12045)
This commit is contained in:
@@ -97,9 +97,11 @@
|
||||
special_attack_max_range = 2
|
||||
special_attack_cooldown = 10 SECONDS
|
||||
|
||||
/mob/living/simple_mob/animal/tyr/mineral_ants/copper/do_special_attack(atom/A)
|
||||
empulse(src.loc, 1, 2, 3, 4)
|
||||
playsound(src, 'sound/weapons/Egloves.ogg', 75, 1)
|
||||
/mob/living/simple_mob/animal/tyr/mineral_ants/copper/bullet_act(obj/item/projectile/P)
|
||||
if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam))
|
||||
visible_message(span_cult("[P] seems ineffective!."))
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/animal/tyr/mineral_ants/agate //rushes at you and explodes
|
||||
name = "agate metal ant"
|
||||
|
||||
@@ -22,11 +22,10 @@
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/do_special_attack(atom/A)
|
||||
bullet_heck(A, 3, 3)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/bullet_act(obj/item/projectile/P) //removal of E net cheese
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hitby(obj/item/projectile/P) //removal of E net cheese
|
||||
if(P == /obj/item/projectile/beam/energy_net)
|
||||
return
|
||||
else
|
||||
..()
|
||||
..()
|
||||
|
||||
/datum/ai_holder/simple_mob/intentional/three_phases
|
||||
use_astar = TRUE
|
||||
@@ -49,3 +48,9 @@
|
||||
|
||||
else
|
||||
holder.a_intent = I_HURT
|
||||
|
||||
|
||||
/datum/ai_holder/simple_mob/intentional/three_phases/no_movement
|
||||
|
||||
/datum/ai_holder/simple_mob/intentional/three_phases/no_movement/move_once()
|
||||
return
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/tyr
|
||||
name = "ai control center"
|
||||
desc = "A large, very important looking ai. It sparks as it moves to attacks."
|
||||
icon_state = "powertower"
|
||||
icon_living = "powertower"
|
||||
faction = FACTION_TYR
|
||||
movement_cooldown = 10
|
||||
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)
|
||||
|
||||
loot_list = list(/obj/item/tool/wirecutters/hybrid/alien = 10,
|
||||
/obj/item/tool/wrench/hybrid/alien = 10,
|
||||
/obj/item/tool/crowbar/hybrid/alien = 10,
|
||||
/obj/item/tool/screwdriver/hybrid/alien = 10,
|
||||
/obj/item/pickaxe/diamonddrill/alien = 10,
|
||||
/obj/item/melee/energy/sword/dualsaber = 10,
|
||||
/obj/item/shield_projector/rectangle/automatic/tyrbarrier = 0.1,
|
||||
/obj/item/stock_parts/scanning_module/omni = 80,
|
||||
/obj/item/stock_parts/micro_laser/omni = 80,
|
||||
/obj/item/stock_parts/capacitor/omni = 80,
|
||||
/obj/item/stock_parts/manipulator/omni = 80,
|
||||
/obj/item/stock_parts/matter_bin/omni = 80,
|
||||
/obj/item/stock_parts/scanning_module/hyper = 80,
|
||||
/obj/item/stock_parts/micro_laser/hyper = 80,
|
||||
/obj/item/stock_parts/capacitor/hyper = 80,
|
||||
/obj/item/stock_parts/manipulator/hyper = 80,
|
||||
/obj/item/stock_parts/matter_bin/hyper = 80,
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/tyr/do_special_attack(atom/A)
|
||||
. = TRUE // So we don't fire a bolt as well.
|
||||
switch(attackcycle)
|
||||
if(1)
|
||||
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 2), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
if(2)
|
||||
specialattackprojectile = /obj/item/projectile/energy/spikeenergy_ball/boss
|
||||
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 3, 15), 1 SECOND, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
if(3)
|
||||
specialattackprojectile = /obj/item/projectile/energy/eclipse/tyrjavelin
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 12, 1, 0.5 SECONDS), 1 SECOND, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/nanoweavetower
|
||||
name = "ai control center"
|
||||
desc = "A large, very important looking ai."
|
||||
icon_state = "bluetower"
|
||||
icon_living = "bluetower"
|
||||
faction = FACTION_HIVEBOT
|
||||
movement_cooldown = 10
|
||||
size_multiplier = 2
|
||||
maxHealth = 500
|
||||
health = 500
|
||||
wreckage = /obj/structure/loot_pile/surface/alien/engineering
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/three_phases/no_movement
|
||||
anchored = 1
|
||||
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 50, bio = 100, rad = 100)
|
||||
loot_list = list(/obj/item/prop/alien/junk = 100,
|
||||
/obj/item/multitool/alien = 30,
|
||||
/obj/item/stack/cable_coil/alien = 30,
|
||||
/obj/item/tool/crowbar/alien = 30,
|
||||
/obj/item/tool/screwdriver/alien = 30,
|
||||
/obj/item/weldingtool/alien = 30,
|
||||
/obj/item/tool/wirecutters/alien = 30,
|
||||
/obj/item/tool/wrench/alien = 30,
|
||||
/obj/item/cell/device/weapon/recharge/alien = 40,
|
||||
/obj/item/prop/nanoweave/terraformers = 50,
|
||||
/obj/item/prop/nanoweave/cyan = 50,
|
||||
/obj/item/prop/nanoweave/lime = 50,
|
||||
/obj/item/perfect_tele/alien = 100
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/nanoweavetower/do_special_attack(atom/A)
|
||||
. = TRUE // So we don't fire a bolt as well.
|
||||
switch(attackcycle)
|
||||
if(1)
|
||||
specialattackprojectile = /obj/item/projectile/beam/midlaser/shortrange
|
||||
rng_cycle = rand(1,4)
|
||||
direct_say("PROTOCOL: CROSS X.")
|
||||
addtimer(CALLBACK(src, PROC_REF(star_burst), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
if(2)
|
||||
specialattackprojectile = /obj/item/projectile/energy/wallbreaker/boss
|
||||
rng_cycle = rand(1,4)
|
||||
direct_say("PROTOCOL: PRECISION. SWEEP.")
|
||||
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 25), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
if(3)
|
||||
specialattackprojectile = /obj/item/projectile/energy/lightingspark/nanoweave
|
||||
rng_cycle = rand(1,4)
|
||||
direct_say("PROTOCOL: DISCHARGE.")
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 12, rng_cycle, 15), 1 SECOND, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
if(4)
|
||||
specialattackprojectile = /obj/item/projectile/arc/explosive_rocket/big
|
||||
rng_cycle = rand(1,4)
|
||||
Beam(A, icon_state = "r_beam", time = 1 SECOND, maxdistance = INFINITY)
|
||||
direct_say("PROTOCOL: MISSILE.")
|
||||
addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
icon_state = "drop_marker"
|
||||
mouse_opacity = 0 //no touching the attack
|
||||
spread_range = 3
|
||||
var/fuse_time = 2 SECONDS
|
||||
var/fuse_time = 3.5 SECONDS
|
||||
|
||||
/obj/item/grenade/shooter/auto_explode/Initialize(mapload)
|
||||
..()
|
||||
|
||||
@@ -21,17 +21,15 @@
|
||||
unacidable = TRUE
|
||||
special_attack_min_range = 0
|
||||
special_attack_max_range = 7
|
||||
wreckage = /obj/item/prop/tyrlore/drones
|
||||
wreckage = /obj/item/prop/tyrlore/gatekeeper
|
||||
|
||||
loot_list = list(/obj/item/gun/energy/curse_tyrshotgun = 30,
|
||||
/obj/item/gun/energy/energyballchain = 30,
|
||||
loot_list = list(/obj/item/gun/energy/tyr_rifle = 30,
|
||||
/obj/item/tool/wirecutters/hybrid/alien = 30,
|
||||
/obj/item/tool/wrench/hybrid/alien = 30,
|
||||
/obj/item/tool/crowbar/hybrid/alien = 30,
|
||||
/obj/item/tool/screwdriver/hybrid/alien = 30,
|
||||
/obj/item/pickaxe/diamonddrill/alien = 30,
|
||||
/obj/item/melee/energy/sword/dualsaber = 30,
|
||||
/obj/item/shield_projector/rectangle/automatic/tyrbarrier = 1,
|
||||
/obj/item/shield_projector/rectangle/automatic/tyrbarrier = 0.1,
|
||||
/obj/item/stock_parts/scanning_module/omni = 80,
|
||||
/obj/item/stock_parts/micro_laser/omni = 80,
|
||||
/obj/item/stock_parts/capacitor/omni = 80,
|
||||
@@ -51,7 +49,7 @@
|
||||
desc = "A strange furball fused with plant life."
|
||||
icon_state = "poison_boss"
|
||||
icon_living = "poison_boss"
|
||||
wreckage = /obj/item/prop/tyrlore/basicflora
|
||||
wreckage = /obj/item/prop/tyrlore/acid_boss
|
||||
projectiletype = /obj/item/projectile/bullet/astral_blade
|
||||
specialattackprojectile = /obj/item/projectile/energy/neurotoxin/toxic/tyr_flora
|
||||
var/regeneration_strength = -30
|
||||
@@ -100,7 +98,7 @@
|
||||
icon_state = "sonic_boss"
|
||||
icon_living = "sonic_boss"
|
||||
projectiletype = /obj/item/projectile/knockback/slow
|
||||
wreckage = /obj/item/prop/tyrlore/basicsonic
|
||||
wreckage = /obj/item/prop/tyrlore/sonic_boss
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/sonic_boss/load_default_bellies()
|
||||
. = ..()
|
||||
@@ -141,7 +139,7 @@
|
||||
icon_state = "UPshield_boss"
|
||||
icon_living = "UPshield_boss"
|
||||
projectiletype = /obj/item/projectile/energy/eclipse/tyrjavelin
|
||||
wreckage = /obj/item/prop/tyrlore/basicshield
|
||||
wreckage = /obj/item/prop/tyrlore/shield_boss
|
||||
var/fullshield = 200
|
||||
var/shieldrage = 200
|
||||
|
||||
@@ -198,6 +196,7 @@
|
||||
icon_state = "crystalized"
|
||||
icon_living = "crystalized"
|
||||
specialattackprojectile = /obj/item/projectile/arc/fragmentation/tyr_mortar
|
||||
wreckage = /obj/item/prop/tyrlore/crystal_boss
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/do_special_attack(atom/A)
|
||||
rng_cycle = rand(1,3)
|
||||
@@ -216,6 +215,7 @@
|
||||
name = "experiment 25"
|
||||
icon_state = "naga_boss"
|
||||
icon_living = "naga_boss"
|
||||
wreckage = /obj/item/prop/tyrlore/gravity_boss
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/naga_boss/do_special_attack(atom/A)
|
||||
rng_cycle = rand(1,3)
|
||||
@@ -239,7 +239,7 @@
|
||||
icon_living = "cyan"
|
||||
size_multiplier = 3
|
||||
projectiletype = /obj/item/projectile/bullet/tyr_bladeburst
|
||||
wreckage = /obj/item/prop/tyrlore/ants
|
||||
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)
|
||||
@@ -265,7 +265,7 @@
|
||||
icon_state = "yellow"
|
||||
icon_living = "yellow"
|
||||
size_multiplier = 3
|
||||
wreckage = /obj/item/prop/tyrlore/basicpower
|
||||
wreckage = /obj/item/prop/tyrlore/engi_boss
|
||||
specialattackprojectile = /obj/item/projectile/energy/agate_lighting
|
||||
projectiletype = /obj/item/projectile/energy/agate_lighting
|
||||
|
||||
@@ -293,7 +293,7 @@
|
||||
icon_living = "bright_green"
|
||||
icon = 'modular_chomp/icons/mob/hivebot.dmi'
|
||||
size_multiplier = 3
|
||||
wreckage = /obj/item/prop/tyrlore/drones
|
||||
wreckage = /obj/item/prop/tyrlore/swarm_boss
|
||||
special_attack_cooldown = 8 SECONDS
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 20
|
||||
@@ -323,8 +323,66 @@
|
||||
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
|
||||
|
||||
/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)
|
||||
bullet_heck(A, strike_downx, strikedowny)
|
||||
wreckage = bullet_heck(A, strike_downx, strikedowny)
|
||||
|
||||
//the add tutortial
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/medical_bot
|
||||
name = "medical robot"
|
||||
desc = "A massive hivebot with medical equipment."
|
||||
health = 600
|
||||
maxHealth = 600
|
||||
icon_state = "white"
|
||||
icon_living = "wite"
|
||||
icon = 'icons/mob/hivebot.dmi'
|
||||
size_multiplier = 3
|
||||
wreckage = /obj/item/prop/tyrlore/medical_boss
|
||||
special_attack_cooldown = 8 SECONDS
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 20
|
||||
attack_armor_pen = 50
|
||||
movement_cooldown = 4
|
||||
|
||||
special_attack_cooldown = 10 SECONDS
|
||||
|
||||
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/swarm_ai/do_special_attack(atom/A)
|
||||
for(var/i =1 to 3)
|
||||
new /mob/living/simple_mob/mechanical/hivebot/tyr/heart(src.loc)
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/tyr/heart
|
||||
name = "barrier unit"
|
||||
icon = 'modular_chomp/icons/mob/tyr.dmi'
|
||||
icon_state = "guardian"
|
||||
icon_living = "guardian"
|
||||
maxHealth = 2.5 LASERS_TO_KILL // 100 hp
|
||||
health = 2.5 LASERS_TO_KILL
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 10
|
||||
attack_armor_pen = 80
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/tyr/heart/handle_special()
|
||||
if(stat != DEAD)
|
||||
untouchable_aura()
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/tyr/heart/proc/untouchable_aura()
|
||||
for(var/mob/living/L in orange(src, 3))
|
||||
if(L.stat == DEAD || !IIsAlly(L))
|
||||
continue
|
||||
L.add_modifier(/datum/modifier/aura/heart_barrier, null, src)
|
||||
|
||||
/datum/modifier/aura/heart_barrier
|
||||
mob_overlay_state = "deflect"
|
||||
incoming_damage_percent = 0
|
||||
aura_max_distance = 3
|
||||
|
||||
+1
-1
@@ -629,7 +629,7 @@
|
||||
special_attack_min_range = 1
|
||||
special_attack_max_range = 7
|
||||
|
||||
projectiletype = /obj/item/projectile/energy/wp_shotgun //using the weapon found upon tyr
|
||||
projectiletype = /obj/item/projectile/energy/tyr_rifle //using the weapon found upon tyr
|
||||
specialattackprojectile = /obj/item/projectile/arc/microsingulo
|
||||
|
||||
loot_list = list(/obj/item/slime_extract/sepia = 1,
|
||||
|
||||
+3
-113
@@ -22,7 +22,7 @@
|
||||
icon = 'modular_chomp/icons/mob/hivebot.dmi'
|
||||
pass_flags = PASSTABLE
|
||||
hovering = TRUE
|
||||
movement_cooldown = -3
|
||||
movement_cooldown = 1
|
||||
faction = FACTION_TYR
|
||||
melee_damage_lower = 12
|
||||
melee_damage_upper = 12
|
||||
@@ -30,8 +30,8 @@
|
||||
icon_living = "orange"
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/tyr/swarm
|
||||
maxHealth = 1
|
||||
health = 1
|
||||
maxHealth = 3
|
||||
health = 3
|
||||
icon_state = "bright_green"
|
||||
icon_living = "bright_green"
|
||||
|
||||
@@ -41,122 +41,12 @@
|
||||
ai_holder_type = /datum/ai_holder/hostile/ranged/robust
|
||||
projectiletype = /obj/item/projectile/energy/agate_lighting/fast
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/tyr
|
||||
name = "ai control center"
|
||||
desc = "A large, very important looking ai. It sparks as it moves to attacks."
|
||||
icon_state = "powertower"
|
||||
icon_living = "powertower"
|
||||
faction = FACTION_TYR
|
||||
movement_cooldown = 10
|
||||
size_multiplier = 2
|
||||
maxHealth = 500
|
||||
health = 500
|
||||
wreckage = /obj/item/prop/tyrlore/reddisc
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/three_phases
|
||||
anchored = 1
|
||||
armor = list(melee = 40, bullet = 40, laser = 40, energy = 40, bomb = 50, bio = 100, rad = 100)
|
||||
|
||||
loot_list = list(/obj/item/tool/wirecutters/hybrid/alien = 10,
|
||||
/obj/item/tool/wrench/hybrid/alien = 10,
|
||||
/obj/item/tool/crowbar/hybrid/alien = 10,
|
||||
/obj/item/tool/screwdriver/hybrid/alien = 10,
|
||||
/obj/item/pickaxe/diamonddrill/alien = 10,
|
||||
/obj/item/melee/energy/sword/dualsaber = 10,
|
||||
/obj/item/shield_projector/rectangle/automatic/tyrbarrier = 1,
|
||||
/obj/item/stock_parts/scanning_module/omni = 80,
|
||||
/obj/item/stock_parts/micro_laser/omni = 80,
|
||||
/obj/item/stock_parts/capacitor/omni = 80,
|
||||
/obj/item/stock_parts/manipulator/omni = 80,
|
||||
/obj/item/stock_parts/matter_bin/omni = 80,
|
||||
/obj/item/stock_parts/scanning_module/hyper = 80,
|
||||
/obj/item/stock_parts/micro_laser/hyper = 80,
|
||||
/obj/item/stock_parts/capacitor/hyper = 80,
|
||||
/obj/item/stock_parts/manipulator/hyper = 80,
|
||||
/obj/item/stock_parts/matter_bin/hyper = 80,
|
||||
)
|
||||
|
||||
|
||||
/datum/ai_holder/simple_mob/intentional/three_phases/nomove/walk_to_destination()
|
||||
return
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/tyr/do_special_attack(atom/A)
|
||||
. = TRUE // So we don't fire a bolt as well.
|
||||
if(attackcycle == 1)
|
||||
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 2), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 2)
|
||||
specialattackprojectile = /obj/item/projectile/energy/spikeenergy_ball/boss
|
||||
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 3, 15), 1 SECOND, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 3)
|
||||
specialattackprojectile = /obj/item/projectile/energy/eclipse/tyrjavelin
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 12, 1, 0.5 SECONDS), 1 SECOND, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
|
||||
/obj/item/projectile/energy/spikeenergy_ball/boss
|
||||
damage = 40
|
||||
armor_penetration = 60
|
||||
speed = 10
|
||||
crawl_destroy = TRUE
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/nanoweavetower
|
||||
name = "ai control center"
|
||||
desc = "A large, very important looking ai."
|
||||
icon_state = "bluetower"
|
||||
icon_living = "bluetower"
|
||||
faction = FACTION_HIVEBOT
|
||||
movement_cooldown = 10
|
||||
size_multiplier = 2
|
||||
maxHealth = 500
|
||||
health = 500
|
||||
wreckage = /obj/structure/loot_pile/surface/alien/engineering
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/three_phases/nomove
|
||||
anchored = 1
|
||||
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 50, bio = 100, rad = 100)
|
||||
loot_list = list(/obj/item/prop/alien/junk = 100,
|
||||
/obj/item/multitool/alien = 30,
|
||||
/obj/item/stack/cable_coil/alien = 30,
|
||||
/obj/item/tool/crowbar/alien = 30,
|
||||
/obj/item/tool/screwdriver/alien = 30,
|
||||
/obj/item/weldingtool/alien = 30,
|
||||
/obj/item/tool/wirecutters/alien = 30,
|
||||
/obj/item/tool/wrench/alien = 30,
|
||||
/obj/item/cell/device/weapon/recharge/alien = 40,
|
||||
/obj/item/prop/nanoweave/terraformers = 50,
|
||||
/obj/item/prop/nanoweave/cyan = 50,
|
||||
/obj/item/prop/nanoweave/lime = 50,
|
||||
/obj/item/perfect_tele/alien = 100
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/nanoweavetower/do_special_attack(atom/A)
|
||||
. = TRUE // So we don't fire a bolt as well.
|
||||
var/rng_cycle
|
||||
if(attackcycle == 1)
|
||||
specialattackprojectile = /obj/item/projectile/beam/midlaser/shortrange
|
||||
rng_cycle = rand(1,4)
|
||||
say("PROTOCOL: CROSS X.")
|
||||
addtimer(CALLBACK(src, PROC_REF(star_burst), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 2)
|
||||
specialattackprojectile = /obj/item/projectile/energy/wallbreaker/boss
|
||||
rng_cycle = rand(1,4)
|
||||
say("PROTOCOL: PRECISION. SWEEP.")
|
||||
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 25), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 3)
|
||||
specialattackprojectile = /obj/item/projectile/energy/lightingspark/nanoweave
|
||||
rng_cycle = rand(1,4)
|
||||
say("PROTOCOL: DISCHARGE.")
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 12, rng_cycle, 15), 1 SECOND, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 4)
|
||||
specialattackprojectile = /obj/item/projectile/arc/explosive_rocket/big
|
||||
rng_cycle = rand(1,4)
|
||||
Beam(A, icon_state = "r_beam", time = 1 SECOND, maxdistance = INFINITY)
|
||||
say("PROTOCOL: MISSILE.")
|
||||
addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/eclipse
|
||||
name = "repurposed hivebot"
|
||||
|
||||
@@ -80,19 +80,8 @@
|
||||
icon_living = "rex"
|
||||
|
||||
/mob/living/simple_mob/vore/fossiltank/do_special_attack(atom/A)
|
||||
if(health < maxHealth*0.25)
|
||||
visible_message(span_bolddanger(span_orange("The fossil tank begins self repairs!.")))
|
||||
addtimer(CALLBACK(src, PROC_REF(cycle_heal), 8), 1 SECOND, TIMER_DELETE_ME)
|
||||
else
|
||||
Beam(A, icon_state = "sat_beam", time = 3.5 SECONDS, maxdistance = INFINITY)
|
||||
addtimer(CALLBACK(src, PROC_REF(sniper_shot), A), 4 SECONDS, TIMER_DELETE_ME)
|
||||
|
||||
/mob/living/simple_mob/vore/fossiltank/proc/cycle_heal(var/healamount)
|
||||
adjustBruteLoss(-100)
|
||||
adjustFireLoss(-100)
|
||||
if(healamount > 0)
|
||||
healamount -= 1
|
||||
addtimer(CALLBACK(src, PROC_REF(cycle_heal), 8), 1 SECOND, TIMER_DELETE_ME)
|
||||
Beam(A, icon_state = "sat_beam", time = 3.5 SECONDS, maxdistance = INFINITY)
|
||||
addtimer(CALLBACK(src, PROC_REF(sniper_shot), A), 4 SECONDS, TIMER_DELETE_ME)
|
||||
|
||||
/mob/living/simple_mob/vore/fossiltank/proc/sniper_shot(atom/target)
|
||||
if(!target)
|
||||
@@ -126,7 +115,7 @@
|
||||
icon = 'modular_chomp/icons/mob/tyr.dmi'
|
||||
icon_state = "jellyfish"
|
||||
icon_living = "jellyfish"
|
||||
icon_dead = "jelltdish_dead"
|
||||
icon_dead = "jellyfish_dead"
|
||||
movement_cooldown = 1
|
||||
damage_fatigue_mult = 0 //It's a mutant jellyfish boss mob.
|
||||
melee_attack_delay = 1.5 SECOND
|
||||
|
||||
Reference in New Issue
Block a user