예제 #1
0
        private static CastValidity ComputeCastValidity(ICastableStatus status)
        {
            PrecomputedData precomputedData = status.GetDefinition()?.precomputedData;
            FightStatus     local           = FightStatus.local;

            if (precomputedData != null && local != null)
            {
                PlayerStatus     player           = local.GetLocalPlayer();
                HeroStatus       heroStatus       = player.heroStatus;
                WeaponDefinition weaponDefinition = (WeaponDefinition)heroStatus.definition;
                if (precomputedData.checkNumberOfSummonings)
                {
                    int num            = local.EnumerateEntities((SummoningStatus s) => s.ownerId == player.id).Count();
                    int valueWithLevel = weaponDefinition.maxSummoningsOnBoard.GetValueWithLevel(heroStatus.level);
                    if (num >= valueWithLevel)
                    {
                        return(CastValidity.TOO_MANY_SUMMONING);
                    }
                }
                if (precomputedData.checkNumberOfMechanisms)
                {
                    int num2            = local.EnumerateEntities((MechanismStatus s) => s.ownerId == player.id).Count();
                    int valueWithLevel2 = weaponDefinition.maxMechanismsOnBoard.GetValueWithLevel(heroStatus.level);
                    if (num2 >= valueWithLevel2)
                    {
                        return(CastValidity.TOO_MANY_MECHANISM);
                    }
                }
            }
            return(CastValidity.SUCCESS);
        }
예제 #2
0
        public override Tuple <int, int> GetRange()
        {
            ActionRange actionRange = (m_source.GetDefinition() as CharacterDefinition)?.actionRange;

            if (actionRange == null)
            {
                return(null);
            }
            return(new Tuple <int, int>(actionRange.min.GetValueWithLevel(base.level), actionRange.max.GetValueWithLevel(base.level)));
        }
예제 #3
0
 public CastableFightValueProvider([NotNull] ICastableStatus source)
     : base(source.GetDefinition().precomputedData.dynamicValueReferences, source.level)
 {
     m_source = source;
 }