From dfe9a8586ddb6d54ad1f5b4500938d9e934f6042 Mon Sep 17 00:00:00 2001 From: thepaperpilot Date: Sat, 1 May 2021 00:51:16 -0500 Subject: [PATCH] Added ritual UI/X --- images/distillRune.webp | Bin 0 -> 2330 bytes images/flowersRune.webp | Bin 0 -> 38936 bytes images/generatorsRune.webp | Bin 0 -> 3756 bytes images/sandsRune.webp | Bin 0 -> 7902 bytes images/studyRune.webp | Bin 0 -> 6800 bytes js/Layers/flowers.js | 18 ++++-- js/Layers/generators.js | 20 ++++-- js/Layers/rituals.js | 123 +++++++++++++++++++++++++++++++++++-- js/components.js | 4 +- js/utils/save.js | 1 + style.css | 17 +++++ 11 files changed, 167 insertions(+), 16 deletions(-) create mode 100644 images/distillRune.webp create mode 100644 images/flowersRune.webp create mode 100644 images/generatorsRune.webp create mode 100644 images/sandsRune.webp create mode 100644 images/studyRune.webp diff --git a/images/distillRune.webp b/images/distillRune.webp new file mode 100644 index 0000000000000000000000000000000000000000..a390a8f32bca8108c200faf12e3b62d5c386145e GIT binary patch literal 2330 zcma);2|SeB8^_OBM%g8@WRhh>mP(ec-Cr)*-N==zA!Do2m}Fmun-G#gi0n~Z+laq% zyHvO-OJ$8vu1IBHhi2w~X3Aaa`h5P+=biVRbI$XApY#0A`8?;fH8nQgu^oUDM-8p* ztu-Au0RTJT&mI6h01PZmEs(H9hsJ1G7-z7}GHVrD zTT89nCT_P;Y9V13>!Euq5EKWfrjeC%5U-L{ACXfUuoEMuLSV-3gltcU59<m9lCZ9d^rn4p22A}4;?sQWnSnnLvJ$+INQ+$3QW5$Q5Ks!j`QvYuZ}42}*Z z4DZBfo0Ao(`o!?Uvr-~GPfaRZw7Ji?jd^_E>PMOtMO}|04|qoVD7PIk*LT$tUFsrU z;Aq=G&6U)+QFINLq%+eK5Q@JO%>1mI`_B>z4R$vbpiOP}3arzL^ud9jDrF+mV==bH zl0?~G79HLMdJf57bR_{=kQHBf)gLJNx z`$k21Fq{={`=k)zMRU3;L6W|OS^`yx=mHk3_njHlaN6LF7^~cd9sIk61q1|8V&ehN zSDR@{``wfF^xU1xS$We-|8)iDsD5Vb)`PGR|LIq^Pfu3ptn-SgVQKHDW4hR01%6Uq z2p|tW-i}We1Vs{0-s(q(su3yf%k8|ZL{HQ3>4rRf9IaHg~JAW$YV(_ekwhJcx8jrVqxzkO@8?CqvE62JajZahk zfoW}5+V3uvg`Qs+fGiQYl`n87b#0h`)K^_-n0h{Hi-@3wYA3;uRkyb4OJm^)BnBS28yahvkEdPPDIbI&d-cHh-Eh~?U`OCbv#DHk;f->t+$ zfjhsqurn#M5b9kk%^oz?_BX!sHiFoqRL|m{8S8r0-sm6~TQ(v33B?PMMeI>9+R5ot zx0g^#<{ZN}TgBUO;b(kYJ?F6H#$S9;c@{w%)&`TW=v_8}LcaXeB!b!xu@a{oAY zb2$p{dp}kZyK^l*!O=F=B&xJjN`1&TO=cOfc)~EpAtT1D`vA}TPEJjQ*V|1$vj0jt zHR&gE>6o1i??d^!Z#RIjJ}IgHQN4qEzmbtp@)gTD>qJuTcGQ%P$rTrUTRl;U|30kG zcFUxT{%3*hWp-85y%;ygaoId)m85I|ZACfLx}!6(RoPwWpC@LGGFFlk&PU@hr-DuE z_Oe@-O9su_v)l z;?lzrMRej*f9zJVV>1eKo4cHYJ@oXapm&im5#?a*ozfB0Y9YQ*je{WSC{<&Dnq^fT z_nkP1ea~^8oI)N74m@o(0@MD4YPgjLIup1X$ZVGrF1Ai#$N1kNWg51{n3(1U}^f5QJqJ09F7> zzSL(Ph68n_c!|2UKpVar4l6uli^0wV2nL%KurWLsZ2TsX!E=V4`jr9t4j^*!!6{m=ed>UmY;cWao`%lkeh12Mg3yBA+(8QDt&on?l<*s zsZhXw(fA8>_a=2S`@g95pnJNTPVc7n0?hwQ{gOLsi`?Nv%JR$RDe&{*pKG*L?uPIU xsO26e5Aj#-%zXpLz`LSvNKmDJ$yb}v`!|Cs0>++VdjH8d%-sD507HGn_#a99VE_OC literal 0 HcmV?d00001 diff --git a/images/flowersRune.webp b/images/flowersRune.webp new file mode 100644 index 0000000000000000000000000000000000000000..29e7668d22fa82682f81326370422d0b4b8b5b65 GIT binary patch literal 38936 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 literal 0 HcmV?d00001 diff --git a/images/generatorsRune.webp b/images/generatorsRune.webp new file mode 100644 index 0000000000000000000000000000000000000000..433676f0c1194713a1855614f52812af14430321 GIT binary patch literal 3756 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 b_Lmz&+{Et95DGYuLcjfP_KykmZ?pJ+)NMw4 literal 0 HcmV?d00001 diff --git a/images/sandsRune.webp b/images/sandsRune.webp new file mode 100644 index 0000000000000000000000000000000000000000..71964628ef9aa4414fceef1ae82484792f8dfe56 GIT binary patch literal 7902 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 JDE%LL`5y=sIn)3E literal 0 HcmV?d00001 diff --git a/js/Layers/flowers.js b/js/Layers/flowers.js index a224621..9a0e89c 100644 --- a/js/Layers/flowers.js +++ b/js/Layers/flowers.js @@ -326,7 +326,8 @@ addLayer("flowers", { selectFlowers: { title: "Collecting", color: flowersColor, - style: { minHeight: "50px" }, + class: { 'candypop-selector': true }, + style: { minHeight: "50px", color: "black", backgroundColor: flowersColor }, canClick: () => player.flowers.sacrificeType !== "flowers", onClick: () => player.flowers.sacrificeType = "flowers", unlocked: () => tmp.flowers.layerShown @@ -334,7 +335,8 @@ addLayer("flowers", { selectDistill: { title: "Distilling", color: distillColor, - style: { minHeight: "50px" }, + class: { 'candypop-selector': true }, + style: { minHeight: "50px", color: "black", backgroundColor: distillColor }, canClick: () => player.flowers.sacrificeType !== "distill", onClick: () => player.flowers.sacrificeType = "distill", unlocked: () => tmp.distill.layerShown @@ -342,7 +344,8 @@ addLayer("flowers", { selectStudy: { title: "Studying", color: studyColor, - style: { minHeight: "50px" }, + class: { 'candypop-selector': true }, + style: { minHeight: "50px", color: "black", backgroundColor: studyColor }, canClick: () => player.flowers.sacrificeType !== "study", onClick: () => player.flowers.sacrificeType = "study", unlocked: () => tmp.study.layerShown @@ -350,7 +353,8 @@ addLayer("flowers", { selectSands: { title: "Experimenting", color: sandsColor, - style: { minHeight: "50px" }, + class: { 'candypop-selector': true }, + style: { minHeight: "50px", color: "black", backgroundColor: sandsColor }, canClick: () => player.flowers.sacrificeType !== "sands", onClick: () => player.flowers.sacrificeType = "sands", unlocked: () => tmp.sands.layerShown @@ -358,7 +362,8 @@ addLayer("flowers", { selectGenerators: { title: "Generating", color: electricColor, - style: { minHeight: "50px" }, + class: { 'candypop-selector': true }, + style: { minHeight: "50px", color: "black", backgroundColor: electricColor }, canClick: () => player.flowers.sacrificeType !== "generators", onClick: () => player.flowers.sacrificeType = "generators", unlocked: () => tmp.generators.layerShown @@ -366,7 +371,8 @@ addLayer("flowers", { selectRituals: { title: "Rituals", color: ritualsColor, - style: { minHeight: "50px" }, + class: { 'candypop-selector': true }, + style: { minHeight: "50px", color: "white", backgroundColor: ritualsColor }, canClick: () => player.flowers.sacrificeType !== "rituals", onClick: () => player.flowers.sacrificeType = "rituals", unlocked: () => tmp.rituals.layerShown diff --git a/js/Layers/generators.js b/js/Layers/generators.js index 85d3a95..4badc03 100644 --- a/js/Layers/generators.js +++ b/js/Layers/generators.js @@ -402,9 +402,12 @@ addLayer("generators", { // TODO ritual charger, "perc1": { title: "1%", + class: { 'generator-selector': true }, style: { width: "60px", - minHeight: "60px" + minHeight: "60px", + color: "black", + backgroundColor: electricColor }, canClick: () => player.generators.allocPerc.neq(0.01), onClick: () => { @@ -413,9 +416,12 @@ addLayer("generators", { }, "perc10": { title: "10%", + class: { 'generator-selector': true }, style: { width: "60px", - minHeight: "60px" + minHeight: "60px", + color: "black", + backgroundColor: electricColor }, canClick: () => player.generators.allocPerc.neq(0.1), onClick: () => { @@ -424,9 +430,12 @@ addLayer("generators", { }, "perc50": { title: "50%", + class: { 'generator-selector': true }, style: { width: "60px", - minHeight: "60px" + minHeight: "60px", + color: "black", + backgroundColor: electricColor }, canClick: () => player.generators.allocPerc.neq(0.5), onClick: () => { @@ -435,9 +444,12 @@ addLayer("generators", { }, "perc100": { title: "100%", + class: { 'generator-selector': true }, style: { width: "60px", - minHeight: "60px" + minHeight: "60px", + color: "black", + backgroundColor: electricColor }, canClick: () => player.generators.allocPerc.neq(1), onClick: () => { diff --git a/js/Layers/rituals.js b/js/Layers/rituals.js index 4b72bc9..4a78eb7 100644 --- a/js/Layers/rituals.js +++ b/js/Layers/rituals.js @@ -1,12 +1,47 @@ +Vue.component("rune", { + props: ["layer", "data"], + template: `
+ +
` +}) + +const rituals = { + xp: { + title: "Ritual of Doctrina", + pattern: [ [ 0, 1 ], [ 1, 0 ] ], + effect: amount => new Decimal(amount), + effectDisplay: () => format(ritualEffect("xp")) + " xp/s", + unlocked: () => true + } +}; + +function ritualEffect(id) { + let effect = rituals[id].effect(player.rituals.rituals[id] || 0); + if (player.generators.ritualsActive && (player.tab === "generators" || player.generators.timeLoopActive)) { + effect = effect.sqrt(); + } + return effect; +} + // Note: id is the corresponding *buyable* ID function createRuneSelector(id, rune) { // TODO image based on rune return { - color: layers[rune]?.color, + color: layers[rune]?.color || ritualsColor, + class: { + rune: true + }, style: { width: "60px", minHeight: "60px", - "--count": () => (getBuyableAmount("rituals", id)?.toNumber() || 0) - Object.values(player.rituals.board).filter(r => r === rune).length + background: rune ? 'url(images/' + rune + 'Rune.webp) no-repeat center / contain' : '', + backgroundColor: layers[rune]?.color || ritualsColor, + "--count": rune === null ? "" : () => (getBuyableAmount("rituals", id)?.toNumber() || 0) - Object.values(player.rituals.board).filter(r => r === rune).length }, canClick: () => player.rituals.selectedRune !== rune, onClick: () => player.rituals.selectedRune = rune @@ -19,6 +54,7 @@ function createRuneBuyable(id, title) { display() { return `Craft another rune

