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:
Fluff
2023-06-03 00:04:06 -04:00
parent 515d0e49ba
commit 17f0d50d6c
5 changed files with 129 additions and 105 deletions

View File

@@ -33,6 +33,7 @@
projectile_dispersion = 8 projectile_dispersion = 8
projectile_accuracy = -20 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 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 can_be_drop_prey = FALSE //CHOMP Add
pass_flags = PASSTABLE //mostly for the melee mobs. pass_flags = PASSTABLE //mostly for the melee mobs.
@@ -57,7 +58,7 @@
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse/ranged ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse/ranged
// Grenade special attack vars // 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 var/grenade_timer = 50 //CHOMPEdit
special_attack_cooldown = 45 SECONDS special_attack_cooldown = 45 SECONDS
special_attack_min_range = 2 special_attack_min_range = 2
@@ -327,7 +328,7 @@
icon_state = "eclipse_shotwuff" icon_state = "eclipse_shotwuff"
icon_living = "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 ranged_attack_delay = 0.5 SECONDS
@@ -357,7 +358,9 @@
attack_armor_pen = 25 attack_armor_pen = 25
melee_damage_lower = 20 melee_damage_lower = 20
melee_damage_upper = 25 melee_damage_upper = 20
melee_attack_delay = 4
projectiletype = null projectiletype = null
ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse ai_holder_type = /datum/ai_holder/simple_mob/merc/eclipse
@@ -367,42 +370,6 @@
var/poison_type = "hyperzine" 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. //Boss mob time. Or somewhat bosses anyway.
///////////////////////////////////////////// /////////////////////////////////////////////
@@ -412,12 +379,11 @@
health = 150 health = 150
maxHealth = 150 maxHealth = 150
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax 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 movement_cooldown = -1
melee_damage_lower = 20 melee_damage_lower = 20
melee_damage_upper = 35 melee_damage_upper = 20
attack_armor_pen = 20 attack_armor_pen = 20
reload_max = 5
icon_state = "eclipse_hound" icon_state = "eclipse_hound"
icon_living = "eclipse_hound" icon_living = "eclipse_hound"
size_multiplier = 1.25 size_multiplier = 1.25
@@ -425,19 +391,20 @@
var/poison_per_bite = 4 var/poison_per_bite = 4
var/poison_type = "stoxin" var/poison_type = "stoxin"
melee_attack_delay = 4
/mob/living/simple_mob/humanoid/eclipse/lunar/wheel /mob/living/simple_mob/humanoid/eclipse/lunar/wheel
name = "Lunar Eclipse Armadillo" name = "Lunar Eclipse Armadillo"
health = 150 health = 150
maxHealth = 150 maxHealth = 150
melee_damage_lower = 15 melee_damage_lower = 10
melee_damage_upper = 25 melee_damage_upper = 10
attack_armor_pen = 50 attack_armor_pen = 50
reload_max = 1
icon_state = "eclipse_wheel" icon_state = "eclipse_wheel"
icon_living = "eclipse_wheel" icon_living = "eclipse_wheel"
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax 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 movement_cooldown = -0.5
var/cloaked_alpha = 60 // Lower = Harder to see. var/cloaked_alpha = 60 // Lower = Harder to see.
@@ -544,10 +511,10 @@
/mob/living/simple_mob/humanoid/eclipse/lunar/pummler /mob/living/simple_mob/humanoid/eclipse/lunar/pummler
name = "Lunar Eclipse Pummeler" 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 ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
melee_damage_lower = 10 melee_damage_lower = 10
melee_damage_upper = 30 melee_damage_upper = 10
attack_armor_pen = 30 attack_armor_pen = 30
movement_cooldown = 0 movement_cooldown = 0
icon_state = "eclipse_pummler" icon_state = "eclipse_pummler"
@@ -583,9 +550,4 @@
/mob/living/simple_mob/humanoid/eclipse/lunar/pummler/proc/inject_poison(mob/living/L, target_zone) /mob/living/simple_mob/humanoid/eclipse/lunar/pummler/proc/inject_poison(mob/living/L, target_zone)
if(prob(poison_chance)) if(prob(poison_chance))
to_chat(L, "<span class='warning'>You feel a small shock rushing through your veins.</span>") 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) L.reagents.add_reagent(poison_type, poison_per_bite)
/obj/item/projectile/bullet/shotgun/ion/eclipse
damage = 25
armor_penetration = 30

