public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            if (1 == Utility.RandomMinMax(0, 3))
            {
                LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                MyChest.Name   = "irradiated chest";
                MyChest.Hue    = 0xB96;
                MyChest.ItemID = Utility.RandomList(0xe40, 0xe41);
                c.DropItem(MyChest);
            }

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    Server.Mobiles.Dragons.DropSpecial(this, killer, "", "Radiated", this.Name + " " + this.Title, c, 10, 0);
                }
            }
        }
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 4) == 1)
                    {
                        LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                        MyChest.Name = "cyclopean chest";
                        MyChest.Hue  = 0x9C4;
                        c.DropItem(MyChest);
                    }
                }
            }
        }
Example #3
0
        public override bool OnBeforeDeath()
        {
            if (m_SmallBoat != null)
            {
                Point3D splash1 = new Point3D(m_SmallBoat.X, (m_SmallBoat.Y + 2), m_SmallBoat.Z);
                Point3D splash2 = new Point3D((m_SmallBoat.X + 1), m_SmallBoat.Y, m_SmallBoat.Z);
                Point3D splash3 = new Point3D((m_SmallBoat.X - 1), (m_SmallBoat.Y + 2), m_SmallBoat.Z);
                Point3D splash4 = new Point3D(m_SmallBoat.X, (m_SmallBoat.Y - 2), m_SmallBoat.Z);

                Point3D wreck = new Point3D(m_SmallBoat.X, (m_SmallBoat.Y - 1), m_SmallBoat.Z);

                Effects.PlaySound(m_SmallBoat.Location, m_SmallBoat.Map, 0x026);

                Effects.SendLocationEffect(splash1, m_SmallBoat.Map, 0x352D, 16, 4);
                Effects.SendLocationEffect(splash2, m_SmallBoat.Map, 0x352D, 16, 4);
                Effects.SendLocationEffect(splash3, m_SmallBoat.Map, 0x352D, 16, 4);
                Effects.SendLocationEffect(splash4, m_SmallBoat.Map, 0x352D, 16, 4);

                if (Utility.RandomMinMax(1, 3) == 1)
                {
                    LootChest MyChest = new LootChest(Utility.RandomMinMax(1, 8));
                    MyChest.Name = "Chest Plundered from " + this.Name + " " + this.Title;
                    MyChest.MoveToWorld(wreck, Map);
                }

                m_SmallBoat.Delete();
            }

            return(base.OnBeforeDeath());
        }
        }                                                                       // H

        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 4) == 1)
                    {
                        LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                        MyChest.ItemID   = Utility.RandomList(0x1248, 0x1264);
                        MyChest.GumpID   = 0x62;
                        MyChest.TrapType = TrapType.None;
                        MyChest.Locked   = false;
                        MyChest.Name     = "mountain giant sack";
                        MyChest.Hue      = 0x9C4;
                        c.DropItem(MyChest);
                    }
                }
            }
        }
Example #5
0
 public void OpenChest(LootChest chest)
 {
     GD.Print("PlayerInventoryUiManager - OpenChest");
     lootChestMenuController.LoadChest(chest);
     equipmentSlotsManager.Visible   = false;
     lootChestMenuController.Visible = true;
 }
Example #6
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            Mobile killer = this.LastKiller;

            if (killer is BaseCreature)
            {
                killer = ((BaseCreature)killer).GetMaster();
            }

            if (killer is PlayerMobile)
            {
                if (GetPlayerInfo.LuckyKiller(killer.Luck) && Server.Misc.IntelligentAction.FameBasedEvent(this))
                {
                    LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                    Server.Misc.ContainerFunctions.MakeTomb(MyChest, this, 1);
                    c.DropItem(MyChest);
                }

                if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 100) == 1)
                {
                    DemonPrison shard = new DemonPrison();
                    c.DropItem(shard);
                }
            }
        }
