386 lines
11 KiB
Plaintext
386 lines
11 KiB
Plaintext
autoImport("FloatMessage")
|
|
autoImport("CountDownMsg")
|
|
autoImport("FloatMessageEight")
|
|
autoImport("QueuePusherCtrl")
|
|
autoImport("QueueWaitCtrl")
|
|
autoImport("MidMsg")
|
|
autoImport("MidAlphaMsg")
|
|
autoImport("ShowyMsg")
|
|
autoImport("MaintenanceMsg")
|
|
autoImport("TypeNineFloatPanel")
|
|
autoImport("UIViewAchievementPopupTip")
|
|
|
|
FloatingPanel = class("FloatingPanel", ContainerView)
|
|
FloatingPanel.Instance = nil
|
|
FloatingPanel.ViewType = UIViewType.FloatLayer
|
|
|
|
function FloatingPanel:Init()
|
|
self.pushCtrl = QueuePusherCtrl.new(self.gameObject,FloatMessage)
|
|
|
|
self.pushCtrl.maxNum = 3
|
|
self.pushCtrl.gap = -30
|
|
self.pushCtrl.speed = 95
|
|
self.pushCtrl.hideDelay = 0.5
|
|
self.pushCtrl.hideDelayGrow = 0.4
|
|
self.pushCtrl:SetStartPos(0,-60)
|
|
self.pushCtrl:SetEndPos(0,-10)
|
|
|
|
self.pushCtrl:SetDir(QueuePusherCtrl.Dir.Vertical)
|
|
if(FloatingPanel.Instance == nil) then
|
|
FloatingPanel.Instance = self
|
|
end
|
|
|
|
self.waitCtrl = QueueWaitCtrl.CreateAsArray(100)
|
|
|
|
self.beforePanel = self:FindGO("BeforePanel");
|
|
self.goUIViewAchievementPopupTip = self:FindGO('UIViewAchievementPopupTip', self.gameObject)
|
|
self:AddSubViews()
|
|
self:AddEvtListener()
|
|
end
|
|
|
|
function FloatingPanel:AddSubViews()
|
|
self.typeNineSubView = self:AddSubView("typeNineView",TypeNineFloatPanel)
|
|
self.uiViewAchievementPopupTip = self:AddSubView('UIViewAchievementPopupTip', UIViewAchievementPopupTip)
|
|
self.uiViewAchievementPopupTip:SetGameObject(self.goUIViewAchievementPopupTip)
|
|
self.uiViewAchievementPopupTip:GetGameObjects()
|
|
self.uiViewAchievementPopupTip:GetModelSet()
|
|
self.uiViewAchievementPopupTip:LoadView()
|
|
end
|
|
|
|
function FloatingPanel:AddEvtListener()
|
|
-- self:AddListenEvt(ServiceEvent.PlayerMapChange,self.SceneLoadHandler)
|
|
EventManager.Me():AddEventListener(ServiceEvent.PlayerMapChange, self.SceneLoadHandler, self)
|
|
helplog("FloatingPanel AddEvtListener");
|
|
end
|
|
|
|
function FloatingPanel:HandlePlayUIEffect(note)
|
|
local effect_path = note.body.path;
|
|
helplog("FloatingPanel PlayUIEffect:", effect_path);
|
|
self:PlayUIEffect(effect_path, self.gameObject, true);
|
|
-- PlotStoryViewEvent.PlayUIEffect
|
|
end
|
|
|
|
function FloatingPanel:SceneLoadHandler( note )
|
|
-- if(note.type == LoadSceneEvent.StartLoad) then
|
|
if(self.countDownMsg~=nil and self.countDownMsg.DestroyWhenLoadScene) then
|
|
self:RemoveCountDown(self.countDownMsg.data.id)
|
|
end
|
|
|
|
self:RemoveMidMsg();
|
|
ComboCtl.Instance:Clear()
|
|
-- end
|
|
end
|
|
|
|
function FloatingPanel:SetStartPos( pos )
|
|
-- body
|
|
self.pushCtrl:SetStartPos(pos.start.x,pos.start.y)
|
|
self.pushCtrl:SetEndPos(pos.endPos.x,pos.endPos.y)
|
|
end
|
|
|
|
function FloatingPanel:ResetDefaultPos( )
|
|
-- body
|
|
self.pushCtrl:SetStartPos(0,-60)
|
|
self.pushCtrl:SetEndPos(0,-10)
|
|
end
|
|
|
|
function FloatingPanel:FloatMiddleBottom(sortID,text)
|
|
self.typeNineSubView:AddSysMsg(sortID,text)
|
|
end
|
|
|
|
function FloatingPanel:ClearFloatMiddleBottom()
|
|
self.typeNineSubView:Clear()
|
|
end
|
|
|
|
function FloatingPanel:TryFloatMessageByText(text)
|
|
local cell = self:GetFloatCell()
|
|
cell:SetMsg(text)
|
|
self.pushCtrl:AddCell(cell)
|
|
-- self:AddToWaiting(self:GetFloatCell(text))
|
|
end
|
|
|
|
function FloatingPanel:FloatTypeEightMsgByData(data,startPos,offset)
|
|
local cell = FloatMessageEight.new(self.gameObject,data,startPos,offset)
|
|
self.waitCtrl:AddCell(cell,0.5)
|
|
end
|
|
|
|
function FloatingPanel:StopFloatTypeEightMsg()
|
|
self.waitCtrl:Clear()
|
|
end
|
|
|
|
function FloatingPanel:TryFloatMessageByTextWithTransparentBg( text )
|
|
-- body
|
|
local cell = self:GetFloatCellWithTransparentBg()
|
|
cell:SetMsgCenterAlign(text)
|
|
self.pushCtrl:AddCell(cell)
|
|
end
|
|
|
|
function FloatingPanel:GetFloatCellWithTransparentBg( )
|
|
-- body
|
|
local floatMsg = FloatMessage.new(self.gameObject)
|
|
floatMsg:Hide(floatMsg.bg.gameObject)
|
|
return floatMsg
|
|
end
|
|
|
|
function FloatingPanel:TryFloatMessageByData(data)
|
|
-- local cell = self:GetFloatCell()
|
|
-- cell:SetData(data)
|
|
self.pushCtrl:AddData(data)
|
|
-- self:AddToWaiting(self:GetFloatCell(text))
|
|
end
|
|
|
|
function FloatingPanel:GetFloatCell()
|
|
return FloatMessage.new(self.gameObject)
|
|
end
|
|
|
|
function FloatingPanel:ShowMapName(name1, name2)
|
|
if(self:ObjIsNil(self.mapPfb))then
|
|
self.mapPfb = self:LoadPreferb("tip/MapNameTip", self.gameObject);
|
|
local maplab1 = self:FindChild("MapLabel1" ,self.mapPfb):GetComponent(UILabel);
|
|
maplab1.text = name1;
|
|
local maplab2 = self:FindChild("MapLabel2" ,self.mapPfb):GetComponent(UILabel);
|
|
maplab2.text = name2;
|
|
|
|
LeanTween.delayedCall(self.mapPfb, 1, function ()
|
|
if(not self:ObjIsNil(self.mapPfb))then
|
|
GameObject.Destroy(self.mapPfb);
|
|
end
|
|
self.mapPfb = nil;
|
|
end):setDestroyOnComplete(true);
|
|
end
|
|
end
|
|
|
|
function FloatingPanel:FloatingMidEffect(effectid)
|
|
local effectName = effectid and EffectMap.UIEffect_IdMap[effectid];
|
|
if(effectName)then
|
|
self:PlayUIEffect(effectName,
|
|
self.beforePanel,
|
|
true,
|
|
FloatingPanel._HandleMidEffectShow,
|
|
self);
|
|
end
|
|
end
|
|
|
|
function FloatingPanel:HandleMidEffectShow(effectHandle)
|
|
local effectGO = effectHandle.gameObject;
|
|
|
|
local panels = UIUtil.GetAllComponentsInChildren(effectGO, UIPanel, true);
|
|
if(#panels == 0)then
|
|
return;
|
|
end
|
|
|
|
local upPanel = GameObjectUtil.Instance:FindCompInParents(effectGO, UIPanel);
|
|
local minDepth = nil;
|
|
for i=1,#panels do
|
|
if(minDepth == nil)then
|
|
minDepth = panels[i].depth;
|
|
else
|
|
minDepth = math.min(panels[i].depth, minDepth);
|
|
end
|
|
end
|
|
local startDepth = 1;
|
|
for i=1,#panels do
|
|
panels[i].depth = panels[i].depth + startDepth + upPanel.depth - minDepth;
|
|
end
|
|
end
|
|
|
|
function FloatingPanel._HandleMidEffectShow(effectHandle, owner)
|
|
if(effectHandle and owner)then
|
|
owner:HandleMidEffectShow(effectHandle);
|
|
end
|
|
end
|
|
|
|
function FloatingPanel:PlayMidEffect(effectPath)
|
|
self:PlayUIEffect(effectPath,self.beforePanel,true, self._HandleMidEffectCreate_Mediator, self);
|
|
end
|
|
|
|
function FloatingPanel._HandleMidEffectCreate_Mediator(effectHandle, owner)
|
|
owner:_HandleMidEffectCreate(effectHandle);
|
|
end
|
|
|
|
function FloatingPanel:_HandleMidEffectCreate(effectHandle)
|
|
helplog("_HandleMidEffectCreate");
|
|
local go = effectHandle.gameObject;
|
|
local widgets = UIUtil.GetAllComponentsInChildren(go, UIWidget);
|
|
for i=1,#widgets do
|
|
widgets[i].gameObject:SetActive(false);
|
|
widgets[i].gameObject:SetActive(true);
|
|
helplog("_HandleMidEffectCreate:", widgets[i]);
|
|
end
|
|
end
|
|
|
|
function FloatingPanel:ShowPowerUp(upvalue, effectid, tip)
|
|
local effectid = effectid or EffectMap.UI.Score_Up;
|
|
local tip = tip or ZhString.Float_PlayerScoreUp;
|
|
local rid = ResourcePathHelper.EffectUI(effectid);
|
|
local anchorDown = self:FindGO("Anchor_Down");
|
|
local scoreup = self:ReInitEffect(rid, anchorDown, Vector3(0, 180), function (go)
|
|
LeanTween.cancel(go);
|
|
end);
|
|
|
|
local frome = 0;
|
|
local to = upvalue or 200;
|
|
local time = math.max(0.7, (to-frome)*(1/200));
|
|
time = math.min(time, 1.5);
|
|
local label = self:FindGO("Label", scoreup):GetComponent(UILabel);
|
|
local anim = scoreup:GetComponent(Animator);
|
|
-- anim:Play ("Score_up1", -1, 0);
|
|
LeanTween.value(scoreup, function (f)
|
|
label.text = tip..math.floor(f);
|
|
end, frome, to, time):setOnComplete(function ()
|
|
LeanTween.delayedCall(scoreup, 0.3, function (f)
|
|
anim:Play("Score_up2", -1, 0);
|
|
local autodestroy = scoreup:AddComponent(EffectAutoDestroy);
|
|
autodestroy.OnFinish = function ()
|
|
scoreup = nil;
|
|
end
|
|
end);
|
|
end):setDestroyOnComplete(true);
|
|
end
|
|
|
|
function FloatingPanel:ShowManualUp()
|
|
self:PlayUIEffect(EffectMap.UI.UIAdventureLv_up,
|
|
nil,
|
|
true,
|
|
FloatingPanel.UIAdventureLv_upEffectHandle,
|
|
self);
|
|
end
|
|
|
|
local tempVector3 = LuaVector3.zero
|
|
function FloatingPanel.UIAdventureLv_upEffectHandle( effectHandle, owner )
|
|
if(owner)then
|
|
local effectGO = effectHandle.gameObject;
|
|
tempVector3:Set(0,100,0)
|
|
effectGO.transform.localPosition = tempVector3
|
|
local shuzi = owner:FindGO("shuzi",effectGO)
|
|
GameObjectUtil.Instance:DestroyAllChildren(shuzi)
|
|
local grid = shuzi:GetComponent(UIGrid)
|
|
if(not grid)then
|
|
grid = shuzi:AddComponent(UIGrid)
|
|
end
|
|
if(grid)then
|
|
grid.cellWidth = 19
|
|
grid.pivot = UIWidget.Pivot.Center;
|
|
local manualLevel = AdventureDataProxy.Instance:getManualLevel()
|
|
manualLevel = StringUtil.StringToCharArray(tostring(manualLevel))
|
|
for i=1,#manualLevel do
|
|
local obj = GameObject("tx")
|
|
obj.transform:SetParent(grid.transform,false)
|
|
tempVector3:Set(0,0,0)
|
|
obj.transform.localPosition = tempVector3
|
|
local sprite = obj:AddComponent(UISprite)
|
|
local atlas = RO.AtlasMap.GetAtlas("NewCom")
|
|
sprite.atlas = atlas
|
|
sprite.depth = 200
|
|
sprite.spriteName = string.format("txt_%d",manualLevel[i])
|
|
sprite:MakePixelPerfect()
|
|
end
|
|
grid:Reposition()
|
|
end
|
|
end
|
|
end
|
|
|
|
function FloatingPanel:ReInitEffect(rid, container, pos, destoryCallback)
|
|
self.catch = self.catch or {};
|
|
local result = self.catch[rid];
|
|
if(not self:ObjIsNil(result))then
|
|
if(type(destoryCallback) == "function")then
|
|
destoryCallback(result);
|
|
end
|
|
GameObject.DestroyImmediate(result);
|
|
end
|
|
result = GameObjPool.Instance:RGet(rid,"UI", container);
|
|
tempVector3:Set(0,0,0)
|
|
result.transform.localPosition = pos or tempVector3
|
|
self.catch[rid] = result;
|
|
return result;
|
|
end
|
|
|
|
function FloatingPanel:AddCountDown(text,data)
|
|
if(self.countDownMsg == nil or (self.countDownMsg and self.countDownMsg.hasBeenDestroyed)) then
|
|
self.countDownMsg = CountDownMsg.new(self.gameObject)
|
|
end
|
|
self.countDownMsg:SetData(text,data)
|
|
end
|
|
|
|
function FloatingPanel:RemoveCountDown(id)
|
|
if(self.countDownMsg and not self.countDownMsg.hasBeenDestroyed and self.countDownMsg.data.id == id) then
|
|
self.countDownMsg:DestroySelf()
|
|
end
|
|
self.countDownMsg = nil
|
|
end
|
|
|
|
function FloatingPanel:SetCountDownRemoveOnChangeScene(id,value)
|
|
if(self.countDownMsg and not self.countDownMsg.hasBeenDestroyed and self.countDownMsg.data.id == id) then
|
|
self.countDownMsg.DestroyWhenLoadScene = value
|
|
end
|
|
end
|
|
|
|
function FloatingPanel:GetMidMsg()
|
|
self:RemoveMidMsg();
|
|
self.midMsg = MidMsg.new(self.gameObject);
|
|
return self.midMsg;
|
|
end
|
|
|
|
function FloatingPanel:RemoveMidMsg()
|
|
if(self.midMsg)then
|
|
self.midMsg:Exit();
|
|
self.midMsg = nil;
|
|
end
|
|
end
|
|
|
|
function FloatingPanel:ShowMidAlphaMsg(text)
|
|
if(not self.midAlphaMsg)then
|
|
self.midAlphaMsg = MidAlphaMsg.new(self.gameObject);
|
|
end
|
|
|
|
self.midAlphaMsg:SetData(text);
|
|
self.midAlphaMsg:SetExitCall(self.MidAlphaMsgEnd, self);
|
|
end
|
|
|
|
function FloatingPanel:MidAlphaMsgEnd()
|
|
self.midAlphaMsg = nil;
|
|
end
|
|
|
|
function FloatingPanel:FloatShowyMsg(text)
|
|
if(self.showyMsg)then
|
|
self.showyMsg:Exit();
|
|
end
|
|
|
|
self.showyMsg = ShowyMsg.new(self.gameObject);
|
|
self.showyMsg:SetExitCall(function ()
|
|
self.showyMsg = nil;
|
|
end);
|
|
|
|
local data = {text = text};
|
|
self.showyMsg:SetData(data);
|
|
self.showyMsg:Enter();
|
|
end
|
|
|
|
local tempArgs = {};
|
|
|
|
function FloatingPanel:CloseMaintenanceMsg()
|
|
if(self.maintenanceMsg)then
|
|
self.maintenanceMsg:Exit();
|
|
end
|
|
end
|
|
|
|
function FloatingPanel:ShowMaintenanceMsg(title, text, remark, buttonlab, picPath, confirmCall)
|
|
self:CloseMaintenanceMsg()
|
|
|
|
self.maintenanceMsg = MaintenanceMsg.new(self.gameObject);
|
|
self.maintenanceMsg:SetExitCall(function ()
|
|
self.maintenanceMsg = nil;
|
|
end);
|
|
|
|
TableUtility.TableClear(tempArgs);
|
|
tempArgs[1] = title;
|
|
tempArgs[2] = text;
|
|
tempArgs[3] = remark;
|
|
tempArgs[4] = buttonlab;
|
|
tempArgs[5] = picPath;
|
|
tempArgs[6] = confirmCall;
|
|
|
|
self.maintenanceMsg:SetData(tempArgs);
|
|
|
|
return self.maintenanceMsg
|
|
end |