View File

@@ -18,11 +18,12 @@
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
var/grenade_type = /obj/item/weapon/grenade/shooter/energy/tesla var/grenade_type = /obj/item/weapon/grenade/shooter/energy/tesla
var/grenade_timer = 10 var/grenade_timer = 10
var/grenade_type2 = /obj/item/weapon/grenade/spawnboss/hivebot
size_multiplier = 1.75 size_multiplier = 1.75
shock_resist = 3 shock_resist = 3
water_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( armor_soak = list(
"melee" = 0, "melee" = 0,
@@ -34,19 +35,19 @@
"rad" = 0 "rad" = 0
) )
loot_list = list(/obj/item/clothing/suit/armor/alien = 20, loot_list = list(/obj/item/clothing/suit/armor/alien = 30,
/obj/item/clothing/suit/armor/alien/tank = 20, /obj/item/clothing/suit/armor/alien/tank = 30,
/obj/item/prop/alien/junk = 20, /obj/item/prop/alien/junk = 50,
/obj/item/prop/alien/junk = 20, /obj/item/prop/alien/junk = 50,
/obj/item/prop/alien/junk = 20, /obj/item/prop/alien/junk = 50,
/obj/item/prop/alien/junk = 20, /obj/item/prop/alien/junk = 50,
/obj/item/prop/alien/junk = 20, /obj/item/prop/alien/junk = 50,
/obj/item/weapon/gun/energy/alien = 20, /obj/item/weapon/gun/energy/alien = 30,
/obj/item/weapon/gun/energy/alien = 20, /obj/item/weapon/gun/energy/alien = 30,
/obj/random/tool/alien = 20, /obj/random/tool/alien = 30,
/obj/random/tool/alien = 20, /obj/random/tool/alien = 30,
/obj/item/weapon/cell/device/weapon/recharge/alien/omni = 20, /obj/item/weapon/cell/device/weapon/recharge/alien = 30,
/obj/item/weapon/cell/device/weapon/recharge/alien/omni = 20 /obj/item/weapon/cell/device/weapon/recharge/alien = 30
) )
/mob/living/simple_mob/mechanical/hivebot/precusor/chrono/apply_melee_effects(atom/A) /mob/living/simple_mob/mechanical/hivebot/precusor/chrono/apply_melee_effects(atom/A)
@@ -66,8 +67,9 @@
launch_microsingularity(A) 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 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)) var/obj/item/weapon/grenade/G = new grenade_type(get_turf(src))
if(istype(G)) if(istype(G))
@@ -77,36 +79,54 @@
set_AI_busy(FALSE) 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) /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) var/turf/T = get_turf(target)
visible_message(span("warning", "\The [src] fires an energetic sphere into the air!")) visible_message(span("warning", "\The [src] fires an energetic sphere into the air!"))
playsound(src, 'sound/weapons/Laser.ogg', 50, 1) playsound(src, 'sound/weapons/Laser.ogg', 50, 1)
face_atom(T) face_atom(T)
var/obj/item/projectile/arc/microsingulo/sphere = new(loc) var/obj/item/projectile/arc/microsingulo/sphere = new(loc)
sphere.old_style_target(T, src) 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

View File

