public FinishBattel Initialize(IBattel battel, Action <object> continueAct, IStatisticsBattele statistics) { var canvas = GetComponent <Canvas>(); canvas.worldCamera = Camera.main; canvas.sortingLayerName = "MainUI"; transform.SetAsLastSibling(); this.continueAct = continueAct; buttonContinue.onClick.AddListener(Continue); if (battel.Winner == TypePersonEnum.player) { DeclareVictory(battel, statistics); } else { DeclareDefeat(battel, statistics); } background.gameObject.SetActive(false); StartCoroutine(DisplayBackground()); return(this); }
private void DeclareDefeat(IBattel battel, IStatisticsBattele statistics) { imageTextBackground.color = colorDefeat; textMessages.SetKey("defeat"); statistics.DeclareDefeat(); textInfoResult.text = $"Victory: {statistics.CountVictory}, Defeat: {statistics.CountDefeat} , Series Victories: {statistics.CountSeriesVictories}"; }
public void Construct(IBattel battel, IUserData player, BattelFieldFactory battelFieldFactory, DeckBattleSelector.Factory factoriDeckBattleSelector, IAlTrainingBattel alTraining, ICardFactory <IAttackCard> cardFactory) { Initialize(battel, player, battelFieldFactory, cardFactory); (this.alTraining) = (alTraining); factoriDeckBattleSelector.Create().Build(transform, StartBattel); returnButton.transform.SetAsLastSibling(); }
public void NextTurn(IBattel battel) { switch (battel.CurrentBattelState) { case BattelStateEnum.starting_hand: CreatStarteHand(battel.Enemy); break; case BattelStateEnum.reserve: СommitReserve(battel.Enemy); break; case BattelStateEnum.tactics: СommitTactics(battel); break; } battel.ReportReadinessEnemy(); }
private void СommitTactics(IBattel battel) { var random = new System.Random(); var cards = new List <int>(); var priceHazard = new List <int>() { -1, -1, -1, -1 }; foreach (var item in battel.Enemy.AttackCards) { foreach (var playerCard in battel.Player.AttackCards) { if (playerCard.Warrior.Enemies.Count >= playerCard.Combat.MaxCountAttackers) { priceHazard[playerCard.Id] = -1; continue; } priceHazard[playerCard.Id] = random.Next(0, 1000); } int currentPrize = -1, currentIndex = -1; for (int i = 0; i < priceHazard.Count; i++) { if (priceHazard[i] > currentPrize) { currentPrize = priceHazard[i]; currentIndex = i; } } if (currentIndex >= 0) { battel.Player.AttackCards[currentIndex].Warrior.Enemies.Add(item.Warrior); } cards.Add(currentIndex); priceHazard.ForEach(x => x = -1); } battel.Enemy.Report = JsonConvert.SerializeObject(cards); }
protected BaseBattel Initialize(IBattel battel, IUserData player, BattelFieldFactory battelFieldFactory, ICardFactory <IAttackCard> cardFactory) { (this.Battel, this.UserData, this.battelFieldFactory, this.cardFactory) = (battel, player, battelFieldFactory, cardFactory); returnButton.SetListener(OnLeaveBattle); buttonFinishBattel.SetListener(OnLeaveBattle); buttonNextTurn.SetListener(NextTurn); buttonFinishBattel.gameObject.SetActive(false); buttonNextTurn.gameObject.SetActive(false); battel.InteractableButtonNextTurn += SetInteractableButtonNextTurn; battel.NextTurn += NextTurn; battel.FinishBattel += FinishBattel; return(this); }
public BattelDataPanel Initialize(IBattel battel) { this.battel = battel; resetCardsCounterUI.Initiate(battel.CardResetCounter as ICardResetCounterUI); var canvas = GetComponent <Canvas>(); canvas.worldCamera = Camera.main; canvas.sortingLayerName = "MainUI"; countRound.text = "0"; battel.AssignBattelState += AssignBattelState; battel.BattelSpecific.SetRounds += SetCountRound; battel.BattelSpecific.SetCardResetCounter += SetCardResetCounter; AssignBattelState(BattelStateEnum.starting_hand); return(this); }
public static CommonBattelScene CreatPrefab(IBattel battelData, IUserData player, BattelFieldFactory battelFieldFactory, ICardFactory <IAttackCard> cardFactory) => (Instantiate(Resources.Load <CommonBattelScene>($"BattleScene/CommonBattelScene")).Initialize(battelData, player, battelFieldFactory, cardFactory) as CommonBattelScene) .Build();
[HideInInspector] public bool isEnemyCameOut = false; // Враг вышел из боя(досрочно) Ему будет засчитано поражение(если isStartBattel = true) public static RatingBattelScene CreatPrefab(IBattel battelData, IUserData player, DeckBattleSelector deckBattleSelector, BattelFieldFactory battelFieldFactory, ICardFactory <IAttackCard> cardFactory) => (Instantiate(Resources.Load <RatingBattelScene>($"BattleScene/RatingBattelScene")).Initialize(battelData, player, battelFieldFactory, cardFactory) as RatingBattelScene) .Build(deckBattleSelector);