コード例 #1
0
ファイル: King.cs プロジェクト: HyVong007/Ancient-Empires
        // ========================================================================


        protected void OnEnable()
        {
            if (GameData.dataToLoad == null)
            {
                health = 100f;
                Wisp.Heal(this, false);
                DireWolf.Poisoning(this, false);
            }
        }
コード例 #2
0
        public override void Damage(Mobile m)
        {
            base.Damage(m);

            if (m.Alive)
            {
                Item item = m.FindItemOnLayer(Layer.OuterTorso);

                if (item is GMRobe)
                {
                    AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                }
                else
                {
                    // Bank Music
                    if (Utility.RandomDouble() < 0.001)
                    {
                        m.Send(Network.PlayMusic.GetInstance(MusicName.Stones2));
                        AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                    }

                    // Flamestrike
                    if (Utility.RandomDouble() < 0.01)
                    {
                        m.Stam -= 20;
                        m.Mana -= 25;
                        m.FixedParticles(0x3709, 10, 30, 5052, EffectLayer.LeftFoot);
                        m.PlaySound(0x208);
                        m.PlaySound(m.Female ? 814 : 1088);
                        m.Say("*ahhhh!*");
                        AOS.Damage(m, Utility.Random(15, 25), 0, 100, 0, 0, 0);
                    }

                    // Forest Music
                    if (Utility.RandomDouble() < 0.001)
                    {
                        m.Send(Network.PlayMusic.GetInstance(MusicName.Linelle));
                        AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                    }

                    // Greater Heal
                    if (Utility.RandomDouble() < 0.01)
                    {
                        m.Hits += (Utility.Random(250, 300));
                        m.Stam += (Utility.Random(250, 300));
                        m.Mana += (Utility.Random(250, 300));
                        m.FixedParticles(0x375A, 1, 30, 9966, 88, 2, EffectLayer.Head);
                        m.FixedParticles(0x37B9, 1, 30, 9502, 85, 3, EffectLayer.Head);
                        m.FixedParticles(0x376A, 1, 31, 9961, 80, 0, EffectLayer.Waist);
                        m.FixedParticles(0x37C4, 1, 31, 9502, 88, 2, EffectLayer.Waist);
                        m.PlaySound(0x202);
                        AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                    }

                    // Ice Blast
                    if (Utility.RandomDouble() < 0.01)
                    {
                        m.Stam -= 10;
                        m.Mana -= 20;
                        m.FixedParticles(0x374A, 10, 30, 5013, 1153, 2, EffectLayer.Waist);
                        m.PlaySound(0x0FC);
                        AOS.Damage(m, Utility.Random(15, 25), 0, 0, 100, 0, 0);
                    }

                    // Lightning Strike
                    if (Utility.RandomDouble() < 0.01)
                    {
                        m.PlaySound(Utility.RandomList(0x5CE));
                        m.BoltEffect(0x480);
                        AOS.Damage(m, Utility.RandomMinMax(12, 35), 0, 0, 0, 0, 100);
                    }

                    // Random Encounter 1
                    if (Utility.RandomDouble() < 0.002)
                    {
                        if (m.Map == Map.Tokuno)
                        {
                            int x1 = m.X + 12;
                            int y1 = m.Y + 12;
                            int z1 = Map.Tokuno.GetAverageZ(x1, y1);

                            if (Map.Tokuno.CanSpawnMobile(x1, y1, z1))
                            {
                                BaseCreature encountera;
                                switch (Utility.Random(3))
                                {
                                default:
                                case 0: encountera = new RunningPants(); break;

                                case 1: encountera = new RunningPants(); break;

                                case 2: encountera = new RunningPants(); break;
                                }
                                encountera.MoveToWorld(new Point3D(x1, y1, z1), Map.Tokuno);
                                encountera.Combatant = m;

                                IceFieldIceFlame ice = new IceFieldIceFlame();
                                ice.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);


                                IceFieldIceFlame icea = new IceFieldIceFlame();
                                icea.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y + 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame iceb = new IceFieldIceFlame();
                                iceb.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y - 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame icec = new IceFieldIceFlame();
                                icec.MoveToWorld(new Point3D(encountera.X, encountera.Y + 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame iced = new IceFieldIceFlame();
                                iced.MoveToWorld(new Point3D(encountera.X, encountera.Y - 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame icee = new IceFieldIceFlame();
                                icee.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame icef = new IceFieldIceFlame();
                                icef.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y - 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame iceg = new IceFieldIceFlame();
                                iceg.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y + 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame iceh = new IceFieldIceFlame();
                                iceh.ItemID = 0x8e1;
                                iceh.MoveToWorld(new Point3D(encountera.X, encountera.Y, encountera.Z + 19), encountera.Map);
                                m.PlaySound(0x208);

                                AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                                Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteEncounterA), encountera);
                            }
                        }
                    }

                    // Random Encounter 2
                    if (Utility.RandomDouble() < 0.002)
                    {
                        if (m.Map == Map.Tokuno)
                        {
                            int x2 = m.X - 12;
                            int y2 = m.Y - 12;
                            int z2 = Map.Tokuno.GetAverageZ(x2, y2);

                            if (Map.Tokuno.CanSpawnMobile(x2, y2, z2))
                            {
                                BaseCreature encountera;
                                switch (Utility.Random(3))
                                {
                                default:
                                case 0: encountera = new RunningPants(); break;

                                case 1: encountera = new RunningPants(); break;

                                case 2: encountera = new RunningPants(); break;
                                }
                                encountera.MoveToWorld(new Point3D(x2, y2, z2), Map.Tokuno);
                                encountera.Combatant = m;

                                IceFieldIceFlame ice = new IceFieldIceFlame();
                                ice.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);


                                IceFieldIceFlame icea = new IceFieldIceFlame();
                                icea.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y + 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame iceb = new IceFieldIceFlame();
                                iceb.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y - 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame icec = new IceFieldIceFlame();
                                icec.MoveToWorld(new Point3D(encountera.X, encountera.Y + 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame iced = new IceFieldIceFlame();
                                iced.MoveToWorld(new Point3D(encountera.X, encountera.Y - 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame icee = new IceFieldIceFlame();
                                icee.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame icef = new IceFieldIceFlame();
                                icef.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y - 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame iceg = new IceFieldIceFlame();
                                iceg.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y + 5, encountera.Z), encountera.Map);
                                m.PlaySound(0x208);

                                IceFieldIceFlame iceh = new IceFieldIceFlame();
                                iceh.ItemID = 0x8e1;
                                iceh.MoveToWorld(new Point3D(encountera.X, encountera.Y, encountera.Z + 19), encountera.Map);
                                m.PlaySound(0x208);

                                AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                                Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteEncounterA), encountera);
                            }
                        }
                    }

                    // Tamable Encounter 1
                    if (Utility.RandomDouble() < 0.002)
                    {
                        if (m.Map == Map.Tokuno)
                        {
                            int x1 = m.X + 12;
                            int y1 = m.Y + 12;
                            int z1 = Map.Tokuno.GetAverageZ(x1, y1);

                            if (Map.Tokuno.CanSpawnMobile(x1, y1, z1))
                            {
                                BaseCreature tameable;
                                switch (Utility.Random(5))
                                {
                                default:
                                case 0: tameable = new Bird(); break;

                                case 1: tameable = new BlackBear(); break;

                                case 2: tameable = new DireWolf(); break;

                                case 3: tameable = new Goat(); break;

                                case 4: tameable = new Horse(); break;
                                }
                                tameable.MoveToWorld(new Point3D(x1, y1, z1), Map.Tokuno);

                                AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                                Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteTameable), tameable);
                            }
                        }
                    }

                    // Tamable Encounter 2
                    if (Utility.RandomDouble() < 0.002)
                    {
                        if (m.Map == Map.Tokuno)
                        {
                            int x2 = m.X - 12;
                            int y2 = m.Y - 12;
                            int z2 = Map.Tokuno.GetAverageZ(x2, y2);

                            if (Map.Tokuno.CanSpawnMobile(x2, y2, z2))
                            {
                                BaseCreature tameable;
                                switch (Utility.Random(5))
                                {
                                default:
                                case 0: tameable = new Bird(); break;

                                case 1: tameable = new BlackBear(); break;

                                case 2: tameable = new DireWolf(); break;

                                case 3: tameable = new Goat(); break;

                                case 4: tameable = new Horse(); break;
                                }
                                tameable.MoveToWorld(new Point3D(x2, y2, z2), Map.Tokuno);

                                AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                                Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteTameable), tameable);
                            }
                        }
                    }
                }
            }
        }
