@@ -761,9 +761,37 @@ class PaybackRateMod {
761761 }
762762 }
763763
764+
765+ getButtonID ( /** @type {string } */ config ) {
766+ return `PaybackRateMod_${ config } ` ;
767+ }
764768 /**
765- * Adds an options menu to the game interface for the PaybackRateMod class.
769+ *
770+ * @param {string } config
771+ * @param {string } text
772+ * @returns
766773 */
774+ toggleButton ( config , text ) {
775+ const name = this . getButtonID ( config ) ;
776+ const value = this . config [ config ] ;
777+ const button = document . createElement ( "a" ) ;
778+ button . id = name ;
779+ button . classList . add ( "smallFancyButton" , "prefButton" , "option" ) ;
780+ this . updateButtonState ( config , text , button ) ;
781+ button . addEventListener ( "click" , ( ) => {
782+ this . config [ config ] = ! this . config [ config ] ;
783+ PlaySound ( "snd/tick.mp3" ) ;
784+ this . updateButtonState ( config , text , button ) ;
785+ } ) ;
786+ return button ;
787+ }
788+
789+ updateButtonState ( config , text , button ) {
790+ const value = this . config [ config ] ;
791+ button . classList . toggle ( "off" , ! value ) ;
792+ button . textContent = `${ text } ${ value ? "On" : "Off" } ` ;
793+ }
794+
767795 sortingDiv ( ) {
768796 /* Sorting */
769797 const sortingDiv = document . createElement ( "div" ) ;
@@ -789,7 +817,7 @@ class PaybackRateMod {
789817 bankingSecondsInput . style . width = "6em" ;
790818 bankingSecondsInput . id = "PaybackRateModBankingSecondsInput" ;
791819 bankingSecondsInput . value = this . config . bankingSeconds ;
792- bankingSecondsInput . onchange = bankingSecondsInput . onkeypress = bankingSecondsInput . onpaste = bankingSecondsInput . oninput = ( ) => {
820+ bankingSecondsInput . onchange = bankingSecondsInput . onpaste = bankingSecondsInput . oninput = ( ) => {
793821 bankingSecondsInput . value = bankingSecondsInput . value . replace ( / [ ^ 0 - 9 ] / g, "" ) ;
794822 this . config . bankingSeconds = parseInt ( bankingSecondsInput . value ) ;
795823 } ;
@@ -824,12 +852,10 @@ class PaybackRateMod {
824852 updateTimeSlider . step = "100" ;
825853 updateTimeSlider . value = this . config . updateMS ;
826854 updateTimeSlider . onchange = updateTimeSlider . oninput = ( ) => {
855+ PlaySound ( 'snd/tick.mp3' ) ;
827856 this . config . updateMS = parseInt ( updateTimeSlider . value ) ;
828857 l ( "PaybackRateMod_UpdateMSValue" ) . innerHTML = this . config . updateMS + "ms" ;
829858 }
830- updateTimeSlider . onmouseup = ( ) => {
831- PlaySound ( 'snd/tick.mp3' ) ;
832- } ;
833859
834860 const intervalBoxDiv = document . createElement ( "div" ) ;
835861 intervalBoxDiv . classList . add ( "sliderBox" ) ;
@@ -867,6 +893,10 @@ class PaybackRateMod {
867893 } ) ;
868894 return colorPickerDiv ;
869895 }
896+
897+ /**
898+ * Adds an options menu to the game interface for the PaybackRateMod class.
899+ */
870900 addOptionsMenu ( ) {
871901 const body = document . createElement ( "div" ) ;
872902 body . classList . add ( "listing" ) ;
@@ -881,106 +911,6 @@ class PaybackRateMod {
881911 CCSE . AppendCollapsibleOptionsMenu ( this . displayname , body ) ;
882912 }
883913
884- getButtonID ( /** @type {string } */ config ) {
885- return `PaybackRateMod_${ config } ` ;
886- }
887- /**
888- *
889- * @param {string } config
890- * @param {string } text
891- * @returns
892- */
893- toggleButton ( config , text ) {
894- const name = this . getButtonID ( config ) ;
895- const callback = `paybackRateMod.toggleButtonCallback('${ config } ', '${ text } ');`
896- const value = this . config [ config ] ;
897- const button = document . createElement ( "a" ) ;
898- button . classList . add ( "smallFancyButton" , "prefButton" ) ;
899- button . classList . toggle ( "option" , value ) ;
900- button . classList . toggle ( "off" , ! value ) ;
901- button . id = name ;
902- button . setAttribute ( Game . clickStr , callback ) ;
903- button . innerHTML = `${ text } ${ value ? "On" : "Off" } ` ;
904- return button ;
905- }
906-
907- /**
908- * @param {string } config
909- * @param {string } text
910- */
911- toggleButtonCallback ( config , text ) {
912- const value = ! this . config [ config ] ;
913- const buttonID = `PaybackRateMod_${ config } ` ;
914- this . config [ config ] = value ;
915- l ( buttonID ) . innerHTML = value ? `${ text } On` : `${ text } Off` ;
916- l ( buttonID ) . className = `smallFancyButton prefButton ${ value ? "option" : "option off" } ` ;
917- PlaySound ( "snd/tick.mp3" ) ;
918- }
919-
920- /**
921- *
922- * @param {string } config
923- * @returns {string }
924- */
925- numberInput ( config ) {
926- const ID = `PaybackRateMod${ config } Input` ;
927- const callback = `paybackRateMod.textInputCallback('${ config } ', '${ ID } ');` ;
928- const value = this . config [ config ] ;
929- return `<input type="number" min="0" style="width:6em;" id="${ ID } " value="${ value } " onchange="${ callback } " onkeypress="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();">` ;
930- }
931-
932- /**
933- *
934- * @param {string } config
935- * @param {string } name
936- * @param {number } min
937- * @param {number } step
938- * @returns {string }
939- */
940- intervalInput ( config , name , min = 500 , max = 5000 , step = 100 ) {
941- const ID = `PaybackRateMod${ config } Input` ;
942- const callback = `paybackRateMod.textInputCallback('${ config } ', '${ ID } Slider');` +
943- `l('${ ID } RightText').innerHTML=l('${ ID } Slider').value+'ms';` ;
944- const value = this . config [ config ] ;
945- return `<div class="sliderBox">
946- <div id="${ ID } " style="float:left;" class="smallFancyButton">${ name } </div>
947- <div id="${ ID } RightText" style="float:right;" class="smallFancyButton">${ value } ms</div>
948- <input id="${ ID } Slider" class="slider" style="clear:both;" type="range" min="${ min } " max="${ max } " step="${ step } " value="${ value } " onchange="${ callback } " oninput="this.onchange();">
949- </div>` ;
950- }
951-
952- /**
953- * @param {string } config
954- * @param {string } ID
955- */
956- textInputCallback ( config , ID ) {
957- l ( ID ) . value = l ( ID ) . value . replace ( / [ ^ 0 - 9 ] / g, "" ) ;
958- const value = l ( ID ) . value ;
959- this . config [ config ] = parseInt ( value ) ;
960- }
961-
962- /**
963- *
964- * @param {string } config
965- * @returns {string }
966- */
967- colorPicker ( config ) {
968- const pickerID = `PaybackRateMod${ config } Picker` ;
969- const callback = `paybackRateMod.colorPickerCallback('${ config } ', '${ pickerID } ');` ;
970- const defaultColor = this . default_config [ config ] ;
971- const reset = `paybackRateMod.config.${ config } ='${ defaultColor } ';l('${ pickerID } ').value='${ defaultColor } ';` ;
972- const value = this . config [ config ] ;
973- return `<input type="color" id="${ pickerID } " value=${ value } oninput="${ callback } "> <a class="option" ${ Game . clickStr } ="${ reset } ">Reset</a>` ;
974- }
975-
976- /**
977- * @param {string } config
978- * @param {string } pickerID
979- */
980- colorPickerCallback ( config , pickerID ) {
981- const value = l ( pickerID ) . value ;
982- this . config [ config ] = value ;
983- }
984914} ;
985915
986916// Load mod
0 commit comments