コード例 #1
0
    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);
    }
コード例 #2
0
ファイル: SaveManager.cs プロジェクト: Slympp/TacticalMobile
    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();
    }
コード例 #3
0
    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;
                }
            }
        }
    }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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);
        }
コード例 #6
0
    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>();
    }
コード例 #7
0
ファイル: SaveManager.cs プロジェクト: Slympp/TacticalMobile
    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);
        }
    }
コード例 #8
0
    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);
        }
    }
コード例 #9
0
        /// <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);
            }
        }
コード例 #10
0
    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;
        }
    }
コード例 #11
0
    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);
    }
コード例 #12
0
    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);
        }
    }
コード例 #13
0
        /// <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("配置表下载成功!");
        }
コード例 #14
0
 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;
 }
コード例 #15
0
        public static void CreateWorldMapAsset()
        {
            WorldMapData d = RPGAssetCreator.CreateAsset <WorldMapData> ("WorldMapAsset", false);

            AssetDatabase.SaveAssets();
        }
コード例 #16
0
 public void Awake()
 {
     WorldMapManager = GetComponent <WorldMapManager>();
     WorldMapData    = WorldMapManager.WorldMapData;
 }