Example #7
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Server.Misc.IntelligentAction.FameBasedEvent(this))
                    {
                        LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                        Server.Misc.ContainerFunctions.MakeDemonBox(MyChest, this);
                        MyChest.Hue = 0;
                        c.DropItem(MyChest);
                    }
                }
            }
        }
        private void HandleOnChestOpened(LootChest chest)
        {
            GameRoundManager.S.SetGamePaused(true);
            currentState = PlayerUiState.INVENTORY_CHEST;

            playerInventoryUiController.OpenChest(chest);
            playerInventoryUiController.Show();
        }
 // Use this for initialization
 void Start()
 {
     onInteract += () => { };
     seeTr       = GetComponentInChildren <SeeThrough>();
     sr          = GetComponent <SpriteRenderer>();
     lootChest   = GetComponent <LootChest>();
     ChangeSprite(IsCut);
 }
Example #10
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 4) == 1)
                    {
                        switch (Utility.RandomMinMax(0, 5))
                        {
                        case 0: c.DropItem(new DeadSkinLegs()); break;

                        case 1: c.DropItem(new DeadSkinGloves()); break;

                        case 2: c.DropItem(new DeadSkinGorget()); break;

                        case 3: c.DropItem(new DeadSkinArms()); break;

                        case 4: c.DropItem(new DeadSkinChest()); break;

                        case 5: c.DropItem(new DeadSkinHelm()); break;
                        }
                    }

                    if (GetPlayerInfo.LuckyKiller(killer.Luck))
                    {
                        if (Utility.RandomMinMax(1, 2) == 1)
                        {
                            CanopicJar jar = new CanopicJar();
                            c.DropItem(jar);
                        }
                        else
                        {
                            EmptyCanopicJar jars = new EmptyCanopicJar();
                            c.DropItem(jars);
                        }
                    }

                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 4) == 1)
                    {
                        LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                        MyChest.ItemID = Utility.RandomList(0xE40, 0xE41);
                        MyChest.Name   = "pharaoh chest";
                        MyChest.Hue    = 0xB1B;
                        c.DropItem(MyChest);
                    }
                }
            }
        }
        /// <summary>
        /// Updates the localized gamestrings to the selected <see cref="Localization"/>.
        /// </summary>
        /// <param name="lootChest">The data to be updated.</param>
        /// <param name="gameStringDocument">Instance of a <see cref="GameStringDocument"/>.</param>
        /// <exception cref="ArgumentNullException"><paramref name="gameStringDocument"/> is null.</exception>
        public static void UpdateGameStrings(this LootChest lootChest, GameStringDocument gameStringDocument)
        {
            if (gameStringDocument is null)
            {
                throw new ArgumentNullException(nameof(gameStringDocument));
            }

            gameStringDocument.UpdateGameStrings(lootChest);
        }
Example #12
0
        public void UpdateGameStringsThrowArgumentNullException()
        {
            LootChest lootChest = new LootChest
            {
                Id = "BasicPortrait",
            };

            Assert.ThrowsException <ArgumentNullException>(() => lootChest.UpdateGameStrings(null !));
        }
Example #13
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);
            GhostlyDust ingut = new GhostlyDust();

            ingut.Amount = Utility.RandomMinMax(1, 3);
            c.DropItem(ingut);

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 5) == 1 && !Server.Items.CharacterDatabase.GetSpecialsKilled(killer, "LichKing"))
                    {
                        Server.Items.CharacterDatabase.SetSpecialsKilled(killer, "LichKing");
                        ManualOfItems book = new ManualOfItems();
                        book.Hue        = 0x845;
                        book.Name       = "Tome of Lich King Relics";
                        book.m_Charges  = 1;
                        book.m_Skill_1  = 99;
                        book.m_Skill_2  = 0;
                        book.m_Skill_3  = 0;
                        book.m_Skill_4  = 0;
                        book.m_Skill_5  = 0;
                        book.m_Value_1  = 20.0;
                        book.m_Value_2  = 0.0;
                        book.m_Value_3  = 0.0;
                        book.m_Value_4  = 0.0;
                        book.m_Value_5  = 0.0;
                        book.m_Slayer_1 = 6;
                        book.m_Slayer_2 = 0;
                        book.m_Owner    = null;
                        book.m_Extra    = "of the Lich King";
                        book.m_FromWho  = "Taken from the King of the Dead";
                        book.m_HowGiven = "Acquired by";
                        book.m_Points   = 150;
                        book.m_Hue      = 0x845;
                        c.DropItem(book);
                    }

                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Server.Misc.IntelligentAction.FameBasedEvent(this))
                    {
                        LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                        Server.Misc.ContainerFunctions.MakeTomb(MyChest, this, 1);
                        c.DropItem(MyChest);
                    }
                }
            }
        }
