Esempio n. 1
0
        public IEnumerator Initialize()
        {
            CameraHandler.AddMapRotationListener(OnMapRotationChanged);
            FightStatus local       = FightStatus.local;
            int         regionCount = m_mapDefinition.regionCount;

            m_movementContexts = new FightMapMovementContext[regionCount];
            for (int i = 0; i < regionCount; i++)
            {
                FightStatus fightStatus = FightLogicExecutor.GetFightStatus(i);
                fightStatus.EntitiesChanged += OnEntitiesChanged;
                FightMapMovementContext fightMapMovementContext = new FightMapMovementContext(fightStatus.mapStatus, fightStatus);
                if (fightStatus == local)
                {
                    m_localMovementContext = fightMapMovementContext;
                }
                m_movementContexts[i] = fightMapMovementContext;
            }
            if (m_localMovementContext != null)
            {
                IMapStateProvider stateProvider = m_localMovementContext.stateProvider;
                m_targetContext = new FightMapTargetContext(stateProvider);
            }
            BoxCollider mapCollider = CreateCollider();

            InitializeHandlers(mapCollider, giveUserControl: false);
            MonsterSpawnCellDefinition monsterSpawnCellDefinition = m_bossFightMapResources.monsterSpawnCellDefinition;

            if (null != monsterSpawnCellDefinition)
            {
                yield return(monsterSpawnCellDefinition.Initialize());

                m_monsterSpawnCellDictionary = new Dictionary <int, GameObject>();
            }
            if (AudioManager.isReady)
            {
                m_audioContext.Initialize();
                m_worldMusicRequest = AudioManager.LoadWorldMusic(m_musicGroup, m_ambianceGroup, m_audioContext);
                while (m_worldMusicRequest.state == AudioWorldMusicRequest.State.Loading)
                {
                    yield return(null);
                }
            }
        }
Esempio n. 2
0
        public static void SetupSpellTargetHighlight([NotNull] FightMapFeedbackResources resources, [NotNull] FightMapTargetContext context, Vector2Int coords, [NotNull] CellHighlight highlight, Color color)
        {
            //IL_0001: 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)
            if (!context.HasNonEntityTargetAt(coords))
            {
                highlight.ClearSprite();
                return;
            }
            Sprite sprite = resources.areaFeedbackSprites[15];

            highlight.SetSprite(sprite, color);
        }
