コード例 #1
0
        public override bool IsValid(params ILegalPerson[] persons)
        {
            var legalPerson = GetSubjectPerson(persons);

            if (legalPerson == null)
            {
                AddReasonEntry($"{nameof(GetSubjectPerson)} returned nothing");
                return(false);
            }
            var lpTypeName = legalPerson.GetLegalPersonTypeName();

            if (Imminence != null && !Imminence.IsValid(persons))
            {
                AddReasonEntry($"{lpTypeName}, {legalPerson.Name}, {nameof(Imminence)} is false");
                AddReasonEntryRange(Imminence.GetReasonEntries());
                return(false);
            }
            if (Provocation != null && !Provocation.IsValid(persons))
            {
                AddReasonEntry($"{lpTypeName}, {legalPerson.Name}, {nameof(Provocation)} is false");
                AddReasonEntryRange(Provocation.GetReasonEntries());
                return(false);
            }
            if (Proportionality != null && !Proportionality.IsValid(persons))
            {
                AddReasonEntry($"{lpTypeName}, {legalPerson.Name}, {nameof(Proportionality)} is false");
                AddReasonEntryRange(Proportionality.GetReasonEntries());
                return(false);
            }
            AddReasonEntryRange(Imminence?.GetReasonEntries());
            AddReasonEntryRange(Provocation?.GetReasonEntries());
            AddReasonEntryRange(Proportionality?.GetReasonEntries());
            return(true);
        }
コード例 #2
0
    public void OnCast()
    {
        foreach (var ability in CC.Card.Abilities)
        {
            switch (ability)
            {
            case Card.AbilityType.INSTANT_ACTIVE:

                CC.Card.CanAttack = true;

                if (CC.IsPlayerCard)
                {
                    CC.Info.HighlightCard(true);
                }

                break;

            case Card.AbilityType.SHIELD:
                Shield.SetActive(true);
                break;

            case Card.AbilityType.PROVOCATION:
                Provocation.SetActive(true);
                break;
            }
        }
    }
コード例 #3
0
    public void OnCast()
    {
        foreach (var ability in CardController.Card.Abilities)
        {
            switch (ability)
            {
            case Card.abilityType.INSTANT_ACTIVE:
                CardController.Info.CanAttack = true;
                if (CardController.IsPlayerCard)
                {
                    CardController.Info.HighlightCard(true);
                }
                break;

            case Card.abilityType.HOLY_SHIELD:
                Shield.SetActive(true);
                break;

            case Card.abilityType.PROVOCATION:
                Provocation.SetActive(true);
                break;

            case Card.abilityType.DAMAGE_ON_CAST:
                Debug.Log("Damage on Cast");
                if (CardController.IsPlayerCard && GameManagerScr.Instance.EnemyFieldCards.Count > 0)
                {
                    for (int i = GameManagerScr.Instance.EnemyFieldCards.Count - 1; i < 0; i--)
                    {
                        Debug.Log("Damage to " + GameManagerScr.Instance.EnemyFieldCards[i].name);
                        CardController.GiveDamageTo(GameManagerScr.Instance.EnemyFieldCards[i], 2);
                    }
                }
                else if (!CardController.IsPlayerCard && GameManagerScr.Instance.PlayerFieldCards.Count > 0)
                {
                    for (int i = GameManagerScr.Instance.PlayerFieldCards.Count - 1; i < 0; i--)
                    {
                        Debug.Log("Damage to " + GameManagerScr.Instance.EnemyFieldCards[i].name);
                        CardController.GiveDamageTo(GameManagerScr.Instance.PlayerFieldCards[i], 2);
                    }
                }
                break;

            default: break;
            }
        }
    }
コード例 #4
0
 protected DefenseOfBase(Func <ILegalPerson[], ILegalPerson> getSubjectPerson) : base(getSubjectPerson)
 {
     Provocation     = new Provocation(GetSubjectPerson);
     Imminence       = new Imminence(GetSubjectPerson);
     Proportionality = new Proportionality <ITermCategory>(GetSubjectPerson);
 }