Vetus balance tweaks, also with a grav anomaly tweak (#19799)

* Anomaly and some vetus balance tweaks

* whoops

* Update code/game/objects/effects/anomalies.dm

Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com>

* Update code/game/objects/effects/anomalies.dm

Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>

* early return

Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
This commit is contained in:
Qwertytoforty
2022-12-04 20:16:01 -05:00
committed by GitHub
parent 5196109a2b
commit ff737eff7e
3 changed files with 36 additions and 9 deletions
+21 -3
View File
@@ -98,8 +98,19 @@
icon_state = "shield2"
density = FALSE
var/boing = FALSE
var/knockdown = FALSE
aSignal = /obj/item/assembly/signaler/anomaly/grav
/obj/effect/anomaly/grav/Initialize(mapload, new_lifespan, _drops_core = TRUE, event_spawned = TRUE)
. = ..()
if(!event_spawned) //So an anomaly in the hallway is assured to have some risk to it, but not make sm / vetus too much pain
return
for(var/I in 1 to 3)
if(prob(75))
new /obj/item/stack/rods(loc)
if(prob(75))
new /obj/item/shard(loc)
/obj/effect/anomaly/grav/anomalyEffect()
..()
boing = TRUE
@@ -112,7 +123,7 @@
if(!M.mob_negates_gravity())
step_towards(M,src)
for(var/obj/O in range(0, src))
if(!O.anchored && O.loc != src) // so it cannot throw the anomaly core
if(!O.anchored && O.loc != src && O.move_resist < MOVE_FORCE_OVERPOWERING) // so it cannot throw the anomaly core or super big things
var/mob/living/target = locate() in view(4, src)
if(target && !target.stat)
O.throw_at(target, 5, 10, dodgeable = FALSE)
@@ -129,7 +140,10 @@
/obj/effect/anomaly/grav/proc/gravShock(mob/living/A)
if(boing && isliving(A) && !A.stat)
A.Weaken(4 SECONDS)
if(!knockdown)
A.Weaken(4 SECONDS)
else
A.KnockDown(4 SECONDS) //You know, maybe hard stuns in a megafauna fight are a bad idea.
var/atom/target = get_edge_target_turf(A, get_dir(src, get_step_away(A, src)))
A.throw_at(target, 5, 1)
boing = FALSE
@@ -147,6 +161,7 @@
var/zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE
var/zap_range = 5
var/power = 5000
var/knockdown = FALSE
/obj/effect/anomaly/flux/Initialize(mapload, new_lifespan, drops_core = TRUE, _explosive = TRUE)
. = ..()
@@ -175,7 +190,10 @@
if(canshock && istype(M))
canshock = FALSE //Just so you don't instakill yourself if you slam into the anomaly five times in a second.
M.electrocute_act(shockdamage, name, flags = SHOCK_NOGLOVES)
M.Weaken(explosive ? 6 SECONDS : 3 SECONDS) //Back to being deadly if you touch it, rather than just being able to crawl out of it. Non explosive ones less deadly, since you can't loot them / vetus
if(!knockdown)
M.Weaken(explosive ? 6 SECONDS : 3 SECONDS) //Back to being deadly if you touch it, rather than just being able to crawl out of it. Non explosive ones less deadly, since you can't loot them
else
M.KnockDown(3 SECONDS)
/obj/effect/anomaly/flux/detonate()
if(explosive)
@@ -363,13 +363,15 @@ Difficulty: Hard
var/obj/effect/anomaly/bluespace/A = new(spot, 150, FALSE)
A.mass_teleporting = FALSE
if(GRAV)
new /obj/effect/anomaly/grav(spot, 150, FALSE)
var/obj/effect/anomaly/grav/A = new(spot, 150, FALSE, FALSE)
A.knockdown = TRUE
if(PYRO)
var/obj/effect/anomaly/pyro/A = new(spot, 150, FALSE)
A.produces_slime = FALSE
if(FLUX)
var/obj/effect/anomaly/flux/A = new(spot, 150, FALSE)
A.explosive = FALSE
A.knockdown = TRUE
if(VORTEX)
new /obj/effect/anomaly/bhole(spot, 150, FALSE)
anomalies++
@@ -516,6 +518,9 @@ Difficulty: Hard
beam.forceMove(get_turf(src))
return ..()
/mob/living/simple_animal/hostile/megafauna/ancient_robot/mob_negates_gravity() //No more being thrown around like a spastic child by grav anomalies
return TRUE
/mob/living/simple_animal/hostile/ancient_robot_leg
name = "leg"
desc = "Legs with a mounted turret, for shooting and crushing small miners like you."
@@ -526,6 +531,7 @@ Difficulty: Hard
faction = list("mining", "boss") // No attacking your leg
weather_immunities = list("lava","ash")
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
flying = TRUE
check_friendly_fire = 1
ranged = TRUE
@@ -548,9 +554,9 @@ Difficulty: Hard
stat_attack = DEAD
var/range = 3
var/mob/living/simple_animal/hostile/megafauna/ancient_robot/core = null
var/fake_max_hp = 400
var/fake_hp = 400
var/fake_hp_regen = 10
var/fake_max_hp = 300
var/fake_hp = 300
var/fake_hp_regen = 2
var/transfer_rate = 0.75
var/who_am_i = null
var/datum/beam/leg_part
@@ -608,7 +614,7 @@ Difficulty: Hard
if(regen)
fake_hp = min(fake_hp + fake_hp_regen, fake_max_hp)
transfer_rate = 0.75 * (fake_hp/fake_max_hp)
if(fake_hp >= 300 && !ranged)
if(fake_hp >= 250 && !ranged)
ranged = TRUE
visible_message("<span class='danger'>[src]'s turret pops out of it!</span>")
if(get_dist(get_turf(core),get_turf(src)) <= range)
@@ -665,6 +671,9 @@ Difficulty: Hard
/mob/living/simple_animal/hostile/ancient_robot_leg/Moved(atom/OldLoc, Dir, Forced = FALSE)
playsound(src, 'sound/effects/meteorimpact.ogg', 60, TRUE, 2, TRUE) //turned way down from bubblegum levels due to 4 legs
/mob/living/simple_animal/hostile/ancient_robot_leg/mob_negates_gravity()
return TRUE
/obj/item/projectile/ancient_robot_bullet
damage = 8
damage_type = BRUTE
@@ -886,7 +886,7 @@
var/obj/effect/anomaly/flux/A = new(L, 300, FALSE)
A.explosive = FALSE
if(GRAVITATIONAL_ANOMALY)
new /obj/effect/anomaly/grav(L, 250, FALSE)
new /obj/effect/anomaly/grav(L, 250, FALSE, FALSE)
if(PYRO_ANOMALY)
new /obj/effect/anomaly/pyro(L, 200, FALSE)