Beispiel #1
0
        protected override FrameworkElement ArrageCore(RegionContainer regions)
        {
            var components = new UIComponents(regions);
            this.LayoutControl.Arrange(components);

            return this.LayoutControl.CastTo<FrameworkElement>();
        }
Beispiel #2
0
            public static void Postfix()
            {
                UIComponents.Init();

                Logger.Info("Injecting mods list UI...");

                //Set up the mods list and inject into UI
                var modsList = Object.Instantiate(UIComponents.ScrollablePrefab, Find.TitleScreenUI.transform, false);

                modsList.AddComponent <ModsListUI>(); //Set up the singleton

                EventBus.Instance.Post(new MainMenuShownEvent());
                //SceneManager.GetActiveScene().DumpHierarchy(new Logger("Scene Dump"));

                GameFlowManager.Instance.gameObject.AddComponent <Logger.QuitDetector>();

                Find.TitleScreenUI.GetChildByName("VersionLabel").GetComponent <Text>().text            += "\nModded with CDMZ\nBy Samboy063";
                Find.TitleScreenUI.GetChildByName("VersionLabel").GetComponent <Text>().verticalOverflow = VerticalWrapMode.Overflow;

                Find.TitleScreenButtonList.GetChildByName("OptionsButton").MoveDown(20);
                Find.TitleScreenButtonList.GetChildByName("LevelEditorButton").MoveDown(20);
                Find.TitleScreenButtonList.GetChildByName("CreditsButton").MoveDown(20);
                Find.TitleScreenButtonList.GetChildByName("QuitButton").MoveDown(20);

                var modsButton = Object.Instantiate(Find.TitleScreenButtonList.GetChildByName("OptionsButton"), Find.TitleScreenButtonList.transform, true);

                modsButton.transform.localPosition = new Vector3(modsButton.transform.localPosition.x, Find.TitleScreenButtonList.GetChildByName("OptionsButton").transform.localPosition.y + 32);
                modsButton.GetComponentInChildren <Text>().text = "Mods";
                modsButton.GetComponent <Button>().onClick      = new Button.ButtonClickedEvent();
                modsButton.GetComponent <Button>().onClick.AddListener(() =>
                {
                    Logger.Debug("Mods button clicked");
                    ModsListUI.Instance.gameObject.SetActive(true);
                });
            }
Beispiel #3
0
 /*public ScoreSelectScreen(Game game, string name, Replay replay, Song song, int diff)
  *  : this(game, name)
  * {
  *  foreach (var pair in replay.PressTimings)
  *  {
  *      pair.value.value = false;
  *  }
  *  foreach (var pair in replay.ReleaseTimings)
  *  {
  *      pair.value.value = false;
  *  }
  *  foreach (ReplayHit h in replay.HitTimings)
  *  {
  *      h.Used = false;
  *  }
  *  this.replay = replay;
  *  replayButton = new Button(game, new Rectangle(Config.ResWidth - (int)(Config.ResWidth * 0.3), 330, 100, 50), "Replay", delegate()
  *  {
  *      IngameScreen temp = (IngameScreen)game.screens["ingameScreen"];
  *      try
  *      {
  *          temp.loadSong(song, diff, new Mods(), replay, IngameScreen.PlayType.REPLAY);
  *          temp.Music.stop();
  *          Game.setScreen(game.screens["replayScreen"]);
  *          //temp.onSwitched();
  *          game.Title = "Pulse | Watch replay | " + song.Artist + " - " + song.SongName + " [" + song.Charts[diff].Name + "]";
  *      }
  *      catch { }
  *  });
  *  UIComponents.Add(replayButton);
  *  exitButton.del = delegate()
  *  {
  *      game.screens["selectScreen"].Music.stop();
  *      Game.setScreen(game.screens["selectScreen"]);
  *      game.Title = "Pulse";
  *  };
  * }*/
 public ScoreSelectScreen(Game game, string name)
     : base(game, name)
 {
     songInfoLabel = new Label(game, new Point(180, 120), "0");
     songInfoLabel.TextTexture.TextFont = new Font("Myriad Pro", 35);
     dateLabel = new Label(game, new Point(Config.ResWidth / 2 - 200, 85), "0");
     UIComponents.Add(songInfoLabel);
     scoreLabel    = new Label(game, new Point(Config.ResWidth - (int)(Config.ResWidth * 0.8), 200), "0");
     accuracyLabel = new Label(game, new Point(Config.ResWidth - (int)(Config.ResWidth * 0.8), 250), "0");
     maxComboLabel = new Label(game, new Point(Config.ResWidth - (int)(Config.ResWidth * 0.8), 300), "0");
     statsLabel    = new Label(game, new Point(Config.ResWidth - (int)(Config.ResWidth * 0.8), 350), "0");
     statsNoLabel  = new Label(game, new Point(Config.ResWidth - (int)(Config.ResWidth * 0.7), 350), "0");
     UIComponents.Add(dateLabel);
     UIComponents.Add(statsNoLabel);
     UIComponents.Add(statsLabel);
     UIComponents.Add(scoreLabel);
     UIComponents.Add(accuracyLabel);
     UIComponents.Add(maxComboLabel);
     scoreBg        = new Rect(new Rectangle(new Point(0, 0), new Size(Config.ResWidth, 768)), Skin.skindict["scorebg"]);
     scoreBg.Colour = Color4.SlateGray;
     exitButton     = new Button(game, new Rectangle(Config.ResWidth - (int)(Config.ResWidth * 0.3), 430, 100, 50), "Exit", delegate(int data)
     {
         game.screens["selectScreen"].Music.stop();
         Game.setScreen(game.screens["selectScreen"]);
         game.Title = "Pulse";
     });
     UIComponents.Add(exitButton);
 }
