123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- 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 () {
- while (leftSide.firstChild) leftSide.removeChild(leftSide.firstChild);
- await (new Say(new SayBold("Perks (Choose any):")).getHTMLContent().then(eles => {
- eles.forEach(ele => {
- leftSide.appendChild(ele);
- })
- }));
- let perks = Perk.getPerks();
- for (let i = 0; i < perks.length; i++) {
- let perk = perks[i];
- let say = new Say(perk.name);
- if (perk.isEnabled()) {
- if (perk.isForced()) {
- say.add (" (Mandatory)");
- } else {
- say.add(" - Selected");
- }
- } else if (perk.isForced()) {
- say.add(" (Forbidden)");
- }
- await (say).getHTML("p", ["choice"]).then(elementArray => {
- Controls.Links.makeCustomLink(elementArray[0], {
- mouseover: () => {
- printPerk(perk);
- },
- mouseout: () => {
- emptyPerk();
- },
- click: () => {
- if (!perk.isForced()) {
- perk.value = !perk.value;
- }
- 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 emptyPerk () {
- while (rightSide.firstChild) rightSide.removeChild(rightSide.firstChild);
- }
- function printPerk (perk : Perk) {
- let say = new Say(perk.description);
- say.getHTMLContent().then((eles => {
- emptyPerk();
- for (let i = 0; i < eles.length; i++) {
- rightSide.appendChild(eles[i]);
- }
- }));
- }
- function reset () {
- Perk.updatePerks();
- Elements.CurrentTurnHandler.clear();
- Elements.CurrentTurnHandler.print(ccDiv);
- printTable();
- Elements.CurrentTurnHandler.print(document.createElement("br"));
- Elements.CurrentTurnHandler.print(document.createElement("br"));
- printConfirm();
- }
- export let CCPerk = CharacterCreation.rulebook.createAndAddRule({
- name: "Character Creation - Origin",
- firstPriority: Rule.PRIORITY_LOW,
- priority: Rule.PRIORITY_HIGH,
- code: async () => {
- Elements.startMenu();
- let promise = new Promise(resolve => {
- resolver = resolve;
- });
- reset();
- await promise;
- let perks = Perk.getPerks();
- perks.forEach(perk => {
- if (perk.isEnabled()) {
- perk.confirmPicked();
- }
- });
- Elements.endMenu();
- }
- });
- }
|