Example #14
0
        public Dracula() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name        = "Dracula";
            Title       = "the master vampire";
            Body        = 311;
            BaseSoundID = 0x47D;

            SetStr(1096, 1185);
            SetDex(86, 175);
            SetInt(686, 775);

            SetHits(350, 400);

            SetDamage(29, 35);

            SetDamageType(ResistanceType.Physical, 75);
            SetDamageType(ResistanceType.Fire, 25);

            SetResistance(ResistanceType.Physical, 65, 75);
            SetResistance(ResistanceType.Fire, 80, 90);
            SetResistance(ResistanceType.Cold, 70, 80);
            SetResistance(ResistanceType.Poison, 60, 70);
            SetResistance(ResistanceType.Energy, 60, 70);

            SetSkill(SkillName.EvalInt, 80.1, 100.0);
            SetSkill(SkillName.Magery, 80.1, 100.0);
            SetSkill(SkillName.Meditation, 52.5, 75.0);
            SetSkill(SkillName.MagicResist, 100.5, 150.0);
            SetSkill(SkillName.Tactics, 97.6, 100.0);
            SetSkill(SkillName.Wrestling, 97.6, 100.0);

            Fame  = 22500;
            Karma = -22500;

            VirtualArmor = 70;

            if (1 == Utility.RandomMinMax(0, 2))
            {
                LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                MyChest.Name = "Dracula's Chest";
                MyChest.Hue  = 0x485;
                PackItem(MyChest);
            }

            if (1 == Utility.RandomMinMax(0, 3))
            {
                PackItem(new DraculaSword());
            }
            else
            {
                RoyalSword sword = new RoyalSword();
                sword.Hue = 0x497;
                PackItem(sword);
            }
        }
Example #15
0
 void onMouseOverLootChest(LootChest lootChest)
 {
     if (Input.GetMouseButton(0))
     {
         StartCoroutine(MoveToTarget(lootChest.gameObject));
         if (Vector3.Distance(lootChest.transform.position, this.gameObject.transform.position) < 5)
         {
             StartCoroutine(lootChest.OpenLootChest());
         }
     }
 }
        public void LoadChest(LootChest chest)
        {
            currentChest = chest;

            foreach (Item item in chest.GetContainedItems())
            {
                ItemInventoryTile tile = itemInventoryTilePrefab.Instance <ItemInventoryTile>();
                tile.Init(item);
                AddTileToSlot(tile);
            }
        }
 private static void EpicProgChestAsserts(LootChest lootChest)
 {
     Assert.AreEqual("EpicProgChest", lootChest.Id);
     Assert.AreEqual("Epic Chest", lootChest.Name);
     Assert.AreEqual("xEpicProgChest", lootChest.HyperlinkId);
     Assert.AreEqual(Rarity.Epic, lootChest.Rarity);
     Assert.AreEqual(3, lootChest.MaxRerolls);
     Assert.AreEqual("LootChestEpic", lootChest.TypeDescription);
     Assert.AreEqual("some event", lootChest.EventName);
     Assert.AreEqual("A Loot Chest that guarantees at least one Epic or better item.", lootChest.Description !.RawDescription);
 }
Example #18
0
        public LootChest CreateLootChest(GameObject_spawn spawn)
        {
            if (spawn == null || spawn.Proto == null)
            {
                return(null);
            }

            var obj = new LootChest(spawn);

            AddObject(obj, spawn.ZoneId);
            return(obj);
        }
