/// <summary> /// 创建卡片 /// </summary> /// <param name="position"></param> /// <param name="itemType"></param> /// <param name="objContainer"></param> /// <returns></returns> public GameObject CreateCardItem(int position, ItemMiniGameDebateCardCpt.DebateCardTypeEnun itemType, GameObject objContainer) { GameObject objItem = Instantiate(objContainer, objDebateCardModel); RectTransform rtfItem = (RectTransform)objItem.transform; //初始默认不可点击 ItemMiniGameDebateCardCpt cardItem = objItem.GetComponent <ItemMiniGameDebateCardCpt>(); cardItem.ClosePointerListener(); //设置初始透明度 CanvasGroup cgItem = objItem.GetComponent <CanvasGroup>(); cgItem.alpha = 0; if (objContainer == objUserDebateCardContainer) { cardItem.SetData(itemType, 1); rtfItem .DOLocalMoveY(120, 1) .From() .SetEase(Ease.OutBack) .SetDelay(position * 0.2f) .OnStart( delegate() { cgItem.alpha = 1; AudioHandler.Instance.PlaySound(AudioSoundEnum.GetCard); }) .OnComplete( delegate() { cardItem.OpenPointerListener(); }); miniGameData.listUserCard.Add(cardItem); } else if (objContainer == objEnemyDebateCardContainer) { cardItem.SetData(itemType, 2); rtfItem .DOLocalMoveY(120, 1) .From() .SetEase(Ease.OutBack) .SetDelay(position * 0.2f) .OnStart( delegate() { cgItem.alpha = 1; }) .OnComplete( delegate() { cardItem.OpenPointerListener(); }); miniGameData.listEnemyCard.Add(cardItem); } return(objItem); }
/// <summary> /// 创建卡片集合 /// </summary> /// <param name="listUserDebate"></param> /// <param name="listEnemyDebate"></param> public void CreateCardItemList(List <ItemMiniGameDebateCardCpt.DebateCardTypeEnun> listUserDebate, List <ItemMiniGameDebateCardCpt.DebateCardTypeEnun> listEnemyDebate) { for (int i = 0; i < listUserDebate.Count; i++) { ItemMiniGameDebateCardCpt.DebateCardTypeEnun itemType = listUserDebate[i]; GameObject objItem = CreateCardItem(i, itemType, objUserDebateCardContainer); } for (int i = 0; i < listEnemyDebate.Count; i++) { ItemMiniGameDebateCardCpt.DebateCardTypeEnun itemType = listEnemyDebate[i]; GameObject objItem = CreateCardItem(i, itemType, objEnemyDebateCardContainer); } }
/// <summary> /// 检测胜利者 /// </summary> /// <param name="userCard"></param> /// <param name="enemyCard"></param> /// <returns></returns> public void CheckCombatWinner( ItemMiniGameDebateCardCpt userCard, ItemMiniGameDebateCardCpt enemyCard, out ItemMiniGameDebateCardCpt winnerCard, out ItemMiniGameDebateCardCpt loserCard) { ItemMiniGameDebateCardCpt.DebateCardTypeEnun userCardType = userCard.debateCardType; ItemMiniGameDebateCardCpt.DebateCardTypeEnun enemyCardType = enemyCard.debateCardType; int result = (int)userCardType - (int)enemyCardType; if (result == -1 || result == 2) { winnerCard = userCard; loserCard = enemyCard; } else if (result == 0) { winnerCard = null; loserCard = null; } else { winnerCard = enemyCard; loserCard = userCard; } }