Exemplo n.º 1
0
		private void ChooseInitialCardsForNextFaction() {
			++cardChoosingFactionIdx;
			if (cardChoosingFactionIdx < factionList.Count) {
				Debug.LogWarning("Choosing cards for faction " + cardChoosingFactionIdx);
				if(factionList[cardChoosingFactionIdx].isPlayerFaction){
					// Debug.LogWarning("deck size = " + factionList[cardChoosingFactionIdx].allUnitList.Select(unit => unit.reserveAbilityIDList.Count).Sum());
					numAbilitiesChosen = 0;
					abilitySelections = new List<Unit.AbilitySelection>();
					for (int i = 0; i < abilitySelectionButtons.Count; ++i)
					{
						// Debug.LogWarning("Choosing card  " + i);
						Unit.AbilitySelection abilitySelection = Unit.DrawCard(factionList[cardChoosingFactionIdx].allUnitList);
						abilitySelections.Add(abilitySelection);
						if (abilitySelection != null){
							// Debug.LogWarning("selection  " + abilitySelection.abilityId + " " + abilitySelection.cardOwner.unitName);
							UnitAbility ability=AbilityManagerUnit.GetAbilityBasedOnID(abilitySelection.abilityId);
							abilitySelectionButtons[i].Init();
							// Debug.LogWarning("ability = " + ability.name);
							// Debug.LogWarning(abilitySelectionButtons[i]);
							// Debug.LogWarning(abilitySelectionButtons[i].imgIcon);
							// Debug.LogWarning(abilitySelectionButtons[i].label);
							abilitySelectionButtons[i].imgIcon.sprite= ability.icon;
							abilitySelectionButtons[i].label.text = ability.GetCost().ToString();
							abilitySelectionButtons[i].SetActive(true);	
						}
					}
					chooseInitialCardsUI.gameObject.SetActive(true);
				} else {
					ChooseInitialCardsForNextFaction();
				}				
			} else {
				chooseInitialCardsUI.gameObject.SetActive(false);
				GameControl.OnFinishedCardChoice();
			}
		}
Exemplo n.º 2
0
		public void ChooseInitialCard(int abilitySelectionIdx) 
		{
			Unit.AbilitySelection abilitySelection = abilitySelections[abilitySelectionIdx];
			abilitySelection.cardOwner.AddAbility(abilitySelection.abilityId);	
			abilitySelectionButtons[abilitySelectionIdx].SetActive(false);		
			++numAbilitiesChosen;
			if (numAbilitiesChosen >= numAbilitiesToChoose) {
				ChooseInitialCardsForNextFaction();
			}
		}
Exemplo n.º 3
0
		public void _EndTurn_UnitPerTurn(){
			selectedUnitID+=1;
			if(selectedUnitID>=allUnitList.Count) selectedUnitID=0;
			
			selectedFactionID=allUnitList[selectedUnitID].factionID;
			
			bool isUnitActive=allUnitList[selectedUnitID].NewTurn();	//in case unit is destroyed by damage over time effect
			if(isUnitActive){
				// Debug.LogWarning(allUnitList[selectedUnitID].unitName + " "  + allUnitList[selectedUnitID].canDrawCards);
				if (allUnitList[selectedUnitID].canDrawCards) {
					Unit.AbilitySelection abilitySelection = Unit.DrawCard(allUnitList.Where(u => u.factionID == selectedFactionID).ToList());
					if (abilitySelection != null){
						abilitySelection.cardOwner.AddAbility(abilitySelection.abilityId);
					}
				}
			} else {
				_EndTurn_UnitPerTurn();
				return;
			}
			
			if(allUnitList[selectedUnitID].isAIUnit) AIManager.MoveUnit(allUnitList[selectedUnitID]);
			else GameControl.SelectUnit(allUnitList[selectedUnitID], false);
		}