Beispiel #4
0
 public ScoreScreen(Game game, string name, Replay replay, Song song, int diff, bool play)
     : base(game, name)
 {
     if (play)
     {
         retryButton = new Button(game, new Rectangle(Config.ResWidth - (int)(Config.ResWidth * 0.3), 230, 100, 50), "Retry", delegate(int data)
         {
             game.screens["ingameScreen"].Music.stop();
             IngameScreen temp = (IngameScreen)game.screens["ingameScreen"];
             temp.loadSong(temp.CurrentSong, temp.Difficulty, temp.Mods, null, IngameScreen.PlayType.PLAY);
             Game.setScreen(game.screens["ingameScreen"]);
         });
         UIComponents.Add(retryButton);
     }
     if (replay != null)
     {
         this.replay  = replay;
         replayButton = new Button(game, new Rectangle(Config.ResWidth - (int)(Config.ResWidth * 0.3), 330, 100, 50), "Replay", delegate(int data)
         {
             IngameScreen temp = (IngameScreen)game.screens["ingameScreen"];
             try
             {
                 if (temp.Music != null)
                 {
                     temp.Music.stop();
                 }
                 temp.loadSong(song, diff, temp.Mods, this.replay, IngameScreen.PlayType.REPLAY);
                 Game.setScreen(temp);
                 game.Title = "Pulse | Watch replay | " + song.Artist + " - " + song.SongName + " [" + song.Charts[diff].Name + "]";
             }
             catch { }
         });
         UIComponents.Add(replayButton);
     }
 }
Beispiel #5
0
 void Start()
 {
     if (SceneManager.GetActiveScene().name == "online")
     {
         canvas = GameObject.Find("UI").gameObject.GetComponent <UIComponents>();
     }
 }
Beispiel #6
0
        public void setScore(Score score, Song song, int diff, int rank)
        {
            this.score         = score;
            scoreLabel.Text    = score.TotalScore.ToString("D8");
            accuracyLabel.Text = String.Format("{0:0.00}%", score.Accuracy);
            maxComboLabel.Text = "" + score.MaxCombo + "x";
            dateLabel.Text     = score.dateString;
            statsLabel.Text    = "Perfect: " + "\nGood: " + "\nOK: " + "\nMiss: ";
            statsNoLabel.Text  = "" + score.Perfects + "\n" + score.Goods + "\n" + score.Oks + "\n" + score.Misses;
            string songinf = score.ArtistTitle;

            if (songinf.Length < 26)
            {
                songInfoLabel.Text = songinf.Substring(0, songinf.Length) + " [" + score.chartName + "]";
            }
            else
            {
                songInfoLabel.Text = songinf.Substring(0, 25) + "... [" + score.chartName + "]";
            }
            if (score.ReplayName != "")
            {
                replayButton = new Button(game, new Rectangle(Config.ResWidth - (int)(Config.ResWidth * 0.3), 330, 100, 50), "Replay", delegate(int data)
                {
                    IngameScreen temp = (IngameScreen)game.screens["ingameScreen"];
                    if (Config.LocalScores)
                    {
                        Replay replay = ScoreLibrary.reconReplay("replay\\r\\" + score.ReplayName + ".pcr");
                        try
                        {
                            temp.loadSong(song, diff, replay.Mods, replay, IngameScreen.PlayType.REPLAY);
                            temp.Music.stop();
                            Game.setScreen(game.screens["ingameScreen"]);
                            game.Title = "Pulse | Watch replay | " + song.Artist + " - " + song.SongName + " [" + song.Charts[diff].Name + "]";
                        }
                        catch { }
                    }
                    else
                    {
                        string hash = Utils.calcHash(song.Charts[diff].Path);
                        string dl   = "http://p.ulse.net/getreplay?r=" + rank + "&c=" + hash;
                        Console.WriteLine("{0} rank {1} hash", rank, hash);
                        downloadReplay dr  = new downloadReplay();
                        dr.downloadFinish += new Action <Song, int>(dr_downloadFinish);
                        dr.DownloadReplay(dl, "replay\\" + hash + ".pcr", song, diff);
                        // wc.DownloadFileAsync(new Uri(dl), "replay\\temp.pcr");
                        //wc.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(wc_DownloadFileCompleted);
                        replayButton.Enabled = false;
                        replayButton.Visible = false;
                        exitButton.Enabled   = false;
                        exitButton.Visible   = false;
                        Game.addToast("Downloading replay...");
                    }
                });
                if (!UIComponents.Contains(replayButton))
                {
                    UIComponents.Add(replayButton);
                }
            }
        }
        public void Arrange(UIComponents components)
        {
            var control = components.Main;
            if (control != null) { content.Content = control.Control; }

            control = components.CommandsContainer;
            if (control != null) { commands.Content = control.Control; }
        }
 private void InitTextBoxes()
 {
     UIComponents.Add(new TextBox("test", 0, 2, 20));
     UIComponents.Add(new TextBox("Ip", 0, 7, 7, "", ".:")
     {
         Hint = "Enter IP:PORT"
     });
 }
 public void Arrange(UIComponents components)
 {
     this.TryArrangeMain(components.Main);
     this.TryArrangeCommandsContainer(components.CommandsContainer);
     this.TryArrangeNavigation(components.Navigation);
     this.TryArrangeCondition(components.Condition);
     this.TryArrangeDetail(components.FindControl("detail"));
     this.TryArrangeChildren(components.Children);
     this.OnArrangedCore();
 }
Beispiel #10
0
        public void Arrange(UIComponents components)
        {
            var control = components.Main;
            if (control != null) { content.Content = control.Control; }

            control = components.CommandsContainer;
            if (control != null) { commands.Content = control.Control; }

            components.ArrangeChildrenByTabControl(childrenTab);
        }
Beispiel #11
0
 public void Arrange(UIComponents components)
 {
     this.TryArrangeMain(components.Main);
     this.TryArrangeCommandsContainer(components.CommandsContainer);
     this.TryArrangeNavigation(components.Navigation);
     this.TryArrangeCondition(components.Condition);
     this.TryArrangeDetail(components.FindControl("detail"));
     this.TryArrangeChildren(components.Children);
     this.OnArrangedCore();
 }
Beispiel #12
0
        private void InitButtons()
        {
            Button StartLocalGame        = new Button("StartLocal", "Start new local game", 0, 0, 0, Comands.Option1);
            Button ConnectToRemoteServer = new Button("ConnectToRemoteServer", "Connect to remote server", 0, 1, 0, Comands.Option2);
            Button Exit = new Button("Exit", "Exit game", 0, 2, 0, Comands.Option3);

            StartLocalGame.OnAccept        += StartLocalOnPress;
            ConnectToRemoteServer.OnAccept += ConnectToRemoteServerOnPress;
            Exit.OnAccept += ExitOnPress;

            UIComponents.AddRange(new UIComponentBase[] { StartLocalGame, ConnectToRemoteServer, Exit });
        }
