public void GoToNextScreen() { WorldMapData worldMapData = new WorldMapData(); worldMapData.Size = 10; worldMapData.Player = new List <Player>(); worldMapData.Player.Add(Resources.Load <GameObject>("PlayerTemplate").GetComponent <Player>()); worldMapData.Player.Add(Resources.Load <GameObject>("PlayerTemplateRogue").GetComponent <Player>()); worldMapData.Player.Add(Resources.Load <GameObject>("PlayerTemplateWizard").GetComponent <Player>()); worldMapData.Player[0].HumanModelInfos = ModelInfos; worldMapData.Inventory = new List <Item>(); worldMapData.Inventory.Add(Resources.Load <ScriptableObject>("Items/Equipments/Weapons/Sword/CommonSword/CommonSword") as Item); worldMapData.Inventory.Add(Resources.Load <ScriptableObject>("Items/Equipments/Weapons/Sword/MagicSword/MagicSword") as Item); worldMapData.Inventory.Add(Resources.Load <ScriptableObject>("Items/Equipments/Weapons/Sword/RareSword/RareSword") as Item); worldMapData.Inventory.Add(Resources.Load <ScriptableObject>("Items/Equipments/Weapons/Sword/EpicSword/EpicSword") as Item); worldMapData.Inventory.Add(Resources.Load <ScriptableObject>("Items/Equipments/Weapons/Sword/LegendarySword/LegendarySword") as Item); worldMapData.Inventory.Add(Resources.Load <ScriptableObject>("Items/Equipments/Head/HelmetKnight1Black") as Item); worldMapData.Inventory.Add(Resources.Load <ScriptableObject>("Items/Equipments/Body/BodyKnight1Black") as Item); for (int i = 0; i < 10; i++) { worldMapData.Inventory.Add(Resources.Load <ScriptableObject>("Items/Consumables/HealthPotion") as Item); } SaveManager.SaveWorldMap(worldMapData); SaveManager.LoadScene(Scene.WorldMap); }
public static void SaveWorldMap(WorldMapData worldMapData) { FileStream fs = File.Create(WorldMapSaveFile); BinaryFormatter bf = new BinaryFormatter(); SerializedWorldMapData gameData = new SerializedWorldMapData(); gameData.Player = DataSerialization.Serialize(worldMapData.Player); gameData.Seed = worldMapData.Seed; gameData.WorldMapInfos = worldMapData.WorldMapInfos; gameData.DiscoveredMap = worldMapData.DiscoveredMap; gameData.CurrentPosX = (int)worldMapData.CurrentPos.x; gameData.CurrentPosY = (int)worldMapData.CurrentPos.y; gameData.Size = worldMapData.Size; gameData.InventoryItemId = new List <string>(); gameData.InventoryItemQuantity = new List <int>(); foreach (Item item in worldMapData.Inventory) { gameData.InventoryItemId.Add(item.ItemId.ToString()); gameData.InventoryItemQuantity.Add(item.Quantity); } bf.Serialize(fs, gameData); fs.Close(); }
private void Build(WorldMapData worldMapData) { if (MapObject != null) { Destroy(MapObject); } MapObject = new GameObject("WorldMap"); for (int x = 0; x < worldMapData.Size; x++) { for (int y = 0; y < worldMapData.Size; y++) { GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Plane); plane.transform.parent = MapObject.transform; plane.transform.position = new Vector3(x * 10, 0, y * 10); MeshRenderer planeRenderer = plane.GetComponent <MeshRenderer>(); if (worldMapData.DiscoveredMap[x, y]) { AddSprite(x, y, plane.transform, worldMapData.CurrentPos, worldMapData.WorldMapInfos[x, y]); if (worldMapData.WorldMapInfos[x, y] == WorldMapCellType.City) { planeRenderer.material = cityMaterial; } else { if (WorldMap[x, y] == MapDataType.Desert) { planeRenderer.material = desertMaterial; } else if (WorldMap[x, y] == MapDataType.Hell) { planeRenderer.material = hellMaterial; } else if (WorldMap[x, y] == MapDataType.Plain) { planeRenderer.material = plainMaterial; } else if (WorldMap[x, y] == MapDataType.Snow) { planeRenderer.material = snowMaterial; } } } else { planeRenderer.material = unknownMaterial; } } } }
public void init(WorldMapData data) { bmd = data; if (bmd.background == null) { this.scrollView = new Rect(0, 0, MaxCanvasSize, MaxCanvasSize); } else { this.scrollView = new Rect(0, 0, bmd.background.width, bmd.background.height); } }
public static WorldMapEditor ShowWindow(WorldMapData data) { if (WorldMapEditor.instance != null) { WorldMapEditor.instance.Show(); //Build in function: Show the EditorWindow. WorldMapEditor.instance.init(data); //reset the scrollView, and assign WorldMapData return(WorldMapEditor.instance); } WorldMapEditor.instance = EditorWindow.GetWindow <WorldMapEditor>("WorldMapEditor"); WorldMapEditor.instance.init(data); WorldMapEditor.instance.minSize = WorldMapEditor.minsize; return(WorldMapEditor.instance); }
void Awake() { if (SaveManager.CheckValidFileSave(Scene.WorldMap)) { WorldMapData = SaveManager.LoadWorldMap(); } else // Debug purpose only { WorldMapData = new WorldMapData(); } WorldMapMoveButtonManager = GetComponent <WorldMapMoveButtonManager>(); WorldMapBuilder = GetComponent <WorldMapBuilder>(); WorldMapInventoryManager = GetComponent <WorldMapInventoryManager>(); WorldMapTeamManager = GetComponent <WorldMapTeamManager>(); }
public static WorldMapData LoadWorldMap() { if (File.Exists(WorldMapSaveFile)) { FileStream fs = File.Open(WorldMapSaveFile, FileMode.Open); if (fs == null || fs.Length == 0) { Debug.Log("Failed to load WorldMapSaveFile (null or empty)"); return(null); } BinaryFormatter bf = new BinaryFormatter(); SerializedWorldMapData gameData = (SerializedWorldMapData)bf.Deserialize(fs); fs.Close(); WorldMapData worldMapData = new WorldMapData(); Dictionary <string, string> skillsDb = DataSerialization.ReadDatabasePathById(skillsDatabasePreset); Dictionary <string, string> itemsDb = DataSerialization.ReadDatabasePathById(itemsDatabasePreset); worldMapData.Player = DataSerialization.Deserialize <Player>(gameData.Player, skillsDb, itemsDb); worldMapData.Seed = gameData.Seed; worldMapData.WorldMapInfos = gameData.WorldMapInfos; worldMapData.DiscoveredMap = gameData.DiscoveredMap; worldMapData.CurrentPos = new Vector2(gameData.CurrentPosX, gameData.CurrentPosY); worldMapData.Size = gameData.Size; worldMapData.Inventory = new List <Item>(); for (int i = 0; i < gameData.InventoryItemId.Count; i++) { Item newItem = ScriptableObject.CreateInstance <Item>(); worldMapData.Inventory.Add(DataSerialization.DeserializeItem(newItem, gameData.InventoryItemId[i], itemsDb)); newItem.Quantity = gameData.InventoryItemQuantity[i]; } return(worldMapData); } else { Debug.Log("(Load) WorldMapSaveFile doesn't exist!"); return(null); } }
private void Populate(WorldMapData worldMapData) { if (worldMapData.WorldMapInfos == null) { worldMapData.WorldMapInfos = new WorldMapCellType[worldMapData.Size, worldMapData.Size]; worldMapData.DiscoveredMap = new bool[worldMapData.Size, worldMapData.Size]; for (int x = 0; x < worldMapData.Size; x++) { for (int y = 0; y < worldMapData.Size; y++) { int cellType = Random.Range(0, 100); if (cellType < 5) { worldMapData.WorldMapInfos[x, y] = WorldMapCellType.City; } else if (cellType < 15) { worldMapData.WorldMapInfos[x, y] = WorldMapCellType.Chest; } else if (cellType < 25) { worldMapData.WorldMapInfos[x, y] = WorldMapCellType.NewTeamMember; } else { worldMapData.WorldMapInfos[x, y] = WorldMapCellType.Battleground; } worldMapData.DiscoveredMap[x, y] = false; } } Vector2 initialPos = new Vector2(); initialPos.x = Random.Range(0, worldMapData.Size); initialPos.y = Random.Range(0, worldMapData.Size); worldMapData.WorldMapInfos[(int)initialPos.x, (int)initialPos.y] = WorldMapCellType.City; worldMapData.CurrentPos = initialPos; UpdateDiscoveredMap(worldMapData, (int)initialPos.x, (int)initialPos.y); } }
/// <summary> /// 检查资源更新 /// </summary> /// <param name="mono"></param> /// <param name="callBack"></param> /// <param name="parameters"></param> public void UpdataRes(LoadCloudResCallBack callBack, object[] parameters) { //if (!ResourceManager.Instance.m_LoadFormAssetBundle) //{ // callBack(true, "Test", parameters); // return; //} if (m_CanChack == true) { m_CanChack = false; m_CallBack = callBack; if (m_CoroutinesMono == null) { m_CallBack(false, "", parameters); m_CanChack = true; WDebuger.LogError("未初始化管理器,请检查!"); return; } m_Parameters = parameters; m_DownLoadFileName.Clear(); m_DownLoadFileNameItem.Clear(); m_DownLoadFileList.Clear(); string configPath = m_SavePath + ConstData.WLOCALCONFIG; if (!File.Exists(configPath)) { worldMapData.version = "1.0"; worldMapData.date = System.DateTime.Now.ToString(); if (!Directory.Exists(m_SavePath)) { Directory.CreateDirectory(m_SavePath); } m_DownLoadFileName.Add("WorldMap.json"); m_DownLoadFileNameItem.Add("WorldMap.json"); worldMapData.SaveJson(configPath); } worldMapData = WillData.LoadJson <WorldMapData>(configPath); WillFTPDownloadManager.Instance.Init(ConstData.FTPname, ConstData.FTPPassword); WillFTPDownloadManager.Instance.DownLoadData(ConstData.DownloadServerFtp + "WorldMap.json", DowlLoadConfigCallBack); } }
public void UpdateDiscoveredMap(WorldMapData worldMapData, int x, int y) { worldMapData.DiscoveredMap[x, y] = true; if (x - 1 >= 0) { worldMapData.DiscoveredMap[x - 1, y] = true; } if (x + 1 < worldMapData.Size) { worldMapData.DiscoveredMap[x + 1, y] = true; } if (y - 1 >= 0) { worldMapData.DiscoveredMap[x, y - 1] = true; } if (y + 1 < worldMapData.Size) { worldMapData.DiscoveredMap[x, y + 1] = true; } }
public void Generate(WorldMapData worldMapData) { if (worldMapData.Seed == 0) { worldMapData.Seed = Random.Range(1, 10000); } WorldMap = new MapDataType[worldMapData.Size, worldMapData.Size]; for (int x = 0; x < worldMapData.Size; x++) { for (int y = 0; y < worldMapData.Size; y++) { Vector2 pos = Zoom * (new Vector2(x, y)); float noise = Mathf.PerlinNoise(pos.x + worldMapData.Seed, pos.y + worldMapData.Seed); if (noise < 0.25f) { WorldMap[x, y] = MapDataType.Hell; } else if (noise < 0.5f) { WorldMap[x, y] = MapDataType.Desert; } else if (noise < 0.75f) { WorldMap[x, y] = MapDataType.Plain; } else { WorldMap[x, y] = MapDataType.Snow; } } } Populate(worldMapData); Build(worldMapData); }
static void GetWorldMap() { WorldMapData worldMapData = new WorldMapData(); if (!Directory.Exists(m_ResPath)) { worldMapData.version = "1.0"; worldMapData.date = System.DateTime.Now.ToString(); Directory.CreateDirectory(m_ResPath); worldMapData.SaveJson(m_ResPath + "/" + ConstData.WLOCALCONFIG); } else { worldMapData = WillData.LoadJson <WorldMapData>(m_ResPath + "/WorldMap.json"); float current_version = float.Parse(worldMapData.version); //DirectoryInfo dir = new DirectoryInfo(m_ResPath); //dir.Delete(true); worldMapData.version = (current_version + 0.1f).ToString(); worldMapData.date = System.DateTime.Now.ToString(); Directory.CreateDirectory(m_ResPath); worldMapData.SaveJson(m_ResPath + "/" + ConstData.WLOCALCONFIG); } }
/// <summary> /// 下载配置文件回调 /// 处理下载后文件对比 /// </summary> /// <param name="ftpHost"></param> /// <param name="downloadSucceed"></param> /// <param name="callBackMessage"></param> /// <param name="downloadData"></param> /// <param name="e"></param> private void DowlLoadConfigCallBack(string ftpHost, bool downloadSucceed, string callBackMessage, byte[] downloadData, DownloadDataCompletedEventArgs e) { Debug.Log(Application.persistentDataPath); if (downloadSucceed == false) { WDebuger.LogError("下载文件失败,请检查网络!"); m_CallBack(true, "下载文件失败,请检查网络!", m_Parameters); m_CanChack = true; return; } if (downloadData == null) { WDebuger.LogError("下载文件失败,下载内容为空,请检查网络!"); m_CallBack(true, "下载文件失败,下载内容为空,请检查网络!", m_Parameters); m_CanChack = true; return; } Debug.Log("Data : " + Encoding.Default.GetString(downloadData)); s_worldMapData = JsonMapper.ToObject <WorldMapData>(Encoding.Default.GetString(downloadData)); ContrastConfig(); Debug.Log("配置表下载成功!"); }
void Start() { data.battleStats = GetComponent<BattleParameters>().battleParameters; Messenger.instance.listen(gameObject, "TurnEnded"); //if(gameObject.tag == "Player") // audioObject = AudioMaster.instance.FetchAudioObject("Olaf"); //else //audioObject = AudioMaster.instance.FetchAudioObject(gameObject.name.Substring(0, gameObject.name.Length - 7)); worlddata = WorldMapData.instance; }
public static void CreateWorldMapAsset() { WorldMapData d = RPGAssetCreator.CreateAsset <WorldMapData> ("WorldMapAsset", false); AssetDatabase.SaveAssets(); }
public void Awake() { WorldMapManager = GetComponent <WorldMapManager>(); WorldMapData = WorldMapManager.WorldMapData; }