mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-22 20:57:23 +01:00
Trying to make amends.
I tried to created boss mobs and difficult foes. Made them too lethal. I'll try to properly write stuff down in the morning but basically Eclipse -> All shootslower, and deal less damage. Phazon -> Missle destructive ranges deceased Boss Hivebot -> Singulairty attack changed priortity, new hivebot summon attack Precursor hivebot -> All can drop minor things, health decreased Phazon - Base version no longer does rad attacks, instead does basic explosiove/fuel rod shots...actually I will likly change this in the morning.
This commit is contained in:
+16
-54
@@ -33,6 +33,7 @@
|
||||
projectile_dispersion = 8
|
||||
projectile_accuracy = -20
|
||||
armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100) // Simple mob immunuties plus base Eclipse foe stuff
|
||||
ranged_cooldown = 4
|
||||
|
||||
can_be_drop_prey = FALSE //CHOMP Add
|
||||
pass_flags = PASSTABLE //mostly for the melee mobs.
|
||||
@@ -57,7 +58,7 @@
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse/ranged
|
||||
|
||||
// Grenade special attack vars
|
||||
var/grenade_type = /obj/item/weapon/grenade/shooter/energy/laser
|
||||
var/grenade_type = /obj/item/weapon/grenade/shooter/rubber
|
||||
var/grenade_timer = 50 //CHOMPEdit
|
||||
special_attack_cooldown = 45 SECONDS
|
||||
special_attack_min_range = 2
|
||||
@@ -327,7 +328,7 @@
|
||||
icon_state = "eclipse_shotwuff"
|
||||
icon_living = "eclipse_shotwuff"
|
||||
|
||||
projectiletype = /obj/item/projectile/bullet/pellet/shotgun/eclipse
|
||||
projectiletype = /obj/item/projectile/bullet/pellet/shotgun
|
||||
|
||||
ranged_attack_delay = 0.5 SECONDS
|
||||
|
||||
@@ -357,7 +358,9 @@
|
||||
attack_armor_pen = 25
|
||||
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 25
|
||||
melee_damage_upper = 20
|
||||
|
||||
melee_attack_delay = 4
|
||||
|
||||
projectiletype = null
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse
|
||||
@@ -367,42 +370,6 @@
|
||||
var/poison_type = "hyperzine"
|
||||
|
||||
|
||||
|
||||
/obj/item/projectile/energy/blob/moth
|
||||
damage = 20
|
||||
armor_penetration = 25
|
||||
my_chems = list("fuel", "mold")
|
||||
flammability = 0.25
|
||||
modifier_type_to_apply = /datum/modifier/fire
|
||||
modifier_duration = 6 SECONDS
|
||||
color = "#38b9ff"
|
||||
|
||||
/obj/item/projectile/bullet/pistol/medium/ap/eclipse
|
||||
armor_penetration = 25
|
||||
ricochets = 1
|
||||
ricochets_max = 5
|
||||
ricochet_chance = 100
|
||||
|
||||
/obj/item/projectile/energy/electrode/eclipse
|
||||
damage = 30
|
||||
damage_type = BURN
|
||||
color = "#38b9ff"
|
||||
|
||||
/obj/item/projectile/bullet/pellet/shotgun/eclipse
|
||||
pellets = 8
|
||||
range_step = 1
|
||||
spread_step = 1
|
||||
|
||||
/obj/item/projectile/beam/sniper/eclipse
|
||||
armor_penetration = 50
|
||||
damage = 30
|
||||
|
||||
/obj/item/projectile/energy/declone/burn
|
||||
damage = 20
|
||||
armor_penetration = 25
|
||||
nodamage = 0
|
||||
|
||||
|
||||
//////////////////////////////////////////////
|
||||
//Boss mob time. Or somewhat bosses anyway.
|
||||
/////////////////////////////////////////////
|
||||
@@ -412,12 +379,11 @@
|
||||
health = 150
|
||||
maxHealth = 150
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
|
||||
projectiletype = /obj/item/projectile/energy/flash
|
||||
projectiletype = null //Flashing was to much for this mob.
|
||||
movement_cooldown = -1
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 35
|
||||
melee_damage_upper = 20
|
||||
attack_armor_pen = 20
|
||||
reload_max = 5
|
||||
icon_state = "eclipse_hound"
|
||||
icon_living = "eclipse_hound"
|
||||
size_multiplier = 1.25
|
||||
@@ -425,19 +391,20 @@
|
||||
var/poison_per_bite = 4
|
||||
var/poison_type = "stoxin"
|
||||
|
||||
melee_attack_delay = 4
|
||||
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/wheel
|
||||
name = "Lunar Eclipse Armadillo"
|
||||
health = 150
|
||||
maxHealth = 150
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 25
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 10
|
||||
attack_armor_pen = 50
|
||||
reload_max = 1
|
||||
icon_state = "eclipse_wheel"
|
||||
icon_living = "eclipse_wheel"
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
|
||||
projectiletype = /obj/item/projectile/beam/energy_net
|
||||
projectiletype = null //the net idea was fun but seemed to painful.
|
||||
movement_cooldown = -0.5
|
||||
|
||||
var/cloaked_alpha = 60 // Lower = Harder to see.
|
||||
@@ -544,10 +511,10 @@
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/pummler
|
||||
name = "Lunar Eclipse Pummeler"
|
||||
projectiletype = /obj/item/projectile/bullet/shotgun/ion/eclipse
|
||||
projectiletype = /obj/item/projectile/bullet/shotgun/ion
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 30
|
||||
melee_damage_upper = 10
|
||||
attack_armor_pen = 30
|
||||
movement_cooldown = 0
|
||||
icon_state = "eclipse_pummler"
|
||||
@@ -583,9 +550,4 @@
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/pummler/proc/inject_poison(mob/living/L, target_zone)
|
||||
if(prob(poison_chance))
|
||||
to_chat(L, "<span class='warning'>You feel a small shock rushing through your veins.</span>")
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
|
||||
/obj/item/projectile/bullet/shotgun/ion/eclipse
|
||||
damage = 25
|
||||
armor_penetration = 30
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
+61
-41
@@ -18,11 +18,12 @@
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
|
||||
var/grenade_type = /obj/item/weapon/grenade/shooter/energy/tesla
|
||||
var/grenade_timer = 10
|
||||
var/grenade_type2 = /obj/item/weapon/grenade/spawnboss/hivebot
|
||||
size_multiplier = 1.75
|
||||
shock_resist = 3
|
||||
water_resist = 3
|
||||
|
||||
armor = list(melee = 0, bullet = 40, laser = 40, energy = 40, bomb = 40, bio = 100, rad = 100)
|
||||
armor = list(melee = -50, bullet = 40, laser = 40, energy = 40, bomb = 40, bio = 100, rad = 100)
|
||||
|
||||
armor_soak = list(
|
||||
"melee" = 0,
|
||||
@@ -34,19 +35,19 @@
|
||||
"rad" = 0
|
||||
)
|
||||
|
||||
loot_list = list(/obj/item/clothing/suit/armor/alien = 20,
|
||||
/obj/item/clothing/suit/armor/alien/tank = 20,
|
||||
/obj/item/prop/alien/junk = 20,
|
||||
/obj/item/prop/alien/junk = 20,
|
||||
/obj/item/prop/alien/junk = 20,
|
||||
/obj/item/prop/alien/junk = 20,
|
||||
/obj/item/prop/alien/junk = 20,
|
||||
/obj/item/weapon/gun/energy/alien = 20,
|
||||
/obj/item/weapon/gun/energy/alien = 20,
|
||||
/obj/random/tool/alien = 20,
|
||||
/obj/random/tool/alien = 20,
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien/omni = 20,
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien/omni = 20
|
||||
loot_list = list(/obj/item/clothing/suit/armor/alien = 30,
|
||||
/obj/item/clothing/suit/armor/alien/tank = 30,
|
||||
/obj/item/prop/alien/junk = 50,
|
||||
/obj/item/prop/alien/junk = 50,
|
||||
/obj/item/prop/alien/junk = 50,
|
||||
/obj/item/prop/alien/junk = 50,
|
||||
/obj/item/prop/alien/junk = 50,
|
||||
/obj/item/weapon/gun/energy/alien = 30,
|
||||
/obj/item/weapon/gun/energy/alien = 30,
|
||||
/obj/random/tool/alien = 30,
|
||||
/obj/random/tool/alien = 30,
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien = 30,
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien = 30
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/precusor/chrono/apply_melee_effects(atom/A)
|
||||
@@ -66,8 +67,9 @@
|
||||
launch_microsingularity(A)
|
||||
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/precusor/chrono/proc/electric_defense(atom/target)
|
||||
/mob/living/simple_mob/mechanical/hivebot/precusor/chrono/proc/launch_microsingularity(atom/target)
|
||||
set waitfor = FALSE
|
||||
visible_message(span("warning", "\The [src] drops a ticking time bomb!"))
|
||||
|
||||
var/obj/item/weapon/grenade/G = new grenade_type(get_turf(src))
|
||||
if(istype(G))
|
||||
@@ -77,36 +79,54 @@
|
||||
|
||||
set_AI_busy(FALSE)
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/precusor/chrono/proc/launch_microsingularity(atom/target)
|
||||
set waitfor = FALSE
|
||||
|
||||
// Telegraph our next move.
|
||||
Beam(target, icon_state = "sat_beam", time = 3.5 SECONDS, maxdistance = INFINITY)
|
||||
visible_message(span("warning", "\The [src] deploys a missile rack!"))
|
||||
playsound(src, 'sound/effects/turret/move1.wav', 50, 1)
|
||||
sleep(0.5 SECONDS)
|
||||
|
||||
for(var/i = 1 to 4)
|
||||
if(target) // Might get deleted in the meantime.
|
||||
var/turf/T = get_turf(target)
|
||||
if(T)
|
||||
visible_message(span("warning", "\The [src] fires a rocket into the air!"))
|
||||
playsound(src, 'sound/weapons/rpg.ogg', 70, 1)
|
||||
face_atom(T)
|
||||
var/obj/item/projectile/arc/explosive_rocket/rocket = new(loc)
|
||||
rocket.old_style_target(T, src)
|
||||
rocket.fire()
|
||||
sleep(1 SECOND)
|
||||
|
||||
visible_message(span("warning", "\The [src] retracts the missile rack."))
|
||||
playsound(src, 'sound/effects/turret/move2.wav', 50, 1)
|
||||
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/precusor/chrono/proc/launch_rockets(atom/target)
|
||||
set waitfor = FALSE
|
||||
visible_message(span("warning", "\The [src] creates weak looking hivebots!"))
|
||||
|
||||
var/obj/item/weapon/grenade/G = new grenade_type2(get_turf(src))
|
||||
if(istype(G))
|
||||
G.throw_at(G.throw_range, G.throw_speed, src)
|
||||
G.det_time = grenade_timer
|
||||
G.activate(src)
|
||||
|
||||
set_AI_busy(FALSE)
|
||||
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/precusor/chrono/proc/electric_defense(atom/target)
|
||||
var/turf/T = get_turf(target)
|
||||
visible_message(span("warning", "\The [src] fires an energetic sphere into the air!"))
|
||||
playsound(src, 'sound/weapons/Laser.ogg', 50, 1)
|
||||
face_atom(T)
|
||||
var/obj/item/projectile/arc/microsingulo/sphere = new(loc)
|
||||
sphere.old_style_target(T, src)
|
||||
sphere.fire()
|
||||
sphere.fire()
|
||||
|
||||
//Screw it scuffed way
|
||||
/obj/item/weapon/grenade/spawnboss
|
||||
desc = "It is set to detonate in 5 seconds. It will unleash an unspecified anomaly into the vicinity."
|
||||
name = "delivery grenade"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "delivery"
|
||||
item_state = "flashbang"
|
||||
origin_tech = list(TECH_MATERIAL = 3, TECH_MAGNET = 4)
|
||||
var/banglet = 0
|
||||
var/spawner_type = null // must be an object path
|
||||
var/deliveryamt = 1 // amount of type to deliver
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/detonate()
|
||||
|
||||
if(spawner_type && deliveryamt)
|
||||
// Make a quick flash
|
||||
var/turf/T = get_turf(src)
|
||||
playsound(src, 'sound/effects/phasein.ogg', 100, 1)
|
||||
for(var/i=1, i<=deliveryamt, i++)
|
||||
var/atom/movable/x = new spawner_type(T)
|
||||
if(prob(50))
|
||||
for(var/j = 1, j <= rand(1, 3), j++)
|
||||
step(x, pick(NORTH,SOUTH,EAST,WEST))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/grenade/spawnboss/hivebot
|
||||
spawner_type = /mob/living/simple_mob/mechanical/hivebot/swarm
|
||||
deliveryamt = 3
|
||||
+6
-2
@@ -6,14 +6,18 @@
|
||||
icon_state = "precursorhive"
|
||||
icon_living = "precursorhive"
|
||||
attacktext = list("prodded")
|
||||
maxHealth = 5 LASERS_TO_KILL // 150 health
|
||||
health = 5 LASERS_TO_KILL
|
||||
maxHealth = 3 LASERS_TO_KILL // 150 health
|
||||
health = 3 LASERS_TO_KILL
|
||||
movement_cooldown = 4
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 15
|
||||
|
||||
var/obj/item/shield_projector/shields = null
|
||||
|
||||
loot_list = list(/obj/item/prop/alien/junk = 20,
|
||||
/obj/item/prop/alien/junk = 20
|
||||
)
|
||||
|
||||
/mob/living/simple_mob/mechanical/hivebot/precusor/Initialize(mapload)
|
||||
shields = new /obj/item/shield_projector/rectangle/automatic/hivebot_drone(src)
|
||||
return ..()
|
||||
|
||||
+13
-7
@@ -1,20 +1,26 @@
|
||||
/mob/living/simple_mob/mechanical/mecha/combat/phazon
|
||||
projectiletype = /obj/item/projectile/bullet/magnetic/fuelrod
|
||||
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/combat/phazon/advanced
|
||||
name = "Advanced phazon"
|
||||
movement_cooldown = 1
|
||||
wreckage = /obj/structure/loot_pile/mecha/phazon
|
||||
color = "#ffffff"
|
||||
|
||||
health = 500
|
||||
maxHealth = 500
|
||||
evasion = 30
|
||||
evasion = 10
|
||||
|
||||
special_attack_min_range = 1
|
||||
special_attack_max_range = 9
|
||||
special_attack_cooldown = 15 SECONDS
|
||||
special_attack_cooldown = 30 SECONDS
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
|
||||
size_multiplier = 1.25
|
||||
shock_resist = 0.9
|
||||
shock_resist = 0.5
|
||||
ranged_attack_delay = 1 SECONDS
|
||||
projectilesound = 'sound/weapons/gauss_shoot.ogg'
|
||||
damage_fatigue_mult = 0
|
||||
|
||||
projectiletype = /obj/item/projectile/bullet/rifle/a545/ap
|
||||
|
||||
@@ -37,7 +43,7 @@
|
||||
playsound(src, 'sound/effects/turret/move1.wav', 50, 1)
|
||||
sleep(0.5 SECONDS)
|
||||
|
||||
for(var/i = 1 to 5)
|
||||
for(var/i = 1 to 2)
|
||||
if(target) // Might get deleted in the meantime.
|
||||
var/turf/T = get_turf(target)
|
||||
if(T)
|
||||
@@ -59,7 +65,7 @@
|
||||
|
||||
/obj/item/projectile/arc/explosive_rocket/big/on_impact(turf/T)
|
||||
new /obj/effect/explosion(T) // Weak explosions don't produce this on their own, apparently.
|
||||
explosion(T, 1, 2, 3, adminlog = FALSE)
|
||||
explosion(T, 1, 1, 1, adminlog = FALSE)
|
||||
|
||||
/mob/living/simple_mob/mechanical/mecha/combat/phazon/advanced/proc/launch_rockets(atom/target)
|
||||
set waitfor = FALSE
|
||||
@@ -70,7 +76,7 @@
|
||||
playsound(src, 'sound/effects/turret/move1.wav', 50, 1)
|
||||
sleep(0.5 SECONDS)
|
||||
|
||||
for(var/i = 1 to 3)
|
||||
for(var/i = 1 to 2)
|
||||
if(target) // Might get deleted in the meantime.
|
||||
var/turf/T = get_turf(target)
|
||||
if(T)
|
||||
@@ -125,4 +131,4 @@
|
||||
|
||||
/obj/item/projectile/arc/explosive_rocket/spread/on_impact(turf/T)
|
||||
new /obj/effect/explosion(T) // Weak explosions don't produce this on their own, apparently.
|
||||
explosion(T, 0, 0, 5, adminlog = FALSE)
|
||||
explosion(T, 0, 0, 2, adminlog = FALSE)
|
||||
|
||||
Reference in New Issue
Block a user