selecting and consuming item in inventory

This commit is contained in:
Song Minjae
2017-04-11 19:21:32 +09:00
parent bb797a0910
commit d20190b2bd
15 changed files with 223 additions and 138 deletions

View File

@@ -1,5 +1,6 @@
package net.torvald.terrarum.gameactors
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameitem.InventoryItem
import java.util.*
@@ -10,9 +11,38 @@ interface Pocketed {
var inventory: ActorInventory
/**
* List of all equipped items (tools, armours, rings, necklaces, etc.)
*/
val itemEquipped: Array<InventoryItem?>
fun unequipItem(item: InventoryItem) {
if (item.equipPosition == InventoryItem.EquipPosition.NULL)
throw Error("Unequipping the item that cannot be equipped")
if (!inventory.hasItem(item))
throw Error("Unequipping the item that does not exist in inventory")
inventory.itemEquipped[item.equipPosition] = null
item.effectOnUnequip(Terrarum.appgc, Terrarum.UPDATE_DELTA)
}
fun equipItem(item: InventoryItem) {
if (item.equipPosition >= 0) {
inventory.itemEquipped[item.equipPosition] = item
item.effectWhenEquipped(Terrarum.appgc, Terrarum.UPDATE_DELTA)
}
}
fun isEquipped(item: InventoryItem): Boolean {
return inventory.itemEquipped[item.equipPosition] == item
}
fun consumePrimary(item: InventoryItem) {
if (item.primaryUse(Terrarum.appgc, Terrarum.UPDATE_DELTA))
inventory.consumeItem(item) // consume on successful
}
fun consumeSecondary(item: InventoryItem) {
if (item.secondaryUse(Terrarum.appgc, Terrarum.UPDATE_DELTA))
inventory.consumeItem(item) // consume on successful
}
}