public static IEnumerator PlayGenericEffect(SpellEffectKey key, int fightId, int?parentEventId, [NotNull] IsoObject target, [CanBeNull] FightContext fightContext)
        {
            if (s_spellEffectCache == null || s_currentSpellEffectOverrideData == null)
            {
                Log.Error("PlayGenericEffect called while the factory is not ready.", 290, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\FightSpellEffectFactory.cs");
            }
            else
            {
                if (((!parentEventId.HasValue || !s_currentSpellEffectOverrideData[fightId].TryGetSpellEffectOverride(key, parentEventId.Value, out SpellEffect value)) && !s_spellEffectCache.TryGetValue(key, out value)) || null == value)
                {
                    yield break;
                }
                CellObject cellObject = target.cellObject;
                if (null == cellObject)
                {
                    Log.Warning($"Tried to play generic effect {key} on target named {target.get_name()} ({((object)target).GetType().Name}) but the target is no longer on the board.", 313, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\FightSpellEffectFactory.cs");
                    yield break;
                }
                Transform  transform = cellObject.get_transform();
                Quaternion rotation  = Quaternion.get_identity();
                Vector3    scale     = Vector3.get_one();
                ITimelineContextProvider timelineContextProvider = target as ITimelineContextProvider;
                switch (value.orientationMethod)
                {
                case SpellEffect.OrientationMethod.None:
                {
                    CameraHandler current = CameraHandler.current;
                    if (null != current)
                    {
                        rotation = current.mapRotation.GetInverseRotation();
                    }
                    break;
                }

                case SpellEffect.OrientationMethod.Context:
                {
                    VisualEffectContext visualEffectContext;
                    if (timelineContextProvider != null && (visualEffectContext = (timelineContextProvider.GetTimelineContext() as VisualEffectContext)) != null)
                    {
                        visualEffectContext.GetVisualEffectTransformation(out rotation, out scale);
                    }
                    break;
                }

                case SpellEffect.OrientationMethod.SpellEffectTarget:
                    Log.Warning($"Spell effect named '{value.get_name()}' orientation method is {SpellEffect.OrientationMethod.SpellEffectTarget} but is not played from a spell.", 346, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\FightSpellEffectFactory.cs");
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                yield return(PlaySpellEffect(value, transform, rotation, scale, 0f, fightContext, timelineContextProvider));
            }
        }
        public static IEnumerator PlaySpellEffect([NotNull] SpellEffect spellEffect, Vector2Int coords, [NotNull] SpellEffectInstantiationData instantiationData, [NotNull] CastTargetContext castTargetContext)
        {
            //IL_000e: Unknown result type (might be due to invalid IL or missing references)
            //IL_000f: Unknown result type (might be due to invalid IL or missing references)
            if (!FightMap.current.TryGetCellObject(coords.get_x(), coords.get_y(), out CellObject cellObject))
            {
                yield break;
            }
            Transform                transform = cellObject.get_transform();
            FightContext             context   = castTargetContext.fightStatus.context;
            ITimelineContextProvider timelineContextProvider = null;
            Quaternion               rotation = Quaternion.get_identity();
            Vector3 scale = Vector3.get_one();

            switch (spellEffect.orientationMethod)
            {
            case SpellEffect.OrientationMethod.None:
            {
                CameraHandler current = CameraHandler.current;
                if (null != current)
                {
                    rotation = current.mapRotation.GetInverseRotation();
                }
                break;
            }

            case SpellEffect.OrientationMethod.Context:
                if (cellObject.TryGetIsoObject(out CharacterObject isoObject))
                {
                    timelineContextProvider = isoObject;
                    VisualEffectContext visualEffectContext;
                    if ((visualEffectContext = (timelineContextProvider.GetTimelineContext() as VisualEffectContext)) != null)
                    {
                        visualEffectContext.GetVisualEffectTransformation(out rotation, out scale);
                    }
                }
                else
                {
                    Log.Warning($"Spell effect named '{spellEffect.get_name()}' orientation method is {SpellEffect.OrientationMethod.Context} but context provider could not be found.", 426, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\FightSpellEffectFactory.cs");
                }
                break;

            case SpellEffect.OrientationMethod.SpellEffectTarget:
                rotation = instantiationData.GetOrientation(coords, castTargetContext);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            float delayOverDistance = instantiationData.GetDelayOverDistance(coords);

            yield return(PlaySpellEffect(spellEffect, transform, rotation, scale, delayOverDistance, context, timelineContextProvider));
        }
        public static T GetContext <T>(PlayableGraph graph) where T : class, ITimelineContext
        {
            //IL_0013: Unknown result type (might be due to invalid IL or missing references)
            PropertyName val = default(PropertyName);

            val._002Ector("context");
            bool flag = default(bool);
            ITimelineContextProvider timelineContextProvider = graph.GetResolver().GetReferenceValue(val, ref flag) as ITimelineContextProvider;

            if (timelineContextProvider == null)
            {
                return(null);
            }
            return(timelineContextProvider.GetTimelineContext() as T);
        }
        public static IEnumerator PlaySpellEffect([NotNull] SpellEffect spellEffect, [NotNull] IsoObject view, [NotNull] SpellEffectInstantiationData instantiationData, [NotNull] CastTargetContext castTargetContext)
        {
            CellObject cellObject = view.cellObject;

            if (null == cellObject)
            {
                Log.Warning("Tried to play spell effect " + spellEffect.get_name() + " on target named " + view.get_name() + " (" + ((object)view).GetType().Name + ") but the target is no longer on the board.", 449, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\FightSpellEffectFactory.cs");
                yield break;
            }
            Transform                transform = cellObject.get_transform();
            FightContext             context   = castTargetContext.fightStatus.context;
            ITimelineContextProvider timelineContextProvider = view as ITimelineContextProvider;
            Quaternion               rotation = Quaternion.get_identity();
            Vector3 scale = Vector3.get_one();

            switch (spellEffect.orientationMethod)
            {
            case SpellEffect.OrientationMethod.None:
            {
                CameraHandler current = CameraHandler.current;
                if (null != current)
                {
                    rotation = current.mapRotation.GetInverseRotation();
                }
                break;
            }

            case SpellEffect.OrientationMethod.Context:
            {
                VisualEffectContext visualEffectContext;
                if (timelineContextProvider != null && (visualEffectContext = (timelineContextProvider.GetTimelineContext() as VisualEffectContext)) != null)
                {
                    visualEffectContext.GetVisualEffectTransformation(out rotation, out scale);
                }
                break;
            }

            case SpellEffect.OrientationMethod.SpellEffectTarget:
                rotation = instantiationData.GetOrientation(cellObject.coords, castTargetContext);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            float delayOverDistance = instantiationData.GetDelayOverDistance(cellObject.coords);

            yield return(PlaySpellEffect(spellEffect, transform, rotation, scale, delayOverDistance, context, timelineContextProvider));
        }
예제 #5
0
        public VisualEffect InstantiateMainEffect([NotNull] Transform parent, [CanBeNull] ITimelineContextProvider contextProvider)
        {
            //IL_003e: Unknown result type (might be due to invalid IL or missing references)
            //IL_0044: Unknown result type (might be due to invalid IL or missing references)
            //IL_0049: Unknown result type (might be due to invalid IL or missing references)
            //IL_004e: Unknown result type (might be due to invalid IL or missing references)
            //IL_004f: Unknown result type (might be due to invalid IL or missing references)
            //IL_0054: Unknown result type (might be due to invalid IL or missing references)
            //IL_006d: Unknown result type (might be due to invalid IL or missing references)
            //IL_0072: Unknown result type (might be due to invalid IL or missing references)
            //IL_0074: Unknown result type (might be due to invalid IL or missing references)
            //IL_0079: Unknown result type (might be due to invalid IL or missing references)
            //IL_0084: Unknown result type (might be due to invalid IL or missing references)
            //IL_008d: Unknown result type (might be due to invalid IL or missing references)
            //IL_008e: Unknown result type (might be due to invalid IL or missing references)
            //IL_008f: Unknown result type (might be due to invalid IL or missing references)
            EffectData   mainEffect   = m_mainEffect;
            VisualEffect visualEffect = mainEffect.visualEffect;

            if (null == visualEffect)
            {
                Log.Warning("Tried to instantiate attachable effect named '" + this.get_name() + "' without a visual effect setup.", 163, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Data\\Animations\\AttachableEffect.cs");
                return(null);
            }
            Vector3       position = parent.get_position() + mainEffect.positionOffset;
            Quaternion    rotation = Quaternion.get_identity();
            CameraHandler current  = CameraHandler.current;

            if (null != current)
            {
                rotation = current.mapRotation.GetInverseRotation();
            }
            AudioReferenceWithParameters sound = mainEffect.sound;

            if (sound.get_isValid())
            {
                AudioManager.PlayOneShot(sound, parent);
            }
            VisualEffect visualEffect2 = VisualEffectFactory.Instantiate(visualEffect, position, rotation, Vector3.get_one(), parent);

            visualEffect2.destructionOverride = OnMainEffectInstanceDestructionRequest;
            return(visualEffect2);
        }
예제 #6
0
        public VisualEffect InstantiateStopEffect([NotNull] Transform parent, [CanBeNull] ITimelineContextProvider contextProvider)
        {
            //IL_001a: Unknown result type (might be due to invalid IL or missing references)
            //IL_0020: Unknown result type (might be due to invalid IL or missing references)
            //IL_0025: Unknown result type (might be due to invalid IL or missing references)
            //IL_002a: Unknown result type (might be due to invalid IL or missing references)
            //IL_002b: Unknown result type (might be due to invalid IL or missing references)
            //IL_0030: Unknown result type (might be due to invalid IL or missing references)
            //IL_0049: Unknown result type (might be due to invalid IL or missing references)
            //IL_004e: Unknown result type (might be due to invalid IL or missing references)
            //IL_0050: Unknown result type (might be due to invalid IL or missing references)
            //IL_0055: Unknown result type (might be due to invalid IL or missing references)
            //IL_0060: Unknown result type (might be due to invalid IL or missing references)
            //IL_0069: Unknown result type (might be due to invalid IL or missing references)
            //IL_006a: Unknown result type (might be due to invalid IL or missing references)
            //IL_006b: Unknown result type (might be due to invalid IL or missing references)
            EffectData   stopEffect   = m_stopEffect;
            VisualEffect visualEffect = stopEffect.visualEffect;

            if (null == visualEffect)
            {
                return(null);
            }
            Vector3       position = parent.get_position() + stopEffect.positionOffset;
            Quaternion    rotation = Quaternion.get_identity();
            CameraHandler current  = CameraHandler.current;

            if (null != current)
            {
                rotation = current.mapRotation.GetInverseRotation();
            }
            AudioReferenceWithParameters sound = stopEffect.sound;

            if (sound.get_isValid())
            {
                AudioManager.PlayOneShot(sound, parent);
            }
            VisualEffect visualEffect2 = VisualEffectFactory.Instantiate(visualEffect, position, rotation, Vector3.get_one(), parent);

            visualEffect2.destructionOverride = OnStopEffectInstanceDestructionRequest;
            return(visualEffect2);
        }
예제 #7
0
        public override Component Instantiate(Transform parent, ITimelineContextProvider contextProvider)
        {
            //IL_00ae: Unknown result type (might be due to invalid IL or missing references)
            if (null == m_animatedObjectDefinition)
            {
                Log.Warning("Tried to instantiate animated object character effect named '" + this.get_name() + "' without an animated object definition setup.", 90, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Data\\Animations\\AnimatedObjectCharacterEffect.cs");
                return(null);
            }
            string animationName;

            if (!string.IsNullOrEmpty(m_animationName))
            {
                if (m_appendDirectionSuffix && contextProvider != null)
                {
                    Direction direction = Direction.None;
                    CharacterObjectContext characterObjectContext = contextProvider.GetTimelineContext() as CharacterObjectContext;
                    if (characterObjectContext != null)
                    {
                        CharacterObject characterObject = characterObjectContext.characterObject;
                        if (null != characterObject)
                        {
                            direction = characterObject.direction;
                        }
                    }
                    animationName = ((direction != Direction.None) ? (m_animationName + (int)direction) : m_animationName);
                }
                else
                {
                    animationName = m_animationName;
                }
            }
            else
            {
                animationName = string.Empty;
            }
            if (m_sound.get_isValid())
            {
                AudioManager.PlayOneShot(m_sound, parent);
            }
            return(FightObjectFactory.CreateAnimatedObjectEffectInstance(m_animatedObjectDefinition, animationName, parent));
        }
        public override Component Instantiate(Transform parent, ITimelineContextProvider contextProvider)
        {
            //IL_0031: Unknown result type (might be due to invalid IL or missing references)
            //IL_0036: Unknown result type (might be due to invalid IL or missing references)
            //IL_0037: Unknown result type (might be due to invalid IL or missing references)
            //IL_003c: Unknown result type (might be due to invalid IL or missing references)
            //IL_0060: Unknown result type (might be due to invalid IL or missing references)
            //IL_0061: Unknown result type (might be due to invalid IL or missing references)
            if (null == m_timelineAsset)
            {
                Log.Warning("Tried to instantiate timeline asset character effect named '" + this.get_name() + "' without a timeline asset setup.", 44, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Data\\Animations\\TimelineAssetCharacterEffect.cs");
                return(null);
            }
            Quaternion          rotation = Quaternion.get_identity();
            Vector3             scale    = Vector3.get_one();
            VisualEffectContext visualEffectContext;

            if (contextProvider != null && (visualEffectContext = (contextProvider.GetTimelineContext() as VisualEffectContext)) != null)
            {
                visualEffectContext.GetVisualEffectTransformation(out rotation, out scale);
            }
            return(FightObjectFactory.CreateTimelineAssetEffectInstance(m_timelineAsset, parent, rotation, scale, null, contextProvider));
        }
예제 #9
0
        public override Component Instantiate(Transform parent, Quaternion rotation, Vector3 scale, FightContext fightContext, ITimelineContextProvider contextProvider)
        {
            //IL_0032: Unknown result type (might be due to invalid IL or missing references)
            //IL_0038: Unknown result type (might be due to invalid IL or missing references)
            //IL_003d: Unknown result type (might be due to invalid IL or missing references)
            //IL_0042: Unknown result type (might be due to invalid IL or missing references)
            //IL_0051: Unknown result type (might be due to invalid IL or missing references)
            //IL_0062: Unknown result type (might be due to invalid IL or missing references)
            //IL_0063: Unknown result type (might be due to invalid IL or missing references)
            //IL_0064: Unknown result type (might be due to invalid IL or missing references)
            if (null == m_visualEffect)
            {
                Log.Warning("Tried to instantiate visual character effect named '" + this.get_name() + "' without a visual effect setup.", 84, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Data\\Animations\\VisualSpellEffect.cs");
                return(null);
            }
            Vector3 position = parent.get_position() + m_positionOffset;

            if (m_sound.get_isValid())
            {
                AudioManager.PlayOneShot(m_sound, parent);
            }
            VisualEffect visualEffect = VisualEffectFactory.Instantiate(m_visualEffect, position, rotation, scale, parent);

            visualEffect.destructionOverride = OnInstanceDestructionRequest;
            return(visualEffect);
        }
예제 #10
0
        public static PlayableDirector CreateTimelineAssetEffectInstance([NotNull] TimelineAsset timelineAsset, [NotNull] Transform parent, Quaternion rotation, Vector3 scale, [CanBeNull] FightContext fightContext, [CanBeNull] ITimelineContextProvider contextProvider)
        {
            //IL_0038: Unknown result type (might be due to invalid IL or missing references)
            //IL_003d: Unknown result type (might be due to invalid IL or missing references)
            //IL_004a: Unknown result type (might be due to invalid IL or missing references)
            //IL_004f: Unknown result type (might be due to invalid IL or missing references)
            //IL_0052: 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 (null == timelineAsset)
            {
                throw new NullReferenceException();
            }
            if (null == s_instance)
            {
                Log.Error("CreateTimelineAssetEffectInstance called while the factory is not ready.", 412, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\FightObjectFactory.cs");
                return(null);
            }
            GameObject obj        = s_timelineAssetEffectPool.Instantiate(parent.get_position(), rotation, parent);
            Vector3    localScale = obj.get_transform().get_localScale();

            localScale.Scale(scale);
            obj.get_transform().set_localScale(localScale);
            PlayableDirector component = obj.GetComponent <PlayableDirector>();

            if (null != fightContext)
            {
                TimelineContextUtility.SetFightContext(component, fightContext);
            }
            if (contextProvider != null)
            {
                TimelineContextUtility.SetContextProvider(component, contextProvider);
            }
            component.Play(timelineAsset, 2);
            return(component);
        }
예제 #11
0
 public abstract Component Instantiate([NotNull] Transform parent, [CanBeNull] ITimelineContextProvider contextProvider);
예제 #12
0
 public abstract Component Instantiate([NotNull] Transform parent, Quaternion rotation, Vector3 scale, [CanBeNull] FightContext fightContext, [CanBeNull] ITimelineContextProvider contextProvider);
 public override Component Instantiate(Transform parent, Quaternion rotation, Vector3 scale, FightContext fightContext, ITimelineContextProvider contextProvider)
 {
     //IL_0038: Unknown result type (might be due to invalid IL or missing references)
     //IL_0039: Unknown result type (might be due to invalid IL or missing references)
     if (null == m_timelineAsset)
     {
         Log.Warning("Tried to instantiate timeline asset spell effect named '" + this.get_name() + "' without a timeline asset setup.", 42, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Data\\Animations\\TimelineAssetSpellEffect.cs");
         return(null);
     }
     return(FightObjectFactory.CreateTimelineAssetEffectInstance(m_timelineAsset, parent, rotation, scale, fightContext, contextProvider));
 }
        public static IEnumerator PlaySpellEffect([NotNull] SpellEffect spellEffect, [NotNull] Transform transform, Quaternion rotation, Vector3 scale, float delay, [CanBeNull] FightContext fightContext, [CanBeNull] ITimelineContextProvider contextProvider)
        {
            //IL_0015: Unknown result type (might be due to invalid IL or missing references)
            //IL_0016: Unknown result type (might be due to invalid IL or missing references)
            //IL_001c: Unknown result type (might be due to invalid IL or missing references)
            //IL_001d: Unknown result type (might be due to invalid IL or missing references)
            if (delay > 0f)
            {
                yield return((object)new WaitForTime(delay));
            }
            Component instance = spellEffect.Instantiate(transform, rotation, scale, fightContext, contextProvider);

            if (!(null != instance))
            {
                yield break;
            }
            switch (spellEffect.waitMethod)
            {
            case SpellEffect.WaitMethod.None:
            {
                MonoBehaviour current2 = FightMap.current;
                if (null != current2)
                {
                    current2.StartCoroutine(spellEffect.DestroyWhenFinished(instance));
                }
                break;
            }

            case SpellEffect.WaitMethod.Delay:
                yield return((object)new WaitForTime(spellEffect.waitDelay));

                if (null != instance)
                {
                    MonoBehaviour current = FightMap.current;
                    if (null != current)
                    {
                        current.StartCoroutine(spellEffect.DestroyWhenFinished(instance));
                    }
                }
                break;

            case SpellEffect.WaitMethod.Destruction:
                yield return(spellEffect.DestroyWhenFinished(instance));

                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public static void SetContextProvider([NotNull] PlayableDirector playableDirector, [NotNull] ITimelineContextProvider provider)
        {
            //IL_0014: Unknown result type (might be due to invalid IL or missing references)
            PropertyName val = default(PropertyName);

            val._002Ector("context");
            Object timelineBinding = provider.GetTimelineBinding();

            playableDirector.SetReferenceValue(val, timelineBinding);
        }
        public static IEnumerator PlayGenericEffect(SpellEffectKey key, int fightId, int?parentEventId, [NotNull] Transform parent, Quaternion rotation, Vector3 scale, [CanBeNull] FightContext fightContext, [CanBeNull] ITimelineContextProvider contextProvider)
        {
            //IL_0023: Unknown result type (might be due to invalid IL or missing references)
            //IL_0025: Unknown result type (might be due to invalid IL or missing references)
            //IL_002b: Unknown result type (might be due to invalid IL or missing references)
            //IL_002d: Unknown result type (might be due to invalid IL or missing references)
            SpellEffect spellEffect;

            if (s_spellEffectCache == null || s_currentSpellEffectOverrideData == null)
            {
                Log.Error("PlayGenericEffect called while the factory is not ready.", 361, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\FightSpellEffectFactory.cs");
            }
            else if (((parentEventId.HasValue && s_currentSpellEffectOverrideData[fightId].TryGetSpellEffectOverride(key, parentEventId.Value, out spellEffect)) || s_spellEffectCache.TryGetValue(key, out spellEffect)) && !(null == spellEffect))
            {
                yield return(PlaySpellEffect(spellEffect, parent, rotation, scale, 0f, fightContext, contextProvider));
            }
        }
예제 #17
0
        public override IEnumerator UpdateView(FightStatus fightStatus)
        {
            int fightId = fightStatus.fightId;

            if (fightStatus.TryGetEntity(concernedEntity, out IEntityWithBoardPresence entity))
            {
                IsoObject isoObject = entity.view;
                if (null != isoObject)
                {
                    switch (movementType)
                    {
                    case 1:
                    {
                        IObjectWithMovement objectWithMovement6;
                        if ((objectWithMovement6 = (isoObject as IObjectWithMovement)) != null)
                        {
                            yield return(objectWithMovement6.Move(GetPath()));
                        }
                        else
                        {
                            Log.Error(FightEventErrors.EntityHasIncompatibleView <IObjectWithMovement>(entity), 71, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\EntityAreaMovedEvent.cs");
                        }
                        break;
                    }

                    case 3:
                    {
                        IMovableObject movableObject;
                        IMovableObject objectWithMovement3 = movableObject = (isoObject as IMovableObject);
                        if (movableObject != null)
                        {
                            FightContext fightContext = fightStatus.context;
                            yield return(FightSpellEffectFactory.PlayGenericEffect(SpellEffectKey.TeleportationStart, fightId, parentEventId, isoObject, fightContext));

                            objectWithMovement3.Teleport(GetDestination());
                            yield return(FightSpellEffectFactory.PlayGenericEffect(SpellEffectKey.TeleportationEnd, fightId, parentEventId, isoObject, fightContext));
                        }
                        else
                        {
                            Log.Error(FightEventErrors.EntityHasIncompatibleView <IObjectWithMovement>(entity), 88, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\EntityAreaMovedEvent.cs");
                        }
                        break;
                    }

                    case 6:
                    {
                        IMovableObject movableObject;
                        IMovableObject objectWithMovement3 = movableObject = (isoObject as IMovableObject);
                        if (movableObject != null)
                        {
                            Vector2Int[]             path2            = GetPath();
                            Quaternion               pathRotation2    = GetPathRotation(path2);
                            Transform                transform2       = isoObject.cellObject.get_transform();
                            ITimelineContextProvider contextProvider2 = isoObject as ITimelineContextProvider;
                            yield return(FightSpellEffectFactory.PlayGenericEffect(SpellEffectKey.Push, fightId, parentEventId, transform2, pathRotation2, Vector3.get_one(), fightStatus.context, contextProvider2));

                            yield return(objectWithMovement3.Push(path2));
                        }
                        else
                        {
                            Log.Error(FightEventErrors.EntityHasIncompatibleView <IMovableObject>(entity), 108, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\EntityAreaMovedEvent.cs");
                        }
                        break;
                    }

                    case 7:
                    {
                        IMovableObject movableObject;
                        IMovableObject objectWithMovement3 = movableObject = (isoObject as IMovableObject);
                        if (movableObject != null)
                        {
                            Vector2Int[]             path2           = GetPath();
                            Quaternion               pathRotation    = GetPathRotation(path2);
                            Transform                transform       = isoObject.cellObject.get_transform();
                            ITimelineContextProvider contextProvider = isoObject as ITimelineContextProvider;
                            yield return(FightSpellEffectFactory.PlayGenericEffect(SpellEffectKey.Pull, fightId, parentEventId, transform, pathRotation, Vector3.get_one(), fightStatus.context, contextProvider));

                            yield return(objectWithMovement3.Pull(path2));
                        }
                        else
                        {
                            Log.Error(FightEventErrors.EntityHasIncompatibleView <IMovableObject>(entity), 128, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\EntityAreaMovedEvent.cs");
                        }
                        break;
                    }

                    case 2:
                    case 4:
                    {
                        IObjectWithMovement objectWithMovement5;
                        if ((objectWithMovement5 = (isoObject as IObjectWithMovement)) != null)
                        {
                            Direction direction2 = (Direction)this.direction;
                            yield return(objectWithMovement5.MoveToAction(GetPath(), direction2));
                        }
                        else
                        {
                            Log.Error(FightEventErrors.EntityHasIncompatibleView <IObjectWithMovement>(entity), 143, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\EntityAreaMovedEvent.cs");
                        }
                        break;
                    }

                    case 8:
                    {
                        IObjectWithMovement objectWithMovement4;
                        if ((objectWithMovement4 = (isoObject as IObjectWithMovement)) != null)
                        {
                            Direction direction = (Direction)this.direction;
                            yield return(objectWithMovement4.MoveToAction(GetPath(), direction, hasFollowUpAnimation: false));
                        }
                        else
                        {
                            Log.Error(FightEventErrors.EntityHasIncompatibleView <IObjectWithMovement>(entity), 157, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\EntityAreaMovedEvent.cs");
                        }
                        break;
                    }

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                    if (IsMovementAction())
                    {
                        IObjectWithAction objectWithAction;
                        if ((objectWithAction = (isoObject as IObjectWithAction)) != null)
                        {
                            objectWithAction.SetActionUsed(actionUsed: true, turnEnded: false);
                        }
                        else
                        {
                            Log.Error(FightEventErrors.EntityHasIncompatibleView <IObjectWithAction>(entity), 174, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\EntityAreaMovedEvent.cs");
                        }
                    }
                    ICharacterObject characterObject;
                    if ((characterObject = (isoObject as ICharacterObject)) != null)
                    {
                        characterObject.CheckParentCellIndicator();
                    }
                }
                else
                {
                    Log.Error(FightEventErrors.EntityHasNoView(entity), 185, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\EntityAreaMovedEvent.cs");
                }
            }
            else
            {
                Log.Error(FightEventErrors.EntityNotFound <IEntityWithBoardPresence>(concernedEntity), 190, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Fight\\Events\\EntityAreaMovedEvent.cs");
            }
            FightLogicExecutor.FireUpdateView(fightId, EventCategory.EntityMoved);
        }