/// <summary> /// 该地是否能放置该卡牌 /// </summary> /// <param name="battleCardUI"></param> /// <returns></returns> public bool LandCanUseCard(BattleCardUI battleCardUI) { int goldCost = GameDataSet.Instance.CardModelDic[battleCardUI.cardId].costGold; int populationCost = GameDataSet.Instance.CardModelDic[battleCardUI.cardId].costPopulation; return(goldCost <= BattleManager.Instance.CurCamp.OwnGold && leftPopulation >= populationCost); }
public void SupplyCard() { List <BattleCardUI> CurCampCards = BattleManager.Instance.CurCamp.BattleCardUIs; if (CurCampCards.Count < 6) { BattleCardUI battleCardUI = InstantiateBattleCardUI(); bool supplyCampCard = UnityEngine.Random.value > 0.5f; int arrayIndex = CurCampCards.Count; if (supplyCampCard) { //补给阵营专属牌 Camp curCamp = BattleManager.Instance.CurCamp; int startIndex = curCamp.cardStartIndex; int endindex = curCamp.cardEndIndex; CardModel cardModel = GetRandomCardModelByIndex(startIndex, endindex); BattleCardFuncEnum funcEnum = (BattleCardFuncEnum)Enum.Parse(typeof(BattleCardFuncEnum), cardModel.cardFuncEnum); battleCardUI.InitCardInfo(cardModel, arrayIndex, curCamp.CardEnum_FuncDic[funcEnum]); } else { //补给基础牌 CardModel cardModel = GetRandomCardModelByIndex(BasicCardStartIndex, BasicCardEndIndex); BattleCardFuncEnum funcEnum = (BattleCardFuncEnum)Enum.Parse(typeof(BattleCardFuncEnum), cardModel.cardFuncEnum); battleCardUI.InitCardInfo(cardModel, arrayIndex, CardEnum_FuncDic[funcEnum]); } CurCampCards.Add(battleCardUI); } }
/// <summary> /// 消耗卡牌的费用 /// </summary> /// <param name="battleCardUI"></param> /// <returns></returns> private void UseCardConsume(BattleCardUI battleCardUI) { int goldCost = GameDataSet.Instance.CardModelDic[battleCardUI.cardId].costGold; int populationCost = GameDataSet.Instance.CardModelDic[battleCardUI.cardId].costPopulation; BattleManager.Instance.CurCamp.ReduceCampGold(goldCost); leftPopulation -= populationCost; }
public void OnSelectCard(int arrayIndex) { List <BattleCardUI> CurCampCards = BattleManager.Instance.CurCamp.BattleCardUIs; CurCampCards[arrayIndex].PopSelf(); CurSelectCard = CurCampCards[arrayIndex]; BattleManager.Instance.SetCampLandsHighLight(CurSelectCard.isSelfCard); }
public void CancelSelectCard() { if (CurSelectCard == null) { return; } CurSelectCard.BackToNormal(); BattleManager.Instance.SetCampLandsHighLight(CurSelectCard.isSelfCard, false); CurSelectCard = null; }
public void OnPointerClick(PointerEventData eventData) { BattleCardUI battleCardUI = UIManager._instance.OpenWnd <BattleCardUI>(UIManager.eKindWindow.BattleCardUI); battleCardUI.InitCardInfo( ResourcePoolManager._instance.GetObj <Sprite>(ResourcePoolManager.eResourceKind.Image, TableManager._instance.Get(eTableType.CardData).ToS(_myIndex, "Name")), TableManager._instance.Get(eTableType.CardData).ToS(_myIndex, "KoreanName"), TableManager._instance.Get(eTableType.CardData).ToS(_myIndex, "Effect"), _myIndex); }
public void UseCard(BattleCardUI battleCardUI) { UseCardConsume(battleCardUI); if (battleCardUI.triggerTime.Equals(BattleCardTriggerTime.IMMEDIATELY)) { battleCardUI.CardFunc(this); } else { BattleCard = new BattleCard(battleCardUI.triggerTime, battleCardUI.CardFunc); } if (BattleManager.Instance.BATTLE_EVENT_USE_CARD != null) { BattleManager.Instance.BATTLE_EVENT_USE_CARD(); } Debug.Log("使用成功"); }
public void DestroyCard() { List <BattleCardUI> CurCampCards = BattleManager.Instance.CurCamp.BattleCardUIs; Destroy(CurSelectCard.gameObject); CurCampCards.Remove(CurSelectCard); //重新赋值下顺序 for (int i = 0; i < CurCampCards.Count; i++) { CurCampCards[i].arrayIndex = i; } bool isMycampCard = CurSelectCard.isSelfCard; CurSelectCard = null; BattleManager.Instance.SetCampLandsHighLight(isMycampCard, false); }
public override void ClickAction(Land clickLand) { base.ClickAction(clickLand); BattleCardUI CurCard = BattleCardManager.Instance.CurSelectCard; //如果这块地上有牌了,就直接返回 if (clickLand.HasCard() && !(CurCard.triggerTime == BattleCardTriggerTime.IMMEDIATELY)) { MyRound.CurAttackState = MyRound.AttackStateDic[AttackStateEnum.NoneAttack]; GlobalUImanager.Instance.OpenPopTip().GetComponent <PopTip>().SetContent("该地已经有卡牌了"); return; } bool curLandIsMyCampLand = clickLand.CampID == BattleManager.Instance.CurCamp.campID; //如果卡牌放的位置是对的,并且剩余资源足够使用卡牌则放牌,否则跳过 if (CurCard != null && !(CurCard.isSelfCard ^ curLandIsMyCampLand)) { if (clickLand.LandCanUseCard(CurCard)) { clickLand.UseCard(CurCard); BattleCardManager.Instance.DestroyCard(); } else { GlobalUImanager.Instance.OpenPopTip().GetComponent <PopTip>().SetContent("资源不足,不能布置卡牌!"); BattleCardManager.Instance.CancelSelectCard(); } } else { BattleCardManager.Instance.CancelSelectCard(); Debug.Log("收回卡牌!!!"); } MyRound.CurAttackState = MyRound.AttackStateDic[AttackStateEnum.NoneAttack]; }
public void DestroyCardInAIState(BattleCardUI battleCardUI, Land land) { Destroy(battleCardUI.gameObject); land.LandHighLightSide.ShowSelf(HighLightType.Single, false); }
/// <summary> /// 根据卡牌效果,返回一个应该放置的地块 /// </summary> /// <param name="battleCardUI"></param> /// <returns></returns> private Land GetCardPlaceLandByType(BattleCardUI battleCardUI) { Land result = null; Camp curCamp = BattleManager.Instance.CurCamp; switch (battleCardUI.cardEffectType) { case CardEffectType.CampBuff: foreach (Land land in _orderedCurCampLands) { if (land.LandCanUseCard(battleCardUI)) { result = land; break; } } break; case CardEffectType.BombOtherCamp: foreach (Camp camp in BattleManager.Instance.CampDic.Values) { if (camp != curCamp) { foreach (Land land in camp.ownedLands) { //遍历其他阵营地块,找出兵力最强的地 if (land.LandCanUseCard(battleCardUI) && (result == null || land.BattleUnit > result.BattleUnit)) { result = land; } } } } break; case CardEffectType.AttackOwnStrongLand: foreach (Land land in _orderedCurCampLands) { if (land.LandCanUseCard(battleCardUI)) { result = land; break; } } break; case CardEffectType.DefenceOwnWeakLand: for (int i = _orderedCurCampLands.Count - 1; i > 0; i--) { if (_orderedCurCampLands[i].LandCanUseCard(battleCardUI)) { result = _orderedCurCampLands[i]; break; } } break; default: break; } return(result); }