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); } } }
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; } }