예제 #1
0
        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);
        }
예제 #2
0
    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;
    }
예제 #3
0
    }                                                    //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;
        }
    }
예제 #4
0
    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;
        }
    }
예제 #5
0
    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;
        }
    }
예제 #6
0
파일: SPAWNTIMER.cs 프로젝트: Lenothx/MySEQ
        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
            }
        }
예제 #7
0
    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;
    }
예제 #8
0
    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;
    }
예제 #9
0
        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;
                }
            }
        }