Example #19
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 5) == 1 && !Server.Items.CharacterDatabase.GetSpecialsKilled(killer, "Dracula"))
                    {
                        Server.Items.CharacterDatabase.SetSpecialsKilled(killer, "Dracula", true);
                        ManualOfItems book = new ManualOfItems();
                        book.Hue        = 0x497;
                        book.Name       = "Tome of Dracula's Relics";
                        book.m_Charges  = 1;
                        book.m_Skill_1  = 99;
                        book.m_Skill_2  = 0;
                        book.m_Skill_3  = 0;
                        book.m_Skill_4  = 0;
                        book.m_Skill_5  = 0;
                        book.m_Value_1  = 15.0;
                        book.m_Value_2  = 0.0;
                        book.m_Value_3  = 0.0;
                        book.m_Value_4  = 0.0;
                        book.m_Value_5  = 0.0;
                        book.m_Slayer_1 = 24;
                        book.m_Slayer_2 = 0;
                        book.m_Owner    = killer;
                        book.m_Extra    = "of the Vampire";
                        book.m_FromWho  = "from Dracula";
                        book.m_HowGiven = "Acquired by";
                        book.m_Points   = 300;
                        book.m_Hue      = 0x497;
                        killer.AddToBackpack(book);
                        killer.PrivateOverheadMessage(MessageType.Regular, 1153, false, "You found a book and put it in your pack.", killer.NetState);
                    }

                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Server.Misc.IntelligentAction.FameBasedEvent(this))
                    {
                        LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                        Server.Misc.ContainerFunctions.MakeTomb(MyChest, this, 0);
                        c.DropItem(MyChest);
                    }
                }
            }
        }
Example #20
0
        public override bool OnBeforeDeath()
        {
            LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));

            MyChest.Name = "demonic chest";
            MyChest.Hue  = 0x966;
            MyChest.MoveToWorld(Location, Map);

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 5) == 1 && !Server.Items.CharacterDatabase.GetSpecialsKilled(killer, "BlackGateDemon"))
                    {
                        Server.Items.CharacterDatabase.SetSpecialsKilled(killer, "BlackGateDemon", true);
                        ManualOfItems book = new ManualOfItems();
                        book.Hue        = 0x497;
                        book.Name       = "Tome of Demonic Relics";
                        book.m_Charges  = 1;
                        book.m_Skill_1  = 99;
                        book.m_Skill_2  = 32;
                        book.m_Skill_3  = 0;
                        book.m_Skill_4  = 0;
                        book.m_Skill_5  = 0;
                        book.m_Value_1  = 10.0;
                        book.m_Value_2  = 10.0;
                        book.m_Value_3  = 0.0;
                        book.m_Value_4  = 0.0;
                        book.m_Value_5  = 0.0;
                        book.m_Slayer_1 = 14;
                        book.m_Slayer_2 = 0;
                        book.m_Owner    = null;
                        book.m_Extra    = "of the Black Gate";
                        book.m_FromWho  = "Found within the Black Gate";
                        book.m_HowGiven = "Acquired by";
                        book.m_Points   = 150;
                        book.m_Hue      = 0x497;
                        MyChest.AddItem(book);
                    }
                }
            }

            m_MoonTimer = new InternalTimer(this);
            m_MoonTimer.Start();
            return(base.OnBeforeDeath());
        }
Example #21
0
        public void UpdateGameStringsTest()
        {
            using GameStringDocument gameStringDocument = GameStringDocument.Parse(LoadEnusLocalizedStringData());

            LootChest lootChest = new LootChest
            {
                Id = "BasicPortrait",
            };

            lootChest.UpdateGameStrings(gameStringDocument);

            Assert.AreEqual("some name", lootChest.Name);
        }
Example #22
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            if (1 == Utility.RandomMinMax(0, 2))
            {
                LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                MyChest.Name   = "obsidian chest";
                MyChest.Hue    = 0x497;
                MyChest.ItemID = Utility.RandomList(0xe40, 0xe41);
                c.DropItem(MyChest);
            }
        }
        public void UpdateGameStringsTest()
        {
            using GameStringDocument gameStringDocument = GameStringDocument.Parse(LoadEnusLocalizedStringData());

            LootChest lootChest = new LootChest
            {
                Id = "EpicProgChest",
            };

            lootChest.UpdateGameStrings(gameStringDocument);

            Assert.AreEqual("Epic Chest", lootChest.Name);
            Assert.AreEqual("A Loot Chest that guarantees at least one Epic or better item.", lootChest.Description !.RawDescription);
        }
