Exemple #1
0
        public static void AppendChangeWeatherAction(StoryBuilderSegment story, Enums.Weather weather)
        {
            StorySegment segment = new StorySegment();

            segment.Action = Enums.StoryAction.ChangeWeather;
            segment.AddParameter("Weather", ((int)weather).ToString());
            story.Segments.Add(segment);
        }
        public void SetWeather(Enums.Weather weather)
        {
            //weather = Enums.Weather.Raining;
            if (Weather != null)
            {
                if (Weather.ID != weather)
                {
                    Weather.FreeResources();
                }
                else
                {
                    // Same weather as the active one, don't do anything
                    return;
                }
            }
            switch (weather)
            {
            case Enums.Weather.Ambiguous:
            case Enums.Weather.None:
            {
                Weather = null;
            }
            break;

            case Enums.Weather.Raining:
            {
                Weather = new Graphics.Effects.Weather.Rain();
            }
            break;

            case Enums.Weather.Snowing:
            {
                Weather = new Graphics.Effects.Weather.Snow();
            }
            break;

            case Enums.Weather.Thunder:
            {
                Weather = new Graphics.Effects.Weather.Thunder();
            }
            break;

            case Enums.Weather.Hail:
            {
                Weather = new Graphics.Effects.Weather.Hail();
            }
            break;

            case Enums.Weather.DiamondDust:
            {
                Weather = new Graphics.Effects.Weather.DiamondDust();
            }
            break;

            case Enums.Weather.Cloudy:
            {
                Weather = new Graphics.Effects.Weather.Cloudy();
            }
            break;

            case Enums.Weather.Fog:
            {
                Weather = new Graphics.Effects.Weather.Fog();
            }
            break;

            case Enums.Weather.Sunny:
            {
                Weather = new Graphics.Effects.Weather.Sunny();
            }
            break;

            case Enums.Weather.Sandstorm:
            {
                Weather = new Graphics.Effects.Weather.Sandstorm();
            }
            break;

            case Enums.Weather.Snowstorm:
            {
                Weather = new Graphics.Effects.Weather.Snowstorm();
            }
            break;

            case Enums.Weather.Ashfall:
            {
                Weather = new Graphics.Effects.Weather.Ashfall();
            }
            break;

            default:
            {
            }
            break;
            }
        }
        public void Save(int rdungeonNum, int floorNum)
        {
            if (!Directory.Exists(Paths.DataPath + "RDungeon\\" + rdungeonNum))
            {
                Directory.CreateDirectory(Paths.DataPath + "RDungeon\\" + rdungeonNum);
            }
            using (XmlWriter writer = XmlWriter.Create(Paths.DataPath + "RDungeon\\" + rdungeonNum + "\\" + floorNum + ".xml", Logger.XmlWriterSettings)) {
                writer.WriteStartDocument();
                writer.WriteStartElement("FloorEntry");
                #region Basic data
                writer.WriteStartElement("General");
                writer.WriteElementString("Algorithm", Algorithm.ToString());
                writer.WriteElementString("Darkness", Darkness.ToString());
                writer.WriteElementString("Music", Music);
                writer.WriteElementString("NpcSpawnTime", NpcSpawnTime.ToString());
                writer.WriteElementString("NpcMin", NpcMin.ToString());
                writer.WriteElementString("NpcMax", NpcMax.ToString());
                writer.WriteEndElement();
                #endregion
                #region FloorSettings
                writer.WriteStartElement("FloorSettings");
                for (int i = 0; i < FloorSettings.Count; i++)
                {
                    string key = FloorSettings.Keys.ElementAt(i);
                    writer.WriteElementString(key, FloorSettings[key].ToString());
                }
                writer.WriteEndElement();
                #endregion
                #region TileLayers
                writer.WriteStartElement("TileLayers");
                for (int i = 0; i < TileLayers.Count; i++)
                {
                    string key = TileLayers.Keys.ElementAt(i);
                    List <Maps.TileAnim> layers = TileLayers[key];
                    writer.WriteStartElement(key);
                    for (int j = 0; j < layers.Count; j++)
                    {
                        writer.WriteStartElement("Element");
                        writer.WriteElementString("TextureX", layers[j].Frames[0].Texture.X.ToString());
                        writer.WriteElementString("TextureY", layers[j].Frames[0].Texture.Y.ToString());
                        writer.WriteElementString("Sheet", layers[j].Frames[0].Sheet.ToString());
                        writer.WriteEndElement();
                    }
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                #endregion
                #region TileData
                writer.WriteStartElement("TileData");
                for (int i = 0; i < TileData.Count; i++)
                {
                    string key = TileData.Keys.ElementAt(i);
                    List <Maps.TileData> data = TileData[key];
                    writer.WriteStartElement(key);
                    for (int j = 0; j < data.Count; j++)
                    {
                        writer.WriteStartElement("Element");
                        writer.WriteElementString("Type", data[j].Type.ToString());
                        writer.WriteElementString("Data1", data[j].Data1.ToString());
                        writer.WriteElementString("Data2", data[j].Data2.ToString());
                        writer.WriteElementString("Data3", data[j].Data3.ToString());
                        writer.WriteElementString("String", data[j].String1);
                        writer.WriteEndElement();
                    }
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                #endregion
                #region Weather
                writer.WriteStartElement("FloorWeather");
                for (int i = 0; i < FloorWeather.Count; i++)
                {
                    writer.WriteStartElement("Weather");
                    Enums.Weather key = FloorWeather.Keys.ElementAt(i);
                    writer.WriteElementString(key.ToString(), FloorWeather[key].ToString());
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                #endregion
                #region Items
                writer.WriteStartElement("Items");
                for (int i = 0; i < Items.Count; i++)
                {
                    string key = Items.Keys.ElementAt(i);
                    List <Tuple <ItemPreset, int> > data = Items[key];
                    writer.WriteStartElement(key);
                    for (int j = 0; j < data.Count; j++)
                    {
                        writer.WriteStartElement("Element");
                        writer.WriteElementString("ItemNum", data[j].Item1.ItemNum.ToString());
                        writer.WriteElementString("MinAmount", data[j].Item1.MinAmount.ToString());
                        writer.WriteElementString("MaxAmount", data[j].Item1.MaxAmount.ToString());
                        writer.WriteElementString("AppearanceRate", data[j].Item2.ToString());
                        writer.WriteElementString("StickyRate", data[j].Item1.StickyRate.ToString());
                        writer.WriteElementString("Tag", data[j].Item1.Tag);
                        writer.WriteElementString("Hidden", data[j].Item1.Hidden.ToString());
                        writer.WriteElementString("Ground", data[j].Item1.OnGround.ToString());
                        writer.WriteElementString("Water", data[j].Item1.OnWater.ToString());
                        writer.WriteElementString("Wall", data[j].Item1.OnWall.ToString());
                        writer.WriteEndElement();
                    }
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                #endregion
                #region Npcs
                writer.WriteStartElement("Npcs");
                for (int i = 0; i < Npcs.Count; i++)
                {
                    string key = Npcs.Keys.ElementAt(i);
                    List <Tuple <NpcPreset, int> > data = Npcs[key];
                    writer.WriteStartElement(key);
                    for (int j = 0; j < data.Count; j++)
                    {
                        writer.WriteStartElement("Element");
                        writer.WriteElementString("NpcNum", data[j].Item1.NpcNum.ToString());
                        writer.WriteElementString("SpawnX", data[j].Item1.SpawnX.ToString());
                        writer.WriteElementString("SpawnY", data[j].Item1.SpawnY.ToString());
                        writer.WriteElementString("MinLevel", data[j].Item1.MinLevel.ToString());
                        writer.WriteElementString("MaxLevel", data[j].Item1.MaxLevel.ToString());
                        writer.WriteElementString("AppearanceRate", data[j].Item2.ToString());
                        writer.WriteEndElement();
                    }
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                #endregion
                #region Rooms
                writer.WriteStartElement("Rooms");
                for (int i = 0; i < Rooms.Count; i++)
                {
                    string key = Rooms.Keys.ElementAt(i);
                    List <Tuple <int, int> > data = Rooms[key];
                    writer.WriteStartElement(key);
                    for (int j = 0; j < data.Count; j++)
                    {
                        writer.WriteStartElement("Element");
                        writer.WriteElementString("RoomNum", data[j].Item1.ToString());
                        writer.WriteElementString("AppearanceRate", data[j].Item2.ToString());
                        writer.WriteEndElement();
                    }
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                #endregion

                writer.WriteEndElement();
                writer.WriteEndDocument();
            }
        }
Exemple #4
0
        public void LoadFromPropertiesClass(MapProperties properties)
        {
            Name = properties.Name;
            Right = properties.Right;
            Left = properties.Left;
            Up = properties.Up;
            Down = properties.Down;
            Music = properties.Music;
            MaxX = properties.MaxX;
            MaxY = properties.MaxY;
            Moral = properties.Moral;
            Weather = properties.Weather;
            Darkness = properties.Darkness;
            Indoors = properties.Indoors;
            HungerEnabled = properties.Belly;
            RecruitEnabled = properties.Recruit;
            ExpEnabled = properties.Exp;
            TimeLimit = properties.TimeLimit;
            Instanced = properties.Instanced;
            DungeonIndex = properties.DungeonIndex;
            MinNpcs = properties.MinNpcs;
            MaxNpcs = properties.MaxNpcs;
            NpcSpawnTime = properties.NpcSpawnTime;

            Npc = new List<MapNpcSettings>();
            for (int i = 0; i < properties.Npcs.Count; i++) {
                Npc.Add(new MapNpcSettings());
                Npc[i].NpcNum = properties.Npcs[i].NpcNum;
                Npc[i].SpawnX = properties.Npcs[i].SpawnX;
                Npc[i].SpawnY = properties.Npcs[i].SpawnY;
                Npc[i].MinLevel = properties.Npcs[i].MinLevel;
                Npc[i].MaxLevel = properties.Npcs[i].MaxLevel;
                Npc[i].AppearanceRate = properties.Npcs[i].AppearanceRate;
                Npc[i].StartStatus = properties.Npcs[i].StartStatus;
                Npc[i].StartStatusCounter = properties.Npcs[i].StartStatusCounter;
                Npc[i].StartStatusChance = properties.Npcs[i].StartStatusChance;
            }
        }