public void NewState( List <Card> PlayerTable, List <Card> AIHand, List <Card> AITable, Player _PlayerHero, Player _AIHero, int _MaxMana, int _PlayerMana, int _AIMana, Complete.GameManager.Turn _Turn, AIState Parent ) { ParentState = Parent; if (ParentState == null) { Index = 0; } else { Index = ParentState.Index + 1; Actions = new Queue <Action>(ParentState.Actions); } PlayerTableCards = CardListCopier.DeepCopy(PlayerTable); PlayerHero = _PlayerHero.Clone() as Player; AIHandCards = CardListCopier.DeepCopy(AIHand); AITableCards = CardListCopier.DeepCopy(AITable); AIHero = _AIHero.Clone() as Player; maxMana = _MaxMana; PlayerMana = _PlayerMana; AIMana = _AIMana; turn = _Turn; State_Score = Calculate_State_Score(); //if (Index <= BoardBehaviourScript.instance.AILEVEL) //{ // GetAllPlacingAction(); // GetAllAttackingActions(); //} AllStates.Add(this); }
public void NewState2( List <GameObject> PlayerTable, List <GameObject> AIHand, List <GameObject> AITable, Player _PlayerHero, Player _AIHero, int _MaxMana, int _PlayerMana, int _AIMana, Complete.GameManager.Turn _Turn, AIState Parent ) { ParentState = Parent; if (ParentState == null) { Index = 0; } else { Index = ParentState.Index + 1; Actions = new Queue <Action>(ParentState.Actions); } List <Card> _tempPlayerTable = new List <Card>(); foreach (var item in PlayerTable) { _tempPlayerTable.Add(item.GetComponent <CardDisplay>().card); } PlayerTableCards = CardListCopier.DeepCopy(_tempPlayerTable); PlayerHero = _PlayerHero.Clone() as Player; List <Card> _tempAIHand = new List <Card>(); foreach (var item in AIHand) { _tempAIHand.Add(item.GetComponent <CardDisplay>().card); } AIHandCards = CardListCopier.DeepCopy(_tempAIHand); List <Card> _tempAITable = new List <Card>(); foreach (var item in AITable) { _tempAITable.Add(item.GetComponent <CardDisplay>().card); } AITableCards = CardListCopier.DeepCopy(_tempAITable); AIHero = _AIHero.Clone() as Player; maxMana = _MaxMana; PlayerMana = _PlayerMana; AIMana = _AIMana; turn = _Turn; State_Score = Calculate_State_Score(); //if (Index<=BoardBehaviourScript.instance.AILEVEL) //{ // GetAllPlacingAction(); // GetAllAttackingActions(); //} AllStates.Add(this); }