Example #24
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            Item scale = new CrystalScales();

            c.DropItem(scale);

            if (1 == Utility.RandomMinMax(0, 5))
            {
                DragonTooth ingut = new DragonTooth();
                ingut.Amount = 1;
                c.DropItem(ingut);
            }
            if (1 == Utility.RandomMinMax(0, 3))
            {
                LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                MyChest.Name   = "crystal chest";
                MyChest.Hue    = Utility.RandomList(0x48D, 0x48E, 0x48F, 0x490, 0x491);
                MyChest.ItemID = Utility.RandomList(0xe40, 0xe41);
                c.DropItem(MyChest);
            }

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck))
                    {
                        c.DropItem(new LargeCrystal());
                    }
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 10) == 1)
                    {
                        DragonLamp lamp = new DragonLamp();
                        lamp.Hue       = this.Hue;
                        lamp.LampName  = this.Name + " " + this.Title;
                        lamp.LampColor = "Crystal";
                        c.DropItem(lamp);
                    }
                }
            }
        }
Example #25
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 4) == 1 && this.Body == 320)
                    {
                        BaseWeapon sword = new Longsword();
                        sword.AccuracyLevel          = WeaponAccuracyLevel.Supremely;
                        sword.MinDamage              = sword.MinDamage + 4;
                        sword.MaxDamage              = sword.MaxDamage + 9;
                        sword.DurabilityLevel        = WeaponDurabilityLevel.Indestructible;
                        sword.AosElementDamages.Fire = 50;
                        sword.Name = "sword of " + this.Title;
                        if (Utility.RandomMinMax(0, 100) > 75)
                        {
                            sword.Slayer = SlayerName.Repond;
                        }
                        if (Utility.RandomMinMax(0, 100) > 75)
                        {
                            sword.WeaponAttributes.HitFireball = 10;
                        }
                        sword.Hue = 0xB17;
                        c.DropItem(sword);
                    }

                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Server.Misc.IntelligentAction.FameBasedEvent(this))
                    {
                        LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                        Server.Misc.ContainerFunctions.MakeDemonBox(MyChest, this);
                        MyChest.Hue = 0xB71;
                        c.DropItem(MyChest);
                    }
                }
            }
        }
        private LootChest GetLootChestData(string lootChestId, JsonElement lootChestElement)
        {
            LootChest lootChest = new LootChest()
            {
                Id = lootChestId,
            };

            if (lootChestElement.TryGetProperty("name", out JsonElement name))
            {
                lootChest.Name = name.GetString();
            }

            if (lootChestElement.TryGetProperty("hyperlinkId", out JsonElement hyperlinkId))
            {
                lootChest.HyperlinkId = hyperlinkId.GetString();
            }

            if (lootChestElement.TryGetProperty("rarity", out JsonElement rarityElement) && Enum.TryParse(rarityElement.GetString(), out Rarity rarity))
            {
                lootChest.Rarity = rarity;
            }

            if (lootChestElement.TryGetProperty("maxRerolls", out JsonElement maxRerolls))
            {
                lootChest.MaxRerolls = maxRerolls.GetInt32();
            }

            if (lootChestElement.TryGetProperty("typeDescription", out JsonElement typeDescription))
            {
                lootChest.TypeDescription = typeDescription.GetString();
            }

            if (lootChestElement.TryGetProperty("event", out JsonElement eventName))
            {
                lootChest.EventName = eventName.GetString();
            }

            if (lootChestElement.TryGetProperty("description", out JsonElement description))
            {
                lootChest.Description = SetTooltipDescription(description.GetString(), Localization);
            }

            GameStringDocument?.UpdateGameStrings(lootChest);

            return(lootChest);
        }
