Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  1. require "/scripts/util.lua"
  2. require "/scripts/interp.lua"
  3.  
  4. function init()
  5. self.itemList = "itemScrollArea.itemList"
  6.  
  7. self.upgradeLevel = config.getParameter("upgradeLevel")
  8.  
  9. self.upgradeableWeaponItems = {}
  10. self.selectedItem = nil
  11. populateItemList()
  12. end
  13.  
  14. function update(dt)
  15. populateItemList()
  16. end
  17.  
  18. function upgradeCost(itemConfig)
  19. if itemConfig == nil then return 0 end
  20.  
  21. local prevValue = root.evalFunction("weaponEssenceValue", itemConfig.parameters.level or itemConfig.config.level or 1)
  22. local newValue = root.evalFunction("weaponEssenceValue", self.upgradeLevel) * ((itemConfig.parameters.level or itemConfig.config.level or 1) /5)
  23.  
  24. return math.floor(newValue - prevValue)
  25. end
  26.  
  27.  
  28. function populateItemList(forceRepop)
  29. local upgradeableWeaponItems = player.itemsWithTag("upgradeableWeapon")
  30. for i = 1, #upgradeableWeaponItems do
  31. upgradeableWeaponItems[i].count = 1
  32. end
  33.  
  34. widget.setVisible("emptyLabel", #upgradeableWeaponItems == 0)
  35.  
  36. local playerEssence = player.currency("essence")
  37.  
  38. if forceRepop or not compare(upgradeableWeaponItems, self.upgradeableWeaponItems) then
  39. self.upgradeableWeaponItems = upgradeableWeaponItems
  40. widget.clearListItems(self.itemList)
  41. widget.setButtonEnabled("btnUpgrade", false)
  42.  
  43. for i, item in pairs(self.upgradeableWeaponItems) do
  44. local config = root.itemConfig(item)
  45.  
  46. if (config.parameters.level or config.config.level or 1) < self.upgradeLevel then
  47. local listItem = string.format("%s.%s", self.itemList, widget.addListItem(self.itemList))
  48. local name = config.config.shortdescription
  49.  
  50. widget.setText(string.format("%s.itemName", listItem), name)
  51. widget.setItemSlotItem(string.format("%s.itemIcon", listItem), item)
  52.  
  53. local price = upgradeCost(config)
  54. widget.setData(listItem,
  55. {
  56. index = i,
  57. price = price
  58. })
  59.  
  60. widget.setVisible(string.format("%s.unavailableoverlay", listItem), price > playerEssence)
  61. end
  62. end
  63.  
  64. self.selectedItem = nil
  65. showWeapon(nil)
  66. end
  67. end
  68.  
  69. function showWeapon(item, price)
  70. local playerEssence = player.currency("essence")
  71. local enableButton = false
  72.  
  73. if item then
  74. enableButton = playerEssence >= price
  75. local directive = enableButton and "^green;" or "^red;"
  76. widget.setText("essenceCost", string.format("%s%s / %s", directive, playerEssence, price))
  77. else
  78. widget.setText("essenceCost", string.format("%s / --", playerEssence))
  79. end
  80.  
  81. widget.setButtonEnabled("btnUpgrade", enableButton)
  82. end
  83.  
  84. function itemSelected()
  85. local listItem = widget.getListSelected(self.itemList)
  86. self.selectedItem = listItem
  87.  
  88. if listItem then
  89. local itemData = widget.getData(string.format("%s.%s", self.itemList, listItem))
  90. local weaponItem = self.upgradeableWeaponItems[itemData.index]
  91. showWeapon(weaponItem, itemData.price)
  92. end
  93. end
  94.  
  95. function isArmor()
  96. if (upgradedItem.parameters.category == "legarmor") or (upgradedItem.parameters.category == "chestarmor") or (upgradedItem.parameters.category == "headarmor") then
  97. isArmorSet = 1
  98. return isArmorSet
  99. end
  100. end
  101.  
  102. function doUpgrade()
  103. if self.selectedItem then
  104. local selectedData = widget.getData(string.format("%s.%s", self.itemList, self.selectedItem))
  105. local upgradeItem = self.upgradeableWeaponItems[selectedData.index]
  106.  
  107. if upgradeItem then
  108. local consumedItem = player.consumeItem(upgradeItem, false, true)
  109. if consumedItem then
  110. local consumedCurrency = player.consumeCurrency("essence", selectedData.price)
  111. local upgradedItem = copy(consumedItem)
  112. if consumedCurrency then
  113. local itemConfig = root.itemConfig(upgradedItem)
  114. upgradedItem.parameters.level = (itemConfig.parameters.level or itemConfig.config.level or 1) + 1
  115. upgradedItem.parameters.baseDps = (itemConfig.parameters.baseDps or itemConfig.config.baseDps or 1) + 10
  116. upgradedItem.parameters.critChance = (itemConfig.parameters.critChance or itemConfig.config.critChance or 1) + 2
  117. upgradedItem.parameters.critBonus = (itemConfig.parameters.critBonus or itemConfig.config.critBonus or 1) + 2
  118. if upgradedItem.parameters.level > 10 then
  119. upgradedItem.parameters.level = 10
  120. end
  121. if (itemConfig.config.upgradeParameters) and (upgradedItem.parameters.level >=5) then
  122. upgradedItem.parameters = util.mergeTable(upgradedItem.parameters, itemConfig.config.upgradeParameters)
  123. end
  124. end
  125. player.giveItem(upgradedItem)
  126. end
  127. end
  128. populateItemList(true)
  129. end
  130. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement