Skip to content

Commit b74b157

Browse files
committed
Improve middle button logic and cleanup main.ts
1 parent 63b5955 commit b74b157

File tree

1 file changed

+27
-84
lines changed

1 file changed

+27
-84
lines changed

src/ts/main.ts

Lines changed: 27 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8686
interface 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-
}
440396
function 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-
473416
console.log(`you seem smart, how 'bout you contribute to the project? ${Game.GITHUB_REPO}`);
474417

475418
Handlers.SAVE.register("game", Game.getInstance());

0 commit comments

Comments
 (0)