private void InitUI() { Script = this.RenderScript("paperchaseeod.uis"); background = Script.Create <UIImage>("UIBackground"); AddAt(0, background); PersonBG1 = Script.Create <UIImage>("playerPos1"); PersonBG2 = Script.Create <UIImage>("playerPos2"); PersonBG3 = Script.Create <UIImage>("playerPos3"); PersonBG1.Texture = imagePlayer; PersonBG2.Texture = imagePlayer; PersonBG3.Texture = imagePlayer; Add(PersonBG1); Add(PersonBG2); Add(PersonBG3); labelStation1.Alignment = TextAlignment.Left; labelStation2.Alignment = TextAlignment.Left; labelStation3.Alignment = TextAlignment.Left; AButton.OnButtonClick += ChooseLetter; BButton.OnButtonClick += ChooseLetter; CButton.OnButtonClick += ChooseLetter; Lobby = new UIEODLobby(this, 3) .WithPlayerUI(new UIEODLobbyPlayer(0, PersonBG1, labelStation1)) .WithPlayerUI(new UIEODLobbyPlayer(1, PersonBG2, labelStation2)) .WithPlayerUI(new UIEODLobbyPlayer(2, PersonBG3, labelStation3)) .WithCaptionProvider((player, avatar) => { if (avatar == null) { return(""); } switch (player.Slot + 1) { case (int)VMEODPaperChaseSlots.Body: return(Script.GetString("strBody") + avatar.GetPersonData(SimAntics.Model.VMPersonDataVariable.BodySkill) / 100); case (int)VMEODPaperChaseSlots.Mechanical: return(Script.GetString("strMech") + avatar.GetPersonData(SimAntics.Model.VMPersonDataVariable.MechanicalSkill) / 100); case (int)VMEODPaperChaseSlots.Logic: return(Script.GetString("strLogic") + avatar.GetPersonData(SimAntics.Model.VMPersonDataVariable.LogicSkill) / 100); } return(""); }); Add(Lobby); }
} // sell out public UIBandEOD(UIEODController controller) : base(controller) { // render script Script = RenderScript("jobobjband.uis"); SetTip(GameFacade.Strings["UIText", "253", "19"]); Remove(DOH); Remove(RE); Remove(MI); Remove(FA); Remove(SO); Remove(LA); Remove(TI); Remove(DOH2); Remove(BUZZ); Remove(CONTINUE); Remove(CASHOUT); SequenceNoteTimer = new Timer(VMEODBandPlugin.MILLISECONDS_PER_NOTE_IN_SEQUENCE); SequenceNoteTimer.Elapsed += NextNoteHandler; SyncTimer = new Timer(VMEODBandPlugin.MILLISECONDS_PER_NOTE_IN_SEQUENCE); SyncTimer.Elapsed += SyncTimerElapsedHandler; // get the buttons and put into array in order to recover their references when the client connects NoteButtonArray = new UIButton[] { BUZZ, DOH, RE, MI, FA, SO, LA, TI, DOH2 }; // matches order of VMEODBandPlugin.VMEODBandNoteTypes MiscButtonArray = new UIButton[] { CASHOUT, CONTINUE }; // make the waiting for players images WaitPlayer1 = Script.Create <UIImage>("WaitPlayer1"); WaitPlayer1.Texture = PlayerImage; Add(WaitPlayer1); WaitPlayer2 = Script.Create <UIImage>("WaitPlayer2"); WaitPlayer2.Texture = PlayerImage; Add(WaitPlayer2); WaitPlayer3 = Script.Create <UIImage>("WaitPlayer3"); WaitPlayer3.Texture = PlayerImage; Add(WaitPlayer3); WaitPlayer4 = Script.Create <UIImage>("WaitPlayer4"); WaitPlayer4.Texture = PlayerImage; Add(WaitPlayer4); WaitPlayers = new UIImage[] { WaitPlayer1, WaitPlayer2, WaitPlayer3, WaitPlayer4 }; Player1Wait.Alignment = TextAlignment.Left; Player2Wait.Alignment = TextAlignment.Left; Player3Wait.Alignment = TextAlignment.Left; Player4Wait.Alignment = TextAlignment.Left; // add lobby Lobby = new UIEODLobby(this, 4) .WithPlayerUI(new UIEODLobbyPlayer(0, WaitPlayer1, Player1Wait)) .WithPlayerUI(new UIEODLobbyPlayer(1, WaitPlayer2, Player2Wait)) .WithPlayerUI(new UIEODLobbyPlayer(2, WaitPlayer3, Player3Wait)) .WithPlayerUI(new UIEODLobbyPlayer(3, WaitPlayer4, Player4Wait)) .WithCaptionProvider((player, avatar) => { switch (player.Slot) { case (int)VMEODBandInstrumentTypes.Trumpet: { if (avatar != null) { return(GameFacade.Strings["UIText", "253", "25"].Replace("%d.%02d", avatar.GetPersonData(SimAntics.Model.VMPersonDataVariable.CharismaSkill) / 100m + "")); } else { return(GameFacade.Strings["UIText", "253", "21"]); } } case (int)VMEODBandInstrumentTypes.Drums: { if (avatar != null) { return(GameFacade.Strings["UIText", "253", "26"].Replace("%d.%02d", avatar.GetPersonData(SimAntics.Model.VMPersonDataVariable.BodySkill) / 100m + "")); } else { return(GameFacade.Strings["UIText", "253", "22"]); } } case (int)VMEODBandInstrumentTypes.Keyboard: { if (avatar != null) { return(GameFacade.Strings["UIText", "253", "27"].Replace("%d.%02d", avatar.GetPersonData(SimAntics.Model.VMPersonDataVariable.CreativitySkill) / 100m + "")); } else { return(GameFacade.Strings["UIText", "253", "23"]); } } case (int)VMEODBandInstrumentTypes.Guitar: { if (avatar != null) { return(GameFacade.Strings["UIText", "253", "28"].Replace("%d.%02d", avatar.GetPersonData(SimAntics.Model.VMPersonDataVariable.CreativitySkill) / 100m + "")); } else { return(GameFacade.Strings["UIText", "253", "24"]); } } } return(""); }); Add(Lobby); // listeners BinaryHandlers["Band_Sequence"] = SequenceHandler; BinaryHandlers["Band_UI_Init"] = UIInitHandler; BinaryHandlers["Band_Note_Sync"] = NoteSyncHandler; PlaintextHandlers["Band_Buzz"] = BuzzNoteHandler; PlaintextHandlers["Band_Fail"] = NoteFailHandler; PlaintextHandlers["Band_Game_Reset"] = ResetHandler; PlaintextHandlers["Band_Intermission"] = IntermissionHandler; PlaintextHandlers["Band_Performance"] = InitPerformanceHandler; PlaintextHandlers["Band_Continue_Performance"] = PerformanceHandler; PlaintextHandlers["Band_Players"] = PlayerRosterHandler; PlaintextHandlers["Band_RockOn"] = ForceRockOnHandler; PlaintextHandlers["Band_Show"] = ShowGameHandler; PlaintextHandlers["Band_Timer"] = TimerHandler; PlaintextHandlers["Band_Timeout"] = TimeoutHandler; PlaintextHandlers["Band_Win"] = DisplayWinHandler; }