public override int GetHashCode() { int hash = 1; if (ProtocolVersion != 0) { hash ^= ProtocolVersion.GetHashCode(); } if (SpawnCount != 0) { hash ^= SpawnCount.GetHashCode(); } if (ClientDllMd5.Length != 0) { hash ^= ClientDllMd5.GetHashCode(); } if (MaxClients != 0) { hash ^= MaxClients.GetHashCode(); } if (GameName.Length != 0) { hash ^= GameName.GetHashCode(); } if (HostName.Length != 0) { hash ^= HostName.GetHashCode(); } if (GameInfo.Length != 0) { hash ^= GameInfo.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public ObjectDesc(XElement elem) { XElement n; ObjectType = (short)Utils.FromString(elem.Attribute("type").Value); ObjectId = elem.Attribute("id").Value; Class = elem.Element("Class").Value; if ((n = elem.Element("Group")) != null) Group = n.Value; else Group = null; if ((n = elem.Element("DisplayId")) != null) DisplayId = n.Value; else DisplayId = null; Player = elem.Element("Player") != null; Enemy = elem.Element("Enemy") != null; OccupySquare = elem.Element("OccupySquare") != null; FullOccupy = elem.Element("FullOccupy") != null; EnemyOccupySquare = elem.Element("EnemyOccupySquare") != null; Static = elem.Element("Static") != null; NoMiniMap = elem.Element("NoMiniMap") != null; ProtectFromGroundDamage = elem.Element("ProtectFromGroundDamage") != null; ProtectFromSink = elem.Element("ProtectFromSink") != null; Flying = elem.Element("Flying") != null; ShowName = elem.Element("ShowName") != null; DontFaceAttacks = elem.Element("DontFaceAttacks") != null; if ((n = elem.Element("Size")) != null) { MinSize = MaxSize = Utils.FromString(n.Value); SizeStep = 0; } else { if ((n = elem.Element("MinSize")) != null) MinSize = Utils.FromString(n.Value); else MinSize = 100; if ((n = elem.Element("MaxSize")) != null) MaxSize = Utils.FromString(n.Value); else MaxSize = 100; if ((n = elem.Element("SizeStep")) != null) SizeStep = Utils.FromString(n.Value); else SizeStep = 0; } List<ProjectileDesc> prj = new List<ProjectileDesc>(); foreach (XElement i in elem.Elements("Projectile")) prj.Add(new ProjectileDesc(i)); Projectiles = prj.ToArray(); if ((n = elem.Element("MaxHitPoints")) != null) MaxHP = Utils.FromString(n.Value); if ((n = elem.Element("Defense")) != null) Defense = Utils.FromString(n.Value); if ((n = elem.Element("Terrain")) != null) Terrain = n.Value; if ((n = elem.Element("SpawnProbability")) != null) SpawnProbability = float.Parse(n.Value); if ((n = elem.Element("Spawn")) != null) Spawn = new SpawnCount(n); God = elem.Element("God") != null; Cube = elem.Element("Cube") != null; Quest = elem.Element("Quest") != null; if ((n = elem.Element("Level")) != null) Level = Utils.FromString(n.Value); else Level = null; StasisImmune = elem.Element("StasisImmune") != null; Oryx = elem.Element("Oryx") != null; Hero = elem.Element("Hero") != null; if ((n = elem.Element("PerRealmMax")) != null) PerRealmMax = Utils.FromString(n.Value); else PerRealmMax = null; if ((n = elem.Element("XpMult")) != null) ExpMultiplier = float.Parse(n.Value); else ExpMultiplier = null; }
} //Exp gained = level total / 10 * multi public ObjectDesc(XElement elem) { XElement n; ObjectType = (short)Utils.FromString(elem.Attribute("type").Value); ObjectId = elem.Attribute("id").Value; Class = elem.Element("Class").Value; if ((n = elem.Element("Group")) != null) { Group = n.Value; } else { Group = null; } if ((n = elem.Element("DisplayId")) != null) { DisplayId = n.Value; } else { DisplayId = null; } Player = elem.Element("Player") != null; Enemy = elem.Element("Enemy") != null; OccupySquare = elem.Element("OccupySquare") != null; FullOccupy = elem.Element("FullOccupy") != null; EnemyOccupySquare = elem.Element("EnemyOccupySquare") != null; Static = elem.Element("Static") != null; NoMiniMap = elem.Element("NoMiniMap") != null; ProtectFromGroundDamage = elem.Element("ProtectFromGroundDamage") != null; ProtectFromSink = elem.Element("ProtectFromSink") != null; Flying = elem.Element("Flying") != null; ShowName = elem.Element("ShowName") != null; DontFaceAttacks = elem.Element("DontFaceAttacks") != null; if ((n = elem.Element("Size")) != null) { MinSize = MaxSize = Utils.FromString(n.Value); SizeStep = 0; } else { if ((n = elem.Element("MinSize")) != null) { MinSize = Utils.FromString(n.Value); } else { MinSize = 100; } if ((n = elem.Element("MaxSize")) != null) { MaxSize = Utils.FromString(n.Value); } else { MaxSize = 100; } if ((n = elem.Element("SizeStep")) != null) { SizeStep = Utils.FromString(n.Value); } else { SizeStep = 0; } } List <ProjectileDesc> prj = new List <ProjectileDesc>(); foreach (XElement i in elem.Elements("Projectile")) { prj.Add(new ProjectileDesc(i)); } Projectiles = prj.ToArray(); if ((n = elem.Element("MaxHitPoints")) != null) { MaxHP = Utils.FromString(n.Value); } if ((n = elem.Element("Defense")) != null) { Defense = Utils.FromString(n.Value); } if ((n = elem.Element("Terrain")) != null) { Terrain = n.Value; } if ((n = elem.Element("SpawnProbability")) != null) { SpawnProbability = float.Parse(n.Value); } if ((n = elem.Element("Spawn")) != null) { Spawn = new SpawnCount(n); } God = elem.Element("God") != null; Cube = elem.Element("Cube") != null; Quest = elem.Element("Quest") != null; if ((n = elem.Element("Level")) != null) { Level = Utils.FromString(n.Value); } else { Level = null; } StasisImmune = elem.Element("StasisImmune") != null; Oryx = elem.Element("Oryx") != null; Hero = elem.Element("Hero") != null; if ((n = elem.Element("PerRealmMax")) != null) { PerRealmMax = Utils.FromString(n.Value); } else { PerRealmMax = null; } if ((n = elem.Element("XpMult")) != null) { ExpMultiplier = float.Parse(n.Value); } else { ExpMultiplier = null; } }
public ObjectDesc(ushort type, XElement elem) { CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone(); ci.NumberFormat.CurrencyDecimalSeparator = "."; XElement n; ObjectType = type; ObjectId = elem.Attribute("id").Value; XElement xElement = elem.Element("Class"); if (xElement != null) { Class = xElement.Value; } Group = (n = elem.Element("Group")) != null ? n.Value : null; DisplayId = (n = elem.Element("DisplayId")) != null ? n.Value : null; Player = elem.Element("Player") != null; Enemy = elem.Element("Enemy") != null; OccupySquare = elem.Element("OccupySquare") != null; FullOccupy = elem.Element("FullOccupy") != null; EnemyOccupySquare = elem.Element("EnemyOccupySquare") != null; Static = elem.Element("Static") != null; NoMiniMap = elem.Element("NoMiniMap") != null; ProtectFromGroundDamage = elem.Element("ProtectFromGroundDamage") != null; ProtectFromSink = elem.Element("ProtectFromSink") != null; Flying = elem.Element("Flying") != null; ShowName = elem.Element("ShowName") != null; DontFaceAttacks = elem.Element("DontFaceAttacks") != null; if ((n = elem.Element("ScaleValue")) != null) { ScaleValue = Utils.FromString(n.Value); } BlocksSight = elem.Element("BlocksSight") != null; if ((n = elem.Element("Size")) != null) { MinSize = MaxSize = Utils.FromString(n.Value); SizeStep = 0; } else { MinSize = (n = elem.Element("MinSize")) != null?Utils.FromString(n.Value) : 100; MaxSize = (n = elem.Element("MaxSize")) != null?Utils.FromString(n.Value) : 100; SizeStep = (n = elem.Element("SizeStep")) != null?Utils.FromString(n.Value) : 0; } Projectiles = elem.Elements("Projectile").Select(i => new ProjectileDesc(i)).ToArray(); if ((n = elem.Element("UnlockCost")) != null) { UnlockCost = int.Parse(n.Value); } if ((n = elem.Element("MaxHitPoints")) != null) { MaxHitPoints = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; MaxHP = Utils.FromString(n.Value); } if ((n = elem.Element("MaxMagicPoints")) != null) { MaxMagicPoints = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Attack")) != null) { MaxAttack = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Dexterity")) != null) { MaxDexterity = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Speed")) != null) { MaxSpeed = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("HpRegen")) != null) { MaxHpRegen = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("MpRegen")) != null) { MaxMpRegen = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Defense")) != null) { Defense = Utils.FromString(n.Value); MaxDefense = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Terrain")) != null) { Terrain = n.Value; } if ((n = elem.Element("SpawnProbability")) != null) { SpawnProbability = float.Parse(n.Value, NumberStyles.Any, ci); } if ((n = elem.Element("Spawn")) != null) { Spawn = new SpawnCount(n); } God = elem.Element("God") != null; Cube = elem.Element("Cube") != null; Quest = elem.Element("Quest") != null; if ((n = elem.Element("Level")) != null) { Level = Utils.FromString(n.Value); } else { Level = null; } Tags = new TagList(); if (elem.Elements("Tag").Any()) { foreach (XElement i in elem.Elements("Tag")) { Tags.Add(new Tag(i)); } } StasisImmune = elem.Element("StasisImmune") != null; StunImmune = elem.Element("StunImmune") != null; ParalyzedImmune = elem.Element("ParalyzeImmune") != null; DazedImmune = elem.Element("DazedImmune") != null; Oryx = elem.Element("Oryx") != null; Hero = elem.Element("Hero") != null; if ((n = elem.Element("PerRealmMax")) != null) { PerRealmMax = Utils.FromString(n.Value); } else { PerRealmMax = null; } if ((n = elem.Element("XpMult")) != null) { ExpMultiplier = float.Parse(n.Value, NumberStyles.Any, ci); } else { ExpMultiplier = null; } }
public ObjectDesc(ushort type, XElement elem) { XElement n; ObjectType = type; ObjectId = elem.Attribute("id").Value; Class = elem.Element("Class").Value; if ((n = elem.Element("Group")) != null) { Group = n.Value; } else { Group = null; } if ((n = elem.Element("DisplayId")) != null) { DisplayId = n.Value; } else { DisplayId = null; } Player = elem.Element("Player") != null; Enemy = elem.Element("Enemy") != null; OccupySquare = elem.Element("OccupySquare") != null; FullOccupy = elem.Element("FullOccupy") != null; EnemyOccupySquare = elem.Element("EnemyOccupySquare") != null; Static = elem.Element("Static") != null; NoMiniMap = elem.Element("NoMiniMap") != null; ProtectFromGroundDamage = elem.Element("ProtectFromGroundDamage") != null; ProtectFromSink = elem.Element("ProtectFromSink") != null; Flying = elem.Element("Flying") != null; ShowName = elem.Element("ShowName") != null; DontFaceAttacks = elem.Element("DontFaceAttacks") != null; BlocksSight = elem.Element("BlocksSight") != null; if (Class != "Wall") { if ((n = elem.Element("Size")) != null) { MinSize = MaxSize = Utils.FromString(n.Value); SizeStep = 0; } else { if ((n = elem.Element("MinSize")) != null) { MinSize = Utils.FromString(n.Value); } else { MinSize = 100; } if ((n = elem.Element("MaxSize")) != null) { MaxSize = Utils.FromString(n.Value); } else { MaxSize = 100; } if ((n = elem.Element("SizeStep")) != null) { SizeStep = Utils.FromString(n.Value); } else { SizeStep = 0; } } } var prj = new List <ProjectileDesc>(); foreach (XElement i in elem.Elements("Projectile")) { prj.Add(new ProjectileDesc(i)); } Projectiles = prj.ToArray(); if ((n = elem.Element("MaxHitPoints")) != null) { MaxHP = Utils.FromString(n.Value); } if ((n = elem.Element("Defense")) != null) { Defense = Utils.FromString(n.Value); } if ((n = elem.Element("Terrain")) != null) { Terrain = n.Value; } if ((n = elem.Element("SpawnProbability")) != null) { SpawnProbability = float.Parse(n.Value); } if ((n = elem.Element("Spawn")) != null) { Spawn = new SpawnCount(n); } God = elem.Element("God") != null; Cube = elem.Element("Cube") != null; Quest = elem.Element("Quest") != null; if ((n = elem.Element("Level")) != null) { Level = Utils.FromString(n.Value); } else { Level = null; } KeepDamageRecord = elem.Element("KeepDamageRecord") != null; StasisImmune = elem.Element("StasisImmune") != null; StunImmune = elem.Element("StunImmune") != null; ParalyzedImmune = elem.Element("ParalyzeImmune") != null; Oryx = elem.Element("Oryx") != null; Hero = elem.Element("Hero") != null; if ((n = elem.Element("MaxHitPoints")) != null) { MaxHitPoints = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; MaxHP = Utils.FromString(n.Value); } if ((n = elem.Element("MaxMagicPoints")) != null) { MaxMagicPoints = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Attack")) != null) { MaxAttack = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Dexterity")) != null) { MaxDexterity = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Speed")) != null) { MaxSpeed = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("HpRegen")) != null) { MaxHpRegen = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("MpRegen")) != null) { MaxMpRegen = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Luck")) != null) { MaxLuck = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Crit")) != null) { MaxCrit = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Defense")) != null) { Defense = Utils.FromString(n.Value); MaxDefense = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("PerRealmMax")) != null) { PerRealmMax = Utils.FromString(n.Value); } else { PerRealmMax = null; } if ((n = elem.Element("XpMult")) != null) { ExpMultiplier = float.Parse(n.Value); } else { ExpMultiplier = null; } }
public ListViewItem GetListItem() { bool isInList = true; if (itmSpawnTimerList == null) { itmSpawnTimerList = new ListViewItem(RegexHelper.FixMobName(LastSpawnName)); isInList = false; listNeedsUpdate = true; for (int t = 0; t < 10; t++) { itmSpawnTimerList.SubItems.Add(""); } } SpawnTimeRemaining = SecondsUntilSpawn(DateTime.Now); if (SpawnTimeRemaining < 1 || SpawnTimeRemaining > 120) { itmSpawnTimerList.ForeColor = Color.Black; } else if (SpawnTimeRemaining < 30) { itmSpawnTimerList.ForeColor = Color.Red; } else if (SpawnTimeRemaining < 60) { itmSpawnTimerList.ForeColor = Color.IndianRed; } else { itmSpawnTimerList.ForeColor = SpawnTimeRemaining < 90 ? Color.Orange : Color.Goldenrod; } if (listNeedsUpdate) { listNeedsUpdate = false; itmSpawnTimerList.SubItems[1].Text = SpawnTimeRemaining.ToString(); itmSpawnTimerList.SubItems[2].Text = SpawnTimer.ToString(); itmSpawnTimerList.SubItems[3].Text = zone; itmSpawnTimerList.SubItems[4].Text = X.ToString(); itmSpawnTimerList.SubItems[5].Text = Y.ToString(); itmSpawnTimerList.SubItems[6].Text = Z.ToString(); itmSpawnTimerList.SubItems[7].Text = SpawnCount.ToString(); itmSpawnTimerList.SubItems[8].Text = SpawnTimeStr; itmSpawnTimerList.SubItems[9].Text = KillTimeStr; itmSpawnTimerList.SubItems[10].Text = NextSpawnStr; } else { if (SpawnTimeRemaining.ToString() != itmSpawnTimerList.SubItems[1].Text) { itmSpawnTimerList.SubItems[1].Text = SpawnTimeRemaining.ToString(); } } if (!isInList) { return(itmSpawnTimerList); } else { return(null); // it already is in the list - don't add it again } }
public ObjectDesc(ushort type, XElement elem) { CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone(); ci.NumberFormat.CurrencyDecimalSeparator = "."; XElement n; ObjectType = type; ObjectId = elem.Attribute("id").Value; XElement xElement = elem.Element("Class"); if (xElement != null) { Class = xElement.Value; } Group = (n = elem.Element("Group")) != null ? n.Value : null; DisplayId = (n = elem.Element("DisplayId")) == null ? ObjectId : n.Value; Player = elem.Element("Player") != null; Enemy = elem.Element("Enemy") != null; OccupySquare = elem.Element("OccupySquare") != null; FullOccupy = elem.Element("FullOccupy") != null; EnemyOccupySquare = elem.Element("EnemyOccupySquare") != null; Static = elem.Element("Static") != null; NoMiniMap = elem.Element("NoMiniMap") != null; ProtectFromGroundDamage = elem.Element("ProtectFromGroundDamage") != null; ProtectFromSink = elem.Element("ProtectFromSink") != null; Flying = elem.Element("Flying") != null; ShowName = elem.Element("ShowName") != null; DontFaceAttacks = elem.Element("DontFaceAttacks") != null; BlocksSight = elem.Element("BlocksSight") != null; Skin = elem.Element("Skin") != null; NoSkinSelect = elem.Element("NoSkinSelect") != null; if ((n = elem.Element("Size")) != null) { MinSize = MaxSize = Utils.FromString(n.Value); SizeStep = 0; } else { MinSize = (n = elem.Element("MinSize")) != null?Utils.FromString(n.Value) : 100; MaxSize = (n = elem.Element("MaxSize")) != null?Utils.FromString(n.Value) : 100; SizeStep = (n = elem.Element("SizeStep")) != null?Utils.FromString(n.Value) : 0; } #region "XML Behaviors" if (elem.Elements("BehaviorType") != null) { BehaviorType = elem.Elements("BehaviorType").Select(i => new XMLBehaviorType(i)).ToArray(); } if (elem.Elements("TransitionType") != null) { TransitionType = elem.Elements("TransitionType").Select(i => new XMLTransitionType(i)).ToArray(); } if (elem.Elements("LootType") != null) { LootType = elem.Elements("LootType").Select(i => new XMLLootType(i)).ToArray(); } //To select properly BehaviorType as reference is extremelly recommended to use 'i.BehaviorsType.ToString() == "NAME_OF_BEHAVIORTYPE"' after all! //foreach(var i in BehaviorType) //{ // if (i.BehaviorsType.ToString() == "Wander") // Database.log.InfoFormat("XMLBehavior Type: {0} / Enemy: {1} / Value: {2}", i.BehaviorsType.ToString(), ObjectId, i.Wander_speed); //} #endregion "XML Behaviors" Projectiles = elem.Elements("Projectile").Select(i => new ProjectileDesc(i)).ToArray(); if ((n = elem.Element("UnlockCost")) != null) { UnlockCost = int.Parse(n.Value); } if ((n = elem.Element("MaxHitPoints")) != null) { MaxHitPoints = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; MaxHP = Utils.FromString(n.Value); } if ((n = elem.Element("MaxMagicPoints")) != null) { MaxMagicPoints = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Attack")) != null) { MaxAttack = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Dexterity")) != null) { MaxDexterity = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Speed")) != null) { MaxSpeed = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("HpRegen")) != null) { MaxHpRegen = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("MpRegen")) != null) { MaxMpRegen = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Defense")) != null) { Defense = Utils.FromString(n.Value); MaxDefense = n.Attribute("max") != null?Utils.FromString(n.Attribute("max").Value) : -1; } if ((n = elem.Element("Terrain")) != null) { Terrain = n.Value; } if ((n = elem.Element("SpawnProbability")) != null) { SpawnProbability = float.Parse(n.Value, NumberStyles.Any, ci); } if ((n = elem.Element("Spawn")) != null) { Spawn = new SpawnCount(n); } God = elem.Element("God") != null; Cube = elem.Element("Cube") != null; Quest = elem.Element("Quest") != null; if ((n = elem.Element("Level")) != null) { Level = Utils.FromString(n.Value); } else { Level = null; } Tags = new TagList(); if (elem.Elements("Tag").Any()) { foreach (XElement i in elem.Elements("Tag")) { Tags.Add(new Tag(i)); } } StasisImmune = elem.Element("StasisImmune") != null; StunImmune = elem.Element("StunImmune") != null; ParalyzedImmune = elem.Element("ParalyzeImmune") != null; DazedImmune = elem.Element("DazedImmune") != null; Oryx = elem.Element("Oryx") != null; Hero = elem.Element("Hero") != null; if ((n = elem.Element("PerRealmMax")) != null) { PerRealmMax = Utils.FromString(n.Value); } else { PerRealmMax = null; } if ((n = elem.Element("XpMult")) != null) { ExpMultiplier = float.Parse(n.Value, NumberStyles.Any, ci); } else { ExpMultiplier = null; } Connects = elem.Element("Connects") != null; }
public ObjectDesc(ushort type, XElement elem) { var ci = (CultureInfo)CultureInfo.CurrentCulture.Clone(); ci.NumberFormat.CurrencyDecimalSeparator = "."; XElement n; ObjectType = type; ObjectId = elem.Attribute("id").Value; Class = elem.Element("Class").Value; Group = (n = elem.Element("Group")) != null ? n.Value : null; DisplayId = (n = elem.Element("DisplayId")) != null ? n.Value : null; Player = elem.Element("Player") != null; Enemy = elem.Element("Enemy") != null; OccupySquare = elem.Element("OccupySquare") != null; FullOccupy = elem.Element("FullOccupy") != null; EnemyOccupySquare = elem.Element("EnemyOccupySquare") != null; Static = elem.Element("Static") != null; NoMiniMap = elem.Element("NoMiniMap") != null; ProtectFromGroundDamage = elem.Element("ProtectFromGroundDamage") != null; ProtectFromSink = elem.Element("ProtectFromSink") != null; Flying = elem.Element("Flying") != null; ShowName = elem.Element("ShowName") != null; DontFaceAttacks = elem.Element("DontFaceAttacks") != null; BlocksSight = elem.Element("BlocksSight") != null; if ((n = elem.Element("Size")) != null) { MinSize = MaxSize = Utils.FromString(n.Value); SizeStep = 0; } else { MinSize = (n = elem.Element("MinSize")) != null?Utils.FromString(n.Value) : 100; MaxSize = (n = elem.Element("MaxSize")) != null?Utils.FromString(n.Value) : 100; SizeStep = (n = elem.Element("SizeStep")) != null?Utils.FromString(n.Value) : 0; } Projectiles = elem.Elements("Projectile").Select(i => new ProjectileDesc(i)).ToArray(); if ((n = elem.Element("MaxHitPoints")) != null) { MaxHP = Utils.FromString(n.Value); } if ((n = elem.Element("Defense")) != null) { Defense = Utils.FromString(n.Value); } if ((n = elem.Element("Terrain")) != null) { Terrain = n.Value; } if ((n = elem.Element("SpawnProbability")) != null) { SpawnProbability = float.Parse(n.Value, NumberStyles.Any, ci); } if ((n = elem.Element("Spawn")) != null) { Spawn = new SpawnCount(n); } God = elem.Element("God") != null; Cube = elem.Element("Cube") != null; Quest = elem.Element("Quest") != null; if ((n = elem.Element("Level")) != null) { Level = Utils.FromString(n.Value); } else { Level = null; } StasisImmune = elem.Element("StasisImmune") != null; Oryx = elem.Element("Oryx") != null; Hero = elem.Element("Hero") != null; if ((n = elem.Element("PerRealmMax")) != null) { PerRealmMax = Utils.FromString(n.Value); } else { PerRealmMax = null; } if ((n = elem.Element("XpMult")) != null) { ExpMultiplier = float.Parse(n.Value, NumberStyles.Any); } else { ExpMultiplier = null; } Connects = elem.Element("Connects") != null; SlotTypes = (n = elem.Element("SlotTypes")) != null?Utils.FromCommaSepString32(n.Value) : null; }
public ObjectProperties(XElement obj) { ObjectType = (ushort)obj.AttrDefault("type", "0x0").ParseHex(); ObjectId = obj.AttrDefault("id", ""); DisplayId = obj.ElemDefault("DisplayId", null); Class = obj.ElemDefault("Class", "GameObject"); Group = obj.ElemDefault("Group", null); ShadowSize = obj.ElemDefault("ShadowSize", "0").ParseInt(); IsPlayer = obj.HasOwnProperty("Player"); IsEnemy = obj.HasOwnProperty("Enemy"); MaxHP = (ushort)obj.ElemDefault("MaxHitPoints", "0").ParseHex(); ExpMultiplier = obj.ElemDefault("XpMult", "0").ParseFloat(); OccupySquare = obj.HasOwnProperty("OccupySquare"); FullOccupy = obj.HasOwnProperty("FullOccupy"); EnemyOccupySquare = obj.HasOwnProperty("EnemyOccupySquare"); Static = obj.HasOwnProperty("Static"); NoMiniMap = obj.Element("NoMiniMap") != null; ProtectFromGroundDamage = obj.Element("ProtectFromGroundDamage") != null; ProtectFromSink = obj.Element("ProtectFromSink") != null; Flying = obj.HasOwnProperty("Flying"); ShowName = obj.Element("ShowName") != null; DontFaceAttacks = obj.Element("DontFaceAttacks") != null; Z = obj.ElemDefault("Z", "0").ParseFloat(); BlocksSight = obj.HasOwnProperty("BlocksSight"); if (obj.HasOwnProperty("Size")) { MinSize = MaxSize = obj.Element("Size").Value.ParseInt(); SizeStep = 0; } else { MinSize = obj.ElemDefault("MinSize", "100").ParseInt(); MaxSize = obj.ElemDefault("MaxSize", "100").ParseInt(); SizeStep = obj.ElemDefault("SizeStep", "0").ParseInt(); } Projectiles = obj.Elements("Projectile").Select(i => new ProjectileProperties(i)).ToArray(); UnlockCost = obj.ElemDefault("UnlockCost", "0").ParseInt(); if (obj.HasOwnProperty("MaxHitPoints")) { MaxHitPoints = obj.AttrDefault("max", "-1").ParseInt(); MaxHP = obj.ElemDefault("MaxHitPoints", "0").ParseInt(); } if (obj.HasOwnProperty("MaxMagicPoints")) { MaxAttack = obj.AttrDefault("max", "-1").ParseInt(); } if (obj.HasOwnProperty("Attack")) { MaxAttack = obj.AttrDefault("max", "-1").ParseInt(); } if (obj.HasOwnProperty("Dexterity")) { MaxDexterity = obj.AttrDefault("max", "-1").ParseInt(); } if (obj.HasOwnProperty("Speed")) { MaxSpeed = obj.AttrDefault("max", "-1").ParseInt(); } if (obj.HasOwnProperty("HpRegen")) { MaxHpRegen = obj.AttrDefault("max", "-1").ParseInt(); } if (obj.HasOwnProperty("MpRegen")) { MaxMpRegen = obj.AttrDefault("max", "-1").ParseInt(); } if (obj.HasOwnProperty("Defense")) { Defense = obj.ElemDefault("Defense", "0").ParseInt(); MaxDefense = obj.AttrDefault("max", "-1").ParseInt(); } Terrain = obj.ElemDefault("Terrain", ""); SpawnProbability = obj.ElemDefault("SpawnProbability", "0").ParseFloat(); SpawnProbability = obj.ElemDefault("SpawnProbability", "0").ParseFloat(); if (obj.HasOwnProperty("Spawn")) { Spawn = new SpawnCount(obj.Element("Spawn")); } God = obj.Element("God") != null; Cube = obj.Element("Cube") != null; Quest = obj.Element("Quest") != null; Level = obj.ElemDefault("Level", "0").ParseInt(); Tags = new TagList(); if (obj.Elements("Tag").Any()) { foreach (XElement i in obj.Elements("Tag")) { Tags.Add(new Tag(i)); } } StasisImmune = obj.HasOwnProperty("StasisImmune"); StunImmune = obj.HasOwnProperty("StunImmune"); ParalyzedImmune = obj.HasOwnProperty("ParalyzedImmune"); DazedImmune = obj.HasOwnProperty("DazedImmune"); Oryx = obj.Element("Oryx") != null; Hero = obj.Element("Hero") != null; PerRealmMax = obj.ElemDefault("PerRealmMax", "0").ParseInt(); ExpMultiplier = obj.ElemDefault("ExpMultiplier", "0").ParseFloat(); OldSound = obj.ElemDefault("OldSound", ""); AngleCorrection = obj.ElemDefault("AngleCorrection", "0").ParseFloat(); Rotation = obj.ElemDefault("Rotation", "0").ParseFloat(); BloodProb = obj.ElemDefault("BloodProb", "0").ParseFloat(); BloodColor = obj.ElemDefault("BloodColor", "0").ParseHex(); ShadowColor = obj.ElemDefault("ShadowColor", "0").ParseHex(); if (obj.Elements("Sound").Any()) { foreach (XElement i in obj.Elements("Sound")) { Sounds[i.AttrDefault("id", "0").ParseInt()] = i.Value; } } }