Files
estus-shots-py/estusshots/static/js/estus-shots.ts

69 lines
1.9 KiB
TypeScript

class EditorModule{
setCurrentTime = (elemId: string) => {
const elem = document.getElementById(elemId) as HTMLInputElement;
if (!elem) return;
elem.value = this.currentTimeHHMM()
};
currentTimeHHMM = () => {
const d = new Date();
const hours = (d.getHours()<10 ? '0' : '') + d.getHours();
const minutes = (d.getMinutes()<10 ? '0' : '') + d.getMinutes();
return `${hours}:${minutes}`;
};
}
const editorModule = new EditorModule();
interface HTMLElement {
addClass(cssClass: string): void;
removeClass(cssClass: string): void;
}
HTMLElement.prototype.addClass = function(cssClass: string): void {
if (!this.classList.contains(cssClass)){
this.classList.add(cssClass);
}
};
HTMLElement.prototype.removeClass = function(cssClass: string): void {
if (this.classList.contains(cssClass)){
console.log(this.classList);
this.classList.remove(cssClass);
}
};
namespace EventEditor {
export let updateControls = () => {
const typeSelect = document.getElementById("event_type") as HTMLSelectElement;
const selectedType = typeSelect.options[typeSelect.selectedIndex].value;
const penalties = document.querySelector(".penalty-container") as HTMLDivElement;
const player = document.getElementById("player_row") as HTMLDivElement;
const enemy = document.getElementById("enemy_row") as HTMLDivElement;
switch (selectedType) {
// Pause
case "0":
penalties.addClass("d-none");
player.addClass("d-none");
enemy.addClass("d-none");
break;
// Death
case "1":
penalties.removeClass("d-none");
player.removeClass("d-none");
enemy.removeClass("d-none");
break;
// Victory
case "2":
penalties.addClass("d-none");
player.removeClass("d-none");
enemy.removeClass("d-none");
break;
}
}
}