public override bool GetValue(DynamicValueContext context, out int value)
        {
            AssembledEntityContext assembledEntityContext = context as AssembledEntityContext;

            if (assembledEntityContext == null)
            {
                value = 0;
                return(false);
            }
            int num = 0;
            IReadOnlyList <int> assemblingIds = assembledEntityContext.assembling.assemblingIds;
            FightStatus         fightStatus   = assembledEntityContext.fightStatus;
            int i = 0;

            for (int count = assemblingIds.Count; i < count; i++)
            {
                if (fightStatus.TryGetEntity(assemblingIds[i], out FloorMechanismStatus entityStatus))
                {
                    int?activationValue = entityStatus.activationValue;
                    if (activationValue.HasValue)
                    {
                        num += activationValue.Value;
                    }
                }
            }
            value = num;
            return(true);
        }
Пример #2
0
        public IEnumerable <IEntity> Filter(IEnumerable <IEntity> entities, DynamicValueContext context)
        {
            List <Area> areas = ListPool <Area> .Get();

            areas.AddRange(ZoneAreaFilterUtils.TargetsToCompareAreaList(targetsToCompare, context));
            int areaCount = areas.Count;

            foreach (IEntity entity in entities)
            {
                IEntityWithBoardPresence entityWithBoardPresence = entity as IEntityWithBoardPresence;
                if (entityWithBoardPresence != null)
                {
                    for (int i = 0; i < areaCount; i++)
                    {
                        Area other = areas[i];
                        if (distance.Matches(entityWithBoardPresence.area.MinDistanceWith(other), context) && entityWithBoardPresence.area.IsAlignedWith(other))
                        {
                            yield return(entity);

                            break;
                        }
                    }
                }
            }
            ListPool <Area> .Release(areas);
        }