Esempio n. 3
0
        private void UpdateFeedbacks()
        {
            //IL_0046: Unknown result type (might be due to invalid IL or missing references)
            //IL_004b: Unknown result type (might be due to invalid IL or missing references)
            //IL_004d: 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_00ef: Unknown result type (might be due to invalid IL or missing references)
            //IL_00f4: Unknown result type (might be due to invalid IL or missing references)
            //IL_00f6: Unknown result type (might be due to invalid IL or missing references)
            //IL_00fb: Unknown result type (might be due to invalid IL or missing references)
            //IL_0103: Unknown result type (might be due to invalid IL or missing references)
            //IL_0108: Unknown result type (might be due to invalid IL or missing references)
            //IL_0146: Unknown result type (might be due to invalid IL or missing references)
            //IL_0152: Unknown result type (might be due to invalid IL or missing references)
            //IL_01a1: Unknown result type (might be due to invalid IL or missing references)
            //IL_01a6: Unknown result type (might be due to invalid IL or missing references)
            //IL_01a8: Unknown result type (might be due to invalid IL or missing references)
            //IL_01ad: Unknown result type (might be due to invalid IL or missing references)
            //IL_024d: Unknown result type (might be due to invalid IL or missing references)
            //IL_0252: Unknown result type (might be due to invalid IL or missing references)
            //IL_0264: Unknown result type (might be due to invalid IL or missing references)
            //IL_0269: Unknown result type (might be due to invalid IL or missing references)
            //IL_026b: Unknown result type (might be due to invalid IL or missing references)
            //IL_0270: Unknown result type (might be due to invalid IL or missing references)
            //IL_02af: Unknown result type (might be due to invalid IL or missing references)
            //IL_02bb: Unknown result type (might be due to invalid IL or missing references)
            //IL_0311: Unknown result type (might be due to invalid IL or missing references)
            FightMapFeedbackResources feedbackResources = m_feedbackResources;

            if (null == feedbackResources)
            {
                return;
            }
            FightMapMovementContext[] movementContexts = m_movementContexts;
            int num = movementContexts.Length;

            for (int i = 0; i < num; i++)
            {
                FightMapMovementContext fightMapMovementContext = movementContexts[i];
                if (!fightMapMovementContext.hasEnded)
                {
                    continue;
                }
                IMapDefinition    mapDefinition = m_mapDefinition;
                IMapStateProvider stateProvider = fightMapMovementContext.stateProvider;
                Vector2Int        sizeMin       = stateProvider.sizeMin;
                Vector2Int        sizeMax       = stateProvider.sizeMax;
                for (int j = sizeMin.get_y(); j < sizeMax.get_y(); j++)
                {
                    for (int k = sizeMin.get_x(); k < sizeMax.get_x(); k++)
                    {
                        int        cellIndex  = mapDefinition.GetCellIndex(k, j);
                        CellObject cellObject = m_cellObjectsByIndex[cellIndex];
                        if (!(null == cellObject))
                        {
                            cellObject.highlight.ClearSprite();
                        }
                    }
                }
            }
            FightMapTargetContext targetContext = m_targetContext;

            if (targetContext != null)
            {
                if (targetContext.isActive)
                {
                    IMapDefinition    mapDefinition2      = m_mapDefinition;
                    IMapStateProvider stateProvider2      = targetContext.stateProvider;
                    Vector2Int        sizeMin2            = stateProvider2.sizeMin;
                    Vector2Int        sizeMax2            = stateProvider2.sizeMax;
                    Color             targetableAreaColor = feedbackResources.feedbackColors.targetableAreaColor;
                    for (int l = sizeMin2.get_y(); l < sizeMax2.get_y(); l++)
                    {
                        for (int m = sizeMin2.get_x(); m < sizeMax2.get_x(); m++)
                        {
                            int        cellIndex2  = mapDefinition2.GetCellIndex(m, l);
                            CellObject cellObject2 = m_cellObjectsByIndex[cellIndex2];
                            if (!(null == cellObject2))
                            {
                                FightMapFeedbackHelper.SetupSpellTargetHighlight(feedbackResources, targetContext, cellObject2.coords, cellObject2.highlight, targetableAreaColor);
                            }
                        }
                    }
                    m_pathFinderFeedbackManager.Clear();
                    return;
                }
                if (targetContext.hasEnded)
                {
                    IMapDefinition    mapDefinition3 = m_mapDefinition;
                    IMapStateProvider stateProvider3 = targetContext.stateProvider;
                    Vector2Int        sizeMin3       = stateProvider3.sizeMin;
                    Vector2Int        sizeMax3       = stateProvider3.sizeMax;
                    for (int n = sizeMin3.get_y(); n < sizeMax3.get_y(); n++)
                    {
                        for (int num2 = sizeMin3.get_x(); num2 < sizeMax3.get_x(); num2++)
                        {
                            int        cellIndex3  = mapDefinition3.GetCellIndex(num2, n);
                            CellObject cellObject3 = m_cellObjectsByIndex[cellIndex3];
                            if (!(null == cellObject3))
                            {
                                cellObject3.highlight.ClearSprite();
                            }
                        }
                    }
                }
            }
            FightMapMovementContext activeMovementContext = m_activeMovementContext;

            if (activeMovementContext == null)
            {
                m_pathFinderFeedbackManager.Clear();
                return;
            }
            ICharacterEntity trackedCharacter = activeMovementContext.trackedCharacter;

            if (trackedCharacter != null)
            {
                Color             highlightColor = GetHighlightColor(feedbackResources.feedbackColors, activeMovementContext.entityProvider, trackedCharacter);
                IMapDefinition    mapDefinition4 = m_mapDefinition;
                IMapStateProvider stateProvider4 = activeMovementContext.stateProvider;
                Vector2Int        sizeMin4       = stateProvider4.sizeMin;
                Vector2Int        sizeMax4       = stateProvider4.sizeMax;
                for (int num3 = sizeMin4.get_y(); num3 < sizeMax4.get_y(); num3++)
                {
                    for (int num4 = sizeMin4.get_x(); num4 < sizeMax4.get_x(); num4++)
                    {
                        int        cellIndex4  = mapDefinition4.GetCellIndex(num4, num3);
                        CellObject cellObject4 = m_cellObjectsByIndex[cellIndex4];
                        if (!(null == cellObject4))
                        {
                            FightMapFeedbackHelper.SetupMovementAreaHighlight(feedbackResources, activeMovementContext, cellObject4.coords, cellObject4.highlight, highlightColor);
                        }
                    }
                }
            }
            if (m_pathFinder.tracking)
            {
                Vector2Int?target = activeMovementContext.targetedEntity?.area.refCoord;
                m_pathFinderFeedbackManager.Setup(feedbackResources.movementFeedbackResources, m_pathFinder.currentPath, target);
            }
            else
            {
                m_pathFinderFeedbackManager.Clear();
            }
        }