Currently: ${formatWhole(getBuyableAmount("rituals", this.id))}

Cost: ${format(this.cost())} ${layers[id].resource}`; }, + runeType: id, color: layers[id].color, style: { width: '160px', @@ -39,6 +75,75 @@ function createRuneBuyable(id, title) { }; } +function getRows() { + let rows = 3; + if (hasMilestone("rituals", 1)) { + rows++; + } + if (hasMilestone("rituals", 4)) { + rows++; + } + return rows; +} + +function getCols() { + let cols = 3; + if (hasMilestone("rituals", 0)) { + cols++; + } + if (hasMilestone("rituals", 3)) { + cols++; + } + return cols; +} + +function setRune([row, col]) { + if (player.rituals.selectedRune == null || (getBuyableAmount("rituals", Object.values(layers.rituals.buyables).find(b => b.runeType === player.rituals.selectedRune).id)?.toNumber() || 0) - Object.values(player.rituals.board).filter(r => r === player.rituals.selectedRune).length > 0) { + player.rituals.board[`${row}${col}`] = player.rituals.selectedRune; + player.rituals.rituals = getRituals(); + } +} + +function checkRitual(ritual, top, left) { + // Store a lookup table of what runes this pattern is using + const types = {}; + + for (let r = 0; r < ritual.pattern.length; r++) { + for (let c = 0; c < ritual.pattern[r].length; c++) { + let patternTile = ritual.pattern[r][c]; + let tile = player.rituals.board[`${top + r}${left + c}`]; + if ((patternTile in types && types[patternTile] !== tile) || + tile == null) { + return false; + } + types[patternTile] = tile; + } + } + return true; +} + +function getRituals() { + const rows = getRows(); + const cols = getCols(); + const ritualCounts = {}; + Object.entries(rituals).forEach(([id, ritual]) => { + let ritualCount = 0; + for (let row = 0; row < rows && row <= rows - ritual.pattern.length; row++) { + for (let col = 0; col < cols && col <= cols - ritual.pattern[0].length; col++) { + // [row, col] is the top left of the ritual + // TODO allow negative numbers to represent "not this type" + if (checkRitual(ritual, row, col)) { + ritualCount++; + } + } + } + if (ritualCount > 0) { + ritualCounts[id] = ritualCount; + } + }); + return ritualCounts; +} + addLayer("rituals", { name: "rituals", image: "images/bright-72804.jpg", @@ -54,7 +159,8 @@ addLayer("rituals", { lastLevel: new Decimal(0), timeLoopActive: false, board: {}, - selectedRune: null + selectedRune: null, + rituals: {} }; }, tabFormat: () => player.tab !== "rituals" ? [] : [ @@ -64,6 +170,10 @@ addLayer("rituals", { "blank", ["sticky", ["36px", ["clickables"]]], "blank", + ...new Array(getRows()).fill(0).map((_,row) => ["row", new Array(getCols()).fill(0).map((_,col) => ["rune", [row, col]])]), + "blank", + ...Object.keys(rituals).filter(id => ritualEffect(id).gt(0)).map(id => ["display-text", `${rituals[id].title} (${player.rituals.rituals[id]}): ${rituals[id].effectDisplay()}`]), + "blank", ["milestones-filtered", [2, 5, 6]] ], update(diff) { @@ -71,6 +181,9 @@ addLayer("rituals", { if (player.generators.ritualsActive && (player.tab === "generators" || player.generators.timeLoopActive)) { diff = diff / 10; } + let xpGain = ritualEffect("xp"); + player[this.layer].xp = player[this.layer].xp.add(xpGain); + checkJobXP(this.layer); } }, milestones: { @@ -99,7 +212,7 @@ addLayer("rituals", { 5: { title: "You must not be seen.", requirementDescription: "Level 10", - "effectDescription": "Unlock the Ritual of Ascent", + "effectDescription": "Unlock the Ritual of Ascensio", done: () => player.rituals.xp.gte(1e9), unlocked: () => hasMilestone("rituals", 2) }, @@ -112,6 +225,8 @@ addLayer("rituals", { } }, clickables: { + rows: 1, + cols: 7, 11: { title: "Clear All", style: { diff --git a/js/components.js b/js/components.js index 691dec6..341fbe7 100644 --- a/js/components.js +++ b/js/components.js @@ -349,7 +349,7 @@ function loadVue() { ` }) - + // data = button size, in px Vue.component("clickables", { props: ["layer", "data"], @@ -381,7 +381,7 @@ function loadVue() {