예제 #1
0
        public void Death_Callback()
        {
            BaseSpecialEffect e = SpecialFX.FirePentagram.CreateInstance(
                Location, Map, 10, 0, TimeSpan.FromMilliseconds(1000 - ((10 - 1) * 100)));

            e.Send();

            Name         = "Xyrrath Chaosborn";
            BodyValue    = 1071;
            Hue          = 0;
            SpecialTitle = "Great Daemon of Chaos";
            TitleHue     = 1174;
            Frozen       = false;
        }
예제 #2
0
        protected void Summon_Callback()
        {
            if (Deleted || Map == null || Map == Map.Internal || Location == Point3D.Zero)
            {
                return;
            }

            BaseSpecialEffect e = SpecialFX.FirePentagram.CreateInstance(
                Location, Map, 5, 0, TimeSpan.FromMilliseconds(1000 - ((10 - 1) * 100)));

            e.Send();

            var mobile = new PowerfulDemon();

            mobile.MoveToWorld(Location, Map);
        }
예제 #3
0
        public void Death_Callback()
        {
            BaseSpecialEffect e = SpecialFX.FirePentagram.CreateInstance(
                Location, Map, 10, 0, TimeSpan.FromMilliseconds(1000 - ((10 - 1) * 100)));

            e.Send();

            Name         = "Fluffy of Caerbannog";
            Body         = 221;
            Hue          = 2042;
            HitsMaxSeed  = 50000;
            Hits         = 50000;
            SpecialTitle = "The Wretched Rabbit";
            TitleHue     = 1174;
            Frozen       = false;
        }
예제 #4
0
        public void Calcdamage(Mobile m, int damage)
        {
            if (Battle == null || Battle.Deleted)
            {
                return;
            }

            if (!(m is PlayerMobile))
            {
                return;
            }

            var pm   = (PlayerMobile)m;
            var team = Battle.FindTeam(pm) as BoWTeam;

            if (team == null)
            {
                return;
            }

            if (!Battle.IsParticipant(pm))
            {
                pm.SendMessage("You must be a participant to perform that action.");
                return;
            }

            if (_Controller != team)
            {
                if (CurrentHealth - damage > 0)
                {
                    CurrentHealth -= damage;
                }
                else if (CurrentHealth - damage == 0)
                {
                    CurrentHealth = 0;
                    Hue           = 0;

                    if (_Controller.Multi > 1)
                    {
                        _Controller.Multi--;
                    }

                    _Controller = null;
                }
                else if (CurrentHealth - damage < 0)
                {
                    Battle.LocalBroadcast("{0} have taken control of a magical brazier!", team.Name);
                    Hue           = team.Color;
                    CurrentHealth = damage - CurrentHealth;

                    Battle.EnsureStatistics(pm)["Brazier Captures"]++;

                    if (_Controller != null && _Controller.Multi > 1)
                    {
                        _Controller.Multi--;
                    }

                    _Controller = team;
                    _Controller.Multi++;
                }

                OwnedMessage();
            }
            else if (_Controller == team)
            {
                if (CurrentHealth + damage < 10)
                {
                    CurrentHealth += damage;
                }
                else
                {
                    CurrentHealth = 10;

                    if (_LastFX + TimeSpan.FromSeconds(20) <= DateTime.UtcNow)
                    {
                        BaseSpecialEffect e = SpecialFX.FirePentagram.CreateInstance(
                            Location, Map, 5, 0, TimeSpan.FromMilliseconds(1000 - ((10 - 1) * 100)));
                        e.Send();
                        _LastFX = DateTime.UtcNow;
                    }
                }

                OwnedMessage();
            }
        }
예제 #5
0
        public void SpawnBoss(Point3D spawnlocation)
        {
            switch (PortalType)
            {
            case PortalType.Undead:
            {
                Boss = new LockeColePortal {
                    Portal = this, PortalBoss = true
                };
                break;
            }

            case PortalType.Beetle:
            {
                Boss = new IrradiatedBeetlePortal {
                    Portal = this, PortalBoss = true
                };
                break;
            }

            case PortalType.Demon:
            {
                Boss = new DarkFatherPortal {
                    Portal = this, PortalBoss = true
                };
                break;
            }

            case PortalType.Wyrm:
            {
                Boss = new Bahamut {
                    Portal = this, PortalBoss = true
                };
                break;
            }

            case PortalType.Lummox:
            {
                Boss = new LummoxWarHeroPortal {
                    Portal = this, PortalBoss = true
                };
                break;
            }

            case PortalType.Minotaur:
            {
                Boss = new MinotaurWarHeroPortal {
                    Portal = this, PortalBoss = true
                };
                break;
            }
            }

            foreach (var kvp in ParticipantsScores)
            {
                double score = kvp.Value;
                Boss.AwardScorePoints(kvp.Key, ref score);
            }

            BaseSpecialEffect e = SpecialFX.FirePentagram.CreateInstance(
                spawnlocation, DungeonMap, 10, 0, TimeSpan.FromMilliseconds(1000 - ((10 - 1) * 100)));

            e.Send();
            Boss.MoveToWorld(spawnlocation, DungeonMap);
        }