Beispiel #13
0
        private void OnArrangedCore(UIComponents components)
        {
            if (queryPanel.Items.Count == 0)
            {
                queryPanel.RemoveFromParent(false);
            }

            if (childrenTab.Parent != null)
            {
                container.Orientation = components.LayoutMeta.IsLayoutChildrenHorizonal ?
                                        Orientation.Horizontal : Orientation.Vertical;
            }
        }
Beispiel #14
0
        private void OnArrangedCore(UIComponents components)
        {
            if (queryPanel.Items.Count == 0)
            {
                queryPanel.RemoveFromParent(false);
            }

            if (childrenTab.Parent != null)
            {
                container.Orientation = components.LayoutMeta.IsLayoutChildrenHorizonal ?
                    Orientation.Horizontal : Orientation.Vertical;
            }
        }
Beispiel #15
0
        public void Arrange(UIComponents components)
        {
            ResizingPanelSlippingAnimation.Initialize(main, childrenTab, components.LayoutMeta.ParentChildProportion);

            this.TryArrangeMain(components.Main);
            this.TryArrangeCommandsContainer(components.CommandsContainer);
            this.TryArrangeNavigation(components.Navigation);
            this.TryArrangeCondition(components.Condition);

            //Children
            components.ArrangeChildrenByTabControl(childrenTab);

            this.OnArrangedCore(components);
        }
Beispiel #16
0
        public void Arrange(UIComponents components)
        {
            ResizingPanelSlippingAnimation.Initialize(main, childrenTab, components.LayoutMeta.ParentChildProportion);

            this.TryArrangeMain(components.Main);
            this.TryArrangeCommandsContainer(components.CommandsContainer);
            this.TryArrangeNavigation(components.Navigation);
            this.TryArrangeCondition(components.Condition);

            //Children
            components.ArrangeChildrenByTabControl(childrenTab);

            this.OnArrangedCore(components);
        }
Beispiel #17
0
    public void InitializeManager()
    {
        CanvasTransform = Instantiate(UIPrefab, gameObject.transform).transform;
        uiComponents    = CanvasTransform.GetComponent <UIComponents>();
        CentralizerCamera();
        UpdateCameraBox();

        SceneManager.sceneLoaded += (Scene, loadSceneMode) =>
        {
            CentralizerCamera();
            UpdateCameraBox();
        };
        DontDestroyOnLoad(cameraTransform.gameObject);
    }
Beispiel #18
0
 public void Arrange(UIComponents components)
 {
     commands.Content = components.CommandsContainer.Control;
     main.Content = components.Main.Control;
     var result = components.FindControls(QueryLogicalView.ResultSurrounderType);
     foreach (var ui in result)
     {
         queryResult.Items.Add(new TabItem
         {
             Header = ui.Blocks.MainBlock.KeyLabel.Translate(),
             Content = ui.Control
         });
     }
 }
        public void Arrange(UIComponents components)
        {
            var control = components.Main;

            if (control != null)
            {
                content.Content = control.Control;
            }

            control = components.CommandsContainer;
            if (control != null)
            {
                commands.Content = control.Control;
            }
        }
Beispiel #20
0
        public void Arrange(UIComponents components)
        {
            commands.Content = components.CommandsContainer.Control;
            main.Content     = components.Main.Control;
            var result = components.FindControls(QueryLogicalView.ResultSurrounderType);

            foreach (var ui in result)
            {
                queryResult.Items.Add(new TabItem
                {
                    Header  = ui.Blocks.MainBlock.KeyLabel.Translate(),
                    Content = ui.Control
                });
            }
        }
Beispiel #21
0
    public UIManager(UIComponents _components)
    {
        components = _components;

        components.pauseButton.onClick.AddListener(() =>
        {
            OnPause?.Invoke();
            components.panel.SetActive(true);
        });

        components.resumeButton.onClick.AddListener(() =>
        {
            OnResume?.Invoke();
            components.panel.SetActive(false);
        });
    }
Beispiel #22
0
        public void Arrange(UIComponents components)
        {
            var control = components.Main;

            if (control != null)
            {
                content.Content = control.Control;
            }

            control = components.CommandsContainer;
            if (control != null)
            {
                commands.Content = control.Control;
            }

            components.ArrangeChildrenByTabControl(childrenTab);
        }
        public void Arrange(UIComponents components)
        {
            //使用下拉框显示主区域。
            var control = components.Main;

            if (control != null)
            {
                this._mainView = control.MainView as ListLogicalView;
                this._mainView.Control.RemoveFromParent();

                ////选中数据的第一行。
                ////由于模板都会自动获取数据,而UI线程一直在构造界面,所以这里直接监听数据到达函数就可以了。
                //view.DataLoader.ListenDataChangedOnce(() =>
                //{
                //    if (view.Data.Count > 0)
                //    {
                //        view.CurrentObject = view.Data[0] as Entity;
                //    }
                //});

                var cmbList = ControlHelper.CreateComboListControl(this._mainView);
                AutomationHelper.SetEditingElement(cmbList);

                main.Content = cmbList;
            }
            else
            {
                main.RemoveFromParent();
            }

            var toolBar = components.CommandsContainer;

            if (toolBar != null)
            {
                toolBarContainer.Content = toolBar.Control;
            }
            else
            {
                toolBarContainer.RemoveFromParent();
            }

            //Children
            components.ArrangeChildrenByTabControl(childrenTab);
        }
        public void Arrange(UIComponents components)
        {
            //使用下拉框显示主区域。
            var control = components.Main;
            if (control != null)
            {
                this._mainView = control.MainView as ListLogicalView;
                this._mainView.Control.RemoveFromParent();

                ////选中数据的第一行。
                ////由于模板都会自动获取数据,而UI线程一直在构造界面,所以这里直接监听数据到达函数就可以了。
                //view.DataLoader.ListenDataChangedOnce(() =>
                //{
                //    if (view.Data.Count > 0)
                //    {
                //        view.CurrentObject = view.Data[0] as Entity;
                //    }
                //});

                var cmbList = ControlHelper.CreateComboListControl(this._mainView);
                AutomationHelper.SetEditingElement(cmbList);

                main.Content = cmbList;
            }
            else
            {
                main.RemoveFromParent();
            }

            var toolBar = components.CommandsContainer;
            if (toolBar != null)
            {
                toolBarContainer.Content = toolBar.Control;
            }
            else
            {
                toolBarContainer.RemoveFromParent();
            }

            //Children
            components.ArrangeChildrenByTabControl(childrenTab);
        }
