Ejemplo n.º 1
0
 public void SetAreaDiscovered(Location loc)
 {
     foreach (var chunk in AreaChunks)
     {
         if (chunk.areaInfo.ContainsKey(loc))
         {
             AreaInfo ai = chunk.areaInfo[loc];
             ai.discovered       = true;
             chunk.areaInfo[loc] = ai;
             break;
         }
     }
 }
Ejemplo n.º 2
0
 public bool TryGetAreaInfo(Location key, out AreaInfo areaInfo)
 {
     foreach (var chunk in AreaChunks)
     {
         if (chunk.areaInfo.ContainsKey(key))
         {
             chunk.areaInfo.TryGetValue(key, out areaInfo);
             return(true);
         }
     }
     areaInfo = new AreaInfo();
     return(false);
 }
Ejemplo n.º 3
0
        public void InitArea(Location to, Location directionPattern)
        {
            // Save enter info
            Database.Instance.EnterAnArea(to, directionPattern);

            // Fetch world data
            CurrentAreaLoc   = to;
            CurrentAreaIndex = WorldData.ActiveData.worldMap.IndexOf(CurrentAreaLoc);
            ChunkIndex       = CurrentAreaIndex / Database.AreaChunkSize;
            TempData         = AreaInfo.GetActiveAreaInfo(ChunkIndex, CurrentAreaLoc);
            Location spawnLoc = TempData.entranceDic[directionPattern];

            // Reset holders
            if (chestHolder)
            {
                Destroy(chestHolder.gameObject);
            }
            if (creatureHolder)
            {
                Destroy(creatureHolder.gameObject);
            }
            chestHolder    = new GameObject("Chest Holder").transform;
            creatureHolder = new GameObject("Creature Holder").transform;

            // Reset lists and dictionaries
            RemainedCreatures    = new Dictionary <Location, List <int> >();
            AlertZone            = new Dictionary <Location, HashSet <Location> >();
            InBatlleCreatureSets = new List <Location>();
            EntityManager.Instance.ResetEntityDicionary();

            // Init player
            character.InitCharacter("AreaPlayer", WorldData.ActiveData.attribute, WorldData.ActiveData.HealthPoints);
            character.MoveToLocation(spawnLoc, false, true);
            character.transform.position = spawnLoc.ToPosition();
            m_areaUIController.BindBuffManager();

            // Init others
            BattleManager.Instance.Init();
            GridManager.Instance.LoadMap();
            GridManager.Instance.DiscoverTiles(spawnLoc);
            InstantiateCreatures();
            InstantiateAbotics();
            //SaveAreaInfo();
        }
Ejemplo n.º 4
0
 public static void SaveToDatabase(int chunkID, AreaInfo info)
 => Database.Instance.SaveAreaInfo(chunkID, info);
Ejemplo n.º 5
0
 public void SaveAreaInfo(int chunkID, AreaInfo info)
 {
     AreaChunks[chunkID].areaInfo[info.loc] = info;
     SaveData("GameData_" + ActivePlayerData.name + "_MapChunk" + chunkID, AreaChunks[chunkID]);
     AreaDataChangedEvent?.Invoke();
 }