Пример #3
0
        public void PreComputeDelayOverDistance([NotNull] DynamicValueContext castTargetContext)
        {
            //IL_002c: Unknown result type (might be due to invalid IL or missing references)
            //IL_0031: Unknown result type (might be due to invalid IL or missing references)
            //IL_0059: Unknown result type (might be due to invalid IL or missing references)
            //IL_005e: Unknown result type (might be due to invalid IL or missing references)
            if (m_delayOverDistance == null)
            {
                return;
            }
            ISingleTargetSelector origin = m_delayOverDistance.origin;
            ISingleCoordSelector  singleCoordSelector = origin as ISingleCoordSelector;

            if (singleCoordSelector != null && singleCoordSelector.TryGetCoord(castTargetContext, out Coord coord))
            {
                m_delayOverDistanceOrigin = (Vector2Int)coord;
                return;
            }
            ISingleEntitySelector singleEntitySelector = origin as ISingleEntitySelector;

            if (singleEntitySelector != null && singleEntitySelector.TryGetEntity(castTargetContext, out IEntityWithBoardPresence entity))
            {
                m_delayOverDistanceOrigin = entity.view.cellObject.coords;
            }
            else
            {
                Log.Warning("Could not find the origin for the delay over distance.", 115, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Data\\Spells\\SpellEffectInstantiationData.cs");
            }
        }
Пример #4
0
        public override bool GetValue(DynamicValueContext context, out int value)
        {
            int level = context?.level ?? 1;

            value = GetValue(level);
            return(true);
        }
 public IEnumerable <IEntity> EnumerateEntities(DynamicValueContext context)
 {
     if (TryGetEntity(context, out IEntity entity))
     {
         yield return(entity);
     }
 }
Пример #6
0
        public override bool IsValid(DynamicValueContext context)
        {
            int value = 0;

            this.value.GetValue(context, out value);
            return(evaluator.Matches(value, context));
        }
Пример #7
0
        private Coord?TryGetCoord(ISingleTargetSelector selector, DynamicValueContext context)
        {
            //IL_001b: Unknown result type (might be due to invalid IL or missing references)
            ISingleEntitySelector singleEntitySelector = selector as ISingleEntitySelector;

            if (singleEntitySelector != null)
            {
                if (singleEntitySelector.TryGetEntity(context, out IEntityWithBoardPresence entity))
                {
                    return(new Coord(entity.area.refCoord));
                }
                return(null);
            }
            ISingleCoordSelector singleCoordSelector = selector as ISingleCoordSelector;

            if (singleCoordSelector != null)
            {
                if (singleCoordSelector.TryGetCoord(context, out Coord coord))
                {
                    return(coord);
                }
                return(null);
            }
            return(null);
        }
 public IEnumerable <Coord> EnumerateCoords(DynamicValueContext context)
 {
     if (TryGetCoord(context, out Coord coord))
     {
         yield return(coord);
     }
 }
Пример #9
0
		public IEnumerable<Coord> Filter(IEnumerable<Coord> coords, DynamicValueContext context)
		{
			if (ZoneAreaFilterUtils.SingleTargetToCompareArea(refDirectionTargetA, context, out Area area) && ZoneAreaFilterUtils.SingleTargetToCompareArea(refDirectionTargetB, context, out Area area2))
			{
				Direction? dirOpt = area.refCoord.GetStrictDirection4To(area2.refCoord);
				if (dirOpt.HasValue)
				{
					List<Area> applyAreas = ListPool<Area>.Get();
					applyAreas.AddRange(ZoneAreaFilterUtils.TargetsToCompareAreaList(applyStartTargets, context));
					int applyAreaCount = applyAreas.Count;
					foreach (Coord coord in coords)
					{
						Vector2Int val = default(Vector2Int);
						val._002Ector(coord.x, coord.y);
						for (int i = 0; i < applyAreaCount; i++)
						{
							Area area3 = applyAreas[i];
							if (distance.Matches(area3.MinDistanceWith(val), context) && area3.IsAlignedWith(val) && area3.GetStrictDirection4To(val) == dirOpt)
							{
								yield return coord;
								break;
							}
						}
					}
					ListPool<Area>.Release(applyAreas);
				}
			}
		}
Пример #10
0
		public IEnumerable<IEntity> Filter(IEnumerable<IEntity> entities, DynamicValueContext context)
		{
			if (ZoneAreaFilterUtils.SingleTargetToCompareArea(refDirectionTargetA, context, out Area area) && ZoneAreaFilterUtils.SingleTargetToCompareArea(refDirectionTargetB, context, out Area area2))
			{
				Direction? dirOpt = area.refCoord.GetStrictDirection4To(area2.refCoord);
				if (dirOpt.HasValue)
				{
					List<Area> applyAreas = ListPool<Area>.Get();
					applyAreas.AddRange(ZoneAreaFilterUtils.TargetsToCompareAreaList(applyStartTargets, context));
					int applyAreaCount = applyAreas.Count;
					foreach (IEntity entity in entities)
					{
						IEntityWithBoardPresence entityWithBoardPresence = entity as IEntityWithBoardPresence;
						if (entityWithBoardPresence != null)
						{
							for (int i = 0; i < applyAreaCount; i++)
							{
								Area area3 = applyAreas[i];
								if (distance.Matches(entityWithBoardPresence.area.MinDistanceWith(area3), context) && entityWithBoardPresence.area.IsAlignedWith(area3) && area3.GetStrictDirection4To(entityWithBoardPresence.area) == dirOpt)
								{
									yield return entity;
									break;
								}
							}
						}
					}
					ListPool<Area>.Release(applyAreas);
				}
			}
		}
 public bool TryGetEntity <T>(DynamicValueContext context, out T entity) where T : class, IEntity
 {
     if (context.type == DynamicValueHolderType.CharacterAction)
     {
         CharacterActionValueContext characterActionValueContext = context as CharacterActionValueContext;
         if (characterActionValueContext != null)
         {
             T val = characterActionValueContext.relatedCharacterStatus as T;
             if (val != null)
             {
                 entity = val;
                 return(true);
             }
         }
         else
         {
             Log.Error("Cannot use ApplicationHolder when cast target context is " + context.GetType().Name + ".", 26, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Data\\TargetSelectors\\ApplicationHolderSelector.cs");
         }
     }
     else
     {
         Log.Error($"Cannot use ApplicationHolder when cast object type is {context.type} ({context.GetType().Name}).", 31, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Data\\TargetSelectors\\ApplicationHolderSelector.cs");
     }
     entity = null;
     return(false);
 }
        public override bool GetValue(DynamicValueContext context, out int value)
        {
            int num = context?.level ?? 1;

            value = (int)Math.Round((float)baseValue + (float)num * factor);
            return(true);
        }
 public IEnumerable <Target> EnumerateTargets(DynamicValueContext context)
 {
     foreach (Coord item in EnumerateCoords(context))
     {
         yield return(new Target(item));
     }
 }
Пример #14
0
 public override bool IsValid(DynamicValueContext context)
 {
     if (!selector.TryGetEntity(context, out EntityStatus entity))
     {
         return(false);
     }
     return(PropertiesFilter.ValidateCondition(entity, m_comparison, m_properties));
 }
Пример #15
0
 public override bool GetValue(DynamicValueContext context, out int value)
 {
     if (m_condition.IsValid(context))
     {
         return(m_ifTrue.GetValue(context, out value));
     }
     return(m_ifFalse.GetValue(context, out value));
 }
Пример #16
0
 public override bool IsValid(DynamicValueContext context)
 {
     if (selector.TryGetEntity(context, out IEntityWithLife entity))
     {
         return(entity.life * 100 / entity.baseLife < RuntimeData.constantsDefinition.agonyThreshold);
     }
     return(false);
 }
 public override bool IsValid(DynamicValueContext context)
 {
     return(selector.EnumerateEntities(context).All(delegate(IEntity e)
     {
         IEntityWithElementaryState entityWithElementaryState = e as IEntityWithElementaryState;
         return (entityWithElementaryState != null && entityWithElementaryState.HasElementaryState(elementaryState)) ? true : false;
     }));
 }
 protected override CastValidity InternalCheckValidity(PlayerStatus status, DynamicValueContext castTargetContext)
 {
     if (status.reservePoints > 0)
     {
         return(CastValidity.SUCCESS);
     }
     return(CastValidity.NOT_ENOUGH_RESERVE_POINTS);
 }
Пример #19
0
        public override bool ToString(DynamicValueContext context, out string value)
        {
            int  value2;
            bool value3 = GetValue(context, out value2);

            value = value2.ToString();
            return(value3);
        }
Пример #20
0
        public override bool GetValue(DynamicValueContext context, out int value)
        {
            int  value2;
            bool value3 = m_valueToNeg.GetValue(context, out value2);

            value = -value2;
            return(value3);
        }
Пример #21
0
 protected override CastValidity InternalCheckValidity(PlayerStatus status, DynamicValueContext castTargetContext)
 {
     this.value.GetValue(castTargetContext, out int value);
     if (status.GetCarac(CaracId.ReservePoints) >= value)
     {
         return(CastValidity.SUCCESS);
     }
     return(CastValidity.NOT_ENOUGH_RESERVE_POINTS);
 }
        public IEnumerable <IEntity> Filter(IEnumerable <IEntity> entities, DynamicValueContext context)
        {
            IEntity[]      array = entities.ToArray();
            List <IEntity> list  = new List <IEntity>();

            switch (m_superlative)
            {
            case Superlative.Biggest:
            {
                int       num2   = int.MinValue;
                IEntity[] array2 = array;
                foreach (IEntity entity2 in array2)
                {
                    int carac2 = entity2.GetCarac(this.carac);
                    if (carac2 >= num2)
                    {
                        if (carac2 == num2)
                        {
                            list.Add(entity2);
                            continue;
                        }
                        list.Clear();
                        list.Add(entity2);
                        num2 = carac2;
                    }
                }
                break;
            }

            case Superlative.Smallest:
            {
                int       num    = int.MaxValue;
                IEntity[] array2 = array;
                foreach (IEntity entity in array2)
                {
                    int carac = entity.GetCarac(this.carac);
                    if (carac <= num)
                    {
                        if (carac == num)
                        {
                            list.Add(entity);
                            continue;
                        }
                        list.Clear();
                        list.Add(entity);
                        num = carac;
                    }
                }
                break;
            }

            default:
                Debug.LogError((object)"Unknown Superlative: {m_superlative");
                break;
            }
            return(list);
        }
Пример #23
0
 protected override CastValidity InternalCheckValidity(PlayerStatus status, DynamicValueContext castTargetContext)
 {
     this.value.GetValue(castTargetContext, out int value);
     if (status.GetCarac(element) >= value)
     {
         return(CastValidity.SUCCESS);
     }
     return(CastValidity.NOT_ENOUGH_ELEMENT_POINTS);
 }
 public IEnumerable <IEntity> Filter(IEnumerable <IEntity> entities, DynamicValueContext context)
 {
     foreach (IEntity entity in entities)
     {
         if (ValidFor(entity))
         {
             yield return(entity);
         }
     }
 }
 public IEnumerable <IEntity> Filter(IEnumerable <IEntity> entities, DynamicValueContext context)
 {
     foreach (IEntity entity in entities)
     {
         if (entity is SummoningStatus)
         {
             yield return(entity);
         }
     }
 }
Пример #26
0
 public IEnumerable <IEntity> Filter(IEnumerable <IEntity> entities, DynamicValueContext context)
 {
     foreach (IEntity entity in entities)
     {
         if (entity.HasProperty(m_property))
         {
             yield return(entity);
         }
     }
 }
Пример #27
0
        public IEnumerable <Target> EnumerateTargets(DynamicValueContext context)
        {
            ISelectorForCast selectorForCast = m_condition.IsValid(context) ? m_selectorIfTrue : m_selectorIfFalse;

            if (selectorForCast == null)
            {
                return(Empty());
            }
            return(selectorForCast.EnumerateTargets(context));
        }
Пример #28
0
 public override bool Matches(int value, DynamicValueContext context)
 {
     minIncluded.GetValue(context, out int value2);
     maxIncluded.GetValue(context, out int value3);
     if (value2 <= value)
     {
         return(value3 >= value);
     }
     return(false);
 }
Пример #29
0
        public IEnumerable <IEntity> Filter(IEnumerable <IEntity> entities, DynamicValueContext context)
        {
            int i = 0;

            for (int count = m_filters.Count; i < count; i++)
            {
                entities = m_filters[i].Filter(entities, context);
            }
            return(entities);
        }
Пример #30
0
        public override IEnumerable <IEntity> EnumerateEntities(DynamicValueContext context)
        {
            DynamicValueFightContext dynamicValueFightContext = context as DynamicValueFightContext;

            if (dynamicValueFightContext == null)
            {
                return(Enumerable.Empty <IEntity>());
            }
            return(dynamicValueFightContext.fightStatus.EnumerateEntities());
        }