Beispiel #25
0
        public void Arrange(UIComponents components)
        {
            var control = components.Main;

            if (control != null)
            {
                result.Content = control.Control;
            }
            else
            {
                result.RemoveFromParent();
            }

            var toolBar = components.CommandsContainer;

            if (toolBar != null)
            {
                toolBarContainer.Content = toolBar.Control;
            }
            else
            {
                toolBarContainer.RemoveFromParent();
            }

            //Children
            components.ArrangeChildrenByTabControl(childrenTab);

            if (childrenTab.Parent != null)
            {
                ResizingPanelExt.SetStarGridLength(detail, 3);
                ResizingPanelExt.SetStarGridLength(childrenTab, 7);

                if (components.LayoutMeta.IsLayoutChildrenHorizonal)
                {
                    container.Orientation = Orientation.Horizontal;
                }
                else
                {
                    container.Orientation = Orientation.Vertical;
                }
            }
        }
Beispiel #26
0
 public PauseScreen(Game game, string text, IngameScreen screen) : base(game, text)
 {
     this.screen = screen;
     buttons[0]  = new Button(game, new Rectangle(Config.ClientWidth / 2 - 100, 100, 200, 100), "Continue", delegate(int data)
     {
         screen.unpause();
     });
     buttons[1] = new Button(game, new Rectangle(Config.ClientWidth / 2 - 100, 300, 200, 100), "Retry", delegate(int data)
     {
         screen.loadSong(screen.CurrentSong, screen.Difficulty, screen.Mods, screen.CurrentReplay, screen.PlayType1);
         screen.onSwitched();
     });
     if (screen.PlayType1 == IngameScreen.PlayType.REPLAY || screen.PlayType1 == IngameScreen.PlayType.TEST)
     {
         buttons[1].Text = "Restart";
     }
     buttons[2] = new Button(game, new Rectangle(Config.ClientWidth / 2 - 100, 500, 200, 100), "Exit", delegate(int data)
     {
         Game.setScreen(game.screens["selectScreen"]);
         game.Title = "Pulse";
         if (Config.Spectating)
         {
             try
             {
                 Client.PacketWriter.sendSpectateCancel(Game.conn.Bw, Config.SpectatedUser);
             }
             catch
             {
             }
             Config.Spectating    = false;
             Config.SpectatedUser = "";
             Config.Specs         = "";
         }
     });
     for (int x = 0; x < buttons.Length; x++)
     {
         UIComponents.Add(buttons[x]);
     }
     overlay        = new Rect(new Rectangle(0, 0, Config.ResWidth, 768));
     overlay.Colour = new Color4(0.0f, 0.0f, 0.0f, 0.75f);
 }
Beispiel #27
0
        public void Arrange(UIComponents components)
        {
            var control = components.Main;
            if (control != null)
            {
                result.Content = control.Control;
            }
            else
            {
                result.RemoveFromParent();
            }

            var toolBar = components.CommandsContainer;
            if (toolBar != null)
            {
                toolBarContainer.Content = toolBar.Control;
            }
            else
            {
                toolBarContainer.RemoveFromParent();
            }

            //Children
            components.ArrangeChildrenByTabControl(childrenTab);

            if (childrenTab.Parent != null)
            {
                ResizingPanelExt.SetStarGridLength(detail, 3);
                ResizingPanelExt.SetStarGridLength(childrenTab, 7);

                if (components.LayoutMeta.IsLayoutChildrenHorizonal)
                {
                    container.Orientation = Orientation.Horizontal;
                }
                else
                {
                    container.Orientation = Orientation.Vertical;
                }
            }
        }
Beispiel #28
0
        public override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            IngameScreen tempPlayScreen = (IngameScreen)game.screens["ingameScreen"];
            string       songinf        = tempPlayScreen.CurrentSong.Artist + " - " + tempPlayScreen.CurrentSong.SongName;

            songInfoLabel = new Label(game, new Point(180, 120), "0");
            dateLabel     = new Label(game, new Point(200, 85), "0");
            UIComponents.Add(dateLabel);
            songInfoLabel.TextTexture.TextFont = new Font("Myriad Pro", 35);
            if (songinf.Length < 26)
            {
                songInfoLabel.Text = songinf.Substring(0, songinf.Length) + " [" + tempPlayScreen.Chart.Name + "]";
            }
            else
            {
                songInfoLabel.Text = songinf.Substring(0, 25) + "... [" + tempPlayScreen.Chart.Name + "]";
            }
            UIComponents.Add(songInfoLabel);
            scoreLabel    = new Label(game, new Point(Config.ResWidth - (int)(Config.ResWidth * 0.8), 200), "0");
            accuracyLabel = new Label(game, new Point(Config.ResWidth - (int)(Config.ResWidth * 0.8), 250), "0");
            maxComboLabel = new Label(game, new Point(Config.ResWidth - (int)(Config.ResWidth * 0.8), 300), "0");
            statsLabel    = new Label(game, new Point(Config.ResWidth - (int)(Config.ResWidth * 0.8), 350), "0");
            statsNoLabel  = new Label(game, new Point(Config.ResWidth - (int)(Config.ResWidth * 0.7), 350), "0");
            UIComponents.Add(statsNoLabel);
            UIComponents.Add(statsLabel);
            UIComponents.Add(scoreLabel);
            UIComponents.Add(accuracyLabel);
            UIComponents.Add(maxComboLabel);
            scoreBg        = new Rect(new Rectangle(new Point(0, 0), new Size(Config.ResWidth, 768)), Skin.skindict["scorebg"]);
            scoreBg.Colour = Color4.SlateGray;
            exitButton     = new Button(game, new Rectangle(Config.ResWidth - (int)(Config.ResWidth * 0.3), 430, 100, 50), "Exit", delegate(int data)
            {
                game.screens["ingameScreen"].Music.stop();
                Game.setScreen(game.screens["selectScreen"]);
                game.Title = "Pulse";
            });
            UIComponents.Add(exitButton);
        }
