Пример #1
0
        public override void OnCardSelected(BoardUnit unit)
        {
            if (TutorialManager.IsTutorial && TutorialManager.CurrentTutorialDataStep.BoardArrowCantUsableOnUnit)
            {
                return;
            }

            if (IgnoreBoardObjectsList != null && IgnoreBoardObjectsList.Contains(unit))
            {
                return;
            }

            if (unit.CurrentHp <= 0)
            {
                return;
            }

            if (ElementType.Count > 0 && !ElementType.Contains(unit.Card.LibraryCard.CardSetType))
            {
                return;
            }

            if (TargetsType.Contains(Enumerators.SkillTargetType.ALL_CARDS) ||
                TargetsType.Contains(Enumerators.SkillTargetType.PLAYER_CARD) &&
                unit.Transform.CompareTag("PlayerOwned") ||
                TargetsType.Contains(Enumerators.SkillTargetType.OPPONENT_CARD) &&
                unit.Transform.CompareTag("OpponentOwned"))
            {
                bool opponentHasProvoke = OpponentBoardContainsProvokingCreatures();
                if (!opponentHasProvoke || opponentHasProvoke && unit.IsHeavyUnit() || IgnoreHeavy)
                {
                    SelectedCard?.SetSelectedUnit(false);

                    SelectedCard = unit;
                    SelectedPlayer?.SetGlowStatus(false);

                    SelectedPlayer = null;
                    SelectedCard.SetSelectedUnit(true);
                }
            }
        }
Пример #2
0
 public void RunScenario(ISpecElement element, object context, string columnseperator, bool includeStoryGivens)
 {
     try
     {
         if (element.Type != ElementType.Scenario) return;
         if (includeStoryGivens)
         {
             foreach (var x in element.Parent.Children.Where(e => e.Type == ElementType.Given))
                 RunStep(x, context, columnseperator);
         }
         var els = new ElementType[] { ElementType.GivenIdid, ElementType.Given, ElementType.When, ElementType.Then };
         foreach (var x in element.Children.Where(e => els.Contains(e.Type)))
              RunStep(x, context, columnseperator);
         element.Status = true;
     }
     catch (Exception ex)
     {
         element.Status = null;
         while (ex.InnerException != null)
             ex = ex.InnerException;
         element.StatusInfo = ex.GetType().Name + ":" + ex.Message;
     }
 }