123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- module CharacterCreation {
- let ccDiv = document.createElement("div");
- ccDiv.id = "characterCreation";
- let rightSide = document.createElement("div");
- rightSide.id = "ccRight";
- let leftSide = document.createElement("div");
- leftSide.id = "ccLeft";
- ccDiv.appendChild(leftSide);
- ccDiv.appendChild(rightSide);
- let resolver;
- async function printTable () {
- printOrigin();
- while (leftSide.firstChild) leftSide.removeChild(leftSide.firstChild);
- await (new Say(new SayBold("Character Origin:")).getHTMLContent().then(eles => {
- eles.forEach(ele => {
- leftSide.appendChild(ele);
- })
- }));
- let origins = CharacterOrigin.getOrigins();
- for (let i = 0; i < origins.length; i++) {
- let origin = origins[i];
- let say = new Say(origin.name);
- if (origin.id == CharacterCreation.PlayerOrigin.value) {
- say.add(" - SELECTED");
- }
- await (say).getHTML("p", ["choice"]).then(elementArray => {
- Controls.Links.makeCustomLink(elementArray[0], {
- mouseover: () => {
- printOrigin(origin);
- },
- mouseout: () => {
- printOrigin();
- },
- click: () => {
- CharacterCreation.PlayerOrigin.value = origin.id;
- reset();
- }
- });
- Controls.KeyHandler.applyCode(elementArray[0], Controls.KeyHandler.getSecondKeyCode());
- leftSide.appendChild(elementArray[0]);
- });
- }
- }
- function printConfirm () {
- (new Say("Confirm")).getHTML("p", ["choice"]).then(elementArray => {
- elementArray[0].addEventListener("click", () => {
- resolver();
- });
- Controls.KeyHandler.applyCode(elementArray[0], Controls.KeyHandler.getSecondKeyCode());
- Elements.CurrentTurnHandler.print(elementArray[0]);
- });
- }
- function printOrigin (origin? : CharacterOrigin) {
- if (origin == undefined) {
- origin = CharacterOrigin.getOrigin(CharacterCreation.PlayerOrigin.value);
- }
- let say = new Say(origin.description);
- if (origin.bonusStats != undefined) {
- say.add(Say.PARAGRAPH_BREAK, origin.bonusStats);
- }
- say.getHTMLContent().then((eles => {
- while (rightSide.firstChild) rightSide.removeChild(rightSide.firstChild);
- for (let i = 0; i < eles.length; i++) {
- rightSide.appendChild(eles[i]);
- }
- }));
- }
- function reset () {
- Elements.CurrentTurnHandler.clear();
- Elements.CurrentTurnHandler.print(ccDiv);
- printTable();
- Elements.CurrentTurnHandler.print(document.createElement("br"));
- Elements.CurrentTurnHandler.print(document.createElement("br"));
- printConfirm();
- }
- export let CCOrigin = CharacterCreation.rulebook.createAndAddRule({
- name: "Character Creation - Origin",
- firstPriority: Rule.PRIORITY_MEDIUM,
- priority: Rule.PRIORITY_HIGH,
- code: async () => {
- Elements.startMenu();
- let promise = new Promise(resolve => {
- resolver = resolve;
- });
- reset();
- await promise;
- CharacterCreation.getOrigin().confirmPicked();
- Elements.endMenu();
- }
- });
- }
|