コード例 #1
0
        private void tas_BattleMapChanged(object sender, TasEventArgs e)
        {
            if (config.DisplayMapLink)
            {
                SayBattle("maplink: " + linker.GetMapBounceLink(tas.GetBattle().Map.Name));
            }

            var    b       = tas.GetBattle();
            string mapName = b.Map.ArchiveName.ToLower();

            if (MapBoxes.ContainsKey(mapName))
            {
                for (int i = 0; i < b.Rectangles.Count; ++i)
                {
                    tas.RemoveBattleRectangle(i);
                }
                var dict = MapBoxes[mapName];
                foreach (var v in dict)
                {
                    tas.AddBattleRectangle(v.Key, v.Value);
                }
            }


            if (Program.main.config.PlanetWarsEnabled)
            {
                try {
                    var pw = Program.main.PlanetWars;

                    string name    = tas.GetBattle().Map.Name;
                    var    mapInfo = pw.GetAttackOptions().Find(m => m.MapName == name);
                    if (mapInfo.StartBoxes != null && mapInfo.StartBoxes.Count > 0)
                    {
                        int rectangles = tas.GetBattle().Rectangles.Count;
                        for (int i = 0; i < rectangles; ++i)
                        {
                            tas.RemoveBattleRectangle(i);
                        }
                        for (int i = 0; i < mapInfo.StartBoxes.Count; ++i)
                        {
                            var mi = mapInfo.StartBoxes[i];
                            tas.AddBattleRectangle(i, new BattleRect(mi.Left, mi.Top, mi.Right, mi.Bottom));
                        }
                    }

                    foreach (var command in mapInfo.AutohostCommands)
                    {
                        tas.Say(TasClient.SayPlace.Channel, tas.UserName, command, false);
                    }

                    SayBattle("Planet changed succesfully!");

                    var notifyList = pw.GetPlayersToNotify(name);
                    notifyList.ForEach(userName => tas.Say(TasClient.SayPlace.User, userName, string.Format("Your planet {0} is under attack! Come defend it!", mapInfo.Name), false));
                } catch (Exception ex) {
                    SayBattle(string.Format("Error setting planet starting boxes: {0}", ex.Message));
                }
            }
        }
コード例 #2
0
        public void MapChanged()
        {
            try {
                string name    = tas.GetBattle().Map.Name;
                var    mapInfo = server.GetAttackOptions(account).Where(m => m.MapName == name).Single();
                if (mapInfo.StartBoxes != null && mapInfo.StartBoxes.Count > 0)
                {
                    int rectangles = tas.GetBattle().Rectangles.Count;
                    for (int i = 0; i < rectangles; ++i)
                    {
                        tas.RemoveBattleRectangle(i);
                    }
                    for (int i = 0; i < mapInfo.StartBoxes.Count; ++i)
                    {
                        var mi = mapInfo.StartBoxes[i];
                        tas.AddBattleRectangle(i, new BattleRect(mi.Left, mi.Top, mi.Right, mi.Bottom));
                    }
                }

                foreach (var command in mapInfo.AutohostCommands)
                {
                    tas.Say(TasClient.SayPlace.Channel, tas.UserName, command, false);
                }

                autoHost.SayBattle(String.Format("Welcome to {0}!  (http://{2}/planet.aspx?name={1})", mapInfo.Name, Uri.EscapeUriString(mapInfo.Name), host));

                var notifyList = server.GetPlayersToNotify(account, name, ReminderEvent.OnBattlePreparing);
                foreach (var userName in notifyList)
                {
                    tas.Say(TasClient.SayPlace.User, userName, string.Format("Planet {0} is under attack! Join the fight!", mapInfo.Name), false);
                }
            } catch (Exception ex) {
                autoHost.SayBattle(string.Format("Error setting planet starting boxes: {0}", ex));
            }
        }
コード例 #3
0
        private void tas_BattleMapChanged(object sender, TasEventArgs e)
        {
            if (config.DisplayMapLink)
            {
                SayBattle("maplink: " + linker.GetMapBounceLink(tas.GetBattle().Map.Name));
            }
            foreach (UserBattleStatus p in tas.GetBattle().Users)
            {
                //ring all people that host changed the map
                tas.Ring(p.name);
            }
            Battle b       = tas.GetBattle();
            string mapName = b.Map.ArchiveName.ToLower();

            if (MapBoxes.ContainsKey(mapName))
            {
                for (int i = 0; i < b.Rectangles.Count; ++i)
                {
                    tas.RemoveBattleRectangle(i);
                }
                Dictionary <int, BattleRect> dict = MapBoxes[mapName];
                foreach (KeyValuePair <int, BattleRect> v in dict)
                {
                    tas.AddBattleRectangle(v.Key, v.Value);
                }
            }
        }
コード例 #4
0
        private void tas_BattleMapChanged(object sender, TasEventArgs e)
        {
            var    b       = tas.GetBattle();
            string mapName = b.Map.Name.ToLower();

            if (MapBoxes.ContainsKey(mapName))
            {
                for (int i = 0; i < b.Rectangles.Count; ++i)
                {
                    tas.RemoveBattleRectangle(i);
                }
                var dict = MapBoxes[mapName];
                foreach (var v in dict)
                {
                    tas.AddBattleRectangle(v.Key, v.Value);
                }
            }

            if (Program.main.PlanetWars != null)
            {
                Program.main.PlanetWars.MapChanged();
            }
        }