57 lines
1.1 KiB
JavaScript
57 lines
1.1 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 = HMR("title", "default!")
|
||
|
return ()=> div({class:css("Board"), onclick(){
|
||
|
titleString.val = Math.random();
|
||
|
}}, titleString.val);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const {div} = Van.tags;
|
||
|
Van.add(document.body, 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;
|
||
|
}
|