mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
New Sif POIs: Dual Boss (#11043)
This commit is contained in:
@@ -1402,6 +1402,19 @@
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/miniburst_b(atom/target, var/next_cycle)
|
||||
if(!target)
|
||||
return
|
||||
upfour(target)
|
||||
rightfour(target)
|
||||
downfour(target)
|
||||
leftfour(target)
|
||||
attackcycle = next_cycle
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/miniburst_c(atom/target, var/next_cycle)
|
||||
if(!target)
|
||||
return
|
||||
upfour(target)
|
||||
rightfour(target)
|
||||
downfour(target)
|
||||
leftfour(target)
|
||||
upfour_leftfour(target)
|
||||
upfour_rightfour(target)
|
||||
downfour_rightfour(target)
|
||||
|
||||
@@ -39,11 +39,11 @@
|
||||
armor = list(melee = 80, bullet = 80, laser = 80, energy = 80, bomb = 0, bio = 100, rad = 100)
|
||||
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/nanoevent/orange //missiles!
|
||||
/mob/living/simple_mob/mechanical/hivebot/nanoevent/orange //knockback
|
||||
name = "nanoweave artillery hivebot"
|
||||
icon_state = "orange"
|
||||
icon_living = "orange"
|
||||
projectiletype = /obj/item/projectile/energy/burninglaser
|
||||
projectiletype = /obj/item/projectile/knockback
|
||||
movement_cooldown = 1
|
||||
|
||||
|
||||
@@ -76,21 +76,15 @@
|
||||
/obj/item/projectile/beam/midlaser/veryshortrange
|
||||
range = 2
|
||||
|
||||
/obj/item/projectile/energy/burninglaser
|
||||
name = "energy bolt"
|
||||
icon_state = "heavylaser"
|
||||
damage = 25
|
||||
armor_penetration = 20
|
||||
penetrating = 5
|
||||
speed = 3
|
||||
|
||||
/obj/item/projectile/energy/burninglaser/Move()
|
||||
. = ..()
|
||||
new /obj/fire(src.loc)
|
||||
|
||||
/obj/item/projectile/energy/burninglaser/boss
|
||||
armor_penetration = 50
|
||||
speed = 10
|
||||
/obj/item/projectile/energy/lightingspark/nanoweave
|
||||
damage = 15
|
||||
armor_penetration = 40
|
||||
damage_type = BURN
|
||||
nodamage = 0
|
||||
penetrating = 10
|
||||
icon_state = "tesla_projectile"
|
||||
speed = 15
|
||||
|
||||
/obj/item/projectile/knockback
|
||||
name = "sonic blast"
|
||||
@@ -146,6 +140,21 @@
|
||||
maxHealth = 5000
|
||||
health = 5000
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/boss/sifpoi
|
||||
maxHealth = 600
|
||||
health = 600
|
||||
loot_list = list(/obj/item/prop/alien/junk = 100,
|
||||
/obj/item/multitool/alien = 20,
|
||||
/obj/item/stack/cable_coil/alien = 20,
|
||||
/obj/item/tool/crowbar/alien = 20,
|
||||
/obj/item/tool/screwdriver/alien = 20,
|
||||
/obj/item/weldingtool/alien = 20,
|
||||
/obj/item/tool/wirecutters/alien = 20,
|
||||
/obj/item/tool/wrench/alien = 20,
|
||||
/obj/item/cell/device/weapon/recharge/alien = 30,
|
||||
/obj/item/perfect_tele/alien = 100
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/boss/do_special_attack(atom/A)
|
||||
. = TRUE // So we don't fire a bolt as well.
|
||||
switch(a_intent)
|
||||
@@ -202,8 +211,8 @@
|
||||
else
|
||||
addtimer(CALLBACK(src, PROC_REF(miniburst_b), A, 10), 2 SECONDS, TIMER_DELETE_ME)
|
||||
else if(attackcycle == 10)
|
||||
say("PROTOCOL: FIREWALL.")
|
||||
specialattackprojectile = /obj/item/projectile/energy/burninglaser/boss
|
||||
say("PROTOCOL: DISCHARGE.")
|
||||
specialattackprojectile = /obj/item/projectile/energy/lightingspark/nanoweave
|
||||
attackcycle = 0
|
||||
if(prob(50))
|
||||
addtimer(CALLBACK(src, PROC_REF(miniburst_a), A, 1), 2 SECONDS, TIMER_DELETE_ME)
|
||||
@@ -268,8 +277,8 @@
|
||||
addtimer(CALLBACK(src, PROC_REF(burst), A, 7), 3 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 7)
|
||||
say("PROTOCOL: FIREWALL.")
|
||||
specialattackprojectile = /obj/item/projectile/energy/burninglaser/boss
|
||||
say("PROTOCOL: DISCHARGE.")
|
||||
specialattackprojectile = /obj/item/projectile/energy/lightingspark/nanoweave
|
||||
attackcycle = 0
|
||||
if(prob(50))
|
||||
addtimer(CALLBACK(src, PROC_REF(miniburst_a), A, 1), 3 SECONDS, TIMER_DELETE_ME)
|
||||
@@ -321,7 +330,7 @@
|
||||
say("PROTOCOL: TELEPORT.")
|
||||
addtimer(CALLBACK(src, PROC_REF(teleport_attack), A, 1), 1 SECOND, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
|
||||
/*
|
||||
/mob/living/simple_mob/mechanical/mecha/eclipse/hivebot/green
|
||||
name = "command hivebot"
|
||||
desc = "A large, very important looking robot."
|
||||
@@ -396,7 +405,7 @@
|
||||
say("PROTOCOL: TELEPORT.")
|
||||
addtimer(CALLBACK(src, PROC_REF(teleport_attack), A, 1), 1 SECOND, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@@ -420,7 +429,7 @@
|
||||
icon_state = "orangedisc"
|
||||
|
||||
/obj/item/prop/nanoweave/terraformers
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/orangedisc)
|
||||
catalogue_data = list(/datum/category_item/catalogue/anomalous/terraformers)
|
||||
icon_state = "orangedisc"
|
||||
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
desc = "A large, very important looking ai. Plating appears similiar to albative plating."
|
||||
icon_state = "powertower"
|
||||
icon_living = "powertower"
|
||||
faction = FACTION_HIVEBOT
|
||||
movement_cooldown = 7
|
||||
size_multiplier = 2
|
||||
maxHealth = 500
|
||||
@@ -84,3 +85,69 @@
|
||||
armor_penetration = 60
|
||||
speed = 10
|
||||
|
||||
/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 = 7
|
||||
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 = 10,
|
||||
/obj/item/stack/cable_coil/alien = 10,
|
||||
/obj/item/tool/crowbar/alien = 10,
|
||||
/obj/item/tool/screwdriver/alien = 10,
|
||||
/obj/item/weldingtool/alien = 10,
|
||||
/obj/item/tool/wirecutters/alien = 10,
|
||||
/obj/item/tool/wrench/alien = 10,
|
||||
/obj/item/cell/device/weapon/recharge/alien = 20,
|
||||
/obj/item/prop/nanoweave/terraformers = 30,
|
||||
/obj/item/prop/nanoweave/cyan = 30,
|
||||
/obj/item/prop/nanoweave/lime = 30,
|
||||
/obj/item/perfect_tele/alien = 50
|
||||
)
|
||||
|
||||
/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/burstlaser
|
||||
rng_cycle = rand(1,5)
|
||||
say("PROTOCOL: CROSS X.")
|
||||
addtimer(CALLBACK(src, PROC_REF(miniburst_c), 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,5)
|
||||
say("PROTOCOL: PRECISION. SWEEP.")
|
||||
addtimer(CALLBACK(src, PROC_REF(zone_control_one), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 3)
|
||||
specialattackprojectile = /obj/item/projectile/energy/lightingspark/nanoweave
|
||||
rng_cycle = rand(1,5)
|
||||
say("PROTOCOL: DISCHARGE.")
|
||||
addtimer(CALLBACK(src, PROC_REF(spin_to_win), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 4)
|
||||
specialattackprojectile = /obj/item/projectile/knockback
|
||||
rng_cycle = rand(1,5)
|
||||
Beam(A, icon_state = "r_beam", time = 2 SECONDS, maxdistance = INFINITY)
|
||||
say("PROTOCOL: AIRCANNON.")
|
||||
addtimer(CALLBACK(src, PROC_REF(singleproj), A, rng_cycle), 2 SECONDS, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 5)
|
||||
specialattackprojectile = /obj/item/projectile/arc/explosive_rocket/big
|
||||
rng_cycle = rand(1,5)
|
||||
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
|
||||
|
||||
|
||||
|
||||
@@ -331,7 +331,7 @@
|
||||
submunition_spread_max = 900
|
||||
submunition_spread_min = 150
|
||||
spread_submunition_damage = FALSE
|
||||
submunitions = list(/obj/item/projectile/energy/hazardmover/omni = 1, /obj/item/projectile/energy/wallbreaker/boss = 1, /obj/item/projectile/energy/burninglaser/boss = 1)
|
||||
submunitions = list(/obj/item/projectile/energy/hazardmover/omni = 1, /obj/item/projectile/energy/wallbreaker/boss = 1)
|
||||
|
||||
/obj/item/projectile/bullet/nanodyson/on_range()
|
||||
qdel(src)
|
||||
@@ -369,7 +369,6 @@
|
||||
addtimer(CALLBACK(src, PROC_REF(omega), A, 3), 1 SECOND, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 3)
|
||||
projectiletype = /obj/item/projectile/energy/burninglaser/boss
|
||||
addtimer(CALLBACK(src, PROC_REF(alpha_slash), A, 4), 1 SECOND, TIMER_DELETE_ME)
|
||||
attackcycle = 0
|
||||
else if(attackcycle == 4)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -70,6 +70,8 @@
|
||||
#include "syndisniperAlt.dmm"
|
||||
#include "wolfden.dmm"
|
||||
#include "xenohive.dmm"
|
||||
#include "XenoWeaveMajor.dmm"
|
||||
#include "XenoWeaveMinour.dmm"
|
||||
#endif
|
||||
|
||||
// The 'wilderness' is the endgame for Explorers. Extremely dangerous and far away from help, but with vast shinies.
|
||||
@@ -533,6 +535,18 @@
|
||||
mappath = "modular_chomp/maps/submaps/surface_submaps/wilderness/PirateLake.dmm"
|
||||
cost = 20
|
||||
|
||||
/datum/map_template/surface/wilderness/deep/XenoWeaveMajor
|
||||
name = "Assimilated Engine"
|
||||
desc = "An engine fallen off a precursor structure, stolen by a diffrent breed."
|
||||
mappath = "modular_chomp/maps/submaps/surface_submaps/wilderness/XenoWeaveMajor.dmm"
|
||||
cost = 45
|
||||
|
||||
/datum/map_template/surface/wilderness/deep/XenoWeaveMinour
|
||||
name = "Assimilated Building"
|
||||
desc = "A building claimed and assimilated into the xenoweave."
|
||||
mappath = "modular_chomp/maps/submaps/surface_submaps/wilderness/XenoWeaveMinour.dmm"
|
||||
cost = 30
|
||||
|
||||
/*==Disabled==/
|
||||
|
||||
/datum/map_template/surface/wilderness/deep/Boombase //YW Edit remove boombase
|
||||
|
||||
@@ -235,6 +235,16 @@
|
||||
name = "POI Wilderness - Xeno Hive"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/XenoWeaveMajor
|
||||
name = "POI Wilderness - Assimilated Engine"
|
||||
ambience = AMBIENCE_HOLY
|
||||
requires_power = FALSE
|
||||
|
||||
/area/submap/XenoWeaveMinour
|
||||
name = "POI Wilderness - Assimilated Building"
|
||||
ambience = AMBIENCE_HOLY
|
||||
requires_power = FALSE
|
||||
|
||||
/area/submap/VolcanicFissure
|
||||
name = "POI Wilderness - Volcanic Fissure"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
Reference in New Issue
Block a user