Beispiel #29
0
	void Awake()
	{
		Instance = this;
		healthBar = transform.FindChild("Health Bar").GetComponent<Bar>();
		staminaBar = transform.FindChild("Stamina Bar").GetComponent<Bar>();
		
		items = new Dictionary<ItemType, UIComponents>();
		
		UIComponents noneComponents = new UIComponents();
		noneComponents.ItemImage = null;
		noneComponents.AmmoText = null;
		noneComponents.AmmoScript = null;
		items.Add(ItemType.none, noneComponents);
		
		UIComponents pistolComponents = new UIComponents();
		pistolComponents.ItemImage = transform.FindChild("PistolImage").GetComponent<RawImage>();
		Transform pistolAmmo = transform.FindChild("PistolAmmo");
		pistolComponents.AmmoText = pistolAmmo.GetComponent<Text>();
		pistolComponents.AmmoScript = pistolAmmo.GetComponent<Ammo>();
		items.Add(ItemType.pistol, pistolComponents);
		
		UIComponents crowbarComponents = new UIComponents();
		crowbarComponents.ItemImage = transform.FindChild("CrowbarImage").GetComponent<RawImage>();
		crowbarComponents.AmmoText = null;
		crowbarComponents.AmmoScript = null;
		items.Add (ItemType.crowbar, crowbarComponents);

		UIComponents flashlightComponents = new UIComponents();
		flashlightComponents.ItemImage = transform.FindChild("FlashlightImage").GetComponent<RawImage>();
		crowbarComponents.AmmoText = null;
		crowbarComponents.AmmoScript = null;
		items.Add (ItemType.flashlight, flashlightComponents);

		currentItemtype = ItemType.none;
		currentComponents = items[currentItemtype];
	}
Beispiel #30
0
	public void ChangeItem(ItemType newItemType, int currentAmmo, int remainingAmmo)
	{
		ShowCurrentItems(false);
		currentItemtype = newItemType;
		currentComponents = items[currentItemtype];
		ShowCurrentItems(true, currentAmmo, remainingAmmo);
	}
Beispiel #31
0
        //    Rect test;
        public override void OnLoad(EventArgs e)
        {
            Game.stopMedia = false;
            base.OnLoad(e);
            // AviManager am = new AviManager("vid1.avi", true);
            //  VideoStream vs = am.GetVideoStream();
            //   test = new Rect(new Rectangle(0, 0, 300, 300), FrameGrabber.GetFrameFromVideo("vid1.avi", .2));
            //vs.GetFrameOpen();
            //vs.GetBitmap()
            //  Console.WriteLine(vs.StreamInfo.dwLength);
            //   vs.GetFrameClose();
            Animation preload = new Animation(new Rectangle(0, 0, 0, 0), 100, "holdBurst", 3, true, true);

            // ircl = new Client.irc.IrcClient("lol");
            logo      = new Rect(new Rectangle(Config.ResWidth / 2 - (710 / 2), 20, 710, 519), "skin\\Pulse-LogoText.png");
            startText = new Label(game, new Rectangle(new Point(0, 0),
                                                      new Size(0, 0)), "pulse alpha version " + Config.Version);
            SizeF  temp          = startText.TextTexture.getStringSize();
            Button optionsButton = new Button(game, new Rectangle((Config.ResWidth / 2) - 150, 768 / 2 + 240, 300, 60), "Options", delegate(int data)
            {
                //  new Thread(new ThreadStart(openOptions)).Start();
                new Options().ShowDialog();
            }, true, true, Color.LawnGreen);
            Button exitButton = new Button(game, new Rectangle((Config.ResWidth / 2) - 150, 768 / 2 + 305, 300, 60), "Exit", delegate(int data)
            {
                game.Exit();
            }, true, true, Color.Cyan);
            Button playButton = new Button(game, new Rectangle(Config.ResWidth / 2 - 150, 768 / 2 + 110, 300, 60), "Play", delegate(int data)
            {
                play(true);
            }, true, true, Color.Red);
            Button editButton = new Button(game, new Rectangle(Config.ResWidth / 2 - 150, 768 / 2 + 175, 300, 60), "Edit", delegate(int data)
            {
                play(false);
            }, true, true, Color.Blue);

            avatarbutton = new Button(game, new Rectangle(Utils.getMX(700), 0, 300, 100), "\tLogin", delegate(int data)
            {
                new Pulse.UI.LoginDialog().ShowDialog();
                // downloadAvatar();
            });
            UIComponents.Add(avatarbutton);
            startText.TextTexture.Location    = new Point(Config.ResWidth / 2 - ((int)temp.Width / 2), 0);
            startText.TextTexture.TextureSize = new Size((int)temp.Width, (int)temp.Height);
            bg        = new Rect(new Rectangle(0, 0, Config.ResWidth, 768));
            bg.Colour = new OpenTK.Graphics.Color4(0.4f, 0.4f, 0.4f, 1.0f);
            bg.useTexture("skin\\Pulse-LogoText.png");
            bg2        = new Rect(new Rectangle(0, 0, Config.ResWidth, 768));
            bg2.Colour = new OpenTK.Graphics.Color4(0.4f, 0.4f, 0.4f, 1.0f);
            bg2.useTexture("skin\\Pulse-LogoText.png");
            bg2.Alpha  = 0.3f;
            bg3        = new Rect(new Rectangle(0, 0, Config.ResWidth, 768));
            bg3.Colour = new OpenTK.Graphics.Color4(1.0f, 1.0f, 1.0f, 1.0f);
            bg3.useTexture("skin\\Pulse-MenuBG.png");
            bg4        = new Rect(new Rectangle(0, 0, Config.ResWidth, 768));
            bg4.Colour = new OpenTK.Graphics.Color4(1.0f, 1.0f, 1.0f, 1.0f);
            bg4.useTexture("skin\\Pulse-MenuOverlay.png");
            website = new Button(game, new Rectangle(0, 768 - 53, 360, 53), "", delegate(int data)
            {
                if (!Game.pbox.expanded)
                {
                    System.Diagnostics.Process.Start("http://p.ulse.net");
                }
            }, Skin.skindict["websiteText"]);
            setMarquee();

            UIComponents.Add(startText);
            UIComponents.Add(optionsButton);
            UIComponents.Add(playButton);
            UIComponents.Add(editButton);
            //UIComponents.Add(nowp);
            UIComponents.Add(exitButton);
            // pbox = new PTextBox(game, new Rectangle(0, 768-300, Utils.getMX(1024), 290), "", ircl);
            //UIComponents.Add(pbox);
            //UIComponents.Add(skipForwardButton);
            //UIComponents.Add(togglePauseButton);
            Game.conn.recvPacket += new Action <short, Client.RecievePacket>(conn_recvPacket);
            //downloadAvatar();
        }
