move meter to system (temporary)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -2,8 +2,8 @@ meta/meta.header.lua
|
|||||||
init/init.module.lua
|
init/init.module.lua
|
||||||
init/init.config.lua
|
init/init.config.lua
|
||||||
init/init.minigame.lua
|
init/init.minigame.lua
|
||||||
init/init.meter.lua
|
|
||||||
init/init.context.lua
|
init/init.context.lua
|
||||||
|
system/system.meter.lua
|
||||||
system/system.util.lua
|
system/system.util.lua
|
||||||
system/system.print.lua
|
system/system.print.lua
|
||||||
system/system.input.lua
|
system/system.input.lua
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ Screen.register({
|
|||||||
|
|
||||||
local m = Context.meters
|
local m = Context.meters
|
||||||
local max_val = Meter.get_max()
|
local max_val = Meter.get_max()
|
||||||
local decay_pct = Timer.get_decay_percentage()
|
local decay_pct = Meter.get_decay_percentage()
|
||||||
local decay_text = string.format("-%d%%", decay_pct)
|
local decay_text = string.format("-%d%%", decay_pct)
|
||||||
local combo_mult = Meter.get_combo_multiplier()
|
local combo_mult = Meter.get_combo_multiplier()
|
||||||
local combo_pct = math.floor((combo_mult - 1) * 100)
|
local combo_pct = math.floor((combo_mult - 1) * 100)
|
||||||
|
|||||||
@@ -9,3 +9,10 @@ end
|
|||||||
function Day.register_handler(handler)
|
function Day.register_handler(handler)
|
||||||
table.insert(_day_increase_handlers, handler)
|
table.insert(_day_increase_handlers, handler)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Day.register_handler(function()
|
||||||
|
local m = Context.meters
|
||||||
|
m.ism = math.max(0, m.ism - METER_DECAY_PER_DAY)
|
||||||
|
m.wpm = math.max(0, m.wpm - METER_DECAY_PER_DAY)
|
||||||
|
m.bm = math.max(0, m.bm - METER_DECAY_PER_DAY)
|
||||||
|
end)
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
local METER_MAX = 1000
|
local METER_MAX = 1000
|
||||||
local METER_DEFAULT = 500
|
local METER_DEFAULT = 500
|
||||||
local METER_GAIN_PER_CHORE = 100
|
local METER_GAIN_PER_CHORE = 100
|
||||||
|
local METER_DECAY_PER_DAY = 20
|
||||||
local COMBO_BASE_BONUS = 0.02
|
local COMBO_BASE_BONUS = 0.02
|
||||||
local COMBO_MAX_BONUS = 0.16
|
local COMBO_MAX_BONUS = 0.16
|
||||||
local COMBO_TIMEOUT_FRAMES = 600
|
local COMBO_TIMEOUT_FRAMES = 600
|
||||||
@@ -52,6 +53,20 @@ function Meter.get_max()
|
|||||||
return METER_MAX
|
return METER_MAX
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Sets the decay amount applied to all meters per day.
|
||||||
|
--- @within Meter
|
||||||
|
--- @param amount number Amount to subtract from each meter.
|
||||||
|
function Meter.set_decay(amount)
|
||||||
|
METER_DECAY_PER_DAY = amount
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Gets the meter decay as a percentage of the max meter value.
|
||||||
|
--- @within Meter
|
||||||
|
--- @return number The decay percentage per day.
|
||||||
|
function Meter.get_decay_percentage()
|
||||||
|
return math.floor(METER_DECAY_PER_DAY / METER_MAX * 100)
|
||||||
|
end
|
||||||
|
|
||||||
--- Gets combo multiplier.
|
--- Gets combo multiplier.
|
||||||
--- @within Meter
|
--- @within Meter
|
||||||
--- @return number The current combo multiplier.
|
--- @return number The current combo multiplier.
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
--- @section Timer
|
--- @section Timer
|
||||||
|
|
||||||
local timer_duration = 1800
|
local timer_duration = 1800
|
||||||
local timer_decay_per_revolution = 20
|
|
||||||
|
|
||||||
--- Gets initial timer values.
|
--- Gets initial timer values.
|
||||||
--- @within Timer
|
--- @within Timer
|
||||||
@@ -21,25 +20,10 @@ function Timer.set_duration(frames)
|
|||||||
timer_duration = frames
|
timer_duration = frames
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Sets the decay amount applied to all meters per revolution.
|
|
||||||
--- @within Timer
|
|
||||||
--- @param amount number Amount to subtract from each meter.
|
|
||||||
function Timer.set_decay(amount)
|
|
||||||
timer_decay_per_revolution = amount
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Gets the timer decay as a percentage of the max meter value.
|
|
||||||
--- @within Timer
|
|
||||||
--- @return number The decay percentage per revolution.
|
|
||||||
function Timer.get_decay_percentage()
|
|
||||||
return math.floor(timer_decay_per_revolution / Meter.get_max() * 100)
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Updates the timer and handles revolution events.
|
--- Updates the timer and handles revolution events.
|
||||||
--- @within Timer
|
--- @within Timer
|
||||||
function Timer.update()
|
function Timer.update()
|
||||||
if not Context or not Context.game_in_progress or not Context.meters or not Context.timer then return end
|
if not Context or not Context.game_in_progress or not Context.meters or not Context.timer then return end
|
||||||
local m = Context.meters
|
|
||||||
local t = Context.timer
|
local t = Context.timer
|
||||||
local in_minigame = string.find(Window.get_current_id(), "^minigame_") ~= nil
|
local in_minigame = string.find(Window.get_current_id(), "^minigame_") ~= nil
|
||||||
|
|
||||||
@@ -48,9 +32,6 @@ function Timer.update()
|
|||||||
if t.progress >= 1 then
|
if t.progress >= 1 then
|
||||||
Day.increase()
|
Day.increase()
|
||||||
t.progress = t.progress - 1
|
t.progress = t.progress - 1
|
||||||
m.ism = math.max(0, m.ism - timer_decay_per_revolution)
|
|
||||||
m.wpm = math.max(0, m.wpm - timer_decay_per_revolution)
|
|
||||||
m.bm = math.max(0, m.bm - timer_decay_per_revolution)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user