@@ -6,14 +6,18 @@
icon_state = "precursorhive" icon_state = "precursorhive"
icon_living = "precursorhive" icon_living = "precursorhive"
attacktext = list("prodded") attacktext = list("prodded")
maxHealth = 5 LASERS_TO_KILL // 150 health maxHealth = 3 LASERS_TO_KILL // 150 health
health = 5 LASERS_TO_KILL health = 3 LASERS_TO_KILL
movement_cooldown = 4 movement_cooldown = 4
melee_damage_lower = 15 melee_damage_lower = 15
melee_damage_upper = 15 melee_damage_upper = 15
var/obj/item/shield_projector/shields = null 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) /mob/living/simple_mob/mechanical/hivebot/precusor/Initialize(mapload)
shields = new /obj/item/shield_projector/rectangle/automatic/hivebot_drone(src) shields = new /obj/item/shield_projector/rectangle/automatic/hivebot_drone(src)
return ..() return ..()

View File

@@ -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 /mob/living/simple_mob/mechanical/mecha/combat/phazon/advanced
name = "Advanced phazon" name = "Advanced phazon"
movement_cooldown = 1 movement_cooldown = 1
wreckage = /obj/structure/loot_pile/mecha/phazon wreckage = /obj/structure/loot_pile/mecha/phazon
color = "#ffffff"
health = 500 health = 500
maxHealth = 500 maxHealth = 500
evasion = 30 evasion = 10
special_attack_min_range = 1 special_attack_min_range = 1
special_attack_max_range = 9 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 ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
size_multiplier = 1.25 size_multiplier = 1.25
shock_resist = 0.9 shock_resist = 0.5
ranged_attack_delay = 1 SECONDS ranged_attack_delay = 1 SECONDS
projectilesound = 'sound/weapons/gauss_shoot.ogg' projectilesound = 'sound/weapons/gauss_shoot.ogg'
damage_fatigue_mult = 0
projectiletype = /obj/item/projectile/bullet/rifle/a545/ap projectiletype = /obj/item/projectile/bullet/rifle/a545/ap
@@ -37,7 +43,7 @@
playsound(src, 'sound/effects/turret/move1.wav', 50, 1) playsound(src, 'sound/effects/turret/move1.wav', 50, 1)
sleep(0.5 SECONDS) sleep(0.5 SECONDS)
for(var/i = 1 to 5) for(var/i = 1 to 2)
if(target) // Might get deleted in the meantime. if(target) // Might get deleted in the meantime.
var/turf/T = get_turf(target) var/turf/T = get_turf(target)
if(T) if(T)
@@ -59,7 +65,7 @@
/obj/item/projectile/arc/explosive_rocket/big/on_impact(turf/T) /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. 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) /mob/living/simple_mob/mechanical/mecha/combat/phazon/advanced/proc/launch_rockets(atom/target)
set waitfor = FALSE set waitfor = FALSE
@@ -70,7 +76,7 @@
playsound(src, 'sound/effects/turret/move1.wav', 50, 1) playsound(src, 'sound/effects/turret/move1.wav', 50, 1)
sleep(0.5 SECONDS) sleep(0.5 SECONDS)
for(var/i = 1 to 3) for(var/i = 1 to 2)
if(target) // Might get deleted in the meantime. if(target) // Might get deleted in the meantime.
var/turf/T = get_turf(target) var/turf/T = get_turf(target)
if(T) if(T)
@@ -125,4 +131,4 @@
/obj/item/projectile/arc/explosive_rocket/spread/on_impact(turf/T) /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. 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)

View File

@@ -75,4 +75,36 @@
hud_state = "plasma_rifle" hud_state = "plasma_rifle"
damage = 48 damage = 48
armor_penetration = 10 armor_penetration = 10
//Eclipse mob stuff
/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 = 20
ricochets = 1
ricochets_max = 8
ricochet_chance = 100
/obj/item/projectile/energy/electrode/eclipse
damage = 20
damage_type = BURN
color = "#38b9ff"
/obj/item/projectile/beam/sniper/eclipse
armor_penetration = 50
damage = 30
/obj/item/projectile/energy/declone/burn
damage = 10
armor_penetration = 10
nodamage = 0