Beispiel #32
0
        public override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            panel.Colour              = new OpenTK.Graphics.Color4(0.3f, 0.3f, 0.3f, 0.0f);
            dim.Colour                = new OpenTK.Graphics.Color4(0.0f, 0.0f, 0.0f, 0.0f);
            fsw.EnableRaisingEvents   = true;
            fsw.IncludeSubdirectories = true;
            fsw.Created              += new FileSystemEventHandler(fsw_Created);
            fsw.Changed              += new FileSystemEventHandler(fsw_Created);
            fsw.Deleted              += new FileSystemEventHandler(fsw_Deleted);
            fsw.Error += new ErrorEventHandler(fsw_Error);
            fsw.InternalBufferSize = 61440; //lets handle large changes ;D
            SongLibrary.cacheSongInfo();
            game.KeyPress   += new EventHandler <OpenTK.KeyPressEventArgs>(game_KeyPress);
            bgoverlay.Colour = new OpenTK.Graphics.Color4(0.0f, 0.0f, 0.0f, 0.5f);
            searchLabel      = new Label(game, new Point(0, 700), "");
            searchLabel.TextTexture.Shadow = true;
            searchInfoL = new Label(game, new Point(0, 700), "type to begin search..");
            //searchInfoL.TextTexture.Shadow = true;
            searchInfoL.TextTexture.Colour = Color.White;

            onlineToggle = new ToggleButton(game, new Rectangle(Utils.getMX(780), 130, 50, 40), "O", delegate(int data)
            {
                Config.LocalScores = !Config.LocalScores;
                updateScoreLabels(0);
            });

            prevPage = new Button(game, new Rectangle(Utils.getMX(835), 130, 50, 40), "<<", delegate(int data)
            {
                if (displayScores != null && scoreDisplayPage > 0)
                {
                    scoreDisplayPage--;
                    updateScoreLabels(scoreDisplayPage);
                }
            });
            nextPage = new Button(game, new Rectangle(Utils.getMX(890), 130, 50, 40), ">>", delegate(int data)
            {
                if (displayScores != null && displayScores.Count > 0) //if count was 0 maxpage would be -1
                {
                    int maxpage = displayScores.Count / 8;
                    if (displayScores.Count % 8 > 0) //if there's a remainder that means theres some extra scores to display so need new page
                    {
                        maxpage++;
                    }
                    maxpage--; //remember, scoredisplaypage is 0 based!
                    if (scoreDisplayPage < maxpage)
                    {
                        scoreDisplayPage++;
                        updateScoreLabels(scoreDisplayPage);

                        /*if (scoreDisplayPage == maxpage) //finish later, faulty to have in a place like this
                         * {
                         *  nextPage.Visible = false;
                         *  nextPage.Enabled = false;
                         * }*/
                    }
                }
            });
            if (!Config.LocalScores)
            {
                ((ToggleButton)onlineToggle).toggle();
            }
            UIComponents.Add(prevPage);
            UIComponents.Add(nextPage);
            UIComponents.Add(onlineToggle);
            calibrateButton = new Button(game, new Rectangle(70, 768 - 170, 200, 50), "Calibrate offset", delegate(int data)
            {
                int tIndex = 0;
                for (int x = 0; x < currentSong.Charts.Count; x++)
                {
                    if (currentSong.Charts[x].Name.Equals(diffs.BaseText.Line))
                    {
                        tIndex = x;
                    }
                }
                IngameScreen temp = (IngameScreen)game.screens["ingameScreen"];
                try
                {
                    uint flags = 0;
                    flags      = flags | (uint)(nfB.Selected ? 1 : 0);
                    flags      = flags | (uint)(autoB.Selected ? 2 : 0);
                    flags      = flags | (uint)(mirB.Selected ? 4 : 0);
                    flags      = flags | (uint)(hdB.Selected ? 8 : 0);
                    temp.loadSong(SongLibrary.loadSong(songNameList[index].Info), tIndex, new Mods()
                    {
                        Speed  = dtB.Selected ? 1.5 : 1.0,
                        Flags  = flags,
                        Scroll = Config.PlaySpeed
                    }, null, IngameScreen.PlayType.PLAY);
                    Music.stop();
                    Game.setScreen(game.screens["ingameScreen"]);
                    temp.Calibrate = true;
                    game.Title     = "Pulse | " + currentSong.Artist + " - " + currentSong.SongName + " [" + currentSong.Charts[tIndex].Name + "]";
                }
                catch (Exception ex)
                {
                    ErrorLog.log(ex);
                }
            });
            calibrateButton.Visible = false;
            calibrateButton.Enabled = false;
            //   int backpos = Config.ResWidth - 244;//Config.WideScreen? (int)((780d/1024d) * game.Width) : 780;
            backLabel = new Button(game, new Rectangle(Utils.getMX(780), 10, 220, 50), "Back", delegate(int data)
            {
                Game.setScreen(game.screens["menuScreen"]);
            });
            help = new Button(game, new Rectangle(Utils.getMX(780), 130, 220, 50), "Help", delegate(int data)
            {
                new EditorHelp().ShowDialog();
                Game.resetStates();
            });
            UIComponents.Add(help);

            newSongb = new Button(game, new Rectangle(Utils.getMX(780), 70, 220, 50), "New Song", delegate(int data)
            {
                new NewSong().ShowDialog();
                Game.resetStates();
            });
            //   UIComponents.Add(searchLabel);
            UIComponents.Add(backLabel);
            UIComponents.Add(newSongb);
            #region obsolete

            /*difficultyTexts[0] = new Text(Config.ClientSize, new Size(300, 33), new Point(0, 0));
             * difficultyTexts[0].Update("3key");
             * difficultyTexts[0].Shadow = true;
             * difficultyTexts[1] = new Text(Config.ClientSize, new Size(300, 33), new Point(0, 0));
             * difficultyTexts[1].Update("4key");
             * difficultyTexts[1].Shadow = true;
             * difficultyTexts[2] = new Text(Config.ClientSize, new Size(300, 33), new Point(0, 0));
             * difficultyTexts[2].Update("6key");
             * difficultyTexts[2].Shadow = true;
             * difficultyTexts[3] = new Text(Config.ClientSize, new Size(300, 33), new Point(0, 0));
             * difficultyTexts[3].Update("7key");
             * difficultyTexts[3].Shadow = true;*/
            #endregion
            refresh();
            index = 0;
            for (int x = 0; x < songNameList.Count; x++)
            {
                if (songNameList[x].Info.SongName.Equals(Game.M.CurrentSong.SongName) && songNameList[x].Info.Dir.Equals(Game.M.CurrentSong.Dir))
                {
                    index = x;
                }
            }
            changeSong();
            selectionTexture        = new Rect(new Rectangle(2, 250, 548, 28));
            sel2                    = new Rect(new Rectangle(0, 249, 552, 30));
            searchBox               = new Rect(new Rectangle(0, 700, Config.ResWidth, 30));
            searchBox.Colour        = new OpenTK.Graphics.Color4(0.27f, 0.509f, 0.705f, .8f);
            cover                   = new Rect(new Rectangle(Config.ResWidth - 300, 0, 300, 768));
            cover.Colour            = new OpenTK.Graphics.Color4(1f, 1f, 1f, .7f);
            scorebg                 = new Rect(new Rectangle((int)(Config.ResWidth - 324), 180, 295, 600), Skin.skindict["scoreback"]);
            sel2.Colour             = new OpenTK.Graphics.Color4(0.0f, 0.0f, 0.0f, 1.0f);
            selectionTexture.Colour = new OpenTK.Graphics.Color4(0.25f, 0.0f, 1.0f, 1.0f);
            background              = new Rect(new Rectangle(0, 0, Config.ResWidth, 768));

            currentSong = SongLibrary.loadSong(songNameList[index].Info);
            string bgString = "";
            if (currentSong.FileVersion == 0)
            {
                bgString = currentSong.BgName;
            }
            else
            {
                bgString = currentSong.Charts[0].BgName;
            }
            background.useTexture("songs\\" + currentSong.Dir + "\\" + bgString);

            music                 = AudioManager.loadFromFile("songs\\" + currentSong.Dir + "\\" + currentSong.FileName);
            Music.Volume          = 0.0f;
            targetVolume          = Config.Volume / 100.0f;
            changed               = true;
            Music.PositionAsMilli = (long)Game.M.Music.PositionAsMilli;
            Music.play(false, true);
            if (play)
            {
                game.Title       = "Pulse | Play Selection";
                newSongb.Enabled = false;
                newSongb.Visible = false;
                help.Enabled     = false;
                help.Visible     = false;
            }
            else
            {
                game.Title       = "Pulse | Edit Selection";
                newSongb.Enabled = true;
                newSongb.Visible = true;
            }
            updateDiffs();
            updateScoreLabels(0);
            //   changeSong();
            //   index = 0;
            for (int x = 0; x < songNameList.Count; x++)
            {
                // if (songNameList[x].textData.Location.Y != 246 + ((x - index) * 33) && !songNameList[x].textData.Moving)
                //  {
                songNameList[x].select.Bounds = new Rectangle(0, 246 + ((x - index) * 90), songNameList[x].select.Bounds.Width, songNameList[x].select.Bounds.Height);
                //  Console.WriteLine(songNameList[x].textData.Position.
                //
            }
            //Console.WriteLine("why");
            List <string> t = new List <String>();
            t.Add(" ");
            diffs           = new DropDownBox(game, t, new Rectangle(70, 120, 150, 35));
            diffs.selected += new Action <int>(diffs_selected);
            string tempS = "";
            if (play)
            {
                tempS = "Play";
            }
            else
            {
                tempS = "Edit";
            }
            playButton = new Button(game, new Rectangle(290 + 220, 768 - 170, 200, 50), tempS, delegate(int data)
            {
                if (pickDiff)
                {
                    int tIndex = 0;
                    for (int x = 0; x < currentSong.Charts.Count; x++)
                    {
                        if (currentSong.Charts[x].Name.Equals(diffs.BaseText.Line))
                        {
                            tIndex = x;
                        }
                    }

                    /*if (Config.AutoPlay && play)
                     * {
                     *  ReplayScreen temp = (ReplayScreen)game.screens["replayScreen"];
                     *  try
                     *  {
                     *      temp.loadSong(SongLibrary.loadSong(songNameList[index].Info), tIndex);
                     *      Game.M.setSong(songNameList[index].Info);
                     *      Game.M.play();
                     *      Music.stop();
                     *      Game.setScreen(game.screens["replayScreen"]);
                     *      game.Title = "Pulse | Watch replay | " + currentSong.Artist + " - " + currentSong.SongName + " [" + currentSong.Charts[tIndex].Name + "]";
                     *  }
                     *  catch { }
                     * }
                     * else */if (play)
                    {
                        IngameScreen temp = (IngameScreen)game.screens["ingameScreen"];
                        try
                        {
                            IngameScreen.PlayType te = IngameScreen.PlayType.PLAY;
                            if (autoB.Selected)
                            {
                                te = IngameScreen.PlayType.AUTO;
                            }
                            uint flags = 0;
                            flags      = flags | (uint)(nfB.Selected ? 1 : 0);
                            flags      = flags | (uint)(autoB.Selected ? 2 : 0);
                            flags      = flags | (uint)(mirB.Selected ? 4 : 0);
                            flags      = flags | (uint)(hdB.Selected ? 8 : 0);
                            temp.loadSong(SongLibrary.loadSong(songNameList[index].Info), tIndex, new Mods()
                            {
                                Speed  = dtB.Selected ? 1.5 : 1.0,
                                Flags  = flags,
                                Scroll = Config.PlaySpeed
                            }, null, te);
                            Game.M.setSong(ref songNameList[index].Info);
                            Game.M.play();
                            Music.stop();
                            temp.Calibrate = false;
                            Game.setScreen(game.screens["ingameScreen"]);
                            game.Title = "Pulse | " + currentSong.Artist + " - " + currentSong.SongName + " [" + currentSong.Charts[tIndex].Name + "]";
                            scoreDisplayText.Clear();
                            scoreDisplayPage = 1;
                        }
                        catch (Exception ex)
                        {
                            ErrorLog.log(ex);
                        }
                    }
                    else if (!play)
                    {
                        EditorScreen temp = (EditorScreen)game.screens["editScreen"];
                        try
                        {
                            temp.loadSong(SongLibrary.loadSong(songNameList[index].Info), tIndex);
                            Game.M.setSong(ref songNameList[index].Info);
                            Game.M.play();
                            Music.stop();
                            Game.setScreen(game.screens["editScreen"]);
                        }
                        catch (KeyNotFoundException)
                        {
                        }
                        game.Title = "Pulse|Editor|" + currentSong.Artist + "-" + currentSong.SongName + "[" + currentSong.Charts[tIndex].Name + "]";
                    }
                }
            });
            autoB = new ToggleButton(game, new Rectangle(874 - 480, 120, 100, 40), "Auto", delegate(int data)
            {
                Config.AutoPlay = autoB.Selected;
            });
            dtB = new ToggleButton(game, new Rectangle(874 - 370, 120, 100, 40), "DT", delegate(int data)
            {
                Config.Dt = dtB.Selected;
                if (Config.Dt)
                {
                    Config.Ht = false;
                    if (htB.Selected)
                    {
                        htB.toggle();
                    }
                }
            });
            htB = new ToggleButton(game, new Rectangle(874 - 260, 120, 100, 40), "HT", delegate(int data)
            {
                Config.Ht = htB.Selected;
                if (Config.Ht)
                {
                    Config.Dt = false;
                    if (dtB.Selected)
                    {
                        dtB.toggle();
                    }
                }
            });
            mirB = new ToggleButton(game, new Rectangle(874 - 480, 170, 100, 40), "Mirror", delegate(int data)
            {
                Config.Mirror = mirB.Selected;
            });
            hdB = new ToggleButton(game, new Rectangle(874 - 370, 170, 100, 40), "HD", delegate(int data)
            {
                Config.Hidden = hdB.Selected;
            });
            nfB = new ToggleButton(game, new Rectangle(874 - 260, 170, 100, 40), "No fail", delegate(int data)
            {
                Config.NoFail = nfB.Selected;
            });
            closeSel = new Button(game, new Rectangle(290, 768 - 170, 200, 50), "Close", delegate(int data)
            {
                notPickDiffs();
            });
            rateLabel = new Label(game, new Point(874 - 460, 370), "Scroll speed: " + Config.PlaySpeed);
            rateDrag  = new Dragbar(game, new Point(874 - 460, 400), 300, false, delegate(int d)
            {
                double temp      = rateDrag.getPercentScrolled();
                int x            = (int)(temp / 10);
                Config.PlaySpeed = ((float)x / 2) + 0.5f;
                rateLabel.Text   = "Scroll speed: " + Config.PlaySpeed;
            });
            rateDrag.setPos(rateDrag.Bounds.X + (int)(Config.PlaySpeed * 20) + rateDrag.Bounds.Width / 10);
            game.Mouse.Move += new EventHandler <MouseMoveEventArgs>(Mouse_Move);
        }
