private void DoEffect(EffectVO vo) { int cnt; FightPanel_CardItem cdItm; if (vo.Type == TargetType.Role) { if (vo.RoleProp == RolePropType.GameOver) { string warn = vo.Value == PlayerProxy.Instance.Info.pid ? "我方胜利" : "敌方胜利"; m_Panel.overLab.text = warn; m_Panel.overLab.gameObject.SetActive(true); } //获取额外卡牌 if (vo.RoleProp == RolePropType.ExtractCard && vo.CardItem != null) { if (vo.IsMe || Define.VSTest) { FightPanel_CardItem cdItm0 = GetCardItem(vo.IsMe); if (cdItm0 != null) { AddCard(cdItm0); cdItm0.SerData = vo.CardItem; Vector3 pos = cdItm0.transform.position.Clone(); pos.x = 1.3f; cdItm0.transform.position = pos; if (Define.NoAni) { cdItm0.transform.position = mTeamAInitPosition[cdItm0.NoShowIndex]; PVPManager.Instance.On_DoMoveNextEffect(true); } else { cdItm0.transform.DOMove(mTeamAInitPosition[cdItm0.NoShowIndex], 0.5f).OnComplete(() => { PVPManager.Instance.On_DoMoveNextEffect(true); }); } } } else { FightPanel_CardItem cdItm0 = GetCardItem(vo.IsMe); if (cdItm0 != null) { cdItm0.SerData = vo.CardItem; cdItm0.gameObject.SetActive(true); cdItm0.transform.position = mTeamBInitPosition[cdItm0.NoShowIndex]; } UpdateCardBPostion(); PVPManager.Instance.On_DoMoveNextEffect(true); } } else if (vo.IsMe && vo.RoleProp == RolePropType.CreateCard) { cdItm = mTeamCardsFreeQueque[0]; AddCard(cdItm); Vector3 pos = cdItm.transform.position.Clone(); pos.x = 1.2f; cdItm.transform.position = pos; UpdateCardAPostion(); PVPManager.Instance.On_DoNextEffect(true); } else if (!vo.IsMe && vo.RoleProp == RolePropType.CreateCard) { cdItm = GetCardItem(vo.IsMe); if (cdItm != null) { cdItm.SerData = vo.CardItem; cdItm.gameObject.SetActive(true); cdItm.transform.position = mTeamBInitPosition[cdItm.NoShowIndex]; UpdateCardBPostion(); PVPManager.Instance.On_DoNextEffect(true); } } else if (vo.IsMe && vo.RoleProp == RolePropType.RemoveCard) { cnt = mTeamCards.Count; cdItm = GetCardItem(vo.IsMe, vo.Value); Debug.LogError("Remove MyCard:" + vo.Value); if (null != cdItm) { RemoveCard(cdItm); UpdateCardAPostion(); PVPManager.Instance.On_DoNextEffect(true); } } else if (!vo.IsMe && vo.RoleProp == RolePropType.RemoveCard) { cnt = mTeamCards.Count; cdItm = GetCardItem(vo.IsMe, vo.Value); if (null != cdItm) { cdItm.gameObject.SetActive(false); UpdateCardBPostion(); PVPManager.Instance.On_DoNextEffect(true); } } else { PVPManager.Instance.On_DoNextEffect(true); } } else if (vo.Type == TargetType.Card) { if (vo.IsMe) { int ct = 0; ct = mTeamCards.Count; FightPanel_CardItem cdItm0 = GetCardItem(vo.IsMe, vo.Target.Target); if (null != cdItm0) { if (vo.CardProp == CardPropType.Exp) { cdItm0.SerData.exp = vo.Value; AddCard(cdItm0); cdItm0.UpdateDisplay(); UpdateCardAPostion(); PVPManager.Instance.On_DoNextEffect(true); } } } else { int ct = 0; ct = mTeamBCards.Count; FightPanel_CardItem cdItm1 = GetCardItem(vo.IsMe, vo.Target.Target); if (null != cdItm1) { if (vo.CardProp == CardPropType.Exp) { cdItm1.SerData.exp = vo.Value; cdItm1.gameObject.SetActive(true); cdItm1.UpdateDisplay(); UpdateCardBPostion(); PVPManager.Instance.On_DoNextEffect(true); } } } } }
protected override void OnShow(INotification notification) { Instance = this; m_Panel.overLab.gameObject.SetActive(false); m_Panel.panAddPower.gameObject.SetActive(false); UIEventListener.Get(m_Panel.backBtn.gameObject).onClick = OnClick_BackBtn; List <Transform> exps = new List <Transform> { m_Panel.addExpItem0, m_Panel.addExpItem1, m_Panel.addExpItem2, m_Panel.addExpItem3, m_Panel.addExpItem4, m_Panel.addExpItem5 }; int len = exps.Count; for (int n = 0; n < len; n++) { UIEventListener.Get(exps[n].gameObject).onDrop = OnDrop_ExpItem; UIEventListener.Get(exps[n].gameObject).onHover = OnHover_ExpItem; } List <Transform> cards = new List <Transform> { m_Panel.Card0, m_Panel.Card1, m_Panel.Card2, m_Panel.Card3, m_Panel.Card4, m_Panel.Card5, m_Panel.CardOp0, m_Panel.CardOp1, m_Panel.CardOp2, m_Panel.CardOp3, m_Panel.CardOp4, m_Panel.CardOp5 }; int cnt = cards.Count; bool haveData = null != FightProxy.Instance.RoomInfo; int fLen = 0; int sLen = 0; bool isMe = true; List <FightCardMsg> teamACardMsg = null; List <FightCardMsg> teamBCardMsg = null; mExp = new List <Transform>(); exp_cardItem = new Dictionary <Transform, FightPanel_CardItem>(); if (haveData) { isMe = FightProxy.Instance.RoomInfo.frole.pid == PlayerProxy.Instance.Info.pid; m_Panel.mynameLab.text = FightProxy.Instance.RoomInfo.frole.name; m_Panel.opnameLab.text = FightProxy.Instance.RoomInfo.srole.name; if (isMe) { teamACardMsg = FightProxy.Instance.RoomInfo.frole.cards.card; teamBCardMsg = FightProxy.Instance.RoomInfo.srole.cards.card; } else { teamACardMsg = FightProxy.Instance.RoomInfo.srole.cards.card; teamBCardMsg = FightProxy.Instance.RoomInfo.frole.cards.card; } fLen = teamACardMsg.Count; sLen = teamBCardMsg.Count; } mTeamCards = new List <FightPanel_CardItem>(); mTeamBCards = new List <FightPanel_CardItem>(); mInitTeamCards = new List <FightPanel_CardItem>(); mInitTeamBCards = new List <FightPanel_CardItem>(); mTeamCardsFreeQueque = new List <FightPanel_CardItem>(); mTeamAInitPosition = new List <Vector3>(); mTeamBInitPosition = new List <Vector3>(); for (int i = 0; i < cnt; i++) { FightPanel_CardItem cardItem = ScriptHelper.BindField(cards[i], "FightPanel_CardItem") as FightPanel_CardItem; int index = i % 6; if (Define.VSTest) { FightCardMsg tmsg = new FightCardMsg(); tmsg.index = index; cardItem.SerData = tmsg; } if (i < 6) { if (haveData && index < fLen) { mTeamCards.Add(cardItem); } if (!haveData) { mTeamCards.Add(cardItem); } mInitTeamCards.Add(cardItem); mTeamAInitPosition.Add(cardItem.transform.position); cardItem.ExpItem = exps[i].transform; mExp.Add(exps[i].transform); exp_cardItem[exps[i].transform] = cardItem; if (haveData && index >= fLen) { exps[i].gameObject.SetActive(false); } } if (index < fLen && i < 6) { if (haveData) { cardItem.SerData = teamACardMsg[i]; } } else if (index >= fLen && i < 6) { if (haveData) { mTeamCardsFreeQueque.Add(cardItem); } } else if (i >= 6) { UICardDrag dragItm = cardItem.GetComponent <UICardDrag>(); dragItm.IsCustomDrag = false; dragItm.CanClickTween = false; mTeamBInitPosition.Add(cardItem.transform.position); mInitTeamBCards.Add(cardItem); if (haveData && index < sLen) { mTeamBCards.Add(cardItem); cardItem.SerData = teamBCardMsg[index]; } if (!haveData) { mTeamBCards.Add(cardItem); } } if (haveData) { cardItem.UpdateDisplay(); } } AddExpPan_InitPosition = m_Panel.panAddPower.position; OpPan_InitPosition = m_Panel.panOpCard.position; if (Define.VSTest) { m_Panel.myTurnWarnPan.gameObject.SetActive(false); m_Panel.opTurnWarnPan.gameObject.SetActive(false); } else { m_Panel.myTurnWarnPan.gameObject.SetActive(InitIsMyAtk == -1); m_Panel.opTurnWarnPan.gameObject.SetActive(InitIsMyAtk == 1); mCountTimer = 90; string warstr = InitIsMyAtk == -1 ? "FightMyTurn" : "FightOpTurn"; m_Panel.turnLab.text = TextManager.GetUIString(warstr); m_Panel.countLab.text = mCountTimer.ToString(); m_Panel.btnTurn.gameObject.SetActive(InitIsMyAtk == -1); if (InitIsMyAtk == -1) { Tween_MyTrunWarn(); } else { Tween_OpTrunWarn(); } } UpdateArcane(); if (null != mOpenEffectList) { int eftLen = mOpenEffectList.Count; for (int ei = 0; ei < eftLen; ei++) { DoEffect(mOpenEffectList[ei]); } } TimerManager.AddTimerRepeat(mTimer_CountDown, 1f, OnTimer_CountDown); }