mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-17 01:53:35 +01:00
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:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user