Beispiel #33
0
 public TimingScreen(Game game, string name)
     : base(game, name)
 {
     reset = new Button(game, new Rectangle(600, 50, 200, 50), "Reset", delegate(int data)
     {
         song.Timings.Remove(offset);
         times.Clear();
         bpms.Clear();
         bpmLabel.Text    = "BPM: ---";
         offsetLabel.Text = "Offset: ---";
         Music.play(true);
     });
     back = new Button(game, new Rectangle(100, 600, 200, 50), "Back", delegate(int data)
     {
         Music.stop();
         Game.setScreen(game.screens["editScreen"]);
     });
     UIComponents.Add(back);
     offsetLabel = new Label(game, new Point(200, 180), "Offset: ---");
     UIComponents.Add(offsetLabel);
     timeButton = new Button(game, new Rectangle(100, 50, 400, 50), "Press in time to the beat!", delegate(int data)
     {
         if (times.Count < 1)
         {
             int off = Environment.TickCount - initial;
             times.Add(off);
             offset           = (int)music.PositionAsMilli;
             offsetLabel.Text = "Offset: " + music.PositionAsMilli;
         }
         else
         {
             int diff        = Environment.TickCount - initial;
             double bpmtoadd = ((60d * 1000d) / (diff - times[times.Count - 1]));
             if (!double.IsInfinity(bpmtoadd))
             {
                 bpms.Add(bpmtoadd);
                 //Console.WriteLine(bpms.Average());
                 if (bpms.Count < 20)
                 {
                     bpm = Math.Round(bpms.Average(), 0);
                 }
                 else if (bpms.Count < 40)
                 {
                     bpm = Math.Round(bpms.Average(), 1);
                 }
                 else
                 {
                     bpm = Math.Round(bpms.Average(), 2);
                 }
                 bpmLabel.Text = "BPM: " + bpm;
                 //   if(bpms.Average() >= double.MaxValue) {
                 //    bpms.Clear();
                 //  }
             }
             times.Add(diff);
         }
     });
     save = new Button(game, new Rectangle(600, 125, 200, 50), "Save", delegate(int data)
     {
         try
         {
             song.Timings[offset].Snap = 60 / bpm;
         }
         catch
         {
             song.Timings.Add(offset, new TimingSection(offset, bpm, true));
         }
         Game.addToast("Timing section saved");
     });
     UIComponents.Add(save);
     bpmLabel = new Label(game, new Point(200, 150), "BPM: ---");
     UIComponents.Add(bpmLabel);
     UIComponents.Add(reset);
     UIComponents.Add(timeButton);
 }
 public void Arrange(UIComponents components)
 {
     commands.Content = components.CommandsContainer.Control;
     main.Content = components.Main.Control;
     list.Content = components.FindControl("list").Control;
 }
 private void TextStyleCollection_PropertyChange(object sender, UIComponents.TextElementPropertyChangeEventArgs e)
 {
     OnElementChangeEvent(e) ;
 }
Beispiel #36
0
 public void Arrange(UIComponents components)
 {
     commands.Content = components.CommandsContainer.Control;
     main.Content     = components.Main.Control;
     list.Content     = components.FindControl("list").Control;
 }