2026-05-24 12:44 UTC
```
// somewhere in player.gleam
import ranged
let health = ranged.new(50, 0, 50)
let mana = ranged.new(20, 0, 20)
```
I feel like this would be helpful?
2 of 2
Replies (1)
-
@pranabekka@mastodon.social 2026-05-25 07:55
That'd be a class in most (OOP) languages class Ranged { value: Int min: Int max: Int fn init(min: Int, value: Int, max: Int) { self.min = min self.max = max self.value = clamp(min, value, max) } fn set(new: Int) { self.value = clamp(self.min, new, self.max) } } let health = new Ranged(0, 100, 100) health.set(health - damage) // damage is 120 from some far away code // Ranged doesn't let it become -20