コード例 #3
0
        public override void IncreaseTier()
        {
            base.IncreaseTier();

            List <object> list = new List <object>();
            BaseCreature  c;

            // haven't got a clue if levels are OSI
            switch (this.Tier)
            {
            case 1:
                c = new Crane();
                c.MoveToWorld(new Point3D(4500, 1382, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                break;

            case 2:
                c = new DireWolf();
                c.MoveToWorld(new Point3D(4494, 1370, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                c = new DireWolf();
                c.MoveToWorld(new Point3D(4494, 1360, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                c = new WhiteWolf();
                c.MoveToWorld(new Point3D(4491, 1366, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                c = new WhiteWolf();
                c.MoveToWorld(new Point3D(4497, 1366, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                c = new GreyWolf();
                c.MoveToWorld(new Point3D(4497, 1366, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                break;

            case 3:
                c = new Quagmire();
                c.MoveToWorld(new Point3D(4483, 1392, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                c = new BogThing();
                c.MoveToWorld(new Point3D(4486, 1385, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                c = new PlagueBeast();
                c.MoveToWorld(new Point3D(4486, 1379, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                break;

            case 4:
                c = new PolarBear();
                c.MoveToWorld(new Point3D(4513, 1395, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                c = new PolarBear();
                c.MoveToWorld(new Point3D(4508, 1393, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                break;

            case 5:
                c = new Yamandon();
                c.MoveToWorld(new Point3D(4498, 1393, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                break;

            case 6:
                c = new Changeling();
                c.MoveToWorld(new Point3D(4518, 1358, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                break;

            case 7:
                c = new Wyvern();
                c.MoveToWorld(new Point3D(4512, 1381, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                break;

            case 8:
                c = new Dragon();
                c.MoveToWorld(new Point3D(4511, 1372, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                c = new Drake();
                c.MoveToWorld(new Point3D(4516, 1371, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                break;

            case 9:
                c = new Reptalon();
                c.MoveToWorld(new Point3D(4530, 1387, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                break;

            case 10:
                c = new SilverSteed();
                c.MoveToWorld(new Point3D(4506, 1358, 23), this.Map);
                c.Blessed = true;
                c.Tamable = false;
                list.Add(c);

                /*
                 * c = new Sphynx();
                 * c.MoveToWorld( new Point3D( 4506, 1358, 23 ), Map );
                 * c.Blessed = true;
                 * c.Tamable = false;
                 * list.Add( c );*/

                break;
            }

            if (list.Count > 0)
            {
                this.Tiers.Add(list);
            }
        }
コード例 #4
0
        public override void Damage(Mobile m)
        {
            base.Damage(m);

            if (m.Alive)
            {
                Item item = m.FindItemOnLayer(Layer.OuterTorso);

                if (item is GMRobe)
                {
                    AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                }
                else if (item is GMRobeExplosion)
                {
                    AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                    m.PlaySound(Utility.RandomList(0x307, 0x308));
                }
                else if (item is GMRobeHoly)
                {
                    AOS.Damage(m, 0, 0, 0, 0, 0, 0);

                    m.FixedParticles(0x375A, 1, 30, 9966, 88, 2, EffectLayer.Head);
                    m.FixedParticles(0x37B9, 1, 30, 9502, 85, 3, EffectLayer.Head);
                    m.FixedParticles(0x376A, 1, 31, 9961, 80, 0, EffectLayer.Waist);
                    m.FixedParticles(0x37C4, 1, 31, 9502, 88, 2, EffectLayer.Waist);
                }
                else if (item is GMRobeTrailfire)
                {
                    AOS.Damage(m, 0, 0, 0, 0, 0, 0);

                    m.FixedParticles(0x3709, 10, 30, 5052, EffectLayer.LeftFoot);
                }
                else
                {
                    // Wind
                    if (Utility.RandomDouble() < 0.09)
                    {
                        m.PlaySound(Utility.RandomList(0x014, 0x15, 0x016, 0x5C7));
                        AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                    }

                    // Thunderstorm
                    if (Utility.RandomDouble() < 0.06)
                    {
                        m.PlaySound(Utility.RandomList(0x028, 0x029, 0x206));
                        AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                    }

                    // Lightning Strike
                    if (Utility.RandomDouble() < 0.01)
                    {
                        m.PlaySound(Utility.RandomList(0x5CE));
                        m.BoltEffect(0x480);
                        AOS.Damage(m, Utility.RandomMinMax(12, 35), 0, 0, 0, 0, 100);
                    }

                    // Random Encounter 1
                    if (Utility.RandomDouble() < 0.002)
                    {
                        if (m.Map == Map.Malas)
                        {
                            int x1 = m.X + 12;
                            int y1 = m.Y + 12;
                            int z1 = Map.Malas.GetAverageZ(x1, y1);

                            if (Map.Malas.CanSpawnMobile(x1, y1, z1))
                            {
                                BaseCreature encountera;
                                switch (Utility.Random(3))
                                {
                                default:
                                case 0: encountera = new Ettin(); break;

                                case 1: encountera = new Ogre(); break;

                                case 2: encountera = new Troll(); break;
                                }
                                encountera.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas);
                                encountera.Combatant = m;

                                AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                                Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteEncounterA), encountera);
                            }
                        }
                    }

                    // Random Encounter 2
                    if (Utility.RandomDouble() < 0.002)
                    {
                        if (m.Map == Map.Malas)
                        {
                            int x2 = m.X - 12;
                            int y2 = m.Y - 12;
                            int z2 = Map.Malas.GetAverageZ(x2, y2);

                            if (Map.Malas.CanSpawnMobile(x2, y2, z2))
                            {
                                BaseCreature encountera;
                                switch (Utility.Random(3))
                                {
                                default:
                                case 0: encountera = new Ettin(); break;

                                case 1: encountera = new Ogre(); break;

                                case 2: encountera = new Troll(); break;
                                }
                                encountera.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas);
                                encountera.Combatant = m;

                                AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                                Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteEncounterA), encountera);
                            }
                        }
                    }

                    // Tamable Encounter 1
                    if (Utility.RandomDouble() < 0.002)
                    {
                        if (m.Map == Map.Malas)
                        {
                            int x1 = m.X + 12;
                            int y1 = m.Y + 12;
                            int z1 = Map.Malas.GetAverageZ(x1, y1);

                            if (Map.Malas.CanSpawnMobile(x1, y1, z1))
                            {
                                BaseCreature tameable;
                                switch (Utility.Random(5))
                                {
                                default:
                                case 0: tameable = new Bird(); break;

                                case 1: tameable = new BlackBear(); break;

                                case 2: tameable = new DireWolf(); break;

                                case 3: tameable = new Goat(); break;

                                case 4: tameable = new Horse(); break;
                                }
                                tameable.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas);

                                AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                                Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteTameable), tameable);
                            }
                        }
                    }

                    // Tamable Encounter 2
                    if (Utility.RandomDouble() < 0.002)
                    {
                        if (m.Map == Map.Malas)
                        {
                            int x2 = m.X - 12;
                            int y2 = m.Y - 12;
                            int z2 = Map.Malas.GetAverageZ(x2, y2);

                            if (Map.Malas.CanSpawnMobile(x2, y2, z2))
                            {
                                BaseCreature tameable;
                                switch (Utility.Random(5))
                                {
                                default:
                                case 0: tameable = new Bird(); break;

                                case 1: tameable = new BlackBear(); break;

                                case 2: tameable = new DireWolf(); break;

                                case 3: tameable = new Goat(); break;

                                case 4: tameable = new Horse(); break;
                                }
                                tameable.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas);

                                AOS.Damage(m, 0, 0, 0, 0, 0, 0);
                                Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteTameable), tameable);
                            }
                        }
                    }
                }
            }
        }
コード例 #5
0
        public override void OnCast()
        {
            if (CheckSequence())
            {
                double time = DamagingSkill(Caster) * 2;
                if (time > 480)
                {
                    time = 480.0;
                }
                if (time < 120)
                {
                    time = 120.0;
                }

                int creatures = Caster.FollowersMax - Caster.Followers;
                if (creatures > 3)
                {
                    creatures = 3;
                }

                TimeSpan duration = TimeSpan.FromSeconds(time);

                BaseCreature m_Creature = new Rabbit();

                while (creatures > 0)
                {
                    creatures--;
                    switch (Utility.RandomMinMax(0, 10))
                    {
                    case 0: m_Creature = new BlackBear();           break;

                    case 1: m_Creature = new BrownBear();           break;

                    case 2: m_Creature = new DireWolf();            break;

                    case 3: m_Creature = new Panther();                     break;

                    case 4: m_Creature = new Tiger();                       break;

                    case 5: m_Creature = new TimberWolf();          break;

                    case 6: m_Creature = new Scorpion();            break;

                    case 7: m_Creature = new GiantSpider();         break;

                    case 8: m_Creature = new HugeLizard();          break;

                    case 9: m_Creature = new GiantToad();           break;

                    case 10: m_Creature = new Slime();                      break;
                    }

                    m_Creature.ControlSlots = 1;
                    SpellHelper.Summon(m_Creature, Caster, 0x216, duration, false, false);
                }

                m_Creature.FixedParticles(0x3728, 8, 20, 5042, Server.Items.CharacterDatabase.GetMySpellHue(Caster, 0), 0, EffectLayer.Head);
                Server.Misc.Research.ConsumeScroll(Caster, true, spellIndex, false);
            }

            FinishSequence();
        }