216 lines
5.5 KiB
Plaintext
216 lines
5.5 KiB
Plaintext
baseCell = autoImport("BaseCell");
|
|
NpcMenuBtnCell = class("NpcMenuBtnCell",baseCell);
|
|
|
|
-- 新增新手引導
|
|
NpcMenuBtnCell.GuideType = {
|
|
VarietyShop = 10,
|
|
HeadShop = 18,
|
|
PicMake = 21,
|
|
AdventureSkill = 37,
|
|
}
|
|
|
|
NpcMenuBtnCell.Style = {
|
|
Primary = 1,
|
|
Second = 2,
|
|
Normal = 3,
|
|
Grey = 4,
|
|
}
|
|
|
|
function NpcMenuBtnCell:Init()
|
|
self.bg = self:FindComponent("Bg", UIMultiSprite);
|
|
self.icon = self:FindComponent("Icon", UIMultiSprite);
|
|
self.label = self:FindComponent("Label", UILabel);
|
|
|
|
self.multiplySymbol = self:FindGO("MultiplySymbol");
|
|
self.multiplySymbol_label = self:FindComponent("Label", UILabel, self.multiplySymbol.gameObject);
|
|
|
|
self:AddCellClickEvent();
|
|
|
|
self:SetEvent(self.gameObject, function ()
|
|
if(self.style ~= NpcMenuBtnCell.Style.Grey)then
|
|
self:PassEvent(MouseEvent.MouseClick, self);
|
|
end
|
|
end);
|
|
end
|
|
|
|
-- type name staticData
|
|
function NpcMenuBtnCell:SetData(data)
|
|
self:AddOrRemoveGuideId(self.gameObject)
|
|
|
|
self.data = data;
|
|
local menuType, name = data.menuType, data.name;
|
|
self.label.text = tostring( name );
|
|
|
|
local style = NpcMenuBtnCell.Style.Normal;
|
|
if(menuType == Dialog_MenuData_Type.NpcFunc)then
|
|
style = NpcMenuBtnCell.Style.Normal;
|
|
|
|
if(data.key)then
|
|
local guideId = NpcMenuBtnCell.GuideType[data.key];
|
|
if( guideId )then
|
|
self:AddOrRemoveGuideId(self.gameObject, guideId);
|
|
end
|
|
|
|
self:UpdateStorehouseBagNum(data.key);
|
|
end
|
|
elseif(menuType == Dialog_MenuData_Type.Task)then
|
|
local task = data.task;
|
|
if(task.type == QuestDataType.QuestDataType_MAIN or task.type == QuestDataType.QuestDataType_WANTED)then
|
|
style = NpcMenuBtnCell.Style.Primary;
|
|
elseif(task.type == QuestDataType.QuestDataType_BRANCH)then
|
|
style = NpcMenuBtnCell.Style.Second;
|
|
else
|
|
style = NpcMenuBtnCell.Style.Normal;
|
|
end
|
|
elseif(menuType == Dialog_MenuData_Type.Option)then
|
|
style = NpcMenuBtnCell.Style.Normal;
|
|
elseif(menuType == Dialog_MenuData_Type.CustomFunc)then
|
|
style = NpcMenuBtnCell.Style.Normal;
|
|
end
|
|
|
|
if(data.state == NpcFuncState.InActive)then
|
|
self.gameObject:SetActive(false);
|
|
else
|
|
self.gameObject:SetActive(true);
|
|
if(data.state == NpcFuncState.Grey)then
|
|
style = NpcMenuBtnCell.Style.Grey;
|
|
end
|
|
end
|
|
|
|
self:SetStyle( style );
|
|
|
|
self:UpdateMultiplyInfo();
|
|
end
|
|
|
|
|
|
local tempColor = LuaColor.New(1,1,1,1);
|
|
local tempV3 = LuaVector3();
|
|
function NpcMenuBtnCell:SetStyle( style )
|
|
if(style ~= self.style)then
|
|
self.style = style;
|
|
|
|
if(style == NpcMenuBtnCell.Style.Primary)then
|
|
self.bg.CurrentState = 1;
|
|
tempColor:Set(1,1,1,1);
|
|
self.bg.color = tempColor;
|
|
|
|
tempColor:Set(170/255, 94/255, 2/255, 1);
|
|
self.label.effectColor = tempColor;
|
|
|
|
self:ActiveIcon(true, 0);
|
|
elseif(style == NpcMenuBtnCell.Style.Second)then
|
|
self.bg.CurrentState = 0;
|
|
tempColor:Set(1,1,1,1);
|
|
self.bg.color = tempColor;
|
|
|
|
tempColor:Set(48/255, 65/255, 147/255, 1);
|
|
self.label.effectColor = tempColor;
|
|
|
|
self:ActiveIcon(true, 1);
|
|
elseif(style == NpcMenuBtnCell.Style.Normal)then
|
|
self.bg.CurrentState = 0;
|
|
tempColor:Set(1,1,1,1);
|
|
self.bg.color = tempColor;
|
|
|
|
tempColor:Set(48/255, 65/255, 147/255, 1);
|
|
self.label.effectColor = tempColor;
|
|
|
|
self:ActiveIcon(false);
|
|
elseif(style == NpcMenuBtnCell.Style.Grey)then
|
|
self.bg.CurrentState = 0;
|
|
tempColor:Set(1/255,2/255,3/255,1);
|
|
self.bg.color = tempColor;
|
|
|
|
tempColor:Set(177/255, 177/255, 177/255, 1);
|
|
self.label.effectColor = tempColor;
|
|
|
|
self:ActiveIcon(false);
|
|
end
|
|
end
|
|
end
|
|
|
|
function NpcMenuBtnCell:ActiveIcon(b, state)
|
|
if(b)then
|
|
self.icon.gameObject:SetActive(true);
|
|
if(state)then
|
|
self.icon.CurrentState = state;
|
|
end
|
|
self.icon:UpdateAnchors();
|
|
|
|
tempV3:Set(10, 6, 0);
|
|
self.label.transform.localPosition = tempV3;
|
|
else
|
|
self.icon.gameObject:SetActive(false);
|
|
|
|
tempV3:Set(0, 6, 0);
|
|
self.label.transform.localPosition = tempV3;
|
|
end
|
|
end
|
|
|
|
function NpcMenuBtnCell:UpdateStorehouseBagNum(type)
|
|
if(not self.storehouseNum)then
|
|
self.storehouseNum = self:FindComponent("BagNum", UILabel);
|
|
end
|
|
|
|
if(type == storehouse)then
|
|
local repBag = BagProxy.Instance.repositoryBag;
|
|
local uplimit = repBag:GetUplimit();
|
|
|
|
local items = repBag:GetItems();
|
|
self.storehouseNum.gameObject:SetActive(true);
|
|
self.storehouseNum.text = #items.."/"..uplimit;
|
|
|
|
-- if(uplimit > 0)then
|
|
-- local items = repBag:GetItems();
|
|
-- if(#items > uplimit)then
|
|
-- self.storehouseNum.gameObject:SetActive(true);
|
|
-- self.storehouseNum.text = #items.."/"..uplimit;
|
|
-- else
|
|
-- self.storehouseNum.gameObject:SetActive(false);
|
|
-- end
|
|
-- else
|
|
-- self.storehouseNum.gameObject:SetActive(false);
|
|
-- end
|
|
else
|
|
self.storehouseNum.gameObject:SetActive(false);
|
|
end
|
|
end
|
|
|
|
local NpcFunction_Multiply_RewardMap =
|
|
{
|
|
[1000] = AERewardType.Tower,
|
|
[1100] = AERewardType.Laboratory,
|
|
|
|
[4015] = AERewardType.GuildRaid, --公會副本
|
|
[1450] = AERewardType.GuildDojo, --公會道場
|
|
[10002] = AERewardType.PveCard, -- 卡牌副本
|
|
}
|
|
function NpcMenuBtnCell:UpdateMultiplyInfo()
|
|
local data = self.data;
|
|
if(data == nil or data.npcFuncData == nil)then
|
|
self.multiplySymbol:SetActive(false);
|
|
return;
|
|
end
|
|
|
|
local typeid = data.npcFuncData.id;
|
|
local rewardType = NpcFunction_Multiply_RewardMap[typeid];
|
|
if(rewardType == nil)then
|
|
self.multiplySymbol:SetActive(false);
|
|
return;
|
|
end
|
|
|
|
local rewardInfo = ActivityEventProxy.Instance:GetRewardByType(rewardType);
|
|
if(rewardInfo == nil)then
|
|
self.multiplySymbol:SetActive(false);
|
|
return;
|
|
end
|
|
|
|
local multiply = rewardInfo:GetMultiple() or 1;
|
|
if(multiply > 1)then
|
|
self.multiplySymbol_label.text = "*" .. multiply;
|
|
self.multiplySymbol:SetActive(true);
|
|
else
|
|
self.multiplySymbol:SetActive(false);
|
|
end
|
|
end
|