38 lines
605 B
Crystal
38 lines
605 B
Crystal
class Game::Deposit
|
|
@cap : Capacity = 0
|
|
@cur : Capacity = 0
|
|
|
|
def initialize(@type : Resource::Type, @cap : Capacity)
|
|
@cur = @cap
|
|
end
|
|
|
|
def initialize(@type : Resource::Type, @cap : Capacity, @cur : Capacity)
|
|
end
|
|
|
|
getter type
|
|
getter cap
|
|
getter cur
|
|
|
|
def inc(value : Capacity) : Capacity
|
|
if @cur + value <= @cap
|
|
@cur += value
|
|
value
|
|
else
|
|
res = @cap - @cur
|
|
@cur = @cap
|
|
res
|
|
end
|
|
end
|
|
|
|
def dec(value : Capacity) : Capacity
|
|
if @cur >= value
|
|
@cur -= value
|
|
value
|
|
else
|
|
res = @cur
|
|
@cur = 0
|
|
res
|
|
end
|
|
end
|
|
end
|