mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Small Tyr Update (#11491)
This commit is contained in:
@@ -521,5 +521,20 @@
|
||||
anchored = 1
|
||||
icon_state = "barbedwire-out"
|
||||
|
||||
/obj/item/prop/tyrlore/expirmentvenom
|
||||
name = "data disc"
|
||||
desc = "An alien disc for storing data."
|
||||
catalogue_data = list(/datum/category_item/catalogue/technology/tyr_expirment_poison)
|
||||
icon_state = "old_sci_disc"
|
||||
|
||||
|
||||
/datum/category_item/catalogue/technology/tyr_expirment_poison
|
||||
name = "Precursor Object - Tyr Data Disc Venom"
|
||||
desc = "The following data has been corrupted. \
|
||||
<br><br>\
|
||||
Tseitgn rPeodi ahs ccnocuddle.\
|
||||
nUti vporse to eb xetayodrriarn nuop rocagni boantcamts. \
|
||||
Sirliam bio-erpeisxmnet fall to it's porses.\
|
||||
Hoverew reyverco tdsen to be wfits, and otseh muenim or tihw a ucer rovep to be sunursabspale.\
|
||||
Ntxe pets is to gntritea retfurh henenac the sosrpe, and deruce teh sethynict koovleor. \
|
||||
Recommendation for integration with the Astral Sea protocols."
|
||||
value = CATALOGUER_REWARD_HARD
|
||||
|
||||
@@ -996,3 +996,105 @@
|
||||
addtimer(CALLBACK(src, PROC_REF(gattlingfire), target, next_cycle, fire_delay, amount), fire_delay, TIMER_DELETE_ME)
|
||||
else
|
||||
attackcycle = next_cycle
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/death_wall(atom/target, var/next_cycle, var/fire_delay)
|
||||
bullet_heck(target, 7, 0)
|
||||
bullet_heck(target, 7, 1)
|
||||
bullet_heck(target, 7, 2)
|
||||
bullet_heck(target, 7, 3)
|
||||
bullet_heck(target, 7, 4)
|
||||
bullet_heck(target, 7, 5)
|
||||
bullet_heck(target, 7, 6)
|
||||
bullet_heck(target, 7, 7)
|
||||
bullet_heck(target, 7, -1)
|
||||
bullet_heck(target, 7, -2)
|
||||
bullet_heck(target, 7, -3)
|
||||
bullet_heck(target, 7, -4)
|
||||
bullet_heck(target, 7, -5)
|
||||
bullet_heck(target, 7, -6)
|
||||
bullet_heck(target, 7, -7)
|
||||
addtimer(CALLBACK(src, PROC_REF(death_wallA), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/death_wallA(atom/target, var/next_cycle, var/fire_delay)
|
||||
bullet_heck(target, -7, 0)
|
||||
bullet_heck(target, -7, 1)
|
||||
bullet_heck(target, -7, 2)
|
||||
bullet_heck(target, -7, 3)
|
||||
bullet_heck(target, -7, 4)
|
||||
bullet_heck(target, -7, 5)
|
||||
bullet_heck(target, -7, 6)
|
||||
bullet_heck(target, -7, 7)
|
||||
bullet_heck(target, -7, -1)
|
||||
bullet_heck(target, -7, -2)
|
||||
bullet_heck(target, -7, -3)
|
||||
bullet_heck(target, -7, -4)
|
||||
bullet_heck(target, -7, -5)
|
||||
bullet_heck(target, -7, -6)
|
||||
bullet_heck(target, -7, -7)
|
||||
attackcycle = next_cycle
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/death_wallR(atom/target, var/next_cycle, var/fire_delay)
|
||||
bullet_heck(target, -7, 0)
|
||||
bullet_heck(target, -7, 1)
|
||||
bullet_heck(target, -7, 2)
|
||||
bullet_heck(target, -7, 3)
|
||||
bullet_heck(target, -7, 4)
|
||||
bullet_heck(target, -7, 5)
|
||||
bullet_heck(target, -7, 6)
|
||||
bullet_heck(target, -7, 7)
|
||||
bullet_heck(target, -7, -1)
|
||||
bullet_heck(target, -7, -2)
|
||||
bullet_heck(target, -7, -3)
|
||||
bullet_heck(target, -7, -4)
|
||||
bullet_heck(target, -7, -5)
|
||||
bullet_heck(target, -7, -6)
|
||||
bullet_heck(target, -7, -7)
|
||||
addtimer(CALLBACK(src, PROC_REF(death_wallRA), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/death_wallRA(atom/target, var/next_cycle, var/fire_delay)
|
||||
bullet_heck(target, 7, 0)
|
||||
bullet_heck(target, 7, 1)
|
||||
bullet_heck(target, 7, 2)
|
||||
bullet_heck(target, 7, 3)
|
||||
bullet_heck(target, 7, 4)
|
||||
bullet_heck(target, 7, 5)
|
||||
bullet_heck(target, 7, 6)
|
||||
bullet_heck(target, 7, 7)
|
||||
bullet_heck(target, 7, -1)
|
||||
bullet_heck(target, 7, -2)
|
||||
bullet_heck(target, 7, -3)
|
||||
bullet_heck(target, 7, -4)
|
||||
bullet_heck(target, 7, -5)
|
||||
bullet_heck(target, 7, -6)
|
||||
bullet_heck(target, 7, -7)
|
||||
attackcycle = next_cycle
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/cutoff(atom/target, var/next_cycle, var/fire_delay, var/amount)
|
||||
if(!target)
|
||||
return
|
||||
bullet_heck(target, 7, 0)
|
||||
bullet_heck(target, -7, 0)
|
||||
bullet_heck(target, 0, 7)
|
||||
bullet_heck(target, 0, -7)
|
||||
amount--
|
||||
if(amount > 0)
|
||||
addtimer(CALLBACK(src, PROC_REF(cutoff), target, next_cycle, fire_delay, amount), fire_delay, TIMER_DELETE_ME)
|
||||
else
|
||||
attackcycle = next_cycle
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/cutoff_ulti(atom/target, var/next_cycle, var/fire_delay, var/amount)
|
||||
if(!target)
|
||||
return
|
||||
bullet_heck(target, 7, 0)
|
||||
bullet_heck(target, -7, 0)
|
||||
bullet_heck(target, 0, 7)
|
||||
bullet_heck(target, 0, -7)
|
||||
bullet_heck(target, 7, 7)
|
||||
bullet_heck(target, -7, -7)
|
||||
bullet_heck(target, -7, 7)
|
||||
bullet_heck(target, 7, -7)
|
||||
amount--
|
||||
if(amount > 0)
|
||||
addtimer(CALLBACK(src, PROC_REF(cutoff_ulti), target, next_cycle, fire_delay, amount), fire_delay, TIMER_DELETE_ME)
|
||||
else
|
||||
attackcycle = next_cycle
|
||||
|
||||
@@ -14,16 +14,11 @@
|
||||
shock_resist = -0.2
|
||||
deflect_chance = 0
|
||||
movement_cooldown = 10
|
||||
status_flags = null
|
||||
var/specialattackprojectile = /obj/item/projectile/energy/phase/bolt
|
||||
var/attackcycle = 1
|
||||
var/artidrop = /obj/effect/artillery_attack
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/handle_special()
|
||||
if(stat != DEAD)
|
||||
src.SetStunned(0)
|
||||
src.SetWeakened(0)
|
||||
src.SetParalysis(0)
|
||||
..()
|
||||
var/rng_cycle = 0
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/do_special_attack(atom/A)
|
||||
bullet_heck(A, 3, 3)
|
||||
@@ -61,7 +56,6 @@
|
||||
wreckage = /obj/structure/loot_pile/mecha/odd_gygax
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/antipersonal_unit/do_special_attack(atom/A)
|
||||
var/rng_cycle
|
||||
switch(a_intent)
|
||||
if(I_DISARM) //phase3
|
||||
if(attackcycle == 1)
|
||||
@@ -306,7 +300,6 @@
|
||||
visible_message(span_cult("[P] has been adapted too!."))
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/armored/do_special_attack(atom/A)
|
||||
var/rng_cycle
|
||||
switch(a_intent)
|
||||
if(I_DISARM) //phase3
|
||||
if(attackcycle == 1)
|
||||
@@ -383,7 +376,6 @@
|
||||
icon_state = "eclipse_janus"
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/darkmatter_assualt/phasetwo/do_special_attack(atom/A)
|
||||
var/rng_cycle
|
||||
if(attackcycle == 1)
|
||||
attackcycle = rand(4,6)
|
||||
addtimer(CALLBACK(src, PROC_REF(random_firing), A, 14, attackcycle, 5), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
@@ -618,7 +610,7 @@
|
||||
B.escapechance = 25
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chambera //poison boss
|
||||
name = "expirement 20"
|
||||
name = "experiment 20"
|
||||
specialattackprojectile = /obj/item/projectile/energy/eclipse/poisonwind
|
||||
icon_state = "poison_boss"
|
||||
icon_living = "poison_boss"
|
||||
@@ -650,7 +642,7 @@
|
||||
attackcycle = 0
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberb //knock back boss
|
||||
name = "expirement 3"
|
||||
name = "experiment 3"
|
||||
specialattackprojectile = /obj/item/projectile/knockback/slow
|
||||
icon_state = "sonic_boss"
|
||||
icon_living = "sonic_boss"
|
||||
@@ -660,7 +652,7 @@
|
||||
speed = 10
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberb/do_special_attack(atom/A)
|
||||
var/rng_cycle = rand(1,6)
|
||||
rng_cycle = rand(1,6)
|
||||
if(attackcycle == 1)
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
@@ -681,7 +673,7 @@
|
||||
attackcycle = 0
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberc //wierd shields
|
||||
name = "expirement 7"
|
||||
name = "experiment 7"
|
||||
specialattackprojectile = /obj/item/projectile/energy/eclipse/tyrjavelin
|
||||
health = 400
|
||||
maxHealth = 400 //shield mechanic
|
||||
@@ -691,7 +683,7 @@
|
||||
var/fullshield = 300
|
||||
var/shieldrage = 3
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberc/bullet_act(obj/item/projectile/P) //Projectiles will be absorbed by the shield. Note to self do funky sprite. 4 hits to remove
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberc/bullet_act(obj/item/projectile/P)
|
||||
if(fullshield > 0)
|
||||
fullshield -= P.damage
|
||||
if(P == /obj/item/projectile/ion)
|
||||
@@ -713,7 +705,7 @@
|
||||
icon_state = "UPshield_boss"
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberc/do_special_attack(atom/A)
|
||||
var/rng_cycle = rand(1,5)
|
||||
rng_cycle = rand(1,5)
|
||||
if(attackcycle == 1)
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 20), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
@@ -731,33 +723,200 @@
|
||||
addtimer(CALLBACK(src, PROC_REF(gattlingfire), A, rng_cycle, 8, 7), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberd //the wall
|
||||
name = "expirement 12"
|
||||
name = "security master control"
|
||||
health = 600 //summoner boss so reduced health
|
||||
maxHealth = 600 //summoner boss so reduced health
|
||||
specialattackprojectile = /obj/item/projectile/arc/explosive_rocket/big
|
||||
artidrop = /mob/living/simple_mob/mechanical/hivebot/tyr
|
||||
specialattackprojectile = /obj/item/projectile/spawnball
|
||||
icon_state = "spawn_boss"
|
||||
icon_living = "spawn_boss"
|
||||
|
||||
/obj/item/projectile/spawnball
|
||||
name = "nano sphere"
|
||||
icon_state = "bolter"
|
||||
speed = 10
|
||||
damage = 10
|
||||
embed_chance = 0
|
||||
damage_type = BRUTE
|
||||
muzzle_type = null
|
||||
combustion = FALSE
|
||||
|
||||
/obj/item/projectile/metalball/on_hit(var/atom/target, var/blocked = 0)
|
||||
if(isturf(target.loc))
|
||||
visible_message(span_danger("\The [src] creates a hivebot!"))
|
||||
new /mob/living/simple_mob/mechanical/hivebot/tyr(target.loc)
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberd/do_special_attack(atom/A)
|
||||
var/rng_cycle = rand(1,5)
|
||||
rng_cycle = rand(1,4)
|
||||
if(attackcycle == 1)
|
||||
specialattackprojectile = /obj/item/projectile/arc/explosive_rocket/big
|
||||
addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 1 SECOND, TIMER_DELETE_ME)
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 2)
|
||||
specialattackprojectile = /obj/item/projectile/arc/explosive_rocket/big
|
||||
addtimer(CALLBACK(src, PROC_REF(cross_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 5), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 3)
|
||||
artidrop = /mob/living/simple_mob/mechanical/hivebot/tyr
|
||||
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, rng_cycle), 1.5 SECONDS, TIMER_DELETE_ME)
|
||||
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, rng_cycle), 2.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 4)
|
||||
artidrop = /obj/item/material/barbedwire/plastic/active
|
||||
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, rng_cycle), 1.5 SECONDS, TIMER_DELETE_ME)
|
||||
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, rng_cycle), 2.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chambere
|
||||
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/arc/explosive_rocket
|
||||
loot_list = list(/obj/item/projectile/energy/wp_shotgun = 30,
|
||||
/obj/item/gun/energy/energyballchain = 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/tyrvault = 0.01,
|
||||
/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,
|
||||
/obj/item/cell/slime/jellyfish = 100
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chambere/do_special_attack(atom/A)
|
||||
rng_cycle = rand(1,6)
|
||||
if(attackcycle == 1)
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 20), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 3)
|
||||
addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 4)
|
||||
addtimer(CALLBACK(src, PROC_REF(rising_star), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 4)
|
||||
attackcycle = 0
|
||||
addtimer(CALLBACK(src, PROC_REF(gattlingfire), A, rng_cycle, 8, 7), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
else if(attackcycle == 5)
|
||||
specialattackprojectile = /obj/item/projectile/energy/eclipse/tyrjavelin
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 25), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
addtimer(CALLBACK(src, PROC_REF(cutoff), A, rng_cycle, 5, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
else if(attackcycle == 6)
|
||||
attackcycle = 0
|
||||
addtimer(CALLBACK(src, PROC_REF(cutoff_ulti), A, rng_cycle, 5, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberf
|
||||
name = "engineering automaton"
|
||||
desc = "A large, very important looking ai. Plating appears similiar to albative plating."
|
||||
icon = 'modular_chomp/icons/mob/hivebot.dmi'
|
||||
icon_state = "yellow"
|
||||
icon_living = "yellow"
|
||||
size_multiplier = 3
|
||||
specialattackprojectile = /obj/item/projectile/energy/lightingspark/nanoweave
|
||||
projectiletype = /obj/item/projectile/energy/lightingspark/nanoweave
|
||||
loot_list = list(/obj/item/projectile/energy/wp_shotgun = 30,
|
||||
/obj/item/gun/energy/energyballchain = 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/tyrvault = 0.01,
|
||||
/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,
|
||||
/obj/item/melee/midnightblade = 100
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberf/do_special_attack(atom/A)
|
||||
rng_cycle = rand(1,6)
|
||||
if(attackcycle == 1)
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 20), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 3)
|
||||
addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 4)
|
||||
addtimer(CALLBACK(src, PROC_REF(rising_star), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 4)
|
||||
attackcycle = 0
|
||||
addtimer(CALLBACK(src, PROC_REF(gattlingfire), A, rng_cycle, 8, 7), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
else if(attackcycle == 5)
|
||||
attackcycle = 0
|
||||
addtimer(CALLBACK(src, PROC_REF(cutoff), A, rng_cycle, 5, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
else if(attackcycle == 6)
|
||||
attackcycle = 0
|
||||
addtimer(CALLBACK(src, PROC_REF(cutoff_ulti), A, rng_cycle, 5, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberg //wierd shields
|
||||
name = "expirement 28"
|
||||
specialattackprojectile = /obj/item/projectile/energy/eclipse/tyrjavelin
|
||||
resistance = 15
|
||||
health = 1000
|
||||
maxHealth = 1000
|
||||
icon_state = "UPshield_boss"
|
||||
icon_living = "UPshield_boss"
|
||||
color = "#FF0000"
|
||||
projectiletype = /obj/item/projectile/energy/eclipse/tyrjavelin
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberg/do_special_attack(atom/A)
|
||||
rng_cycle = rand(1,6)
|
||||
if(attackcycle == 1)
|
||||
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 20), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 2)
|
||||
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 3)
|
||||
addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 4)
|
||||
addtimer(CALLBACK(src, PROC_REF(rising_star), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 4)
|
||||
attackcycle = 0
|
||||
addtimer(CALLBACK(src, PROC_REF(gattlingfire), A, rng_cycle, 8, 7), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
else if(attackcycle == 5)
|
||||
attackcycle = 0
|
||||
addtimer(CALLBACK(src, PROC_REF(cutoff), A, rng_cycle, 5, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
else if(attackcycle == 6)
|
||||
attackcycle = 0
|
||||
addtimer(CALLBACK(src, PROC_REF(cutoff_ulti), A, rng_cycle, 5, 15), 0.5 SECONDS, TIMER_DELETE_ME)
|
||||
else if(attackcycle == 7)
|
||||
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, rng_cycle), 2.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 8)
|
||||
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, rng_cycle), 2.5 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/chamberg/bullet_act(obj/item/projectile/P)
|
||||
if((P == /obj/item/projectile/ion) && (resistance > 0))
|
||||
resistance = 0
|
||||
say("Shields destroyed, rerouting power")
|
||||
specialattackprojectile = /obj/item/projectile/energy/eclipse/tyrjavelin/speed
|
||||
projectiletype = /obj/item/projectile/energy/eclipse/tyrjavelin/speed
|
||||
icon_state = "shield_boss"
|
||||
icon_living = "shield_boss"
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
. = TRUE // So we don't fire a bolt as well.
|
||||
var/rng_cycle
|
||||
if(attackcycle == 1)
|
||||
specialattackprojectile = /obj/item/projectile/beam/burstlaser
|
||||
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)
|
||||
|
||||
@@ -309,14 +309,17 @@
|
||||
modifier_type_to_apply = /datum/modifier/poisoned //main threat right here, Will two tap most players if untreated
|
||||
modifier_duration = 1 MINUTE
|
||||
|
||||
/obj/item/projectile/energy/eclipse/tyrjavelin //Four hits ought to end you
|
||||
/obj/item/projectile/energy/eclipse/tyrjavelin //Five hits ought to end you
|
||||
name = "energy javelin"
|
||||
icon_state = "javelin"
|
||||
damage_type = SEARING
|
||||
check_armour = "bullet"
|
||||
damage = 20
|
||||
armor_penetration = 60
|
||||
check_armour = "melee"
|
||||
damage = 23
|
||||
armor_penetration = 30
|
||||
speed = 10
|
||||
color = "#FF6600"
|
||||
modifier_type_to_apply = /datum/modifier/deep_wounds //reduced healing
|
||||
modifier_duration = 1 MINUTE
|
||||
|
||||
/obj/item/projectile/energy/eclipse/tyrjavelin/speed
|
||||
speed = 7
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user