示例#1
0
        public void Begin()
        {
            VvVCity newCity = City;

            OnGoing = true;

            do
            {
                newCity = (VvVCity)Utility.Random(8);
            }while (newCity == City);

            City = newCity;

            BeginTimer();

            StartTime      = DateTime.UtcNow;
            NextSigilSpawn = DateTime.UtcNow + TimeSpan.FromMinutes(Utility.RandomMinMax(1, 3));

            AltarIndex = 0;
            SpawnAltars();
            SpawnPriests(false);

            if (Region is GuardedRegion)
            {
                GuardedRegion.Disable((GuardedRegion)Region);
            }

            NextAltarActivate = DateTime.UtcNow + TimeSpan.FromMinutes(1);

            System.SendVvVMessage(1154721, String.Format("#{0}", ViceVsVirtueSystem.GetCityLocalization(City).ToString()));
            // A Battle between Vice and Virtue is active! To Arms! The City of ~1_CITY~ is besieged!
        }
示例#2
0
        public override void OnResponse(NetState state, RelayInfo info)
        {
            int id = info.ButtonID;

            if (id == 0)
            {
                return;
            }

            VvVCity city = (VvVCity)id - 1;

            if (ViceVsVirtueSystem.Instance.ExemptCities.Contains(city))
            {
                ViceVsVirtueSystem.Instance.ExemptCities.Remove(city);
            }
            else
            {
                ViceVsVirtueSystem.Instance.ExemptCities.Add(city);
            }

            if (state.Gumps.Contains(this))
            {
                state.Gumps.Remove(this);
            }

            Entries.Clear();
            AddGumpLayout();

            state.Mobile.SendGump(this);
        }
示例#3
0
        public void Begin()
        {
            OnGoing             = true;
            NextCombatHeatCycle = DateTime.UtcNow;
            VvVCity        newCity = City;
            List <VvVCity> cities  = new List <VvVCity>();

            Teams        = new List <BattleTeam>();
            KillCooldown = new Dictionary <Mobile, DateTime>();
            Messages     = new List <string>();
            Altars       = new List <VvVAltar>();
            Traps        = new List <VvVTrap>();
            Warned       = new List <Mobile>();
            Turrets      = new List <CannonTurret>();

            for (int i = 0; i < 8; i++)
            {
                if (!System.ExemptCities.Contains((VvVCity)i) && (VvVCity)i != newCity)
                {
                    cities.Add((VvVCity)i);
                }
            }

            if (cities.Count > 0)
            {
                newCity = cities[Utility.Random(cities.Count)];
            }
            else if (System.ExemptCities.Contains(newCity))
            {
                System.SendVvVMessage("All VvV cities are currently exempt.");
                return;
            }

            ColUtility.Free(cities);
            City = newCity;
            BeginTimer();

            StartTime      = DateTime.UtcNow;
            NextSigilSpawn = DateTime.UtcNow + TimeSpan.FromMinutes(Utility.RandomMinMax(1, 3));

            AltarIndex = 0;
            SpawnAltars();
            SpawnPriests(false);

            if (Region is GuardedRegion)
            {
                GuardedRegion.Disable((GuardedRegion)Region);
            }

            NextAltarActivate = DateTime.UtcNow + TimeSpan.FromMinutes(1);

            System.SendVvVMessage(1154721, String.Format("#{0}", ViceVsVirtueSystem.GetCityLocalization(City).ToString()));
            // A Battle between Vice and Virtue is active! To Arms! The City of ~1_CITY~ is besieged!
        }
示例#4
0
        public void AddGumpLayout()
        {
            AddBackground(0, 0, 250, 300, 83);
            AddHtml(0, 15, 250, 60, "<basefont color=#FFFFFF><center>City Exempt List:<br>Check any cities that you do not want participating in VvV Battles.</center>", false, false);

            for (int i = 0; i < 8; i++)
            {
                VvVCity city   = (VvVCity)i;
                int     button = ViceVsVirtueSystem.Instance.ExemptCities.Contains(city) ? 211 : 210;

                AddButton(20, 80 + (i * 23), button, button, i + 1, GumpButtonType.Reply, 0);
                AddHtmlLocalized(44, 80 + (i * 23), 200, 20, ViceVsVirtueSystem.GetCityLocalization(city), 0xFFFF, false, false);
            }
        }
示例#5
0
        public static int GetCityLocalization(VvVCity city)
        {
            switch (city)
            {
            default: return(0);

            case VvVCity.Moonglow: return(1011344);

            case VvVCity.Britain: return(1011028);

            case VvVCity.Jhelom: return(1011343);

            case VvVCity.Yew: return(1011032);

            case VvVCity.Minoc: return(1011031);

            case VvVCity.Trinsic: return(1011029);

            case VvVCity.SkaraBrae: return(1011347);

            case VvVCity.Ocllo: return(1076027);
            }
        }