| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421 |
- using System.Drawing;
- using Server.MirEnvir;
- namespace Server.MirDatabase
- {
- public class ConquestInfo
- {
- public int Index;
- public bool FullMap;
- public Point Location;
- public ushort Size;
- public string Name;
- public int MapIndex;
- public int PalaceIndex;
- public List<int> ExtraMaps = new List<int>();
- public List<ConquestArcherInfo> ConquestGuards = new List<ConquestArcherInfo>();
- public List<ConquestGateInfo> ConquestGates = new List<ConquestGateInfo>();
- public List<ConquestWallInfo> ConquestWalls = new List<ConquestWallInfo>();
- public List<ConquestSiegeInfo> ConquestSieges = new List<ConquestSiegeInfo>();
- public List<ConquestFlagInfo> ConquestFlags = new List<ConquestFlagInfo>();
- public int GuardIndex;
- public int GateIndex;
- public int WallIndex;
- public int SiegeIndex;
- public int FlagIndex;
- public byte StartHour = 0;
- public int WarLength = 60;
- public ConquestType Type = ConquestType.Request;
- public ConquestGame Game = ConquestGame.CapturePalace;
- public bool Monday;
- public bool Tuesday;
- public bool Wednesday;
- public bool Thursday;
- public bool Friday;
- public bool Saturday;
- public bool Sunday;
- //King of the hill
- public Point KingLocation;
- public ushort KingSize;
- //Control points
- public List<ConquestFlagInfo> ControlPoints = new List<ConquestFlagInfo>();
- public int ControlPointIndex;
- public ConquestInfo() { }
- public ConquestInfo(BinaryReader reader)
- {
- Index = reader.ReadInt32();
- if (Envir.LoadVersion > 73)
- {
- FullMap = reader.ReadBoolean();
- }
- Location = new Point(reader.ReadInt32(), reader.ReadInt32());
- Size = reader.ReadUInt16();
- Name = reader.ReadString();
- MapIndex = reader.ReadInt32();
- PalaceIndex = reader.ReadInt32();
- GuardIndex = reader.ReadInt32();
- GateIndex = reader.ReadInt32();
- WallIndex = reader.ReadInt32();
- SiegeIndex = reader.ReadInt32();
- if (Envir.LoadVersion > 72)
- {
- FlagIndex = reader.ReadInt32();
- }
- var counter = reader.ReadInt32();
- for (int i = 0; i < counter; i++)
- {
- ConquestGuards.Add(new ConquestArcherInfo(reader));
- }
- counter = reader.ReadInt32();
- for (int i = 0; i < counter; i++)
- {
- ExtraMaps.Add(reader.ReadInt32());
- }
- counter = reader.ReadInt32();
- for (int i = 0; i < counter; i++)
- {
- ConquestGates.Add(new ConquestGateInfo(reader));
- }
- counter = reader.ReadInt32();
- for (int i = 0; i < counter; i++)
- {
- ConquestWalls.Add(new ConquestWallInfo(reader));
- }
- counter = reader.ReadInt32();
- for (int i = 0; i < counter; i++)
- {
- ConquestSieges.Add(new ConquestSiegeInfo(reader));
- }
- if (Envir.LoadVersion > 72)
- {
- counter = reader.ReadInt32();
- for (int i = 0; i < counter; i++)
- {
- ConquestFlags.Add(new ConquestFlagInfo(reader));
- }
- }
- StartHour = reader.ReadByte();
- WarLength = reader.ReadInt32();
- Type = (ConquestType)reader.ReadByte();
- Game = (ConquestGame)reader.ReadByte();
- Monday = reader.ReadBoolean();
- Tuesday = reader.ReadBoolean();
- Wednesday = reader.ReadBoolean();
- Thursday = reader.ReadBoolean();
- Friday = reader.ReadBoolean();
- Saturday = reader.ReadBoolean();
- Sunday = reader.ReadBoolean();
- KingLocation = new Point(reader.ReadInt32(), reader.ReadInt32());
- KingSize = reader.ReadUInt16();
- if (Envir.LoadVersion > 74)
- {
- ControlPointIndex = reader.ReadInt32();
- counter = reader.ReadInt32();
- for (int i = 0; i < counter; i++)
- {
- ControlPoints.Add(new ConquestFlagInfo(reader));
- }
- }
- }
- public void Save(BinaryWriter writer)
- {
- writer.Write(Index);
- writer.Write(FullMap);
- writer.Write(Location.X);
- writer.Write(Location.Y);
- writer.Write(Size);
- writer.Write(Name);
- writer.Write(MapIndex);
- writer.Write(PalaceIndex);
- writer.Write(GuardIndex);
- writer.Write(GateIndex);
- writer.Write(WallIndex);
- writer.Write(SiegeIndex);
- writer.Write(FlagIndex);
- writer.Write(ConquestGuards.Count);
- for (int i = 0; i < ConquestGuards.Count; i++)
- {
- ConquestGuards[i].Save(writer);
- }
- writer.Write(ExtraMaps.Count);
- for (int i = 0; i < ExtraMaps.Count; i++)
- {
- writer.Write(ExtraMaps[i]);
- }
- writer.Write(ConquestGates.Count);
- for (int i = 0; i < ConquestGates.Count; i++)
- {
- ConquestGates[i].Save(writer);
- }
- writer.Write(ConquestWalls.Count);
- for (int i = 0; i < ConquestWalls.Count; i++)
- {
- ConquestWalls[i].Save(writer);
- }
- writer.Write(ConquestSieges.Count);
- for (int i = 0; i < ConquestSieges.Count; i++)
- {
- ConquestSieges[i].Save(writer);
- }
- writer.Write(ConquestFlags.Count);
- for (int i = 0; i < ConquestFlags.Count; i++)
- {
- ConquestFlags[i].Save(writer);
- }
- writer.Write(StartHour);
- writer.Write(WarLength);
- writer.Write((byte)Type);
- writer.Write((byte)Game);
- writer.Write(Monday);
- writer.Write(Tuesday);
- writer.Write(Wednesday);
- writer.Write(Thursday);
- writer.Write(Friday);
- writer.Write(Saturday);
- writer.Write(Sunday);
- writer.Write(KingLocation.X);
- writer.Write(KingLocation.Y);
- writer.Write(KingSize);
- writer.Write(ControlPointIndex);
- writer.Write(ControlPoints.Count);
- for (int i = 0; i < ControlPoints.Count; i++)
- {
- ControlPoints[i].Save(writer);
- }
- }
- public override string ToString()
- {
- return string.Format("{0}- {1}", Index, Name);
- }
- }
- public class ConquestSiegeInfo
- {
- public int Index;
- public Point Location;
- public int MobIndex;
- public string Name;
- public int RepairCost;
- public ConquestSiegeInfo() { }
- public ConquestSiegeInfo(BinaryReader reader)
- {
- Index = reader.ReadInt32();
- Location = new Point(reader.ReadInt32(), reader.ReadInt32());
- MobIndex = reader.ReadInt32();
- Name = reader.ReadString();
- if (Envir.LoadVersion <= 84)
- {
- RepairCost = (int)reader.ReadUInt32();
- }
- else
- {
- RepairCost = reader.ReadInt32();
- }
- }
- public void Save(BinaryWriter writer)
- {
- writer.Write(Index);
- writer.Write(Location.X);
- writer.Write(Location.Y);
- writer.Write(MobIndex);
- writer.Write(Name);
- writer.Write(RepairCost);
- }
- public override string ToString()
- {
- return string.Format("{0} - {1} ({2})", Index, Name, Location);
- }
- }
- public class ConquestWallInfo
- {
- public int Index;
- public Point Location;
- public int MobIndex;
- public string Name;
- public int RepairCost;
- public ConquestWallInfo() { }
- public ConquestWallInfo(BinaryReader reader)
- {
- Index = reader.ReadInt32();
- Location = new Point(reader.ReadInt32(), reader.ReadInt32());
- MobIndex = reader.ReadInt32();
- Name = reader.ReadString();
- if (Envir.LoadVersion <= 84)
- {
- RepairCost = (int)reader.ReadUInt32();
- }
- else
- {
- RepairCost = reader.ReadInt32();
- }
- }
- public void Save(BinaryWriter writer)
- {
- writer.Write(Index);
- writer.Write(Location.X);
- writer.Write(Location.Y);
- writer.Write(MobIndex);
- writer.Write(Name);
- writer.Write(RepairCost);
- }
- public override string ToString()
- {
- return string.Format("{0} - {1} ({2})", Index, Name, Location);
- }
- }
- public class ConquestGateInfo
- {
- public int Index;
- public Point Location;
- public int MobIndex;
- public string Name;
- public int RepairCost;
- public ConquestGateInfo() { }
- public ConquestGateInfo(BinaryReader reader)
- {
- Index = reader.ReadInt32();
- Location = new Point(reader.ReadInt32(), reader.ReadInt32());
- MobIndex = reader.ReadInt32();
- Name = reader.ReadString();
- if (Envir.LoadVersion <= 84)
- {
- RepairCost = (int)reader.ReadUInt32();
- }
- else
- {
- RepairCost = reader.ReadInt32();
- }
- }
- public void Save(BinaryWriter writer)
- {
- writer.Write(Index);
- writer.Write(Location.X);
- writer.Write(Location.Y);
- writer.Write(MobIndex);
- writer.Write(Name);
- writer.Write(RepairCost);
- }
- public override string ToString()
- {
- return string.Format("{0} - {1} ({2})", Index, Name, Location);
- }
- }
- public class ConquestArcherInfo
- {
- public int Index;
- public Point Location;
- public int MobIndex;
- public string Name;
- public uint RepairCost;
- public ConquestArcherInfo() { }
- public ConquestArcherInfo(BinaryReader reader)
- {
- Index = reader.ReadInt32();
- Location = new Point(reader.ReadInt32(), reader.ReadInt32());
- MobIndex = reader.ReadInt32();
- Name = reader.ReadString();
- RepairCost = reader.ReadUInt32();
- }
- public void Save(BinaryWriter writer)
- {
- writer.Write(Index);
- writer.Write(Location.X);
- writer.Write(Location.Y);
- writer.Write(MobIndex);
- writer.Write(Name);
- writer.Write(RepairCost);
- }
- public override string ToString()
- {
- return string.Format("{0} - {1} ({2})", Index, Name, Location);
- }
- }
- public class ConquestFlagInfo
- {
- public int Index;
- public Point Location;
- public string Name;
- public string FileName = string.Empty;
- public ConquestFlagInfo() { }
- public ConquestFlagInfo(BinaryReader reader)
- {
- Index = reader.ReadInt32();
- Location = new Point(reader.ReadInt32(), reader.ReadInt32());
- Name = reader.ReadString();
- FileName = reader.ReadString();
- }
- public void Save(BinaryWriter writer)
- {
- writer.Write(Index);
- writer.Write(Location.X);
- writer.Write(Location.Y);
- writer.Write(Name);
- writer.Write(FileName);
- }
- public override string ToString()
- {
- return string.Format("{0} - {1} ({2})", Index, Name, Location);
- }
- }
- }
|