Пример #1
0
        public override void Start()
        {
            base.Start();

            SpaceWar2006.GameSystem.Mod.Instance.Init();

            int i;

            if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-password"; }))) != -1)
            {
                string password = Root.Instance.Args[i + 1];

                Root.Instance.ClientPassword = password;
            }

            if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-connect"; }))) != -1)
            {
                string host = Root.Instance.Args[i + 1];

                Game g = new Game(host, null, false, false);
                Root.Instance.CurrentFlow = g;
                g.Start();
                return;
            }
            if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-spectate"; }))) != -1)
            {
                string host = Root.Instance.Args[i + 1];

                Game g = new Game(host, null, true, false);
                Root.Instance.CurrentFlow = g;
                g.Start();
                return;
            }
            if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-demo"; }))) != -1)
            {
                string host = Root.Instance.Args[i + 1];

                Game g = new Game(null, host, true, false);
                Root.Instance.CurrentFlow = g;
                g.Start();
                return;
            }
            if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-view"; }))) != -1)
            {
                string mesh = Root.Instance.Args[i + 1];

                Viewer v = new Viewer(mesh);
                Root.Instance.CurrentFlow = v;
                v.Start();
                return;
            }
            if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-edit"; }))) != -1)
            {
                //string mesh = Root.Instance.Args[i + 1];

                SpaceWar2006.Editor.SpaceEditor v = new SpaceWar2006.Editor.SpaceEditor();
                if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-map"; }))) != -1)
                {
                    string map = Root.Instance.Args[i + 1];
                    v.LoadMap(map);
                }
                if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-save"; }))) != -1)
                {
                    string source = Root.Instance.Args[i + 1];
                    v.SaveFileName = source;
                }
                if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-name"; }))) != -1)
                {
                    string name = Root.Instance.Args[i + 1];
                    v.MapName = name;
                }
                Root.Instance.CurrentFlow = v;
                v.Start();
                return;
            }
            if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-local"; }))) != -1)
            {
                Game g = new Game(null, null, false, true);
                Root.Instance.CurrentFlow = g;
                g.Start();
                return;
            }
            if ((i = Array.FindIndex<string>(Root.Instance.Args, new Predicate<string>(delegate(string s) { return s == "-localspectate"; }))) != -1)
            {
                Game g = new Game(null, null, true, true);
                Root.Instance.CurrentFlow = g;
                g.Start();
                return;
            }
            Root.Instance.Scene.camera = new Camera();

            if(Root.Instance.Gui!=null)
                Root.Instance.Gui.windows.Add(new MainMenu());
        }
Пример #2
0
        protected void PlayButtonPressed(Button source,int button, float x, float y)
        {
            if (ModeSettings == null)
            {
                PlayButton.Caption = "Play (you must select a gametype!)";
                return;
            }

            Root.Instance.Gui.windows.Remove(this);
            Root.Instance.CurrentFlow.Stop();
            Game g = new Game(null, null, false, true);
            g.Server.NextMap = (Map)Activator.CreateInstance((Type)Map.Selected.Object);
            //g.Server.NextMap = new TestSector();
            g.Server.NextBotCount = int.Parse(BotCount.GetLine(0));
            g.Server.NextRule = ((IRuleCreator)ModeSettings).CreateRule();
            Root.Instance.CurrentFlow = g;
            g.Start();
        }