public void ExecutetPhase(List <int> play, TournementControler Tc) { for (int j = 0; j < play.Count; j++) { PlayCard(j, Tc); Tc.hands[playerID].cards[play[j]] = null; } List <Card> replace = new List <Card>(); for (int i = 0; i < Tc.hands[playerID].cards.Count; i++) { if (Tc.hands[playerID].cards[i] != null) { replace.Add(Tc.hands[playerID].cards[i]); } } Tc.hands[playerID].cards.Clear(); Tc.hands[playerID].cards = replace; foreach (Transform child in Tc.hands[playerID].gameObject.transform) { GameObject.Destroy(child.gameObject); } foreach (Card c in Tc.hands[playerID].cards) { Instantiate(c).transform.SetParent(Tc.hands[playerID].gameObject.transform); } }
public void NetworkExecuteDiscard(int UID) { Dropzone Dropzone = (Dropzone)this.GetComponent("Dropzone"); TournementControler Controler = tournamentControler; Hand THand = Controler.hands[Controler.turn]; Controler.Discard.cards.Add(Instantiate(THand.cards[UID])); Destroy(THand.transform.GetChild(UID).gameObject); THand.cards.RemoveAt(UID); Controler.ifDisplay.setText(Controler.UpdateInfo(0)); }
public void PlayCard(int UID, TournementControler Tc) { Dropzone Dropzone = Tc.dzones[playerID]; Hand THand = Tc.hands[Tc.turn]; HandleTextFile.WriteLog("AI Log: Player " + (playerID + 1) + " Plays Card" + THand.cards[UID].name, GameControler.SName); Card temp = Instantiate(THand.cards[UID]); Dropzone.AddCard(temp); temp.transform.SetParent(Dropzone.transform); Destroy(THand.transform.GetChild(UID).gameObject); }
public void NetworkExecuteDropTZone(int UID) { Debug.Log(UID); Dropzone Dropzone = (Dropzone)this.GetComponent("Dropzone"); TournementControler Controler = tournamentControler; Hand THand = Controler.hands[Controler.turn]; Card temp = Instantiate(THand.cards[UID]); Dropzone.AddCard(temp); temp.transform.SetParent(this.transform); Destroy(THand.transform.GetChild(UID).gameObject); THand.cards.RemoveAt(UID); Controler.ifDisplay.setText(Controler.UpdateInfo(0)); }
public override void JoinTournament(List <GameObject> pl, int reward, TournementControler Tc) { int r = 0; bool join = false; for (int i = 0; i < pl.Count; i++) { AbstractPlayer tempPlayer = pl[i].GetComponent <AbstractPlayer>(); r = tempPlayer.PlayerRank.rank; if (reward + tempPlayer.PlayerRank.Sheild >= lv[r]) { join = true; } } Join(Tc, join); }
public override void TournamentBehavior(int Case, TournementControler Tc) { int ID = this.playerID; switch (Case) { case 1: bool play = false; for (int i = 0; i < Tc.hands[ID].cards.Count; i++) { switch (Tc.hands[ID].cards[i].Type) { case "Foe": break; case "Amour": if (Tc.dzones[playerID].SpecificUseCards.Count == 0) { PlayCard(i, Tc); } break; case "Ally": PlayCard(i, Tc); break; case "Equipment": play = true; EquipmentCard EC1 = ((EquipmentCard)Tc.hands[ID].cards[i]); foreach (EquipmentCard EC in Tc.dzones[playerID].Equipment) { if (EC1.TypeOfEquipment == EC.TypeOfEquipment) { play = false; break; } } if (play == true) { PlayCard(i, Tc); } break; default: break; } } break; case 2: bool play2 = false; List <int> Equip = new List <int>(); for (int i = 0; i < Tc.hands[ID].cards.Count; i++) { if (Tc.hands[ID].cards[i].Type == "Equipment") { for (int j = i + 1; j < Tc.hands[ID].cards.Count; j++) { if (Tc.hands[ID].cards[j].Type == "Equipment") { if (((EquipmentCard)Tc.hands[ID].cards[i]).TypeOfEquipment == ((EquipmentCard)Tc.hands[ID].cards[j]).TypeOfEquipment) { Equip.Add(i); play2 = true; } } } } } if (play2 == true) { ExecutetPhase(Equip, Tc); } break; default: break; } }
public override void ExecuteTournament(List <GameObject> pl, int reward, TournementControler Tc) { TournamentBehavior(1, Tc); }
// //Universal Ai Helper Methods public void Join(TournementControler Tc, bool choice) { Tc.join(choice); }
public abstract void TournamentBehavior(int Case, TournementControler Tc);
public abstract void ExecuteTournament(List <GameObject> pl, int reward, TournementControler Tc);
// Tournament Start public override void JoinTournament(List <GameObject> pl, int reward, TournementControler Tc) { HandleTextFile.WriteLog("Action Log: AI Player " + (playerID + 1) + "Joins Tournament", GameControler.SName); Join(Tc, true); }
public override void TournamentBehavior(int Case, TournementControler Tc) { int TBP = this.BP; List <int> HIndex = new List <int>(); HandleTextFile.WriteLog("Action Log: AI Player " + (playerID + 1) + "Is Picking Cards To Play", GameControler.SName); for (int i = 0; i < Tc.hands[playerID].cards.Count; i++) { bool CanPlayCard = false; int TempBP = 0; Card tempCard = Tc.hands[playerID].cards[i]; switch (Tc.hands[playerID].cards[i].Type) { case "Foe": break; case "Ally": CanPlayCard = true; TempBP += ((AllyCard)tempCard).BattlePoints; PlayCard(i, Tc); break; case "Equipment": CanPlayCard = true; EquipmentCard TempEC = (EquipmentCard)tempCard; foreach (EquipmentCard EC in Tc.dzones[playerID].Equipment) { if (EC.TypeOfEquipment == TempEC.TypeOfEquipment) { CanPlayCard = false; break; } } if (CanPlayCard) { TempBP += TempEC.BattlePoints; PlayCard(i, Tc); } break; case "Amour": CanPlayCard = true; TempBP += 10; PlayCard(i, Tc); break; default: Debug.Log("I Can't Let you Do that Dave"); break; } if (CanPlayCard) { HIndex.Add(i); TBP += TempBP; } if (TBP > 50) { break; } } RemoveCards(HIndex, Tc); }