van-hmr/app.js
2025-02-03 14:54:55 -05:00

57 lines
1.2 KiB
JavaScript

//@ts-check
import Gale from "./lib/gale/gale.js";
import Van from "./lib/van/van.js";
import HMR from "./lib/van/hmr.js";
const css = Gale({
Board:{
padding: "1rem",
background: "blue",
color: "white"
}
})
const Components = {
Title()
{
const titleString = Van.state("title");
return ()=> div({class:css("Board"), onclick(){
titleString.val = Math.random();
}}, titleString.val);
}
}
const {div} = Van.tags;
Van.add(document.querySelector("#app"), Components.Title());
const World = {
Round: Van.state(0),
Turn: Van.state(0),
Energy: Van.state([4, 4, 4])
};
/** @typedef {[From:number, To:number]} Transfer */
/** @typedef {{Transfers:Transfer[], Power:number, Vector:number[], Charge:number, Effect:string}} Ability */
/** @type Ability */
const Ability = {
Transfers:[],
Power:1,
Vector:[],
Charge:0,
Effect:"damage"
};
/** @typedef {{}} Character */
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}