159 lines
4.5 KiB
Lua
159 lines
4.5 KiB
Lua
local Item = require_ex('UI/Widgets/Item')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ItemAdventureReward = HL.Class('ItemAdventureReward', Item)
|
|
|
|
|
|
|
|
|
|
ItemAdventureReward._OnFirstTimeInit = HL.Override() << function(self)
|
|
|
|
end
|
|
|
|
|
|
ItemAdventureReward.m_rewardInfo = HL.Field(HL.Table)
|
|
|
|
|
|
|
|
|
|
ItemAdventureReward.InitItemAdventureReward = HL.Method(HL.Table) << function(self, rewardInfo)
|
|
self:_FirstTimeInit()
|
|
|
|
self.m_rewardInfo = rewardInfo
|
|
self.view.icon:SetAlpha(UIConst.ITEM_EXIST_TRANSPARENCY)
|
|
self.view.rewardedCover.gameObject:SetActiveIfNecessary(rewardInfo.gained)
|
|
self:_UpdateBaseItem()
|
|
self:_UpdateCornerMark()
|
|
end
|
|
|
|
|
|
|
|
ItemAdventureReward._UpdateBaseItem = HL.Method() << function(self)
|
|
local rewardInfo = self.m_rewardInfo
|
|
self.extraInfo = {}
|
|
|
|
if self.view.config.SHOW_ITEM_TIPS_ON_R3 then
|
|
self:AddHoverBinding("show_item_tips", function()
|
|
self:ShowTips()
|
|
end)
|
|
end
|
|
|
|
if self.id ~= rewardInfo.id then
|
|
self.id = rewardInfo.id
|
|
self:SetSelected(false)
|
|
end
|
|
if self.instId ~= rewardInfo.instId then
|
|
if rewardInfo.instId and rewardInfo.instId > 0 then
|
|
self.instId = rewardInfo.instId
|
|
else
|
|
self.instId = nil
|
|
end
|
|
self:SetSelected(false)
|
|
end
|
|
local data = Tables.itemTable:GetValue(rewardInfo.id)
|
|
|
|
self:_UpdateRewardIcon(data)
|
|
self:_UpdateRewardWeaponAddon(rewardInfo)
|
|
|
|
self.view.button.onClick:RemoveAllListeners()
|
|
self.view.button.onClick:AddListener(function()
|
|
local posInfo
|
|
if DeviceInfo.usingController then
|
|
posInfo = {
|
|
tipsPosType = UIConst.UI_TIPS_POS_TYPE.RightDown,
|
|
tipsPosTransform = self.transform,
|
|
isSideTips = true,
|
|
}
|
|
end
|
|
self:ShowTips(posInfo)
|
|
end)
|
|
self:SetExtraInfo(({ isSideTips = DeviceInfo.usingController }))
|
|
self.view.button.clickHintTextId = "virtual_mouse_hint_item_tips"
|
|
|
|
self.view.button.onHoverChange:RemoveAllListeners()
|
|
if self.view.config.SHOW_HOVER_TIP then
|
|
self.view.button.onHoverChange:AddListener(function(isHover)
|
|
if isHover and not self.m_isSelected then
|
|
Notify(MessageConst.SHOW_COMMON_HOVER_TIP, {
|
|
itemId = rewardInfo.id,
|
|
delay = self.view.config.HOVER_TIP_DELAY,
|
|
})
|
|
self.m_showingHover = true
|
|
else
|
|
Notify(MessageConst.HIDE_COMMON_HOVER_TIP)
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
ItemAdventureReward._UpdateCornerMark = HL.Method() << function(self)
|
|
local rewardInfo = self.m_rewardInfo
|
|
|
|
if rewardInfo.gained then
|
|
self.view.rewardCornerMarkState:SetState("NoMark")
|
|
else
|
|
if rewardInfo.isFirst then
|
|
self.view.rewardCornerMarkState:SetState("FirstMark")
|
|
elseif rewardInfo.isExtra then
|
|
self.view.rewardCornerMarkState:SetState("ChallengeMark")
|
|
else
|
|
self.view.rewardCornerMarkState:SetState("NoMark")
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
ItemAdventureReward._UpdateRewardIcon = HL.Method(HL.Any) << function(self, data)
|
|
self.view.icon:InitItemIcon(data.id, self.view.config.USE_BIG_ICON)
|
|
if self.view.compositeIconBG then
|
|
self.view.compositeIconBG.gameObject:SetActive(not self.view.icon.showRarity)
|
|
end
|
|
|
|
local showRarity = self.view.icon.showRarity and not self.view.config.FORCE_NO_RARITY
|
|
if showRarity then
|
|
local isMaxRarity = data.rarity == UIConst.ITEM_MAX_RARITY
|
|
self.view.simpleStateController:SetState(isMaxRarity and "6Star" or "Normal")
|
|
if self.view.rarityLight then
|
|
local rarityColor = UIUtils.getItemRarityColor(data.rarity)
|
|
self.view.rarityLine.color = rarityColor
|
|
if not isMaxRarity then
|
|
self.view.rarityLight.color = rarityColor
|
|
end
|
|
end
|
|
else
|
|
self.view.simpleStateController:SetState("NoRarity")
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
ItemAdventureReward._UpdateRewardWeaponAddon = HL.Method(HL.Any) << function(self, data)
|
|
local itemCfg = Tables.itemTable:GetValue(data.id)
|
|
local itemType = itemCfg.type
|
|
local isWeapon = itemType == GEnums.ItemType.Weapon
|
|
|
|
self.view.potentialStar.gameObject:SetActive(isWeapon)
|
|
if not isWeapon then
|
|
return
|
|
end
|
|
|
|
local weaponInstData = data.instId and CharInfoUtils.getWeaponByInstId(data.instId) or nil
|
|
self.view.potentialStar:InitWeaponPotentialStar(weaponInstData and weaponInstData.refineLv or 0)
|
|
end
|
|
|
|
HL.Commit(ItemAdventureReward)
|
|
return ItemAdventureReward
|
|
|