Example #1
0
        public ObjectStructure(XElement obj)
        {
            Id                      = (ushort)obj.GetElementAttrib("type", "0x0").ToInt32();
            ObjectClass             = obj.GetChildValue("Class", "GameObject");
            MaxHP                   = (ushort)obj.GetChildValue("MaxHitPoints", "0").ToInt32();
            XpMult                  = obj.GetChildValue("XpMult", "0").ParseFloat();
            Static                  = obj.ContainsElement("Static");
            OccupySquare            = obj.ContainsElement("OccupySquare");
            EnemyOccupySquare       = obj.ContainsElement("EnemyOccupySquare");
            FullOccupy              = obj.ContainsElement("FullOccupy");
            BlocksSight             = obj.ContainsElement("BlocksSight");
            ProtectFromGroundDamage = obj.ContainsElement("ProtectFromGroundDamage");
            ProtectFromSink         = obj.ContainsElement("ProtectFromSink");
            Enemy                   = obj.ContainsElement("Enemy");
            Player                  = obj.ContainsElement("Player");
            Pet                     = obj.ContainsElement("Pet");
            DrawOnGround            = obj.ContainsElement("DrawOnGround");
            Size                    = (ushort)obj.GetChildValue("Size", "0").ToInt32();
            ShadowSize              = (ushort)obj.GetChildValue("ShadowSize", "0").ToInt32();
            Defense                 = (ushort)obj.GetChildValue("Defense", "0").ToInt32();
            Flying                  = obj.ContainsElement("Flying");
            God                     = obj.ContainsElement("God");
            Cube                    = obj.ContainsElement("Cube");
            Quest                   = obj.ContainsElement("Quest");
            Invulnerable            = obj.ContainsElement("Invulnerable");
            Invincible              = obj.ContainsElement("Invincible");
            Item                    = obj.ContainsElement("Item");
            Usable                  = obj.ContainsElement("Usable");
            Soulbound               = obj.ContainsElement("Soulbound");
            MpCost                  = (ushort)obj.GetChildValue("MpCost", "0").ToInt32();
            List <ProjectileStructure> projectileStructures = new List <ProjectileStructure>();

            obj.Elements("Projectile")._rvkyhEufCiuaZq8jbaYgthJoLEx(delegate(XElement projectile)
            {
                projectileStructures.Add(new ProjectileStructure(projectile));
            });
            Projectiles = projectileStructures.ToArray();
            this.Name   = obj.GetElementAttrib("id", "");
            if (!Player)
            {
                return;
            }
            ClassStats classStats = new ClassStats();

            if (!int.TryParse(obj.Element("MaxHitPoints")?.Attribute("max")?.Value, out classStats.LifeMax))
            {
                Console.WriteLine($"Failed parsing player stats of {Id} {ObjectClass}");
            }
            if (!int.TryParse(obj.Element("MaxMagicPoints")?.Attribute("max")?.Value, out classStats.ManaMax))
            {
                Console.WriteLine($"Failed parsing player stats of {Id} {ObjectClass}");
            }
            if (!int.TryParse(obj.Element("Attack")?.Attribute("max")?.Value, out classStats.AttackMax))
            {
                Console.WriteLine($"Failed parsing player stats of {Id} {ObjectClass}");
            }
            if (!int.TryParse(obj.Element("Defense")?.Attribute("max")?.Value, out classStats.DefenseMax))
            {
                Console.WriteLine($"Failed parsing player stats of {Id} {ObjectClass}");
            }
            if (!int.TryParse(obj.Element("Speed")?.Attribute("max")?.Value, out classStats.SpeedMax))
            {
                Console.WriteLine($"Failed parsing player stats of {Id} {ObjectClass}");
            }
            if (!int.TryParse(obj.Element("Dexterity")?.Attribute("max")?.Value, out classStats.DexterityMax))
            {
                Console.WriteLine($"Failed parsing player stats of {Id} {ObjectClass}");
            }
            if (!int.TryParse(obj.Element("HpRegen")?.Attribute("max")?.Value, out classStats.VitalityMax))
            {
                Console.WriteLine($"Failed parsing player stats of {Id} {ObjectClass}");
            }
            if (!int.TryParse(obj.Element("MpRegen")?.Attribute("max")?.Value, out classStats.WisdomMax))
            {
                Console.WriteLine($"Failed parsing player stats of {Id} {ObjectClass}");
            }
            ClassStats.Map.Add(Id, classStats);
        }