Example #27
0
        public OrkDemigod() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name        = NameList.RandomName("ork");
            Title       = "the ork demigod";
            Body        = 189;
            BaseSoundID = 0x59D;

            SetStr(1096, 1185);
            SetDex(86, 175);
            SetInt(686, 775);

            SetHits(658, 711);

            SetDamage(29, 35);

            SetDamageType(ResistanceType.Physical, 75);
            SetDamageType(ResistanceType.Fire, 25);

            SetResistance(ResistanceType.Physical, 65, 75);
            SetResistance(ResistanceType.Fire, 80, 90);
            SetResistance(ResistanceType.Cold, 70, 80);
            SetResistance(ResistanceType.Poison, 60, 70);
            SetResistance(ResistanceType.Energy, 60, 70);

            SetSkill(SkillName.EvalInt, 80.1, 100.0);
            SetSkill(SkillName.Magery, 80.1, 100.0);
            SetSkill(SkillName.Meditation, 52.5, 75.0);
            SetSkill(SkillName.MagicResist, 100.5, 150.0);
            SetSkill(SkillName.Tactics, 97.6, 100.0);
            SetSkill(SkillName.Wrestling, 97.6, 100.0);

            Fame  = 22500;
            Karma = -22500;

            VirtualArmor = 70;

            if (1 == Utility.RandomMinMax(0, 1))
            {
                LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                MyChest.Name   = "orkish war chest";
                MyChest.Hue    = 0x8A1;
                MyChest.ItemID = 0xE41;
                PackItem(MyChest);
            }
        }
Example #28
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);
            GhostlyDust ingut = new GhostlyDust();

            ingut.Amount = Utility.RandomMinMax(1, 3);
            c.DropItem(ingut);

            ArrayList targets = new ArrayList();

            foreach (Item item in World.Items.Values)
            {
                if (item is StaffPartLight)
                {
                    targets.Add(item);
                }
            }
            for (int i = 0; i < targets.Count; ++i)
            {
                Item item = ( Item )targets[i];
                item.Delete();
            }

            c.DropItem(new StaffPartLight());

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Server.Misc.IntelligentAction.FameBasedEvent(this))
                    {
                        LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                        Server.Misc.ContainerFunctions.MakeTomb(MyChest, this, 0);
                        c.DropItem(MyChest);
                    }
                }
            }
        }
Example #29
0
        public ZornTheBlacksmith() : base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name        = "Zorn";
            Title       = "the blacksmith";
            Body        = 75;
            BaseSoundID = 609;
            Hue         = 0;

            SetStr(536, 585);
            SetDex(126, 145);
            SetInt(281, 305);

            SetHits(322, 351);

            SetDamage(13, 16);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 35, 45);
            SetResistance(ResistanceType.Fire, 30, 40);
            SetResistance(ResistanceType.Cold, 25, 35);
            SetResistance(ResistanceType.Poison, 30, 40);
            SetResistance(ResistanceType.Energy, 30, 40);

            SetSkill(SkillName.EvalInt, 85.1, 100.0);
            SetSkill(SkillName.Magery, 85.1, 100.0);
            SetSkill(SkillName.MagicResist, 80.2, 110.0);
            SetSkill(SkillName.Tactics, 60.1, 80.0);
            SetSkill(SkillName.Wrestling, 40.1, 50.0);

            Fame  = 11500;
            Karma = -11500;

            VirtualArmor = 40;

            PackItem(new RubyPickaxe());

            if (1 == Utility.RandomMinMax(0, 2))
            {
                LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                MyChest.Name = "Zorn's Caddellite Chest";
                MyChest.Hue  = 0x5B6;
                PackItem(MyChest);
            }
        }
Example #30
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            Mobile killer = this.LastKiller;

            if (killer != null)
            {
                if (killer is BaseCreature)
                {
                    killer = ((BaseCreature)killer).GetMaster();
                }

                if (killer is PlayerMobile)
                {
                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 4) == 1)
                    {
                        switch (Utility.RandomMinMax(0, 5))
                        {
                        case 0: c.DropItem(new DeadSkinLegs()); break;

                        case 1: c.DropItem(new DeadSkinGloves()); break;

                        case 2: c.DropItem(new DeadSkinGorget()); break;

                        case 3: c.DropItem(new DeadSkinArms()); break;

                        case 4: c.DropItem(new DeadSkinChest()); break;

                        case 5: c.DropItem(new DeadSkinHelm()); break;
                        }
                    }

                    if (GetPlayerInfo.LuckyKiller(killer.Luck) && Utility.RandomMinMax(1, 4) == 1)
                    {
                        LootChest MyChest = new LootChest(Server.Misc.IntelligentAction.FameBasedLevel(this));
                        MyChest.Name = "titan lich chest";
                        MyChest.Hue  = this.Hue;
                        c.DropItem(MyChest);
                    }
                }
            }
        }