@@ -81,7 +81,7 @@ export enum VersionBranch {
8181 DEVELOP = 2
8282}
8383
84- type MiddleButton = "stats" | "info" | "options" ;
84+ type MiddleState = "none" | "stats" | "info" | "options" ;
8585
8686interface GameSaveData {
8787 hasCheated : boolean ;
@@ -143,6 +143,8 @@ export class Game extends SaveProvider {
143143
144144 public savinator5000 : Savinator ;
145145
146+ public currentMiddleState : MiddleState ;
147+
146148 public mousePos : {
147149 x : number ,
148150 y : number
@@ -253,9 +255,9 @@ export class Game extends SaveProvider {
253255
254256 // ------- Event Listeners (very long) -------
255257 // Middle buttons
256- document . getElementById ( "statsButton" ) . addEventListener ( "click" , ( ) => { toggleMiddle ( "stats" ) } ) ;
257- document . getElementById ( "optionsButton" ) . addEventListener ( "click" , ( ) => { toggleMiddle ( "options" ) } ) ;
258- document . getElementById ( "infoButton" ) . addEventListener ( "click" , ( ) => { toggleMiddle ( "info" ) } ) ;
258+ document . getElementById ( "statsButton" ) . addEventListener ( "click" , ( ) => { this . toggleMiddle ( "stats" ) } ) ;
259+ document . getElementById ( "optionsButton" ) . addEventListener ( "click" , ( ) => { this . toggleMiddle ( "options" ) } ) ;
260+ document . getElementById ( "infoButton" ) . addEventListener ( "click" , ( ) => { this . toggleMiddle ( "info" ) } ) ;
259261 // middle content
260262 for ( const element of Array . from ( document . getElementsByClassName ( "middle-x" ) ) ) { //? i don't like how we have to do this, can we find another way? maybe somehow only one X button? actually we should probably refactor how the entire middle section works... todo: make an issue for that
261263 element . addEventListener ( "click" , ( ) => { closeMiddle ( ) } ) ;
@@ -315,6 +317,27 @@ export class Game extends SaveProvider {
315317 Mod . callKooh ( "click" ) ;
316318 }
317319
320+ toggleMiddle ( middleButton : MiddleState ) {
321+ const middleTexts : Partial < Record < MiddleState , HTMLElement > > = {
322+ "info" : document . getElementById ( "infoMiddleText" ) ,
323+ "options" : document . getElementById ( "optionsMiddleText" ) ,
324+ "stats" : document . getElementById ( "statsMiddleText" )
325+ }
326+
327+ // set display none on all text
328+ for ( const text of Object . values ( middleTexts ) ) {
329+ text . style . display = "none" ;
330+ }
331+
332+ if ( this . currentMiddleState === middleButton ) {
333+ this . currentMiddleState = "none" ;
334+ // we already set display to none on all our things
335+ } else { // middle state is something else
336+ middleTexts [ middleButton ] . style . display = "block" ;
337+ this . currentMiddleState = middleButton ;
338+ }
339+ }
340+
318341 getSaveData ( ) : GameSaveData {
319342 return {
320343 hasCheated : this . hasCheated ,
@@ -366,77 +389,10 @@ dev.setDevMode = function(value: boolean | "on" | "off") {
366389 ( document . getElementById ( "devModeSelect" ) as HTMLSelectElement ) . disabled = true ;
367390 }
368391}
369- dev . setCookies = function ( number : number ) {
370- if ( ! dev . devMode ) return "You need developer mode ON to run this command." ;
371-
372- Game . getInstance ( ) . clickercookie . cookies = number ;
373- Game . getInstance ( ) . clickercookie . totalCookies = + number ;
374- Game . getInstance ( ) . hasCheated = true ;
375- }
376- dev . setCPS = function ( number : number ) {
377- if ( ! dev . devMode ) return "You need developer mode ON to run this command." ;
378-
379- dev . CPSGiven = number ;
380- Game . getInstance ( ) . hasCheated = true ;
381- }
382-
383- // ------------------------------------
384- // Helper Functions
385- // ------------------------------------
386- helper . consoleLogDev = function ( str : string ) {
387- if ( dev . devMode ) console . log ( str ) ;
388- }
389392
390393// ------------------------------------
391394// Random Functions
392395// ------------------------------------
393- function toggleMiddle ( param : MiddleButton ) { // TODO 0.7: make a cleaner system for this and put it in Game
394- const statsMT = document . getElementById ( "statsMiddleText" ) ;
395- const infoMT = document . getElementById ( "infoMiddleText" ) ;
396- const optionsMT = document . getElementById ( "optionsMiddleText" ) ;
397- const middle = document . getElementById ( "middle" ) ;
398- statsMT . style . display = "none" ;
399- infoMT . style . display = "none" ;
400- optionsMT . style . display = "none" ;
401- switch ( param ) {
402- case "stats" :
403- if ( statsUp ) {
404- statsUp = false ;
405- optionsMT . style . display = "none" ;
406- middle . style . background = url ( Handlers . BACKGROUND . getCurrentBackground ( ) . src ) ;
407- } else {
408- optionsUp = false ;
409- infoUp = false ;
410- statsUp = true ;
411- statsMT . style . display = "block" ;
412- }
413- break ;
414- case "info" :
415- if ( infoUp ) {
416- infoUp = false ;
417- infoMT . style . display = "none" ;
418- middle . style . background = url ( Handlers . BACKGROUND . getCurrentBackground ( ) . src ) ;
419- } else {
420- statsUp = false ;
421- optionsUp = false ;
422- infoUp = true ;
423- infoMT . style . display = "block" ;
424- }
425- break ;
426- case "options" :
427- if ( optionsUp ) {
428- optionsUp = false ;
429- optionsMT . style . display = "none" ;
430- middle . style . background = url ( Handlers . BACKGROUND . getCurrentBackground ( ) . src ) ;
431- } else {
432- statsUp = false ;
433- infoUp = false ;
434- optionsUp = true ;
435- optionsMT . style . display = "block" ;
436- }
437- break ;
438- }
439- }
440396function closeMiddle ( ) {
441397 optionsUp = false ;
442398 infoUp = false ;
@@ -457,19 +413,6 @@ function versionSwitch() {
457413 window . location . href = ( Game . VERSION_BRANCH === VersionBranch . MAIN ) ? "/beta" : "/" ;
458414}
459415
460- //
461- // Tooltip stuffs
462- //
463- const tooltip = { } as {
464- html : HTMLDivElement ,
465- create ( x : number , y : number , content : any ) : string
466- } ;
467- tooltip . html = document . getElementById ( "tooltip" ) as HTMLDivElement ;
468-
469- tooltip . create = function ( x : number , y : number , content : any ) {
470- return "this isn't used yet, but 0.7.1 has plans to upgrade the tooltip system, and this will hopefully have functionality" ;
471- }
472-
473416console . log ( `you seem smart, how 'bout you contribute to the project? ${ Game . GITHUB_REPO } ` ) ;
474417
475418Handlers . SAVE . register ( "game" , Game . getInstance ( ) ) ;
0 commit comments