major rebalances
10s generator is too slow -- 10 seconds ago is an eternity in a shmup and a player who has stopped firing should recover much faster. The generator's max capacity is much lower and shield cost has been rebalanced to match. The Protron is much more expensive to fire, it was previously just easy mode. Shields now recover faster _once they start recovering_ (every second if energy is available) but getting hit causes a "penalty cooldown" that is much longer than the standard recovery interval. This behavior is taken from Halo and basically every modern FPS that came after it; it's unlike Tyrian, which had consistent shield recovery behavior. But I think Halo's rule plays much better.
This commit is contained in:
parent
cc3ed20f76
commit
965fc0d688
@ -413,13 +413,12 @@ ship_m = {
|
||||
shield = 0,
|
||||
maxshield = 0,
|
||||
shieldcost = 32767.9,
|
||||
shieldcooldown = 0x0.00a0,
|
||||
shieldcooldown = 0x0.003c,--1s
|
||||
shieldpenalty = 0x0.012c, --5s
|
||||
|
||||
-- default generator behavior:
|
||||
-- 10 seconds for a full charge
|
||||
max_power = 600,
|
||||
power = 600,
|
||||
generator = 1, -- power gen per frame
|
||||
max_power = 120,
|
||||
power = 120,
|
||||
generator = 2, -- power gen per frame
|
||||
|
||||
slip = true, -- most enemies slide
|
||||
|
||||
@ -538,7 +537,7 @@ end
|
||||
|
||||
function ship_m:hitsomething(dmg)
|
||||
if (dmg <= 0) return false
|
||||
self.shield_refresh_ready = lframe + self.shieldcooldown
|
||||
self.shield_refresh_ready = lframe + self.shieldpenalty
|
||||
if self.shield >= dmg then
|
||||
self.shield -= dmg
|
||||
self:ow(true)
|
||||
@ -772,7 +771,7 @@ mknew(protron)
|
||||
protron_gun = gun_base.new{
|
||||
icon = 25,
|
||||
enemy = false,
|
||||
power = 35,
|
||||
power = 60,
|
||||
cooldown = 0x0.000f, -- frames between shots
|
||||
ammo = nil,
|
||||
maxammo = nil,
|
||||
@ -876,8 +875,8 @@ player = ship_m.new{
|
||||
maxhp = 3, -- player only; other ships never heal
|
||||
shield = 2, -- regenerates, using power
|
||||
maxshield = 2,
|
||||
shieldcost = 300, -- power cost to refill shield
|
||||
generator = 1.5, -- 1 feels too slow
|
||||
shieldcost = 60, -- power cost to refill shield
|
||||
generator = 2,
|
||||
|
||||
-- gun
|
||||
main_gun = nil, -- assign at spawn time
|
||||
@ -1569,10 +1568,12 @@ shields - ship.shieldcost per
|
||||
point of shields. shieldcooldown
|
||||
is the interval between
|
||||
restoring shield points, which
|
||||
is reset when a ship takes
|
||||
damage (regardless of whether
|
||||
that damage is stopped by the
|
||||
shield or not).
|
||||
is reset to shieldpenalty when a
|
||||
ship takes damage (regardless of
|
||||
whether that damage is stopped
|
||||
by the shield or not).
|
||||
shieldpenalty is much worse than
|
||||
shieldcooldown (hALO shield).
|
||||
|
||||
therefore:
|
||||
* damaged ships spend power
|
||||
|
Loading…
Reference in New Issue
Block a user