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; } } }
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); }
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(); }
public static void SaveToDatabase(int chunkID, AreaInfo info) => Database.Instance.SaveAreaInfo(chunkID, info);
public void SaveAreaInfo(int chunkID, AreaInfo info) { AreaChunks[chunkID].areaInfo[info.loc] = info; SaveData("GameData_" + ActivePlayerData.name + "_MapChunk" + chunkID, AreaChunks[chunkID]); AreaDataChangedEvent?.Invoke(); }