Don't consume XP items when upgrade is at max level. Closes #2035.

This commit is contained in:
Florian Nücke 2016-09-19 19:59:57 +02:00
parent feb886b9f7
commit 4dccd26b04

View File

@ -24,6 +24,8 @@ import scala.collection.convert.WrapAsJava._
import scala.collection.convert.WrapAsScala._
class UpgradeExperience(val host: EnvironmentHost with internal.Agent) extends prefab.ManagedEnvironment with DeviceInfo {
final val MaxLevel = 30
override val node = api.Network.newNode(this, Visibility.Network).
withComponent("experience").
withConnector(30 * Settings.get.bufferPerLevel).
@ -50,7 +52,7 @@ class UpgradeExperience(val host: EnvironmentHost with internal.Agent) extends p
def xpForNextLevel = xpForLevel(level + 1)
def addExperience(value: Double) {
if (level < 30) {
if (level < MaxLevel) {
experience = experience + value
if (experience >= xpForNextLevel) {
updateXpInfo()
@ -76,6 +78,9 @@ class UpgradeExperience(val host: EnvironmentHost with internal.Agent) extends p
@Callback(doc = """function():boolean -- Tries to consume an enchanted item to add experience to the upgrade.""")
def consume(context: Context, args: Arguments): Array[AnyRef] = {
if (level >= MaxLevel) {
return result(Unit, "max level")
}
val stack = host.mainInventory.getStackInSlot(host.selectedSlot)
if (stack == null || stack.stackSize < 1) {
return result(Unit, "no item")