---@class KLMapMonsterPointItem:UIKmlLuaPanelBase
---@field view KLMapMonsterPointItemView
local KLMapMonsterPointItem = class(UIKmlLuaPanelBase)
local this = KLMapMonsterPointItem
---创建时调用一次
function this:Init()
end
---创建或者刷新界面数据时调用
function this:Refresh()
end
function this:SetActiveUI(val)
if self.view.root.kmlControl:GetSource()==nil then
return
end
GUI:SetActive(self.view.root, val)
end
function this:setScale(size)
--[[ if self.view.root.kmlControl:GetSource()==nil then
return
end]]
GUI:setScale(self.view.root, size)
end
function this:SetMonsterData(id,x,y)
self.mosnterId = id
self.x = x
self.y = y
end
function this:SetPanelXY(x, y)
--[[ if self.view.root.kmlControl:GetSource()==nil then
return
end]]
GUI:setPosition(self.view.root, x, y)
end
function this:SetPanelRotation(rotation)
--[[ if self.view.root.kmlControl:GetSource()==nil then
return
end]]
GUI:setRotation(self.view.root, rotation)
end
function this:SetNormalDead()
if self.data.type ~= MonsterType.NormalMonster then
GUI:setGrey(self.view.Icon, true)
GUI:Text_setString(self.view.Name, string.format("lv.%s%s", "#706c6c",self.data.level , self.data.name))
else
GUI:setGrey(self.view.Icon, false)
GUI:setVisible(self.view.Icon,false)
end
end
function this:SetDead()
GUI:Image_loadTexture(self.view.Icon, self.iconName, "Atlas/UIMapPanel.spriteatlas")
GUI:Text_setString(self.view.Name, string.format("%s", "#706c6c", self.txtName))
if self.data.headPicture then
SL:ScheduleOnce(self.data.headPicture, function()
GUI:SetActive(self.view.Icon, true)
GUI:Image_setGrey(self.view.Icon, true)
GUI:SetImageNativeSize(self.view.Icon)
end)
else
GUI:SetActive(self.view.Icon, true)
GUI:Image_setGrey(self.view.Icon, true)
GUI:SetImageNativeSize(self.view.Icon)
end
end
function this:SetLive()
GUI:SetActive(self.view.Icon, true)
GUI:Image_setGrey(self.view.Icon, false)
GUI:Image_loadTexture(self.view.Icon, self.iconName, "Atlas/UIMapPanel.spriteatlas")
self:SetNormalTextColor()
GUI:SetImageNativeSize(self.view.Icon)
end
-- 初始化或者刷新界面时调用(如果不需要刷新整个模板,另外写函数调用(推荐方式))
function this:ShowBigMonsterIcon(v, isSpecial)
GUI:SetActive(self.view.root, true)
self.data = SL:GetConfig("cfg_monster",v.configId)
self.iconName = self.data.efficiencyLvIcon
if self.data.monsterShowIcon == 1 or isSpecial then
GUI:SetActive(self.view.Icon, true)
GUI:Image_loadTexture(self.view.Icon, self.iconName, "Atlas/UIMapPanel.spriteatlas")
else
GUI:SetActive(self.view.Icon, false)
end
GUI:SetImageNativeSize(self.view.Icon)
GUI:SetActive(self.view.Lv, false)
self.txtName = self:GetMonsterName(self.data,isSpecial)
GUI:Text_setString(self.view.Name, self.txtName)
self:SetNormalTextColor()
end
---@param monster cfg_monster_column
function this:GetMonsterName(monster,isSpecial)
local txt = ""
if monster.monsterShowName == 1 or isSpecial then
GUI:SetActive(self.view.Name, true)
txt = self.data.name
end
if monster.monsterShowLv == 1 or isSpecial then
txt = "lv." .. self.data.level .. self.data.name
else
GUI:SetActive(self.view.Lv, false)
end
return txt
end
---显示小怪图标
---@param monster cfg_monster_column
function this:ShowNormalMonsterIcon(monster)
GUI:Text_setString(self.view.Name, self:GetMonsterName(monster))
GUI:setGrey(self.view.Icon, false)
GUI:SetActive(self.view.root, true)
GUI:SetActive(self.view.Icon, true)
GUI:SetActive(self.view.Lv, false)
if monster then
---@type cfg_monster_column
local monsterTbl = monster.data.monsterTbl
self.data = monsterTbl
if monsterTbl and monsterTbl.type and monsterTbl.level and monsterTbl.type ~= MonsterType.NormalMonster then
if monsterTbl.efficiencyLvIcon then
GUI:Image_loadTexture(self.view.Icon, monsterTbl.efficiencyLvIcon, "Atlas/UIMapPanel.spriteatlas")
end
if monsterTbl.name then
self.txtName = "lv." .. monsterTbl.level .. monsterTbl.name
self:SetNormalTextColor()
else
GUI:Text_setString(self.view.Name, "")
end
else
GUI:Image_loadTexture(self.view.Icon, "img_minimap__shuaguaidian", "Atlas/UIMapPanel.spriteatlas")
GUI:Text_setString(self.view.Name, "")
end
end
GUI:SetImageNativeSize(self.view.Icon)
end
function this:SetNormalTextColor()
if self.data and self.data.txtColor then
if SL:GetConfig("cfg_color", self.data.txtColor) then
local strColor = SL:GetConfig("cfg_color", self.data.txtColor).color
GUI:Text_setString(self.view.Name, string.format("%s", strColor, self.txtName))
end
end
end
---注册UI事件和服务器消息
function this:RegistEvents()
end
function this:Close()
end
return this