tenebrous-sheets/static/scripts/src/characters/edit.ts

64 lines
2.2 KiB
TypeScript
Raw Normal View History

import { UpdateSkillValueRequest } from "../../_proto/cofd_api_pb";
import * as api from "../api";
(async () => {
//TODO start refactoring these into a separate script, and make API calls
//take all necessary info (e.g. username and character ID, plus other stuff)
//as object params.
//const root = await protobuf.load("/protos/cofd_api.proto");
const [, , USERNAME, CHARACTER_ID] = window.location.pathname.split('/');
//const api = makeAPI(root);
//console.log("api is", api);
function setupAttributes() {
// const attributeInputs = document.querySelectorAll('#skills input[type="number"]');
// async function skillValueHandler(event: Event) {
// const input = event.target as HTMLInputElement;
// console.log("updating attr");
// const attribute = input.id;
// const newValue = parseInt(input.value);
// const params = new UpdateSkillValueRequest();
// params.setCharacterUsername(USERNAME);
// params.setCharacterId(parseInt(CHARACTER_ID));
// params.setSkillName(attribute);
// params.setSkillValue(newValue);
// await api.updateSkillValue(params);
// }
// Array.from(attributeInputs).forEach(input => {
// input.addEventListener('change', skillValueHandler);
// });
}
function setupSkills() {
const skillInputs = document.querySelectorAll('#skills input[type="number"]');
async function skillValueHandler(event: Event) {
const input = event.target as HTMLInputElement;
console.log("updating attr");
const attribute = input.id;
const newValue = parseInt(input.value);
const params = new UpdateSkillValueRequest();
params.setCharacterUsername(USERNAME);
params.setCharacterId(parseInt(CHARACTER_ID));
params.setSkillName(attribute);
params.setSkillValue(newValue);
await api.updateSkillValue(params);
}
Array.from(skillInputs).forEach(input => {
input.addEventListener('change', skillValueHandler);
});
}
setupAttributes();
setupSkills();
})().catch(e => {
alert(e);
});