The True Hero rebalancing

This commit is contained in:
Ishaan Bhardwaj 2023-07-15 18:58:18 -04:00
parent a348280132
commit 699c2d4fe0

View File

@ -127,7 +127,7 @@ function TheTrueHero:advanceOneFrame(inputs, ruleset)
self.section_frames = 0 self.section_frames = 0
self.attack_number = self.attack_number + 1 self.attack_number = self.attack_number + 1
local prev_attack = self.current_attack local prev_attack = self.current_attack
for i = 1, 3 do for i = 1, 2 do
if self.attack_number > 20 then if self.attack_number > 20 then
self.current_attack = love.math.random(#self.attacks) self.current_attack = love.math.random(#self.attacks)
else else
@ -153,14 +153,16 @@ function TheTrueHero:advanceOneFrame(inputs, ruleset)
) * ) *
self.section_times[Mod1(self.attack_number, #self.section_times)] / 342) self.section_times[Mod1(self.attack_number, #self.section_times)] / 342)
elseif self.current_attack == 3 then elseif self.current_attack == 3 then
self.var = math.max(10 - love.math.random( self.var = math.floor(
math.floor(self.attack_number / 8), 120 * 0.5 ^ ((self.attack_number - 1) / #self.section_times)
math.floor(self.attack_number / 4) )
), 3)
end end
end end
self.frames = self.frames + 1 self.frames = self.frames + 1
self.section_frames = self.section_frames + 1 self.section_frames = self.section_frames + 1
if self.current_attack == 3 then
self.var = math.max(self.var - 1, 0)
end
if self.current_attack == 5 then if self.current_attack == 5 then
self.lock_on_soft_drop = false self.lock_on_soft_drop = false
self.lock_on_hard_drop = false self.lock_on_hard_drop = false
@ -197,12 +199,14 @@ end
function TheTrueHero:onPieceLock(piece, cleared_row_count) function TheTrueHero:onPieceLock(piece, cleared_row_count)
self.super:onPieceLock() self.super:onPieceLock()
if self.current_attack == 1 or self.current_attack == 3 then if cleared_row_count == 0 then
if self.var ~= math.floor(self.current_attack / 2) then self:advanceBottomRow()
end
if self.current_attack == 1 then
if self.var ~= 0 then
playSE("undyne", "ding") playSE("undyne", "ding")
end end
self.var = math.max(self.var - 1, 0) self.var = math.max(self.var - 1, 0)
self:advanceBottomRow(1)
elseif self.current_attack == 2 then elseif self.current_attack == 2 then
if cleared_row_count ~= 0 and self.var ~= 0 then if cleared_row_count ~= 0 and self.var ~= 0 then
playSE("undyne", "ding") playSE("undyne", "ding")
@ -211,13 +215,12 @@ function TheTrueHero:onPieceLock(piece, cleared_row_count)
end end
end end
function TheTrueHero:advanceBottomRow(dx) function TheTrueHero:advanceBottomRow()
if self.var <= 0 and self.current_attack == 3 then if self.var <= 0 and self.current_attack == 3 then
self.grid:copyBottomRow() self.grid:copyBottomRow()
self.var = math.max(10 - love.math.random( self.var = math.floor(
math.floor(self.attack_number / 8), 120 * 0.5 ^ ((self.attack_number - 1) / #self.section_times)
math.floor(self.attack_number / 4) )
), 3)
playSE("undyne", "pike") playSE("undyne", "pike")
end end
end end