diff --git a/src/net/torvald/terrarum/modulebasegame/SavegameMigrator.kt b/src/net/torvald/terrarum/modulebasegame/SavegameMigrator.kt index eddf35429..572456fe0 100644 --- a/src/net/torvald/terrarum/modulebasegame/SavegameMigrator.kt +++ b/src/net/torvald/terrarum/modulebasegame/SavegameMigrator.kt @@ -163,7 +163,7 @@ internal object SavegameMigrator { } - @AppliedVersion("0.3.99999") + @AppliedVersion("0.4.0") fun updatePlayerEncumbrance(actor: Actor) { if (actor is IngamePlayer && actor.actorValue.getAsInt("encumbrance") == 1000) { actor.actorValue.set("encumbrance", 50000) diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt index 2209d3551..51426cc86 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt @@ -25,6 +25,18 @@ class ActorInventory() : FixtureInventory() { this.capacityMode = capacityMode } + override var maxCapacity: Long = 0 + get() = when (capacityMode) { + CAPACITY_MODE_COUNT -> field + CAPACITY_MODE_WEIGHT -> actor.actorValue.getAsInt(AVKey.ENCUMBRANCE)?.toLong() ?: field + CAPACITY_MODE_NO_ENCUMBER -> 0x7FFFFFFFFFFFFFFFL + else -> throw IllegalArgumentException() + } + set(value) { + if (capacityMode == CAPACITY_MODE_COUNT) + field = value + } + /** * List of all equipped items (tools, armours, rings, necklaces, etc.) * diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureInventory.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureInventory.kt index efd3cfc7c..4a790cd48 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureInventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureInventory.kt @@ -18,8 +18,8 @@ import java.math.BigInteger open class FixtureInventory() { - var maxCapacity = 100L - var capacityMode = CAPACITY_MODE_COUNT + open var maxCapacity = 100L + open var capacityMode = CAPACITY_MODE_COUNT constructor(maxCapacity: Long, capacityMode: Int) : this() { this.maxCapacity = maxCapacity