Example #2
0
        public ObjectStructure(XElement obj)
        {
            ClassStats classStats = default(ClassStats);
            _sTbDMXqF9HeMn0Lda14uXKLE4RD sTbDMXqF9HeMn0Lda14uXKLE4RD = default(_sTbDMXqF9HeMn0Lda14uXKLE4RD);

            while (true)
            {
                int num = 497663125;
                while (true)
                {
                    uint num2;
                    switch ((num2 = (uint)num ^ 0x46FE958Cu) % 37u)
                    {
                    case 23u:
                        break;

                    default:
                        return;

                    case 17u:
                        Size = (ushort)obj._bUyefY83pIQc4tdCSCBCAwGEWxF("Size", "0")._sO4kfypgWPkSczoRzkVQIGw3fyF();
                        num  = (int)((num2 * 99713434) ^ 0x2D57A715);
                        continue;

                    case 18u:
                        OccupySquare = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("OccupySquare");
                        num          = ((int)num2 * -1384973929) ^ -1760575149;
                        continue;

                    case 31u:
                        Console.WriteLine($"Failed parsing player stats of {ID} {ObjectClass}");
                        num = ((int)num2 * -1844473694) ^ -912645136;
                        continue;

                    case 27u:
                        Console.WriteLine($"Failed parsing player stats of {ID} {ObjectClass}");
                        num = (int)((num2 * 1171460625) ^ 0x476FC9DA);
                        continue;

                    case 25u:
                        EnemyOccupySquare = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("EnemyOccupySquare");
                        FullOccupy        = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("FullOccupy");
                        num = ((int)num2 * -140336572) ^ 0x6BDACD59;
                        continue;

                    case 12u:
                        Console.WriteLine($"Failed parsing player stats of {ID} {ObjectClass}");
                        num = ((int)num2 * -494917739) ^ 0x1F374055;
                        continue;

                    case 3u:
                    {
                        int num12;
                        if (int.TryParse(obj.Element("Dexterity").Attribute("max").Value, out classStats.DexterityMax))
                        {
                            num   = 1689255643;
                            num12 = num;
                        }
                        else
                        {
                            num   = 490275465;
                            num12 = num;
                        }
                        continue;
                    }

                    case 1u:
                        Flying = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Flying");
                        num    = (int)(num2 * 1168361225) ^ -1332595424;
                        continue;

                    case 8u:
                        BlocksSight = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("BlocksSight");
                        num         = (int)((num2 * 1605934978) ^ 0x6F2FB3F2);
                        continue;

                    case 11u:
                        Defense = (ushort)obj._bUyefY83pIQc4tdCSCBCAwGEWxF("Defense", "0")._sO4kfypgWPkSczoRzkVQIGw3fyF();
                        num     = (int)(num2 * 1891330989) ^ -957009768;
                        continue;

                    case 36u:
                    {
                        int num9;
                        if (!int.TryParse(obj.Element("MaxMagicPoints").Attribute("max").Value, out classStats.ManaMax))
                        {
                            num  = 1053327410;
                            num9 = num;
                        }
                        else
                        {
                            num  = 1508676335;
                            num9 = num;
                        }
                        continue;
                    }

                    case 32u:
                    {
                        int num6;
                        if (!int.TryParse(obj.Element("Attack").Attribute("max").Value, out classStats.AttackMax))
                        {
                            num  = 210637865;
                            num6 = num;
                        }
                        else
                        {
                            num  = 1761975762;
                            num6 = num;
                        }
                        continue;
                    }

                    case 0u:
                        Console.WriteLine($"Failed parsing player stats of {ID} {ObjectClass}");
                        num = (int)((num2 * 892328211) ^ 0x41BF39F5);
                        continue;

                    case 33u:
                        Console.WriteLine($"Failed parsing player stats of {ID} {ObjectClass}");
                        num = ((int)num2 * -92039837) ^ -1240747724;
                        continue;

                    case 4u:
                        sTbDMXqF9HeMn0Lda14uXKLE4RD = new _sTbDMXqF9HeMn0Lda14uXKLE4RD();
                        ID          = (ushort)obj._4qMIb2N5gf9DdhWw9LENt8TJhOK("type", "0x0")._59ab9VkqetpIwwmGzw45eRNlLMg();
                        ObjectClass = obj._bUyefY83pIQc4tdCSCBCAwGEWxF("Class", "GameObject");
                        num         = (int)((num2 * 176662042) ^ 0x8757B7F);
                        continue;

                    case 15u:
                        ClassStats.Map.Add(ID, classStats);
                        num = 581223406;
                        continue;

                    case 24u:
                    {
                        int num13;
                        if (int.TryParse(obj.Element("Defense").Attribute("max").Value, out classStats.DefenseMax))
                        {
                            num   = 111212480;
                            num13 = num;
                        }
                        else
                        {
                            num   = 336383764;
                            num13 = num;
                        }
                        continue;
                    }

                    case 29u:
                        Pet          = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Pet");
                        DrawOnGround = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("DrawOnGround");
                        num          = ((int)num2 * -1488010765) ^ -1760201955;
                        continue;

                    case 10u:
                    {
                        int num11;
                        if (!int.TryParse(obj.Element("Speed").Attribute("max").Value, out classStats.SpeedMax))
                        {
                            num   = 1923083999;
                            num11 = num;
                        }
                        else
                        {
                            num   = 550376055;
                            num11 = num;
                        }
                        continue;
                    }

                    case 14u:
                        classStats = new ClassStats();
                        num        = (int)((num2 * 589989725) ^ 0x3A26DF27);
                        continue;

                    case 20u:
                        God          = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("God");
                        Cube         = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Cube");
                        Quest        = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Quest");
                        Invulnerable = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Invulnerable");
                        Invincible   = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Invincible");
                        num          = ((int)num2 * -162984076) ^ -175663583;
                        continue;

                    case 16u:
                        Console.WriteLine($"Failed parsing player stats of {ID} {ObjectClass}");
                        num = (int)(num2 * 584067999) ^ -1652292354;
                        continue;

                    case 34u:
                        Console.WriteLine($"Failed parsing player stats of {ID} {ObjectClass}");
                        num = ((int)num2 * -1817706582) ^ -562659223;
                        continue;

                    case 21u:
                    {
                        int num10;
                        if (!int.TryParse(obj.Element("HpRegen").Attribute("max").Value, out classStats.VitalityMax))
                        {
                            num   = 896093345;
                            num10 = num;
                        }
                        else
                        {
                            num   = 652113165;
                            num10 = num;
                        }
                        continue;
                    }

                    case 7u:
                    {
                        int num7;
                        int num8;
                        if (!Player)
                        {
                            num7 = -1395069913;
                            num8 = num7;
                        }
                        else
                        {
                            num7 = -1886195190;
                            num8 = num7;
                        }
                        num = num7 ^ ((int)num2 * -414654363);
                        continue;
                    }

                    case 19u:
                        Player = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Player");
                        num    = ((int)num2 * -1144756049) ^ -693728569;
                        continue;

                    case 13u:
                    {
                        int num4;
                        int num5;
                        if (int.TryParse(obj.Element("MaxHitPoints").Attribute("max").Value, out classStats.LifeMax))
                        {
                            num4 = 1794567446;
                            num5 = num4;
                        }
                        else
                        {
                            num4 = 406414080;
                            num5 = num4;
                        }
                        num = num4 ^ (int)(num2 * 586078078);
                        continue;
                    }

                    case 9u:
                        Console.WriteLine($"Failed parsing player stats of {ID} {ObjectClass}");
                        num = ((int)num2 * -888289257) ^ 0x68C01001;
                        continue;

                    case 35u:
                        Static = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Static");
                        num    = (int)((num2 * 1324164087) ^ 0x3DBE28FF);
                        continue;

                    case 2u:
                    {
                        int num3;
                        if (!int.TryParse(obj.Element("MpRegen").Attribute("max").Value, out classStats.WisdomMax))
                        {
                            num  = 797609020;
                            num3 = num;
                        }
                        else
                        {
                            num  = 1464566565;
                            num3 = num;
                        }
                        continue;
                    }

                    case 26u:
                        MaxHP  = (ushort)obj._bUyefY83pIQc4tdCSCBCAwGEWxF("MaxHitPoints", "0")._59ab9VkqetpIwwmGzw45eRNlLMg();
                        XPMult = obj._bUyefY83pIQc4tdCSCBCAwGEWxF("XpMult", "0")._y09e3EoPW54jYelUtQzj66l0jRF();
                        num    = ((int)num2 * -1842834529) ^ 0x1C532820;
                        continue;

                    case 5u:
                        ShadowSize = (ushort)obj._bUyefY83pIQc4tdCSCBCAwGEWxF("ShadowSize", "0")._sO4kfypgWPkSczoRzkVQIGw3fyF();
                        num        = ((int)num2 * -887962358) ^ 0x3590B683;
                        continue;

                    case 6u:
                        ProtectFromSink = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("ProtectFromSink");
                        Enemy           = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Enemy");
                        num             = ((int)num2 * -834111851) ^ -660226433;
                        continue;

                    case 28u:
                        ProtectFromGroundDamage = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("ProtectFromGroundDamage");
                        num = (int)(num2 * 2041484975) ^ -621457841;
                        continue;

                    case 30u:
                        Item      = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Item");
                        Usable    = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Usable");
                        Soulbound = obj._ujE3VgDdVnbxGy9qIazxpFzbjrY("Soulbound");
                        MpCost    = (ushort)obj._bUyefY83pIQc4tdCSCBCAwGEWxF("MpCost", "0")._sO4kfypgWPkSczoRzkVQIGw3fyF();
                        sTbDMXqF9HeMn0Lda14uXKLE4RD._1Y65ux6ODW11oQa4WNlqrraKG6e = new List <ProjectileStructure>();
                        obj.Elements("Projectile")._rvkyhEufCiuaZq8jbaYgthJoLEx(sTbDMXqF9HeMn0Lda14uXKLE4RD._IZjAljPdl5GZBrivAgReV1Wxf62);
                        Projectiles = sTbDMXqF9HeMn0Lda14uXKLE4RD._1Y65ux6ODW11oQa4WNlqrraKG6e.ToArray();
                        Name        = obj._4qMIb2N5gf9DdhWw9LENt8TJhOK("id", "");
                        num         = ((int)num2 * -861282579) ^ 0x75A6C6FC;
                        continue;

                    case 22u:
                        return;
                    }
                    break;
                }
            }
        }