From 9f7d864e576ebea78451ad5fa891df6b083f4800 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Sun, 18 Jan 2026 18:14:40 -0500 Subject: [PATCH 01/24] Add tag enum --- dist/extension.zip | Bin 149636 -> 149653 bytes dist/extension/birb.js | 41 ++++++++++++++++++++--------------- dist/obsidian/main.js | 41 ++++++++++++++++++++--------------- dist/userscript/birb.user.js | 41 ++++++++++++++++++++--------------- dist/web/birb.embed.js | 41 ++++++++++++++++++++--------------- dist/web/birb.js | 41 ++++++++++++++++++++--------------- src/animation/frame.js | 12 +++++----- src/animation/layer.js | 7 +++++- src/animation/sprites.js | 6 +++-- 9 files changed, 131 insertions(+), 99 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index 36f701089e223e20f93c729659742d13a184c5a5..e463bc2dba15f6c4aa427b33ddfaf05814a3c39c 100644 GIT binary patch delta 23731 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�-*P;K-4nN|hM{ZsB{3BvQsEB6XSGk~r&6w`(;6 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 @@ -333,7 +349,7 @@ [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", - }, ["tuft"]), + }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { [PALETTE.FOOT]: "#af8e75", @@ -355,7 +371,7 @@ [PALETTE.UNDERBELLY]: "#dc3719", [PALETTE.WING]: "#d23215", [PALETTE.WING_EDGE]: "#b1321c", - }, ["tuft"]), + }, [TAG.TUFT]), americanGoldfinch: new BirdType("American Goldfinch", "Coloured a brilliant yellow, this bird feeds almost entirely on the seeds of plants such as thistle, sunflowers, and coneflowers.", { [PALETTE.BEAK]: "#ffaf34", @@ -432,17 +448,6 @@ }), }; - class Layer { - /** - * @param {string[][]} pixels - * @param {string} [tag] - */ - constructor(pixels, tag = "default") { - this.pixels = pixels; - this.tag = tag; - } - } - class Frame { /** @type {{ [tag: string]: string[][] }} */ @@ -457,10 +462,10 @@ for (let layer of layers) { tags.add(layer.tag); } - tags.add("default"); + tags.add(TAG.DEFAULT); for (let tag of tags) { let maxHeight = layers.reduce((max, layer) => Math.max(max, layer.pixels.length), 0); - if (layers[0].tag !== "default") { + if (layers[0].tag !== TAG.DEFAULT) { throw new Error("First layer must have the 'default' tag"); } this.pixels = layers[0].pixels.map(row => row.slice()); @@ -470,7 +475,7 @@ } // Combine layers for (let i = 1; i < layers.length; i++) { - if (layers[i].tag === "default" || layers[i].tag === tag) { + if (layers[i].tag === TAG.DEFAULT || layers[i].tag === tag) { let layerPixels = layers[i].pixels; let topMargin = maxHeight - layerPixels.length; for (let y = 0; y < layerPixels.length; y++) { @@ -488,8 +493,8 @@ * @param {string} [tag] * @returns {string[][]} */ - getPixels(tag = "default") { - return this.#pixelsByTag[tag] ?? this.#pixelsByTag["default"]; + getPixels(tag = TAG.DEFAULT) { + return this.#pixelsByTag[tag] ?? this.#pixelsByTag[TAG.DEFAULT]; } /** diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 255ba72..e847f07 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -231,6 +231,22 @@ module.exports = class PocketBird extends Plugin { return document.documentElement.clientHeight; } + const TAG = { + DEFAULT: "default", + TUFT: "tuft", + }; + + class Layer { + /** + * @param {string[][]} pixels + * @param {string} [tag] + */ + constructor(pixels, tag = TAG.DEFAULT) { + this.pixels = pixels; + this.tag = tag; + } + } + /** * Palette color names * @type {Record} @@ -338,7 +354,7 @@ module.exports = class PocketBird extends Plugin { [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", - }, ["tuft"]), + }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { [PALETTE.FOOT]: "#af8e75", @@ -360,7 +376,7 @@ module.exports = class PocketBird extends Plugin { [PALETTE.UNDERBELLY]: "#dc3719", [PALETTE.WING]: "#d23215", [PALETTE.WING_EDGE]: "#b1321c", - }, ["tuft"]), + }, [TAG.TUFT]), americanGoldfinch: new BirdType("American Goldfinch", "Coloured a brilliant yellow, this bird feeds almost entirely on the seeds of plants such as thistle, sunflowers, and coneflowers.", { [PALETTE.BEAK]: "#ffaf34", @@ -437,17 +453,6 @@ module.exports = class PocketBird extends Plugin { }), }; - class Layer { - /** - * @param {string[][]} pixels - * @param {string} [tag] - */ - constructor(pixels, tag = "default") { - this.pixels = pixels; - this.tag = tag; - } - } - class Frame { /** @type {{ [tag: string]: string[][] }} */ @@ -462,10 +467,10 @@ module.exports = class PocketBird extends Plugin { for (let layer of layers) { tags.add(layer.tag); } - tags.add("default"); + tags.add(TAG.DEFAULT); for (let tag of tags) { let maxHeight = layers.reduce((max, layer) => Math.max(max, layer.pixels.length), 0); - if (layers[0].tag !== "default") { + if (layers[0].tag !== TAG.DEFAULT) { throw new Error("First layer must have the 'default' tag"); } this.pixels = layers[0].pixels.map(row => row.slice()); @@ -475,7 +480,7 @@ module.exports = class PocketBird extends Plugin { } // Combine layers for (let i = 1; i < layers.length; i++) { - if (layers[i].tag === "default" || layers[i].tag === tag) { + if (layers[i].tag === TAG.DEFAULT || layers[i].tag === tag) { let layerPixels = layers[i].pixels; let topMargin = maxHeight - layerPixels.length; for (let y = 0; y < layerPixels.length; y++) { @@ -493,8 +498,8 @@ module.exports = class PocketBird extends Plugin { * @param {string} [tag] * @returns {string[][]} */ - getPixels(tag = "default") { - return this.#pixelsByTag[tag] ?? this.#pixelsByTag["default"]; + getPixels(tag = TAG.DEFAULT) { + return this.#pixelsByTag[tag] ?? this.#pixelsByTag[TAG.DEFAULT]; } /** diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 01018f5..c794adb 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -240,6 +240,22 @@ return document.documentElement.clientHeight; } + const TAG = { + DEFAULT: "default", + TUFT: "tuft", + }; + + class Layer { + /** + * @param {string[][]} pixels + * @param {string} [tag] + */ + constructor(pixels, tag = TAG.DEFAULT) { + this.pixels = pixels; + this.tag = tag; + } + } + /** * Palette color names * @type {Record} @@ -347,7 +363,7 @@ [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", - }, ["tuft"]), + }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { [PALETTE.FOOT]: "#af8e75", @@ -369,7 +385,7 @@ [PALETTE.UNDERBELLY]: "#dc3719", [PALETTE.WING]: "#d23215", [PALETTE.WING_EDGE]: "#b1321c", - }, ["tuft"]), + }, [TAG.TUFT]), americanGoldfinch: new BirdType("American Goldfinch", "Coloured a brilliant yellow, this bird feeds almost entirely on the seeds of plants such as thistle, sunflowers, and coneflowers.", { [PALETTE.BEAK]: "#ffaf34", @@ -446,17 +462,6 @@ }), }; - class Layer { - /** - * @param {string[][]} pixels - * @param {string} [tag] - */ - constructor(pixels, tag = "default") { - this.pixels = pixels; - this.tag = tag; - } - } - class Frame { /** @type {{ [tag: string]: string[][] }} */ @@ -471,10 +476,10 @@ for (let layer of layers) { tags.add(layer.tag); } - tags.add("default"); + tags.add(TAG.DEFAULT); for (let tag of tags) { let maxHeight = layers.reduce((max, layer) => Math.max(max, layer.pixels.length), 0); - if (layers[0].tag !== "default") { + if (layers[0].tag !== TAG.DEFAULT) { throw new Error("First layer must have the 'default' tag"); } this.pixels = layers[0].pixels.map(row => row.slice()); @@ -484,7 +489,7 @@ } // Combine layers for (let i = 1; i < layers.length; i++) { - if (layers[i].tag === "default" || layers[i].tag === tag) { + if (layers[i].tag === TAG.DEFAULT || layers[i].tag === tag) { let layerPixels = layers[i].pixels; let topMargin = maxHeight - layerPixels.length; for (let y = 0; y < layerPixels.length; y++) { @@ -502,8 +507,8 @@ * @param {string} [tag] * @returns {string[][]} */ - getPixels(tag = "default") { - return this.#pixelsByTag[tag] ?? this.#pixelsByTag["default"]; + getPixels(tag = TAG.DEFAULT) { + return this.#pixelsByTag[tag] ?? this.#pixelsByTag[TAG.DEFAULT]; } /** diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 722645a..0d3bcb5 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -226,6 +226,22 @@ return document.documentElement.clientHeight; } + const TAG = { + DEFAULT: "default", + TUFT: "tuft", + }; + + class Layer { + /** + * @param {string[][]} pixels + * @param {string} [tag] + */ + constructor(pixels, tag = TAG.DEFAULT) { + this.pixels = pixels; + this.tag = tag; + } + } + /** * Palette color names * @type {Record} @@ -333,7 +349,7 @@ [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", - }, ["tuft"]), + }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { [PALETTE.FOOT]: "#af8e75", @@ -355,7 +371,7 @@ [PALETTE.UNDERBELLY]: "#dc3719", [PALETTE.WING]: "#d23215", [PALETTE.WING_EDGE]: "#b1321c", - }, ["tuft"]), + }, [TAG.TUFT]), americanGoldfinch: new BirdType("American Goldfinch", "Coloured a brilliant yellow, this bird feeds almost entirely on the seeds of plants such as thistle, sunflowers, and coneflowers.", { [PALETTE.BEAK]: "#ffaf34", @@ -432,17 +448,6 @@ }), }; - class Layer { - /** - * @param {string[][]} pixels - * @param {string} [tag] - */ - constructor(pixels, tag = "default") { - this.pixels = pixels; - this.tag = tag; - } - } - class Frame { /** @type {{ [tag: string]: string[][] }} */ @@ -457,10 +462,10 @@ for (let layer of layers) { tags.add(layer.tag); } - tags.add("default"); + tags.add(TAG.DEFAULT); for (let tag of tags) { let maxHeight = layers.reduce((max, layer) => Math.max(max, layer.pixels.length), 0); - if (layers[0].tag !== "default") { + if (layers[0].tag !== TAG.DEFAULT) { throw new Error("First layer must have the 'default' tag"); } this.pixels = layers[0].pixels.map(row => row.slice()); @@ -470,7 +475,7 @@ } // Combine layers for (let i = 1; i < layers.length; i++) { - if (layers[i].tag === "default" || layers[i].tag === tag) { + if (layers[i].tag === TAG.DEFAULT || layers[i].tag === tag) { let layerPixels = layers[i].pixels; let topMargin = maxHeight - layerPixels.length; for (let y = 0; y < layerPixels.length; y++) { @@ -488,8 +493,8 @@ * @param {string} [tag] * @returns {string[][]} */ - getPixels(tag = "default") { - return this.#pixelsByTag[tag] ?? this.#pixelsByTag["default"]; + getPixels(tag = TAG.DEFAULT) { + return this.#pixelsByTag[tag] ?? this.#pixelsByTag[TAG.DEFAULT]; } /** diff --git a/dist/web/birb.js b/dist/web/birb.js index 722645a..0d3bcb5 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -226,6 +226,22 @@ return document.documentElement.clientHeight; } + const TAG = { + DEFAULT: "default", + TUFT: "tuft", + }; + + class Layer { + /** + * @param {string[][]} pixels + * @param {string} [tag] + */ + constructor(pixels, tag = TAG.DEFAULT) { + this.pixels = pixels; + this.tag = tag; + } + } + /** * Palette color names * @type {Record} @@ -333,7 +349,7 @@ [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", - }, ["tuft"]), + }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { [PALETTE.FOOT]: "#af8e75", @@ -355,7 +371,7 @@ [PALETTE.UNDERBELLY]: "#dc3719", [PALETTE.WING]: "#d23215", [PALETTE.WING_EDGE]: "#b1321c", - }, ["tuft"]), + }, [TAG.TUFT]), americanGoldfinch: new BirdType("American Goldfinch", "Coloured a brilliant yellow, this bird feeds almost entirely on the seeds of plants such as thistle, sunflowers, and coneflowers.", { [PALETTE.BEAK]: "#ffaf34", @@ -432,17 +448,6 @@ }), }; - class Layer { - /** - * @param {string[][]} pixels - * @param {string} [tag] - */ - constructor(pixels, tag = "default") { - this.pixels = pixels; - this.tag = tag; - } - } - class Frame { /** @type {{ [tag: string]: string[][] }} */ @@ -457,10 +462,10 @@ for (let layer of layers) { tags.add(layer.tag); } - tags.add("default"); + tags.add(TAG.DEFAULT); for (let tag of tags) { let maxHeight = layers.reduce((max, layer) => Math.max(max, layer.pixels.length), 0); - if (layers[0].tag !== "default") { + if (layers[0].tag !== TAG.DEFAULT) { throw new Error("First layer must have the 'default' tag"); } this.pixels = layers[0].pixels.map(row => row.slice()); @@ -470,7 +475,7 @@ } // Combine layers for (let i = 1; i < layers.length; i++) { - if (layers[i].tag === "default" || layers[i].tag === tag) { + if (layers[i].tag === TAG.DEFAULT || layers[i].tag === tag) { let layerPixels = layers[i].pixels; let topMargin = maxHeight - layerPixels.length; for (let y = 0; y < layerPixels.length; y++) { @@ -488,8 +493,8 @@ * @param {string} [tag] * @returns {string[][]} */ - getPixels(tag = "default") { - return this.#pixelsByTag[tag] ?? this.#pixelsByTag["default"]; + getPixels(tag = TAG.DEFAULT) { + return this.#pixelsByTag[tag] ?? this.#pixelsByTag[TAG.DEFAULT]; } /** diff --git a/src/animation/frame.js b/src/animation/frame.js index d51515d..b623e41 100644 --- a/src/animation/frame.js +++ b/src/animation/frame.js @@ -1,6 +1,6 @@ import { Directions } from '../shared.js'; import { PALETTE, BirdType } from './sprites.js'; -import Layer from './layer.js'; +import Layer, { TAG } from './layer.js'; class Frame { @@ -16,10 +16,10 @@ class Frame { for (let layer of layers) { tags.add(layer.tag); } - tags.add("default"); + tags.add(TAG.DEFAULT); for (let tag of tags) { let maxHeight = layers.reduce((max, layer) => Math.max(max, layer.pixels.length), 0); - if (layers[0].tag !== "default") { + if (layers[0].tag !== TAG.DEFAULT) { throw new Error("First layer must have the 'default' tag"); } this.pixels = layers[0].pixels.map(row => row.slice()); @@ -29,7 +29,7 @@ class Frame { } // Combine layers for (let i = 1; i < layers.length; i++) { - if (layers[i].tag === "default" || layers[i].tag === tag) { + if (layers[i].tag === TAG.DEFAULT || layers[i].tag === tag) { let layerPixels = layers[i].pixels; let topMargin = maxHeight - layerPixels.length; for (let y = 0; y < layerPixels.length; y++) { @@ -47,8 +47,8 @@ class Frame { * @param {string} [tag] * @returns {string[][]} */ - getPixels(tag = "default") { - return this.#pixelsByTag[tag] ?? this.#pixelsByTag["default"]; + getPixels(tag = TAG.DEFAULT) { + return this.#pixelsByTag[tag] ?? this.#pixelsByTag[TAG.DEFAULT]; } /** diff --git a/src/animation/layer.js b/src/animation/layer.js index cd33990..72e6c95 100644 --- a/src/animation/layer.js +++ b/src/animation/layer.js @@ -1,9 +1,14 @@ +export const TAG = { + DEFAULT: "default", + TUFT: "tuft", +}; + class Layer { /** * @param {string[][]} pixels * @param {string} [tag] */ - constructor(pixels, tag = "default") { + constructor(pixels, tag = TAG.DEFAULT) { this.pixels = pixels; this.tag = tag; } diff --git a/src/animation/sprites.js b/src/animation/sprites.js index 9ff5e80..3aca274 100644 --- a/src/animation/sprites.js +++ b/src/animation/sprites.js @@ -1,3 +1,5 @@ +import { TAG } from "./layer.js"; + /** * Palette color names * @type {Record} @@ -105,7 +107,7 @@ export const SPECIES = { [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", - }, ["tuft"]), + }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { [PALETTE.FOOT]: "#af8e75", @@ -127,7 +129,7 @@ export const SPECIES = { [PALETTE.UNDERBELLY]: "#dc3719", [PALETTE.WING]: "#d23215", [PALETTE.WING_EDGE]: "#b1321c", - }, ["tuft"]), + }, [TAG.TUFT]), americanGoldfinch: new BirdType("American Goldfinch", "Coloured a brilliant yellow, this bird feeds almost entirely on the seeds of plants such as thistle, sunflowers, and coneflowers.", { [PALETTE.BEAK]: "#ffaf34", From 8263fadfba5749acf19a65073bee91e31327dd68 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Sun, 18 Jan 2026 19:04:40 -0500 Subject: [PATCH 02/24] Add hat placeholder --- aseprite/hats.aseprite | Bin 0 -> 370 bytes build.js | 4 ++ dist/extension.zip | Bin 149653 -> 150422 bytes dist/extension/birb.js | 98 +++++++++++++++++++++++++++++++---- dist/obsidian/main.js | 98 +++++++++++++++++++++++++++++++---- dist/userscript/birb.user.js | 98 +++++++++++++++++++++++++++++++---- dist/web/birb.embed.js | 98 +++++++++++++++++++++++++++++++---- dist/web/birb.js | 98 +++++++++++++++++++++++++++++++---- sprites/hats.png | Bin 0 -> 116 bytes src/application.js | 15 ++++-- src/birb.js | 85 +++++++++++++++++++++++++++--- 11 files changed, 533 insertions(+), 61 deletions(-) create mode 100644 aseprite/hats.aseprite create mode 100644 sprites/hats.png diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..0ddd6b090a528ba0e5251a931909eded59489377 GIT binary patch literal 370 zcmXS7WMFu(l#zi42o)HB9EJ%X0uIy|7{Po21_8JjH5s3PhW+};0=AU}$QA=)b_EnC z07Ytmm<8lIH6TMt!NgU=Ce6~YKg{}mq1w#_Y3~lt`u)jl=F@xg literal 0 HcmV?d00001 diff --git a/build.js b/build.js index 49ed684..f5faec5 100644 --- a/build.js +++ b/build.js @@ -46,6 +46,10 @@ const spriteSheets = [ { key: "__FEATHER_SPRITE_SHEET__", path: SPRITES_DIR + "/feather.png" + }, + { + key: "__HATS_SPRITE_SHEET__", + path: SPRITES_DIR + "/hats.png" } ]; diff --git a/dist/extension.zip b/dist/extension.zip index e463bc2dba15f6c4aa427b33ddfaf05814a3c39c..9a98b9237be991e35e13a1c1000ba846e8ccae1b 100644 GIT binary patch delta 28005 zcmV(tK+c6@R&T1rczEm~|VX@B?k!$KBWRdSrZbKkk= zz4S~Xi6jUDAP9mWm}yLUwQ;-O3o@^Q?|++nIT?k)XgqA!#xMW*f49HQ)%v~BIM{6u zL#{Onexq7*$Hl$!n_w~b8lNu?_Yd%eK0i{EPB;$gVRh0x>DNQl@APXG>LJ_ekH)=9 z7r*`XTQHwn*~~8Ezuf#kr470ohYw@4=uJ8ug0%F@FMpd0ehK~ z={*Klt#I55htg5df2E$(%A}if2hBe#WQ#{L92aDeib}f?WM1gF1;*UCHSFI9z3@IL4u}0= zW?owa!|>}Q9F4cs{=~i11?QKbn zE`?!O8HYio7aWvNj)SlhcEjE{xNnbJ0ay`?24St;XahecU^otkBjKJBl%%THd<<%x z%4l>7IY=$NB^hAcdgG7jHQIG8uwp?N6$K%X!DoKA@+H)=jP3e$;B@mkXxA+nAnj&o zzXkPvZ9=2Wf7W>L2F!fDeJ4cMs#ykn+#Zdym3lquh8aUlc6w7jo0d)qsPB9;Jf-Fa zzd6&YT}S11-PBQ$*3uZ`{!sew>R|pXDy7UoJt}9yH$m|ZV}2F<_Iq&GZ`U7#3eWvG zVf(#8r(OG!(OzF`H5s2l6y#uNM4PY|LY`~XX#RDOe+jt? z<(H5VMURAUng(^K_$R4!qPZxIGW3P{JnlmkkBKhzVWk;_BzvQv-}9u>>it^?Gb((v z3jmsT`*$I$ASttu?;$Vzd#%;()M5w8e{=>!c!MRUTMdV=10t*W=FEWGTBXye zR%%~91_k{TKnVxjg&7GtAXI$t4iO#$VBa*#=wm=spdT#47z>NZu+r`^D63)HOb&NV zBek|m!=V)~nuAILXp-S1d>t6HA#+%AFrmK(kFUAYqOd~PO4Hzl4nr9&DutL#tmQ?$ ze?2Jq5k~7<|GE6Lsxq03MZABc&bFQe7Hp9V3nF z8;=G=WE$^WG=9u~ovDikeZe*>b&erme@+vkk7;rfq&F$|2h@V*8UC4#Gb;)x!r}ON zNXHcyw~sVdG$vmIr6ZX#F1Oha#x@sb2Sc9vyJ4d;=@=y#W=EKw=fghc2^*239F-Jy zd7i<)$skS$T1z7i8l7fliJ3+o!$AGlGdU@$dKUI%lFd2&f!B7{{CEh$j?@*;e}Vab zdkj2{NGZk`A)?31kJNxwiou_MMn;!muj&JyHPWzKc_3Xw4YQ-#u;1xiwd=4$CL5(+p{f}lpmdvDmJ6>v=hqu{9Ewv|N4GX8Mm^)IJ5jZkk9R2 zhDHFfa+HNmw^y$o2M_<|-po|@f8b&|0QV=r-b7$&(h1lb2P{eDGo>$ub2CWr16`6j z6gFWJV{x^{wH?6qUm=SN%B6*+upvdN`63IZSirP}^Q;DyNi6BLPJa~cOkgMVK6+Im zn*|m_|Gqe?RR*DFxbW}T5A{d1le0T1sTq6;rvxv)=oe6(*L=bWD}2;Fe=P8*BM1qt zPNE)&X--Ae8ODHjN?r#9m9-kt#>~K!1rpe$EsuUjFfM}^7D%;UpJpK_W0*H14);T{(l7I3 z0721av)Rh9$s5;EqA@!u9QT9ujVKunNU1j)C^3j^D2tVtVFJYffALJS8JHO-&pyn^ zO3}s#+p#2bb zQUHk2ZyF!=>fr+$<=VJSKX_BxG`Q#0hWe3D*ms7NT1$JCCRW-UG~@Fb`@drv@Hrtk z%1FOFh}Q~>k$NrNe+X@tmV!Md59E|c0u2vRwfe*MH=0@Jx#Bkc1-{ZUB! zi!{g9Uj{0_E(Ez(@bNJr#R)*OSEwiAfW^?=UJ}_`vS4HAe>8R5J$M#^Dja7thws6+ z{yj6{s@>_pPsWu-NUrfN9@_f6_n^*VS1sXrGnfA0j^&K;2b_ zQ|$B&NW~(2sC6c^hnLOfWXQW3*rda7GzzMfVK8cc3xmv{4;RR|4TUxhn(R;-q6Hjk z4Z=sq^eRP0e`2V92Yny~r(q5738QLQt3X{4uEEMiP^vU4!#3$M_~3?Z><{6!s|WY} z-petZ2axKaK;V9tMq@Z+rpCkt!eI-f;juVlh2u%E@D zO6R^Zr7>`izL*H&vS%lJoY4`n8gNm73=abk%WUG!e5;*mc!y1SDGKW2*VW3F`U$}WM!lke5>%|{6ksR{il&9? zWKZ+&fWhXI(Cj>aTr8K1O1JVs@uc|a07n6aOUgS?p=lP4` zDU)+p>5ari!KG)H<>SNCA_(1|j63ZfHaWn2f9LFCw|Idct3W9n@^5=*X9S?p?+e_W zV*V}F2rKY}qD}FJpoCL_u$M2;*G8o#-w)2tcJaN{@5B3v+NWnFD(}JWlpc%6$2a() z8bW~im&;S2u%kc2`weN@I|XmVZp{;9aTPax^X#jxJgevA1FLc0~RO94F} zf6yVYp|RemY-Ax_`ONW z!&}T*1fbgb*uXhL@f>*wJb@^kUmTW;pGpVCV);|y?D*{B(@FkZl`R9N5Ks)QR(1(Gu+Zm<2ugWvYb9I>ou({S3U)bH$yMTIDw0yAf6>^e zZd4OhSSl5P%~ky8)Yx++6LlPg39GtZW+elD&(N8VtdUTj(58>rLcl@M9+2VgSD2x* zM8&15Ub1sZ`Hs@HFKNZsZhzPulDZtRLZ*}3+mEgyruz7i{)v>ZgD%RPZ(Kz*sjf5y z2CnmEZtgZ^j(mjna3>Ox->Iq7e}QWKUFS-yhRi0epffFA0dwYw_Lw(Ml(JlLxr$s2 zxU25C+PX+zYBiQGuB8GPtL4cU*CQc>7{=<+)I_ncE=!9*tO8BYlnRhp&=wLJ{PEHs^_NYH#>@)Azy4*0LhG0Fl|~i_(q{Q5e;FnD_6>j; z<1rKS_eW=uFP#?)hsBZ#WfceaRm@);=-@ovG|0>sD>#fC_JSQP7Z%K)!oy4_N&Voo zKZG|i-whE50sEY+=erPw_NZTj`HuP2>Q9<2oUZiP(rkBe9$OjGIYTfA`vdIAvDy7j z{IG-}JZVr5R%H!HR6Rjw$UB8wkK&+Rcg-s9XVb7^3Tr2|Loi9MmtjZ2Ujo6^!4K_6H_ zXmdo&g2QUm?^QbOfAJLVM#wu(*x-$v2Hh#P$c^wNxLvt}GXlms@$xV8p|)A8)KxiJ zLOXm|3)jPHj6^X$)HiF5TD*?sLp4`judT-*SWAS-yItRIRJMh@uY+6K(9q86BTtHO zf>SBPB3-~2*o#xTsD%NSCJ22`fjm$^QjKIE`%l`hg8^SBe{IA;jYi@s2!;ec8@!tk zMH@o|0n|Gn{j@)M$sB=80saHouXhm*R2ky58)h?~PWOl1|H(|KG*;JQ1k%-M{_mAa zWqCVZ8u6#mNNF77PqhNa#Y(IL%b(N^eEw{0ZLM#`CtBJ(aj=njG7Rg5$`C%AN+-^` z3rM{wOEB(^j}O;EVoljBW|aHj&ZxO9#*g|^hMEfJKPGFH{*ip&&}L6{TBm} zJ~wN%f92(QYiz(@+AH1jsZU%6c2E>(nQ}khq;ndv8sJN%NEFhD!#??PDT=1jTkKX4 z9g3L=Clv&RwnH&f;|oj@2m<`N6ABdSK|7D|HypQTa6N?ZCz3WD4B@}!6PP5+pE*hE z)y>*ke3Ckh*$i{FIL%^=39Gg3%1p+rtgNr-e~J}JT#PZbwY9CdDzKvC01!t@M=T!0i=zC3Y-jmK?F4v;iOB^6^VUJq};F?Bqq2s4>s4~r}FiO z-!rbOc+_s4EVrw;5e@)b}yx0s^;X#Xa@AG19d%3aP;3~okoX-y- z>8bWyNy=uJbDp4Mxi?mT7;k2qXm>%y2?CC$gYks*3Mrc;nJppLw&}mvNGu_-m%x9q z(uk0a+WN+igt}g%|6(94Ay=yOUrK4TTfvqH|HZ1LYWfHpp}1M}Q%PZ|#!9CrVI}5Ae;-F6l`EVt#x)tNX)X(>P=G&g(<$pT_L^9M9M6Dg zGg^{GY1JmfHo`So9a4-rPTblxFq>BUCuY{uj+n4s+f1ya*8Xa2hG7_2Z*~!_t#4J< z<1@lxWv;rpy%D2wjFq*`?J#vQ;k7Ka1D};!8yl-@vQ{yN9GCVUq9<@@e@4Nij=S(X z`I&|Z6p^`9FDT^L>1Z)!yROZDl#q(Nv5 zG@Y%|_`So}sApj@0u~1u>IO06_(!8TBtC&RuAY1;XV(B5P~Iz z^a#CC*XV+qzMy}*rt51ji^wtEg|`A@sL5n zk`X&x7h$E+`eewLOkx#mxNxW6A6OY?T5I5wfQ2+005Aejmn6o(Yc`4QXxJ(6{}0}#6U8!lw~g_h|klS|b`UE>b!xZLiBINupYSFTmd zLBffaOp9H`C6l6^ES}c>fvcy=mQMxiK-CyGzUti9h*X&E*bm@-7Mr6u!oU!!72LWa zuWZ<<4Cvz+I5Np?n3~ZoRKn4^ZdF8D;uTvbZf*9fItc(7%i>j~<#j+HmFx{Xs zi>hDAYJ((;O-Oy=`6hy)ultSLNI5q9@D|5 zx7b=B;rbL^jTu}qW&tl|HYO0m?m_>#O?{GP>fTboY(YW*%k zL7X{~YW7$HJ;wsNK#ar~!^AA32@!R759cnhM&IJa07oFSo$o&)Ym_v zh0;MqO`y2Gc6ytk%ac9&vr|>ao?UOdl{n{S~LMX zR@u&V4BXC8B@?8BC<}x7g7d0Se?&Y)oz7Uyvgt@~kfEv2>-QGP_#iXeRvY26f{kK- zA<{x-53XsEj8U2a!)@vsYY&MFTW1t0NnvX6PXym_ql*?`e8oR`gT&}D`b>Kf3Enj+ zX`*TvAwZfaG3GzHtAfmT^jRt&9v>sVkpE?u+s@ezzTs_NcOrNkkC6=E^(`Q>=A-5c?k=ECYb5Wy~nciF2q$dz7!@9@k_Xp5rPY zg^FU4b?yq^wMTr512aZ1oI3-ygpmCj-4~ow>99orWqM)$-N8#+0D3ZuC9(xp$T-loBM7r7XDn%h(&h`x>?q)LS6k=p^d=YA!L5v>s8 z0qVtmiK@!omvh>N(oQ^C72Hej#GyS}Io~4S?x1WP86%4sshS-=e_Chv4vxL(0-Lmw z+kJLOT0t(i%+1k$K#miR$*G#bV!%J==}4sP{FpjyN5*?6tZ21WsdJ3m46^%PLA_2!WhpFr;Z1OqmH43fM( zqf1KL0@v`5S-P15e^HTRNI!$!)@)cU+*p|wr_W}?_DoQZv1vof1@U_F^JuPv!0HAox?9Qot_Z0097pdO^<+RCz4#wRJ$3GMbO_W57ySf|(% zD5VrdQ#OY0szG)(r`N`V+v)LdN5Y=7*-K6hqitY9~rFf1UMb>`P~4c9aTwQtmX#a>m7Z zGLh#a!&hp{Ig(j9ojE}H{nS!@6`fZn&pZ+UvMiEz!4z%xeO5qius)7EG@8PP^Un7^W@N7M#@JozH@dLo=fx_xmK<25mzl>I~&6t zd#y_xR-Vrp|-vN6%zL>p{QoI>}%4)hNC z4rgq{0C;xbqR1Ji=ED!my1$fR(jnld^Zf2Ef7~A^+;Hqc_DeWrxizP-e0J^>t>KtQ zdvNOPoR!OGCr&jR2ZKFYZUc@%ZKFad7{NM~$pUnKu+Ph_uq3J_JU}9ckW63OoD!Ij zP-EX&hChlbV8=ke*fUk0KOJIOogm5d1(7iUQ(1FDZc=g0>tR zrNgzz%{sca;N6-ypZ+mukIa7+=Tu$;C!ZlYxqiS1U;O{Ch?LHUd>!YjlCFY&p|i^# zCDTC`2hkLKQJjVG7Wut{<&R=G+`6AJe~lM&rhsZi-<&U^9Vz#ir<;tgJl3rU*DYxX zG8qUef8c)|Hl)qqIQLATk~0BpGe_8C&1Q+FsHXw>&Y+r-jUc70{NTvNSf$>q2q(D4 zlNIEayP=CSfo|&*A~XF+r&}>{MYUB6!mhjqdJoXZ^#{er_zF;VgE9)vs!wehe__id z@Y64o)1JTl8XuuK8|rpMr>Gm9GEk1)v?F5$3hCB=^v>5|i^N+cYhjB5qvJe`tJL3z4rgOf8C0r!#q8EclGjJGDi9gbP9jO@8LBIML0bGi| zWkf84#vbi~Dd|r{cK&IUMr;9`B(dpOY%*v6K$NpRQ&Q&wAC;RtkZ!N~e_L9&0``a9 za$p)AU>8ay{}9`vphqJq{qjk}?9O$!@{8D}ai4!W8cXxwphQ1YAR+`$1XAMrPX2 z&OEpigVq|+#k9`il?sDke>4umt)*ab1%|Qgw%~h!+mFpzKCSshf44h{ct{`HK#1vE zLAdPVipD*=q=+Y_rDX#6m`tcX+s)8#elT>TW7N3@J#mwnxq~xzlTg56f}ktBu+919N5s$*J?;Je?jTKaggoi-fQ6+ z!x!9Tqp&h$$m9Bg51|N}3$-TMFoB{#%*c0xi;H`NWYj4W zf|sHsk8CaE_?6G;Oxlkv1_?QRN>yB&xues7(O^mSB_ZBPLL#2(40sGF*GPMIIf6mliYf1ZTBSc|5<`nu?G z1}nnpZHFP{gU+NkC(*~Oy&S-O69$o-ke>#!bG+4p_b+vHQ|!{y#!KZw8$m1{shYECnl^*2vMQ+_6SJ= zNV}O9{|e^kp>~mv4|(pAf<#k@tIopPP9cN2#kf6suLvuq?re3?geIXG1@iwf9xWm^ zto8+8ZNN$$e;HevP)>jwnX_X=)CAx2$XnVkh?_97oGQ+*>_|aMk)d5~Nr6kSk6X_Z zJGTIoBCfkV*(}Y#NOv#g!xK*1MEgIy3WYOZybQ&kbL+CZl2v~1qWJEzc&bUBZdX>8 z)q}jczPyYzjXh1ch*a-)p?!V{Hca^njx$oqZTlQ*f2NeL;S7W&LArl`c6@0N&Ek9n zo73eij`{U3`UTaaVf9BfgfvnFWkcnnD-A?>7 zbK1J7f1I#qp)d!I;aUvI10tQl5_HDEcy|pz*fSbeCLZ3fv_se(y^z(bO|wuW@9EL5 zJcqbv9GL+`I9-9B3?F+lA^`stYowfxH}KSCdhf^}3r)a@elIHBLAn3)xI77B7G}gA zURYhUI3hFy63T!ba?!&YQ~(MKv0cW%2+E1;e@%6ZFsGD%U;Om8NWKJK1xmPQxQnPQ zsJ*nfzIJzjL~5Cr*(F*5kV=gNDf@Z!@>LcG0aerbky5kSZzjx-RTZtJSg4S-fVO|U zoffrL5S=rAdX|F~`p25l(FNxchCkU2=B~MSw ze_()O7KHl1jBnUDs53gcb8wMB@^Pgh*eC7+!DKLrFfmo^dIiTME7hVree+i_qD>2e zhX1o;w#%7`yh9jgfT(Ut%@WXlb_7$3(gjOal?D#t_&oz-VM*Y(`c3vssqXsXd->b> zb{A=EgZVq82I

Y!$M!C^@Yc!J}}VfAu#r2Ha(U(H2r}RvK38^18*BH)5=e4eOB) zu8iMjP(ivt3SotbLl0!(_AS3{0v%0Cm3A%kvYTZw5IIK^(=Qh8UCG`|))L+iKoDpc zTwWa0lvbp4lM+3qI1C#}W5ah*=s0~`UHrfad18t(9UwTL6M+-afU@K^Qeij-+{E^?*mUqu%0eh^u4;Ci@__x3*J2#x7Jbw(lS5QYC#8V(0Xz106m< zOO8T}QGO6wCGnh9J;GWo7D6;ZEAJ)J`}_MW^68ByRlLX3@7f1NsHK9Ff8Mfpe4&OC zY9mJ(f|%jnPOA_NCwphcZ{~4C08oHe>}Zag=x$a$NZwQ82}wL0A;l)WY-(nlQZs76 zAe`xsa0y=CS^e&B2(Y!oV*$J!`%f*M{4B{a;=O6B zM~fJr?Thcmyw<>25t^7Ye@MrI)Z=2Q=m=@+po@1VgSD#Pxs!JzzZ3DymIw9{mXt*d zpif?IY$}iK%m&W+IqClg?kUG$ks4`t_{Z7{a2)6z! z|HM{_7!e`L^iawFbirpj!Y&~)Qgj5Z5G_!w#j zJ{cGSq!e+wfux~We;0e?QlS&3MSf)%3k7Z^)0|atGb`X^*pc65F5%*9?8HPW+IJEx zrvb;+zpdC~t7j@TW!E*~a=k7=6N+!CT6(K1D(ZWYm3u|eh*h|Ve^M5T=ENM@qm zo^RI?@28j3sPmsPAXSV+AtZ<$|Ru`gxA!w{HxK;#EKSf0X9e+nZ zX+QK2{rDKWw5CLih>RVaU8a>uqV>I(Uuiqwl|q}^_m%rS60RqTcVVa-;jxq1g)b5i zJ;sHL^?39nLeeqS`i*cv)uRwRFIBfycJO}aJe;2gH`78F6%rd7ga&6#gZ~F|k z)D`N;R*Y3JvmRWgms~i~t3V$e3=wO|6B+1m-~+3o==3prVLQ#fE{WlsgXsCaIxw$jo79y3Udl(3iEFI~dvy z!@{j#BxXMte`MWMk!I$b$QT7FplL$F7TY~IPT-Ehk%IPs7i8%@PB~IXlid39;K8o} zhkh+YPI+*dfL`&x5feYgQEnk2>hftt5mHm50Mc2RZy^4jGdTR3Z8;=tt9p z2;dFIfgxD4v^DS&M%VKZam+?E$ zuBeVzbm*X-jA(M-V>?VxNej~2r0*}_e^E%BvD1r~&iuk*d+hOSnS@|%#L+p2b1I<3 zRx?L=!f=P;SctH&q+%;sQOh`Jy5yO2eg}9g7p8%WiYF>eQ`|lfFz%*qDLCt?mj&i4 zJ>iF8t0y5jW~l+a>-2RTNd2oK0lVR4DTsq9^NL(9uD6&bxC{h;f79HL)u(cM zWEhc-JnPXnlMjy7x`4?h9IR3GEbRrX!u_FLtOJRdB|>8LbOcy~tgt`$@gCv-Whtz& z-Fg~2qWBz1B#L_MgMn6x1UPa*(jq9AuXu;4^OCqn)DRBy)(mHZnhXXpcH%OSl}_sD zrqAmWU(VqT_NrMNATQ()e~ggIn7t$HUDv!MnT!e7Y+=N-;Zu;`pyr>wZTf*+C`>gz zS?{tkW?RX5mOfZQ%$|LBUX{G4Vw4yQ%ZElQM+6Md%k?`Q=t>;qI?!dINCh7i8TgS@ zQ!FHaLywM-Rc@R~^o*!{Su343I=mT;s5GS&UIOJ;gDrDeKRH&Mf2-K{VVWSl6Ym-6 zsxs$@BjX!uhBgjhKRhr6DpHy$zLoUwaoQ;=8KE##o9aZD1s1+89Z5v5%!wx%re zMvdV&zA!;AL2gwmNYIV9>^8TnHN3<~AM3d-dX$kqZq&ovHlDk|$3~-`qwLQ7vASwM zZsOG=Ij_`71aYJoe^N_X5_ix)_=n&-GI11`cDgt+jYhYe){c&Mh>8O2q2Md| zWZMLppU}3&DJ@og+*+ zO9LIDDz2H{qmiMREbwGva5TNqLun4mE(#Z^W6+H}fBEQ^zGX!L&>r5X_IX6j+ai$Y zP4rC{qyi$BzGMjEA&*u005o{7%8es>>Y$*GjUF--(LFxlKgW$k-^kCxR6`2w3$w&s z1nKG?uX!kTolg`gffwrQ{cuDtyjMCf|LXLTIkpm>1Q@1~Icmn^Z;7lzA`hY0mI?4C zaOA?-e-2GJ>i4)W5ng7%)ZX13K?ZPELP%I@(ql~2)$1S~L?lJlOXzKNGV_0*r>IR? z+KibmWKXS?gJzS$E;6=3O!y?& zOk6is2+-b9QAJo!Pw|SatEBj;CC0cQgu|*J0%z2%B?}3vMKN_u)Xa{{x;=fN5WLgp ze<4p;0^sVS3vpXmmBe>)j7K~^`CUnKENCJ)$YZgO5!jpEG)$5{W)i~?5fIR-M^Oi? zhTDw@d-7c9F1e`-(^zHRe6_w2LPZyLy8_#_(^_3_GGHF4*=Zu64FNB+NYx$@-e)+k z!6f~To^)Aw7LhnYNppR>%=#l{Ak1C^fBplSeuM`>YAqTCEtw-%-KWc!j8hoLl=?}L zc)^XJZ(eX;uDRi^SjtX+eUM&NKhRVK+S!;KdJ|o%ih5;rsJ|F#k*HjX`gtSKR#4Y) zvEgbORvBp)^O@))DGCQkBJiLKXJ1i}ra)&b=VdX!Ih9o`bp~ioo;$Hsp zxcsS9ESHfYrUc4pud3N0e$cY7ZDoLI3-Y1}v#XT$1GL zr}_nX)TeKPmnZ#Rzc$3v=`S(3(XjT0qO~&ft?_s;db6}ttJ7r+oKm*$hS^>?UTU_M z+I6H6qem2$Y~w$+x2vlwf0gRm@AhvNdY*s0@E(LzDzWfibDBca*=t>ek<$DwS*LPpQDe6vZn4>_dc;9;;I)PN9`%tDa?qzY+=n~} zF&)fpTN+J-u>IAAf`Ln$Ivzrh2WkFK(_q=7fyG{SMTEJhf0X8}Ucsij3k5YAknVB` zFo%aELu{u+JG6W7tyVgI4Hj2OG%j4?k6)JL(zahAqQ4cG#9VQNKOx~PVGoO=Rs~5K z-e75SEBA*uEL|ks^a@FJk|m5e=eKmq5<21OmR@P1tpnFp7~H4V(o=>{wQ|am8tx~D z`SSogoN2Uae;^zbpC0tjH(pNVqj31?ZeuOex`yFD=Cqv-q_lc5P#){jV9cV^v*0|7 z;$Ee6e7q{@qjH9wgkdIH`x`5Ltx)aLim&(Zq4YZ;eW!mGZ9a!LbUrre_E2E;dCCG{ zmLIsKJOyO47m+F-K+sqe*s?M4pBE+x)ym?`dx95R^~wr ztWMdLXF-%uEcCU=F^n)j*AT%7Tz;hJ%nHhA@G+jh`WWqpBVSo7>7-UZnVy!H|ACH- zD#jIh`kL%_(<2}H{R2_>@ek5y`PNj;{Pg~SrxvU)|?gcO`yNVm#NtXA`kuN7O%*_ zq-=l=y%VdCH|PCkUQwc<1JrNk6g<_)Qy)$nfBijm-TgtEr*%Bos%FTn-n?0%yBprL zXg4hH?bOdPyX1v3K<#TxIRdUW3*1)Z2-Lo~3=We+Q5qslbfoxgH<+?4i(HXmm(#wAx6NOpBC| zmu5e~nuSiAS8&2g*TmIjS%6fsWo|C!WOnM0Iyo10RdOf6V$N%B$h5d3Yn_kOT!pUX zj~96Z%qq{Ki6_q6wMELp1QiIM9Uq6rXy?*CE~h?0{q@WfJYOW^VE%tR&3;PQe{@=a zhs^$njW}mvL&=dao@s3MExLQ>851sbCG*zVHE-eIWy}A`2%-P0NVbZrnbs=V`s+;l z(VDl*S>G(4OI!JVIE~}>Wx~Z|mfb2YF@5nYjwGd{h0$V}^O|`2$C*QsMdnx6C7&7L zmpCfxxic*4V-^`n{Pc1-Ce>C%yKq?g+rAd1{7URVV&i(F5m@QM=J$7YP>Fmd8 zq5%Uou*sPKy2Ua(E~j%BDbipub>x}*TGuX90ns5fbx&lwWCqhUm3EDga(wj&o+L2xEAOf06y-4TA6n zAx<6eY+7Y9?$hebwdl*DEQTPCI0%{*Y=2{Ooi)Xlr##HC{a^nlnqsyVO|@2hdQf1E zL%t1BU`B5AYs%7ZiASaq$nuj&(9@DLT-;1xLMzfTt{i#-8cjZDT37()9pCRi@cbuS zJ1a3ij#1r)caF&V(Yf7gLH4jgG+L^{0Musxt)WmAk-mqv6p;hG_Aqk6-2I}4Cv z1eYUl#FANA$MbnB%XpqHx3)$y>L^V(9e?PnqZU>TK<1m(io#r>tofS&yqsMJ;NQ!we=cVFNkoiAT(d$A@QkPr7`;WP0JY=}3vY~nz3X@&|1_6vn zB+s!@<$Z=HO^`N6f3&_|EoKy^7;R5tEOS!=8aTB8VI7_8IIfDB6mfjK4czY+CvR?j z`b0x$?j4>bk!a zJ~0%|z(~@hue69;z$1jWFeS-EcXT1Y2nW)D8xx%}PuZ&8wCVJIY0zu_ldf)Uti5i( z$9o<3%WwCafBiiEoR%(I#mgo>UDDTlvyi{RKRcg`8wli~Ki8+Fi{-=oaI{w2c!!eR z^`nd8-eq|7ZQLvG4fl%0o7Q;y=s17WuHS#2tlSLhJNdhB`RUYL?o^K5(J+sWqX=Kfm#-Mc2>?d%i^M_-OQXIpQ-oaZl!*ZbRp z!9{z2`Zm|PSy|n=YhHdi+^knW-|Xa%a+CVTPVE8%IxL^PeK;<)OM8Qh)4lT9m+tAs z*8B0rf6?C7)!y>u%4xs)_Cu}K8x+5F8+&1X{q%Hldbhv4d|BwNUaWn6zt!7W-`ZYV z={CQ7xIF&4+kAg>xO#u|_4IsvGrVgY5V;oaWb{@L)udHzEu*FV2M?3VY6f9nU|rmIV>dj0xaBY$_;YAheWT|Yd& zD~wC0&4DZGx@qVT)o@ATD$&I`+D9ip@xx)bT*#j+#ZJ)`lq9% zf34Mv<=SLx_w;08YrVNWz59Cf{%Ggjeg0;*Ui~tBho`~0qQu=H+PEFUy3m%r|g4r>b!y|;($!}3+J*jYc{Z!K&cd>u934c7Kf z9xks=?*>P;yZ-sN`dR+NuzmJ^y1D!9f4)%fZY-7FZ#FioHwWw8^S592iii33hvHi9 zF28@%D!m;XgyVzL&h@BwaXsyQx!P@Aqmyav+MW!<&DX=jpAY9>gH|nct5{6+&F1T&=`>faobMk^_U8R{k4=Q{Tf_{tg@#i;ZPOj97deXUhUj|mp=?9sZqJu?H9Z8t;BVh_b3PuhWI6aP zk8L**Kdw3&{~Eg5B-`OPV1=xJzxqLr_1%tA=b4B>x+o58adg{3F-K0dH>(FyZaRV) z_TXg_Fj@A2;elR#TTE=*M~`FZsO{?Bj6{pC-_#c#Mt$nGGPbWJ%WhDbsdA>+`@7t{xxmS=O<&^4?g!N z&p#IyChyk|jW_Si?pK{1Tb+_bp}&rnwhN;67u^qiy==?fR_1%^1`R(5 zfOXg!$OpHZ9#e*%dMru@AaFQCVSpGesv4&eV2b5&kE&Wvk^J@cS99 zP~Cz7enb9UQtoeZmc-kJ)6Oj+BEt#O)16&i(^XHa`72AJWEG)Z=VJvSQ6|>g_P@S) zCRKjP$zJwd_J+>S^XsHH6RXVJt#MTMzu0a?P^G)swZQ&a0`W$*7^0u7?GO+fEhh@(me-@1^SBX)g(TS#7eaYRR<}-8mL$-ZZ%SR@K(|TzL7^ zRZWPMY4u$?5N|q}9zQKf9Bv#PRL$(P3Ox$jOzV_r_024KuOG^~%pYyjfryi!UFv+- zn|u6*wr$xsw5zTy9$a5Xp_-alYjclPPM+SLUTvCsg1*`degt4v*GgjWN^Bg|n-65z zduhS;>*{GW&ug|#G|TUBYwYM4y^VLiWaxH%@=o#Sr^UA2{hjwO8pGoc^eajj6|MRo zER6dhtSdSC&H8MMBxHg$j`3{N%vzm(zdliH97i0}*~sfnt$_E7kR>HhBcO6V+8LQX zBll~M%KJv==V#N_PU}P9!JYR{jUF1FV63CJV;H0eVhBfg9dK_1IHs4$SI&*~XEH}8j7Y?Ma>Mh#$%c8kO&za{} zVOcU@X^k!}mH$Dp4iTJAP$7vdp0%th0J*H2?u!ezv^d1tVG zMfaz;>1MVckfjdZP6B1bD)WQ;Vupnfox*|NoUrQfDcA|i+OcNBrRyqDsUX`;UcsK^ zA5)|7kI(yXqLn2+fIOR5b6~1gw9&6dLB;NV$A@%^Z{uvPCRk)F-sti2+`kHU6k{afch$au%`ym;*VwcT4yk=Uh4MZ#!#%6N^R~=Ujk);}Qy&uKQ1c-j zvu9n{ysys`M==z|FNz8=p_a(wTE`W^9p~pB_mRj%kuFDOnf0nTLt0lqSM(CHfI~R2 zzmhu({sx&1b#jz@QHV*;q(+Z46$POTGyZc2OjVXuWxyE&IGYPTFcg8>ijreq-m{r5 zkpQV7aAAm?n#91IDKeGLoj`fa4yFimY;3JFVon*|Ga-X=*&@7iSruJXY``(9PsZ_+ z-SG?mL(~oYLh&NR^PfJ0GDzPd6ldsmF?$!y#ILjBaS(IMmj~iEV&DWdeF@fOLw&!4 zFcLFYf}hWifwB6EP1wo@S_XL1#%Z11!d&`albpXp3h4eYddNj+R{QQNLU6m^;UI5N zw}ORkrhr#F(ynYdCKO-?x&Y=;_dlo*nCF!)YB|nT1qBbivVWbA_d3G~mr&SV>M3fg9gd5xz?t4O7TH=sRT}W+F!~w9oj*qjU>yQ34j%d|;!|ABBy-Opz zqRv?&zKSZ|Ny?hPDE=VviV=4D69=1 zpX~%`CWbDk80eX@|ExjYdb zRM7OZLkEi%oGw0CB!OBh@F|jXnr#b@`o9ZyqM$JoeQ~}ZNLilD%1ny#`{^Yj^;Wz7 zR3E%r!d^Ix?qf4`D^)~-<-tGw<8_jh3GG_btluOxq0$(^5kVsj1J+t!nZ>y?MFbMo z5B%4)7CLFCLaqLzUb9{*X};(*#I!6gx-9?6%IEiwMhJBJTtd*K(=gKW zs*fa}j_w%vJ7YSC+MTx$Kif$z zCr-Xa3GIrpsq_=4Qu!N-q}yvW^CdUgb7Z7}*!%0%D!>d!ot3{XpL~-1vF0k0Y;yoO z$P(7kS)TAzuA_P3#OY}zgUuxN$f_iIe00vzsI-Y+*pFZOPBU-RMfOT-;a%jgVF;

p<-n-FqZ5;me;VfFs-5I8A)D1jg?x`|k{;8vB({cy06eGqxyRX9~!kOFg4ZK#)DX4&}2XHGl6HF<2z7Uz18V?UvF|?ir z61h2OF_JMxpgkhnCQR!uZuJUBI@4sBWVKFE;;u&`2fC!j^YB<5%NOL1&@JT@e>7Yh zp|!R$oc(cxs63zS{Qi|<_Hv|QR6T-0qY=7FMv_Kz)?}w7Q&*qgl93q68yA$gg*h@R zUjTY>_vH7&SOgWn$e%L9Zq5SW2L%CE64`SGP3^c1Sr;Qj;vK^3s?j(JuIpPK7=BJ8 zjD8j=-!-Y5O#o`D)5O9nuTe%hgm-~Xnq&jJE%Sw!(DYDA&5x$ zRiRCZi2f9N%0AA^X^PdZFfZE6d)vh=_qv6p80U^q0g`02rBPqmg{UmR0~Q7s@u|;Mb}@u)XJ~27HiH@I4}&+*3^=4=AGyEYQT4r51WSHrkCpsY&-;FFUc*e9M{~ zmDI4Lw%dO~gfwMTrMBinmp+LK{K$0Hu#o088z);#FBmClzSYVU8}qdFp>FI6;3;!~ zMmYN2c+Vv+`C8i&&Td>C4ASD6cj=rx&qgxS#HKRasbQfxhR0IV^*bE_pAIk+G@Cn3`fW*hOJ_a(ez>%W~-VdRg0Rzz?S@otSH%7R>1m zcuu)jfZeiw7LL?c32A)9+uey%S;SjCY>$IXv|X`RcNCo%!G>=B^GcyMKLy6p8ktWf zu-7XeEH)4$h)EQvodQ$y!Lv0H1SPxTK`RCLua&pc*e<@Ulv%{Ox0;{&#g728u~4_? z-H>68ERY#px``iSz;n_|wFm*7$Mx;(%7fZ@I#&Y@FS&cfCgh$@)o&S?FOntqn9^v* zMM2HV*{d-K^qN6*AyynHG5Ye!a8BepDb8G2Bh*vh(W=v?5-`cmg2MtBJq3sHfRuIj zT^9a~yAKcuetnTKtyb|vQiAkcOekXbmd~0;)UXDxmo}y+IBn$H1O*D-WLK>J0gU%9 zCKLFQN7uUlmH&uWjcpB@S`+fN@Gy6cTsQqWCP$hnwKS&Jf;iiwHSs|h;tPk+lK>Uc zHB>6OvQ-pY11Gi447!|R6}jU>R_EYSmlWog7rI(AbpExAwt+B`(xR`AObWcJ_)}Z! z5CFhSWj6LMFrY{{qFa<1!Sne5A{3MTw1F%mC--#RS-fSUDxNpcM3mZP!6x~II&xJ5gq(&$I-!K180 zdi%ku4KC!w5y5!}MDR!Bh|^kMjRmtIuDVXY#Sa`O0-D+VT4`_ZQ_SU^ArrJIWYg^J z>t3DtzHYPyi)}Y>SXpM#obb8z5?M5P-zLK_jS=q_16aws`})5WIV2A*9t0)lTKrHk zU%`@K0*6@ZV!r8gh7XiySUS8`zsgN(qn{M#N@$7V-bDI*Hse3)+U!zm<(d{W|Hd+M zNzj2=^2^SpXc0q^uXvVi%)5gPDe5JO+SeZSClp_A*P9>T4+}VI2KGsD27ATQeH02U zMGvV_xZS_X(`B%Gstl+2{K_ zIp_eeg4I7S`P*-D5KWYA0Dyk9_n7D^`JI3@T~&U4 zw-sT5hmf41y^Qko{Is|*rZH7^ zG{{OX#{h2T5epN7mQ}UFKkJjDcC84nA_m1qcxHa4d`Jq4Ou&c5DitVVR078&ce|;Z zR_^W&&gOlsStv>$*4DUM2h`Cz9E^F(f>)}2l1|Q9!~={qH8|bmP*6HGODRRu{DY?k zUQodBRC-Wh(Y4@2zD1ZLmN!!PQSKZUS?3|;p;<`K>2u62RT_F!q1{mpP9&=jnL=Er z2KJUIlyPx*mJO98!^Pz2vdDGfcs!D(1>m&t2dnLP=PcLWfm2W} zZ^(;;ITIf?UP=H745^fUxtydE>Yva%)X}O@sYl(v@xxH!4-0v5N7_j#=e2&a0c(%< z+I`2He8%GBiNOw9yn_oQzrF=XoZV@w6((O*UB!DeTAH8~3S2cfBFUJTZ*}Prr8-q& zRI?J9W#uw(5bhETFm2@ZA{dKrfWv<{dHj^?J_-u^Mc$d#(cc{%pYzJ|B$%i$VuG^; zQ&YWc?do;RTS~Zc$7s2_HB-eC8;H}4a5~-uhl5T>ivDPQ-y3xk6Z%Qlo-DITX3|hs zeDdL-P`Y86^feTBay8A5Rkbf&vh__;yQ#oWJq?ipw5d1Pt=binA7$D^IKeJ=xXKML z93DN>4H1PX%;ZzVrLzkibBl7;$NPgDmSJ)#7v#~1M|e>a((%sw(`KAyRd_V?UqTJO ztI^-{g4_4y-Id_SyBlN@FvZGjgq$D~b+p_a^&pjVR%Dz(95Tyw`eNiC=gdx2+x5Gd zdp#Dc){R#?k=GUo@=e!h#Nb@Tz6%E;Dy`nS7c79B3rsQsxeBX=4pw`s3K7Dt7!DLa z=KZxTz7}agsS)sEa?+t`Xkeo}Z*@SSOyLAsYkt6a|D**XUv$I`Ys>oKIBCa*Xm&_!Cdi;q>W??8O?~Ql>S+% zRJ%o&K#S6e0ml5{6FM3AeDmZIc2#_l)HWUV}-x}}0HzuP^9APzPQ|h^tG_eeHcBI^_!D*Ja ze`B%eFn;e}Y-z(>N|<5cJaO<(V{_J*}?e(4tMT*G3BWz#At0k1<}AZ0uBrz>A;mQ%mU zhGe0Oe6sk6=dLpIAsXeum57jx`9~_j!PVq}@x@DKeg#${GRd`7H*bqb(m(_D`2u0L zReS+D9U|LVE?u8CDm=iw!3E3V)jjpSJoHlN+xNz=+ZM^N8tLVp{ez+{d8X>+s;Vm- zu0@UgUlOSgXTgS%RUBO;XvFeMNd5f4__tCzOsf{qhB&&a3lOzRSdo0d%z!8CE`it0 ziGTRr`XVof77@O{Pl2wfQ8VGt_fIceD~i8o({lXuw0qafM185}!m7gQ^qNs1S7eaE zp(4I8DljxhQiEn9mvN;oJ1j0xW6;Jy5>)xoh=HI4=N_EKK+xo-*epqj`6A<2W9T8m z%c!O)u8*5Xo%uCYEM_Rvs)?+=d7a?c5q@=2JM)>N2W`KgkuB0A;+!_$ z)<)Qa=QIfXq9+!6l+`^~{!PDj0s}=hX0?6^@xnIesTC>18xkIzFJfuB2Db5HuxzWh z#iwkipCZ3AiGI>F{8;Uzj37*8_$vcfO2tFK9pa>5!{vlQD~>EQkkW9;Ac#OU(RcoqD^Ep6;r4kDdr!Fcu2shdg97G-=Bx~d9%tz&q*dV~EkoIG= zO#IdW3adq3@e1jQO=0YVVx_b4y`?eYyPW|EFlrzsXUe20=)}yt9Cj7IJN)D|lJQ|k z*JpQ9zlt8h5rKgav}W9zb)&>(ONbdvA3wJAw&R&-8k9jftwJmF3sXhI&N@RugYpN~ zxTJL|uquM}AVM&Ad0L5pm3IrfV;_cvDQ3=5=&pKubp+*T4HA)rC+R^$bxsjisrpr8 zqgF45UOhBE&+O`JBO8W-#onSh{0ZIZ+f`e3OKisX(D& z1)hvFrI&_f*V&bE6iC$1!1h)J6-Wnu4-m-7P70IKYX3r7P6l$S+I%P@shAD|eOTFq zJ22`|U^lBSHbqDWv~uJd;B#&Iy{_|mrQY#&@7t#+QgPYQO$t49j%@wFl$u6o?2jrP zY6r#}3`Sfs(uPU!q0~lxgsQ&Gvv7`M2H*#02+iA5P3r~H{R_82)>&4v<)rIzmvio3 z29lY9$Mfh^NzK|=dQO}Vf#b$S#&($P8Sh56rmGMPJAOGy%VMR1B<#%zxjWew;o-YVjeesqje&wjdT0Q2?=RF!`Nf=L~PsD$^^BsG_;sCtc z#oIvS;5w^TD`XN!70=LQdBt0Nlx#v#wO>?`xLH{t`B5WD5UcuVVgv5H1+7{%Qb{JQ zi-X(DrSCAAuU9(La8BAg+Y8Slr&do$XY8d4RvfQuK!CzFmh454Pbv$WeuQ*V0*Drk z1%4(P@F?k$${mDFqgLESI6N^s)(bY3BayW}tEajt;J4Bkn0Da)$pL$Vdz;dD<{y#9 zm}OzyLlzwKEg_hEWJKh}2@f)T?>p7kt=K;OxNZ_KUjyEJz>0hO(yO^|93SV!i1PI+ z0gOVGv~nRoy>%nHJB7-R1@7?6VwZMT1kQ0vU!9z^6K#zHcK5pzW>@|GYGZ70tT6L< zNrGr3vth}s%91rVel{ZK5~_e~iqRSQM}9#jl(ejHD`T*wNgjo*EZ&d{ zniy=AhZ5XoS(VO~AEBc$UVH+EFM=*&dZy3qtvqVv_aPS<=r2o^?WElJXTG{Lybs7M zQPfU;1UhoYm8;AITOdlBLaT^hkxPRKOR-%xJ9btKQ={vh!?DY>2_)_K zzF3SH>o;@>(wN%j!=6{ukogBQ0re3%>KNwCN~-3+yQa!}(o#&tqz44&>-dFoyM{_c z>}^Bz#&(a$EF zDl3LzVKkFPA!SW;v8t4ozOeMr>#~a>x?4(mBc+9J87ZBifjmarY%o z0Ikj�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 delta 27147 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 X+!gx&Neu*1h`S1q0s&1N_{{$YXAjKF diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 1b60e97..423a1ee 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -632,8 +632,9 @@ * @param {string[][]} spriteSheet The loaded sprite sheet pixel data * @param {number} spriteWidth * @param {number} spriteHeight + * @param {string[][]} hatSpriteSheet The loaded hat sprite sheet pixel data */ - constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight) { + constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight, hatSpriteSheet) { this.birbCssScale = birbCssScale; this.canvasPixelSize = canvasPixelSize; this.windowPixelSize = canvasPixelSize * birbCssScale; @@ -654,12 +655,16 @@ happyEye: new Layer(getLayerPixels(spriteSheet, 9, this.spriteWidth)), }; + // Build hat layers + const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); + const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase]), - headDown: new Frame([this.layers.down, this.layers.tuftDown]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp]), + base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), @@ -730,6 +735,74 @@ return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } + buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + + /** * @returns {AnimationType} The current animation key */ @@ -1763,6 +1836,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD5JREFUeJztnTFrFEEYht9JLAJidwju2YpdBAvzAyIWaXJXpRS0MBCwEBTJDwghhaAgGLTSyupMY2UqG9PYWQRb7yJyYJEIacxnkZ11bm5n9+7Y3Zm9ex8Imezd7Te7O9+zM7N7G4AQQgghhBBCCJkJlO8KkPAREXG9ppRiGyK1hY23BvgUkI7dbjYBAJ1ud6BcRR0IITOKxLSiSFpRNFTOkmNR8VtRJF8WF0U2NobKZccnpEzmfFeA5NNuNvG00UCn3R4qV8nB58942mgkZULqDgVYI3wJqNPtYrvfH1i23e8nQ2BCCCkFcwj8ZXEx+alqCJxWhypjE0ICQFKoOrZPAZl1oPwImTFE5Hzy3/hddXzfAvIhf0LK5ILvCtSNgxs3vMRVSikREZ+3nvB2F0JmFN3z0b0/9oKqx9cUBJleeEYfAzPp2BuqFr3v9W4XkcqPgS1dtoEZIe0CAM/AxAOy220JAG/zn3HsoNs/83R0cu8DNM+85g9yvqJVJBQwAYDdbksXvcx/KqWSOoTW+7Pzwkee1pHMiyDmzjQaH/QyETHfU0qDsIc+xnKIiITWEEl5PGh+8HqsfQp4FMxUWNvpJcvoPzdOAZriOVy7DzwCdm6/SV7f7bYH5mPKkFEIAiZE41vAGYhSKpHetHNlXsnRXynkWDhXIiIydzEaWHbveQ8f1+ew8uoMAHDy+wgA8P5JNHCWKUJGQwLGoIBvrbTxoPlBv7ewuITUDHGJ7/uPY3x9cd3LBaOyuDKvZOXVGT6uz6EICWYKELGA7r9O70JrASKWIAwZpQYb4yD4FjAJm7Wdnrx/Es36cc6VX6jD9VBwDoH1jbeu1035wZpzSGOSYfLZn96QgLX87Nj2cNy1TaPGJuFwurcsC6v7SpcBYGHVr/x8C3htp+d1Ys8VP+4I1SbPMisaCwune8vY+PUJAPDy8m0AwN3DdyMF+P7jGAAm6orr+Gk9UFvAGt0TTVkXQAnWlv/i26/8+KULuPp6mLgEZOZbySJy9j7rJMGRBWizsLqPmw8Pce3qpdTPWgdiIgH5FjAhmlDEpzndWxYzB+x8q0BA4sr/mRAgDAmmYYsPE/S+fAuYkJDpby3JxoUOMDjyqap9OwWIGkkwV4CI5/VsCZ18OwEANDYPXJ/9H2RC6fgWMCGh099aShr4nZ9vgfO2712C5oXJkPMut2JpEtLyS6OxeVDYhvsWMCEkF9GdEFuEWoIh599Ij8OKNwL9raXM9xUpP2RciTYFbNep6DoQQjJRX19cP084hwhDJleAWkJ5EixTPDo2UoRXVR0IIU4UzofeAyKcKsynYXSePU6eiqHLZT6gwPqid2r8sutACMnHfmJO6Pk41n+FU0qh8+xx8rdZRom9Lr3erPjs+RESBvGXEYAa5ONYj8Q3h6J2uQry4oe+swmZduqWg2Pfl+dcUQUb7js+IWS6+Ac8zd6eLzTjoQAAAABJRU5ErkJggg=="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -1808,17 +1882,20 @@ log("Loading sprite sheets..."); const birbPixels = await loadSpriteSheetPixels(SPRITE_SHEET); const featherPixels = await loadSpriteSheetPixels(FEATHER_SPRITE_SHEET); - startApplication(birbPixels, featherPixels); + const hatsPixels = await loadSpriteSheetPixels(HATS_SPRITE_SHEET); + startApplication(birbPixels, featherPixels, hatsPixels); } /** * @param {string[][]} birbPixels * @param {string[][]} featherPixels + * @param {string[][]} hatsPixels */ - function startApplication(birbPixels, featherPixels) { + function startApplication(birbPixels, featherPixels, hatsPixels) { const SPRITE_SHEET = birbPixels; const FEATHER_SPRITE_SHEET = featherPixels; + const HATS_SPRITE_SHEET = hatsPixels; const featherLayers = { feather: new Layer(getLayerPixels(FEATHER_SPRITE_SHEET, 0, FEATHER_SPRITE_WIDTH)), @@ -2006,7 +2083,7 @@ styleElement.textContent = STYLESHEET; document.head.appendChild(styleElement); - birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT); + birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT, HATS_SPRITE_SHEET); birb.setAnimation(Animations.BOB); window.addEventListener("scroll", () => { @@ -2688,8 +2765,9 @@ continue; } if (SPRITE_SHEET_COLOR_MAP[hex] === undefined) { - error(`Unknown color: ${hex}`); - row.push(PALETTE.TRANSPARENT); + // Return the color as-is if not found in the map + row.push(hex); + continue; } row.push(SPRITE_SHEET_COLOR_MAP[hex]); } diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index e847f07..f02c753 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -637,8 +637,9 @@ module.exports = class PocketBird extends Plugin { * @param {string[][]} spriteSheet The loaded sprite sheet pixel data * @param {number} spriteWidth * @param {number} spriteHeight + * @param {string[][]} hatSpriteSheet The loaded hat sprite sheet pixel data */ - constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight) { + constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight, hatSpriteSheet) { this.birbCssScale = birbCssScale; this.canvasPixelSize = canvasPixelSize; this.windowPixelSize = canvasPixelSize * birbCssScale; @@ -659,12 +660,16 @@ module.exports = class PocketBird extends Plugin { happyEye: new Layer(getLayerPixels(spriteSheet, 9, this.spriteWidth)), }; + // Build hat layers + const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); + const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase]), - headDown: new Frame([this.layers.down, this.layers.tuftDown]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp]), + base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), @@ -735,6 +740,74 @@ module.exports = class PocketBird extends Plugin { return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } + buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + + /** * @returns {AnimationType} The current animation key */ @@ -1806,6 +1879,7 @@ module.exports = class PocketBird extends Plugin { }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD5JREFUeJztnTFrFEEYht9JLAJidwju2YpdBAvzAyIWaXJXpRS0MBCwEBTJDwghhaAgGLTSyupMY2UqG9PYWQRb7yJyYJEIacxnkZ11bm5n9+7Y3Zm9ex8Imezd7Te7O9+zM7N7G4AQQgghhBBCCJkJlO8KkPAREXG9ppRiGyK1hY23BvgUkI7dbjYBAJ1ud6BcRR0IITOKxLSiSFpRNFTOkmNR8VtRJF8WF0U2NobKZccnpEzmfFeA5NNuNvG00UCn3R4qV8nB58942mgkZULqDgVYI3wJqNPtYrvfH1i23e8nQ2BCCCkFcwj8ZXEx+alqCJxWhypjE0ICQFKoOrZPAZl1oPwImTFE5Hzy3/hddXzfAvIhf0LK5ILvCtSNgxs3vMRVSikREZ+3nvB2F0JmFN3z0b0/9oKqx9cUBJleeEYfAzPp2BuqFr3v9W4XkcqPgS1dtoEZIe0CAM/AxAOy220JAG/zn3HsoNs/83R0cu8DNM+85g9yvqJVJBQwAYDdbksXvcx/KqWSOoTW+7Pzwkee1pHMiyDmzjQaH/QyETHfU0qDsIc+xnKIiITWEEl5PGh+8HqsfQp4FMxUWNvpJcvoPzdOAZriOVy7DzwCdm6/SV7f7bYH5mPKkFEIAiZE41vAGYhSKpHetHNlXsnRXynkWDhXIiIydzEaWHbveQ8f1+ew8uoMAHDy+wgA8P5JNHCWKUJGQwLGoIBvrbTxoPlBv7ewuITUDHGJ7/uPY3x9cd3LBaOyuDKvZOXVGT6uz6EICWYKELGA7r9O70JrASKWIAwZpQYb4yD4FjAJm7Wdnrx/Es36cc6VX6jD9VBwDoH1jbeu1035wZpzSGOSYfLZn96QgLX87Nj2cNy1TaPGJuFwurcsC6v7SpcBYGHVr/x8C3htp+d1Ys8VP+4I1SbPMisaCwune8vY+PUJAPDy8m0AwN3DdyMF+P7jGAAm6orr+Gk9UFvAGt0TTVkXQAnWlv/i26/8+KULuPp6mLgEZOZbySJy9j7rJMGRBWizsLqPmw8Pce3qpdTPWgdiIgH5FjAhmlDEpzndWxYzB+x8q0BA4sr/mRAgDAmmYYsPE/S+fAuYkJDpby3JxoUOMDjyqap9OwWIGkkwV4CI5/VsCZ18OwEANDYPXJ/9H2RC6fgWMCGh099aShr4nZ9vgfO2712C5oXJkPMut2JpEtLyS6OxeVDYhvsWMCEkF9GdEFuEWoIh599Ij8OKNwL9raXM9xUpP2RciTYFbNep6DoQQjJRX19cP084hwhDJleAWkJ5EixTPDo2UoRXVR0IIU4UzofeAyKcKsynYXSePU6eiqHLZT6gwPqid2r8sutACMnHfmJO6Pk41n+FU0qh8+xx8rdZRom9Lr3erPjs+RESBvGXEYAa5ONYj8Q3h6J2uQry4oe+swmZduqWg2Pfl+dcUQUb7js+IWS6+Ac8zd6eLzTjoQAAAABJRU5ErkJggg=="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -1851,17 +1925,20 @@ module.exports = class PocketBird extends Plugin { log("Loading sprite sheets..."); const birbPixels = await loadSpriteSheetPixels(SPRITE_SHEET); const featherPixels = await loadSpriteSheetPixels(FEATHER_SPRITE_SHEET); - startApplication(birbPixels, featherPixels); + const hatsPixels = await loadSpriteSheetPixels(HATS_SPRITE_SHEET); + startApplication(birbPixels, featherPixels, hatsPixels); } /** * @param {string[][]} birbPixels * @param {string[][]} featherPixels + * @param {string[][]} hatsPixels */ - function startApplication(birbPixels, featherPixels) { + function startApplication(birbPixels, featherPixels, hatsPixels) { const SPRITE_SHEET = birbPixels; const FEATHER_SPRITE_SHEET = featherPixels; + const HATS_SPRITE_SHEET = hatsPixels; const featherLayers = { feather: new Layer(getLayerPixels(FEATHER_SPRITE_SHEET, 0, FEATHER_SPRITE_WIDTH)), @@ -2049,7 +2126,7 @@ module.exports = class PocketBird extends Plugin { styleElement.textContent = STYLESHEET; document.head.appendChild(styleElement); - birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT); + birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT, HATS_SPRITE_SHEET); birb.setAnimation(Animations.BOB); window.addEventListener("scroll", () => { @@ -2731,8 +2808,9 @@ module.exports = class PocketBird extends Plugin { continue; } if (SPRITE_SHEET_COLOR_MAP[hex] === undefined) { - error(`Unknown color: ${hex}`); - row.push(PALETTE.TRANSPARENT); + // Return the color as-is if not found in the map + row.push(hex); + continue; } row.push(SPRITE_SHEET_COLOR_MAP[hex]); } diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index c794adb..f2c01f1 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -646,8 +646,9 @@ * @param {string[][]} spriteSheet The loaded sprite sheet pixel data * @param {number} spriteWidth * @param {number} spriteHeight + * @param {string[][]} hatSpriteSheet The loaded hat sprite sheet pixel data */ - constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight) { + constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight, hatSpriteSheet) { this.birbCssScale = birbCssScale; this.canvasPixelSize = canvasPixelSize; this.windowPixelSize = canvasPixelSize * birbCssScale; @@ -668,12 +669,16 @@ happyEye: new Layer(getLayerPixels(spriteSheet, 9, this.spriteWidth)), }; + // Build hat layers + const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); + const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase]), - headDown: new Frame([this.layers.down, this.layers.tuftDown]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp]), + base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), @@ -744,6 +749,74 @@ return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } + buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + + /** * @returns {AnimationType} The current animation key */ @@ -1768,6 +1841,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD5JREFUeJztnTFrFEEYht9JLAJidwju2YpdBAvzAyIWaXJXpRS0MBCwEBTJDwghhaAgGLTSyupMY2UqG9PYWQRb7yJyYJEIacxnkZ11bm5n9+7Y3Zm9ex8Imezd7Te7O9+zM7N7G4AQQgghhBBCCJkJlO8KkPAREXG9ppRiGyK1hY23BvgUkI7dbjYBAJ1ud6BcRR0IITOKxLSiSFpRNFTOkmNR8VtRJF8WF0U2NobKZccnpEzmfFeA5NNuNvG00UCn3R4qV8nB58942mgkZULqDgVYI3wJqNPtYrvfH1i23e8nQ2BCCCkFcwj8ZXEx+alqCJxWhypjE0ICQFKoOrZPAZl1oPwImTFE5Hzy3/hddXzfAvIhf0LK5ILvCtSNgxs3vMRVSikREZ+3nvB2F0JmFN3z0b0/9oKqx9cUBJleeEYfAzPp2BuqFr3v9W4XkcqPgS1dtoEZIe0CAM/AxAOy220JAG/zn3HsoNs/83R0cu8DNM+85g9yvqJVJBQwAYDdbksXvcx/KqWSOoTW+7Pzwkee1pHMiyDmzjQaH/QyETHfU0qDsIc+xnKIiITWEEl5PGh+8HqsfQp4FMxUWNvpJcvoPzdOAZriOVy7DzwCdm6/SV7f7bYH5mPKkFEIAiZE41vAGYhSKpHetHNlXsnRXynkWDhXIiIydzEaWHbveQ8f1+ew8uoMAHDy+wgA8P5JNHCWKUJGQwLGoIBvrbTxoPlBv7ewuITUDHGJ7/uPY3x9cd3LBaOyuDKvZOXVGT6uz6EICWYKELGA7r9O70JrASKWIAwZpQYb4yD4FjAJm7Wdnrx/Es36cc6VX6jD9VBwDoH1jbeu1035wZpzSGOSYfLZn96QgLX87Nj2cNy1TaPGJuFwurcsC6v7SpcBYGHVr/x8C3htp+d1Ys8VP+4I1SbPMisaCwune8vY+PUJAPDy8m0AwN3DdyMF+P7jGAAm6orr+Gk9UFvAGt0TTVkXQAnWlv/i26/8+KULuPp6mLgEZOZbySJy9j7rJMGRBWizsLqPmw8Pce3qpdTPWgdiIgH5FjAhmlDEpzndWxYzB+x8q0BA4sr/mRAgDAmmYYsPE/S+fAuYkJDpby3JxoUOMDjyqap9OwWIGkkwV4CI5/VsCZ18OwEANDYPXJ/9H2RC6fgWMCGh099aShr4nZ9vgfO2712C5oXJkPMut2JpEtLyS6OxeVDYhvsWMCEkF9GdEFuEWoIh599Ij8OKNwL9raXM9xUpP2RciTYFbNep6DoQQjJRX19cP084hwhDJleAWkJ5EixTPDo2UoRXVR0IIU4UzofeAyKcKsynYXSePU6eiqHLZT6gwPqid2r8sutACMnHfmJO6Pk41n+FU0qh8+xx8rdZRom9Lr3erPjs+RESBvGXEYAa5ONYj8Q3h6J2uQry4oe+swmZduqWg2Pfl+dcUQUb7js+IWS6+Ac8zd6eLzTjoQAAAABJRU5ErkJggg=="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -1813,17 +1887,20 @@ log("Loading sprite sheets..."); const birbPixels = await loadSpriteSheetPixels(SPRITE_SHEET); const featherPixels = await loadSpriteSheetPixels(FEATHER_SPRITE_SHEET); - startApplication(birbPixels, featherPixels); + const hatsPixels = await loadSpriteSheetPixels(HATS_SPRITE_SHEET); + startApplication(birbPixels, featherPixels, hatsPixels); } /** * @param {string[][]} birbPixels * @param {string[][]} featherPixels + * @param {string[][]} hatsPixels */ - function startApplication(birbPixels, featherPixels) { + function startApplication(birbPixels, featherPixels, hatsPixels) { const SPRITE_SHEET = birbPixels; const FEATHER_SPRITE_SHEET = featherPixels; + const HATS_SPRITE_SHEET = hatsPixels; const featherLayers = { feather: new Layer(getLayerPixels(FEATHER_SPRITE_SHEET, 0, FEATHER_SPRITE_WIDTH)), @@ -2011,7 +2088,7 @@ styleElement.textContent = STYLESHEET; document.head.appendChild(styleElement); - birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT); + birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT, HATS_SPRITE_SHEET); birb.setAnimation(Animations.BOB); window.addEventListener("scroll", () => { @@ -2693,8 +2770,9 @@ continue; } if (SPRITE_SHEET_COLOR_MAP[hex] === undefined) { - error(`Unknown color: ${hex}`); - row.push(PALETTE.TRANSPARENT); + // Return the color as-is if not found in the map + row.push(hex); + continue; } row.push(SPRITE_SHEET_COLOR_MAP[hex]); } diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 0d3bcb5..2f4af0c 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -632,8 +632,9 @@ * @param {string[][]} spriteSheet The loaded sprite sheet pixel data * @param {number} spriteWidth * @param {number} spriteHeight + * @param {string[][]} hatSpriteSheet The loaded hat sprite sheet pixel data */ - constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight) { + constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight, hatSpriteSheet) { this.birbCssScale = birbCssScale; this.canvasPixelSize = canvasPixelSize; this.windowPixelSize = canvasPixelSize * birbCssScale; @@ -654,12 +655,16 @@ happyEye: new Layer(getLayerPixels(spriteSheet, 9, this.spriteWidth)), }; + // Build hat layers + const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); + const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase]), - headDown: new Frame([this.layers.down, this.layers.tuftDown]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp]), + base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), @@ -730,6 +735,74 @@ return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } + buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + + /** * @returns {AnimationType} The current animation key */ @@ -1748,6 +1821,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD5JREFUeJztnTFrFEEYht9JLAJidwju2YpdBAvzAyIWaXJXpRS0MBCwEBTJDwghhaAgGLTSyupMY2UqG9PYWQRb7yJyYJEIacxnkZ11bm5n9+7Y3Zm9ex8Imezd7Te7O9+zM7N7G4AQQgghhBBCCJkJlO8KkPAREXG9ppRiGyK1hY23BvgUkI7dbjYBAJ1ud6BcRR0IITOKxLSiSFpRNFTOkmNR8VtRJF8WF0U2NobKZccnpEzmfFeA5NNuNvG00UCn3R4qV8nB58942mgkZULqDgVYI3wJqNPtYrvfH1i23e8nQ2BCCCkFcwj8ZXEx+alqCJxWhypjE0ICQFKoOrZPAZl1oPwImTFE5Hzy3/hddXzfAvIhf0LK5ILvCtSNgxs3vMRVSikREZ+3nvB2F0JmFN3z0b0/9oKqx9cUBJleeEYfAzPp2BuqFr3v9W4XkcqPgS1dtoEZIe0CAM/AxAOy220JAG/zn3HsoNs/83R0cu8DNM+85g9yvqJVJBQwAYDdbksXvcx/KqWSOoTW+7Pzwkee1pHMiyDmzjQaH/QyETHfU0qDsIc+xnKIiITWEEl5PGh+8HqsfQp4FMxUWNvpJcvoPzdOAZriOVy7DzwCdm6/SV7f7bYH5mPKkFEIAiZE41vAGYhSKpHetHNlXsnRXynkWDhXIiIydzEaWHbveQ8f1+ew8uoMAHDy+wgA8P5JNHCWKUJGQwLGoIBvrbTxoPlBv7ewuITUDHGJ7/uPY3x9cd3LBaOyuDKvZOXVGT6uz6EICWYKELGA7r9O70JrASKWIAwZpQYb4yD4FjAJm7Wdnrx/Es36cc6VX6jD9VBwDoH1jbeu1035wZpzSGOSYfLZn96QgLX87Nj2cNy1TaPGJuFwurcsC6v7SpcBYGHVr/x8C3htp+d1Ys8VP+4I1SbPMisaCwune8vY+PUJAPDy8m0AwN3DdyMF+P7jGAAm6orr+Gk9UFvAGt0TTVkXQAnWlv/i26/8+KULuPp6mLgEZOZbySJy9j7rJMGRBWizsLqPmw8Pce3qpdTPWgdiIgH5FjAhmlDEpzndWxYzB+x8q0BA4sr/mRAgDAmmYYsPE/S+fAuYkJDpby3JxoUOMDjyqap9OwWIGkkwV4CI5/VsCZ18OwEANDYPXJ/9H2RC6fgWMCGh099aShr4nZ9vgfO2712C5oXJkPMut2JpEtLyS6OxeVDYhvsWMCEkF9GdEFuEWoIh599Ij8OKNwL9raXM9xUpP2RciTYFbNep6DoQQjJRX19cP084hwhDJleAWkJ5EixTPDo2UoRXVR0IIU4UzofeAyKcKsynYXSePU6eiqHLZT6gwPqid2r8sutACMnHfmJO6Pk41n+FU0qh8+xx8rdZRom9Lr3erPjs+RESBvGXEYAa5ONYj8Q3h6J2uQry4oe+swmZduqWg2Pfl+dcUQUb7js+IWS6+Ac8zd6eLzTjoQAAAABJRU5ErkJggg=="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -1793,17 +1867,20 @@ log("Loading sprite sheets..."); const birbPixels = await loadSpriteSheetPixels(SPRITE_SHEET); const featherPixels = await loadSpriteSheetPixels(FEATHER_SPRITE_SHEET); - startApplication(birbPixels, featherPixels); + const hatsPixels = await loadSpriteSheetPixels(HATS_SPRITE_SHEET); + startApplication(birbPixels, featherPixels, hatsPixels); } /** * @param {string[][]} birbPixels * @param {string[][]} featherPixels + * @param {string[][]} hatsPixels */ - function startApplication(birbPixels, featherPixels) { + function startApplication(birbPixels, featherPixels, hatsPixels) { const SPRITE_SHEET = birbPixels; const FEATHER_SPRITE_SHEET = featherPixels; + const HATS_SPRITE_SHEET = hatsPixels; const featherLayers = { feather: new Layer(getLayerPixels(FEATHER_SPRITE_SHEET, 0, FEATHER_SPRITE_WIDTH)), @@ -1991,7 +2068,7 @@ styleElement.textContent = STYLESHEET; document.head.appendChild(styleElement); - birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT); + birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT, HATS_SPRITE_SHEET); birb.setAnimation(Animations.BOB); window.addEventListener("scroll", () => { @@ -2673,8 +2750,9 @@ continue; } if (SPRITE_SHEET_COLOR_MAP[hex] === undefined) { - error(`Unknown color: ${hex}`); - row.push(PALETTE.TRANSPARENT); + // Return the color as-is if not found in the map + row.push(hex); + continue; } row.push(SPRITE_SHEET_COLOR_MAP[hex]); } diff --git a/dist/web/birb.js b/dist/web/birb.js index 0d3bcb5..2f4af0c 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -632,8 +632,9 @@ * @param {string[][]} spriteSheet The loaded sprite sheet pixel data * @param {number} spriteWidth * @param {number} spriteHeight + * @param {string[][]} hatSpriteSheet The loaded hat sprite sheet pixel data */ - constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight) { + constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight, hatSpriteSheet) { this.birbCssScale = birbCssScale; this.canvasPixelSize = canvasPixelSize; this.windowPixelSize = canvasPixelSize * birbCssScale; @@ -654,12 +655,16 @@ happyEye: new Layer(getLayerPixels(spriteSheet, 9, this.spriteWidth)), }; + // Build hat layers + const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); + const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase]), - headDown: new Frame([this.layers.down, this.layers.tuftDown]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp]), + base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), @@ -730,6 +735,74 @@ return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } + buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + + /** * @returns {AnimationType} The current animation key */ @@ -1748,6 +1821,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD5JREFUeJztnTFrFEEYht9JLAJidwju2YpdBAvzAyIWaXJXpRS0MBCwEBTJDwghhaAgGLTSyupMY2UqG9PYWQRb7yJyYJEIacxnkZ11bm5n9+7Y3Zm9ex8Imezd7Te7O9+zM7N7G4AQQgghhBBCCJkJlO8KkPAREXG9ppRiGyK1hY23BvgUkI7dbjYBAJ1ud6BcRR0IITOKxLSiSFpRNFTOkmNR8VtRJF8WF0U2NobKZccnpEzmfFeA5NNuNvG00UCn3R4qV8nB58942mgkZULqDgVYI3wJqNPtYrvfH1i23e8nQ2BCCCkFcwj8ZXEx+alqCJxWhypjE0ICQFKoOrZPAZl1oPwImTFE5Hzy3/hddXzfAvIhf0LK5ILvCtSNgxs3vMRVSikREZ+3nvB2F0JmFN3z0b0/9oKqx9cUBJleeEYfAzPp2BuqFr3v9W4XkcqPgS1dtoEZIe0CAM/AxAOy220JAG/zn3HsoNs/83R0cu8DNM+85g9yvqJVJBQwAYDdbksXvcx/KqWSOoTW+7Pzwkee1pHMiyDmzjQaH/QyETHfU0qDsIc+xnKIiITWEEl5PGh+8HqsfQp4FMxUWNvpJcvoPzdOAZriOVy7DzwCdm6/SV7f7bYH5mPKkFEIAiZE41vAGYhSKpHetHNlXsnRXynkWDhXIiIydzEaWHbveQ8f1+ew8uoMAHDy+wgA8P5JNHCWKUJGQwLGoIBvrbTxoPlBv7ewuITUDHGJ7/uPY3x9cd3LBaOyuDKvZOXVGT6uz6EICWYKELGA7r9O70JrASKWIAwZpQYb4yD4FjAJm7Wdnrx/Es36cc6VX6jD9VBwDoH1jbeu1035wZpzSGOSYfLZn96QgLX87Nj2cNy1TaPGJuFwurcsC6v7SpcBYGHVr/x8C3htp+d1Ys8VP+4I1SbPMisaCwune8vY+PUJAPDy8m0AwN3DdyMF+P7jGAAm6orr+Gk9UFvAGt0TTVkXQAnWlv/i26/8+KULuPp6mLgEZOZbySJy9j7rJMGRBWizsLqPmw8Pce3qpdTPWgdiIgH5FjAhmlDEpzndWxYzB+x8q0BA4sr/mRAgDAmmYYsPE/S+fAuYkJDpby3JxoUOMDjyqap9OwWIGkkwV4CI5/VsCZ18OwEANDYPXJ/9H2RC6fgWMCGh099aShr4nZ9vgfO2712C5oXJkPMut2JpEtLyS6OxeVDYhvsWMCEkF9GdEFuEWoIh599Ij8OKNwL9raXM9xUpP2RciTYFbNep6DoQQjJRX19cP084hwhDJleAWkJ5EixTPDo2UoRXVR0IIU4UzofeAyKcKsynYXSePU6eiqHLZT6gwPqid2r8sutACMnHfmJO6Pk41n+FU0qh8+xx8rdZRom9Lr3erPjs+RESBvGXEYAa5ONYj8Q3h6J2uQry4oe+swmZduqWg2Pfl+dcUQUb7js+IWS6+Ac8zd6eLzTjoQAAAABJRU5ErkJggg=="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -1793,17 +1867,20 @@ log("Loading sprite sheets..."); const birbPixels = await loadSpriteSheetPixels(SPRITE_SHEET); const featherPixels = await loadSpriteSheetPixels(FEATHER_SPRITE_SHEET); - startApplication(birbPixels, featherPixels); + const hatsPixels = await loadSpriteSheetPixels(HATS_SPRITE_SHEET); + startApplication(birbPixels, featherPixels, hatsPixels); } /** * @param {string[][]} birbPixels * @param {string[][]} featherPixels + * @param {string[][]} hatsPixels */ - function startApplication(birbPixels, featherPixels) { + function startApplication(birbPixels, featherPixels, hatsPixels) { const SPRITE_SHEET = birbPixels; const FEATHER_SPRITE_SHEET = featherPixels; + const HATS_SPRITE_SHEET = hatsPixels; const featherLayers = { feather: new Layer(getLayerPixels(FEATHER_SPRITE_SHEET, 0, FEATHER_SPRITE_WIDTH)), @@ -1991,7 +2068,7 @@ styleElement.textContent = STYLESHEET; document.head.appendChild(styleElement); - birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT); + birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT, HATS_SPRITE_SHEET); birb.setAnimation(Animations.BOB); window.addEventListener("scroll", () => { @@ -2673,8 +2750,9 @@ continue; } if (SPRITE_SHEET_COLOR_MAP[hex] === undefined) { - error(`Unknown color: ${hex}`); - row.push(PALETTE.TRANSPARENT); + // Return the color as-is if not found in the map + row.push(hex); + continue; } row.push(SPRITE_SHEET_COLOR_MAP[hex]); } diff --git a/sprites/hats.png b/sprites/hats.png new file mode 100644 index 0000000000000000000000000000000000000000..1840ac978e4704bd9919e5740079d216da97d2b2 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}dY&$hAsQ2t z6C_xh84Z#IfA{QVuz-8cgsH9%qiyPXE?bo>U%>3f1_TVN-m!8{ox7zSsFT6d L)z4*}Q$iB}AZ;Jp literal 0 HcmV?d00001 diff --git a/src/application.js b/src/application.js index 42806a0..713e79b 100644 --- a/src/application.js +++ b/src/application.js @@ -78,6 +78,7 @@ const WINDOW_PIXEL_SIZE = CANVAS_PIXEL_SIZE * BIRB_CSS_SCALE; const STYLESHEET = `___STYLESHEET___`; const SPRITE_SHEET = "__SPRITE_SHEET__"; const FEATHER_SPRITE_SHEET = "__FEATHER_SPRITE_SHEET__"; +const HATS_SPRITE_SHEET = "__HATS_SPRITE_SHEET__"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -123,17 +124,20 @@ export async function initializeApplication(context) { log("Loading sprite sheets..."); const birbPixels = await loadSpriteSheetPixels(SPRITE_SHEET); const featherPixels = await loadSpriteSheetPixels(FEATHER_SPRITE_SHEET); - startApplication(birbPixels, featherPixels); + const hatsPixels = await loadSpriteSheetPixels(HATS_SPRITE_SHEET); + startApplication(birbPixels, featherPixels, hatsPixels); } /** * @param {string[][]} birbPixels * @param {string[][]} featherPixels + * @param {string[][]} hatsPixels */ -function startApplication(birbPixels, featherPixels) { +function startApplication(birbPixels, featherPixels, hatsPixels) { const SPRITE_SHEET = birbPixels; const FEATHER_SPRITE_SHEET = featherPixels; + const HATS_SPRITE_SHEET = hatsPixels; const featherLayers = { feather: new Layer(getLayerPixels(FEATHER_SPRITE_SHEET, 0, FEATHER_SPRITE_WIDTH)), @@ -321,7 +325,7 @@ function startApplication(birbPixels, featherPixels) { styleElement.textContent = STYLESHEET; document.head.appendChild(styleElement); - birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT); + birb = new Birb(BIRB_CSS_SCALE, CANVAS_PIXEL_SIZE, SPRITE_SHEET, SPRITE_WIDTH, SPRITE_HEIGHT, HATS_SPRITE_SHEET); birb.setAnimation(Animations.BOB); window.addEventListener("scroll", () => { @@ -1021,8 +1025,9 @@ function loadSpriteSheetPixels(dataUri, templateColors = true) { continue; } if (SPRITE_SHEET_COLOR_MAP[hex] === undefined) { - error(`Unknown color: ${hex}`); - row.push(PALETTE.TRANSPARENT); + // Return the color as-is if not found in the map + row.push(hex); + continue; } row.push(SPRITE_SHEET_COLOR_MAP[hex]); } diff --git a/src/birb.js b/src/birb.js index bf12dff..55f56de 100644 --- a/src/birb.js +++ b/src/birb.js @@ -2,7 +2,7 @@ import { Directions, getLayerPixels, getWindowHeight, getFixedWindowHeight } fro import Layer from './animation/layer.js'; import Frame from './animation/frame.js'; import Anim from './animation/anim.js'; -import { BirdType } from './animation/sprites.js'; +import { BirdType, PALETTE } from './animation/sprites.js'; /** * @typedef {keyof typeof Animations} AnimationType @@ -31,8 +31,9 @@ export class Birb { * @param {string[][]} spriteSheet The loaded sprite sheet pixel data * @param {number} spriteWidth * @param {number} spriteHeight + * @param {string[][]} hatSpriteSheet The loaded hat sprite sheet pixel data */ - constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight) { + constructor(birbCssScale, canvasPixelSize, spriteSheet, spriteWidth, spriteHeight, hatSpriteSheet) { this.birbCssScale = birbCssScale; this.canvasPixelSize = canvasPixelSize; this.windowPixelSize = canvasPixelSize * birbCssScale; @@ -53,12 +54,16 @@ export class Birb { happyEye: new Layer(getLayerPixels(spriteSheet, 9, this.spriteWidth)), }; + // Build hat layers + const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); + const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase]), - headDown: new Frame([this.layers.down, this.layers.tuftDown]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp]), + base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), @@ -129,6 +134,74 @@ export class Birb { return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } + buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + + /** * @returns {AnimationType} The current animation key */ From 7c38bf9164a7ce96bb326fb507880dd7b32fd367 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Sun, 18 Jan 2026 19:14:18 -0500 Subject: [PATCH 03/24] Separate hat functions --- dist/extension.zip | Bin 150422 -> 150655 bytes dist/extension/birb.js | 183 ++++++++++++++++++++--------------- dist/obsidian/main.js | 183 ++++++++++++++++++++--------------- dist/userscript/birb.user.js | 183 ++++++++++++++++++++--------------- dist/web/birb.embed.js | 183 ++++++++++++++++++++--------------- dist/web/birb.js | 183 ++++++++++++++++++++--------------- src/birb.js | 87 ++--------------- src/hats.js | 100 +++++++++++++++++++ 8 files changed, 640 insertions(+), 462 deletions(-) create mode 100644 src/hats.js diff --git a/dist/extension.zip b/dist/extension.zip index 9a98b9237be991e35e13a1c1000ba846e8ccae1b..21abee3cfdc536478b5113038210e184d95fc077 100644 GIT binary patch delta 28084 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 delta 27797 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 diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 423a1ee..ee81ae3 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -605,6 +605,103 @@ } } + const HAT = { + TOP_HAT: 'top-hat' + }; + + /** + * @param {string[][]} spriteSheet + * @returns {{ base: Layer[], down: Layer[] }} + */ + function createHatLayers(spriteSheet) { + const hatLayers = { + base: [], + down: [] + }; + for (const hatName in HAT) { + const hatKey = HAT[hatName]; + const hatLayer = buildHatLayer(spriteSheet, hatKey, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + hatLayers.base.push(hatLayer); + hatLayers.down.push(downHatLayer); + } + return hatLayers; + } + + /** + * @param {string[][]} spriteSheet + * @param {string} hatName + * @param {boolean} [outlineBottom=false] + * @param {number} [yOffset=0] + * @returns {Layer} + */ + function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + /** * @typedef {keyof typeof Animations} AnimationType */ @@ -656,19 +753,18 @@ }; // Build hat layers - const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); - const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + const hatLayers = createHatLayers(hatSpriteSheet); // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), - headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), - heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), - heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), - heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), - heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), + base: new Frame([this.layers.base, this.layers.tuftBase, ...hatLayers.base]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, ...hatLayers.down]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, ...hatLayers.base]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, ...hatLayers.down]), + heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartOne]), + heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base,this.layers.heartTwo]), + heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartThree]), + heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartTwo]), }; // Build animations from frames @@ -735,73 +831,6 @@ return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } - buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { - const LEFT_PADDING = 6; - const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); - - const hatPixels = getLayerPixels(spriteSheet, 0, 12); - const paddedHatPixels = []; - - // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { - const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); - } - - for (let x = 0; x < RIGHT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - paddedHatPixels.push(row); - } - // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - - // Add outline - let neighborOffsets = [ - [-1, 0], - [1, 0], - [0, -1], - [-1, -1], - [1, -1], - ]; - if (outlineBottom) { - neighborOffsets.push([0, 1], [-1, 1], [1, 1]); - } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; - if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { - for (let [dx, dy] of neighborOffsets) { - const newX = x + dx; - const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; - } - } - } - } - } - return new Layer(paddedHatPixels); - } - /** * @returns {AnimationType} The current animation key diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index f02c753..ac84a97 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -610,6 +610,103 @@ module.exports = class PocketBird extends Plugin { } } + const HAT = { + TOP_HAT: 'top-hat' + }; + + /** + * @param {string[][]} spriteSheet + * @returns {{ base: Layer[], down: Layer[] }} + */ + function createHatLayers(spriteSheet) { + const hatLayers = { + base: [], + down: [] + }; + for (const hatName in HAT) { + const hatKey = HAT[hatName]; + const hatLayer = buildHatLayer(spriteSheet, hatKey, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + hatLayers.base.push(hatLayer); + hatLayers.down.push(downHatLayer); + } + return hatLayers; + } + + /** + * @param {string[][]} spriteSheet + * @param {string} hatName + * @param {boolean} [outlineBottom=false] + * @param {number} [yOffset=0] + * @returns {Layer} + */ + function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + /** * @typedef {keyof typeof Animations} AnimationType */ @@ -661,19 +758,18 @@ module.exports = class PocketBird extends Plugin { }; // Build hat layers - const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); - const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + const hatLayers = createHatLayers(hatSpriteSheet); // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), - headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), - heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), - heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), - heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), - heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), + base: new Frame([this.layers.base, this.layers.tuftBase, ...hatLayers.base]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, ...hatLayers.down]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, ...hatLayers.base]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, ...hatLayers.down]), + heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartOne]), + heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base,this.layers.heartTwo]), + heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartThree]), + heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartTwo]), }; // Build animations from frames @@ -740,73 +836,6 @@ module.exports = class PocketBird extends Plugin { return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } - buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { - const LEFT_PADDING = 6; - const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); - - const hatPixels = getLayerPixels(spriteSheet, 0, 12); - const paddedHatPixels = []; - - // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { - const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); - } - - for (let x = 0; x < RIGHT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - paddedHatPixels.push(row); - } - // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - - // Add outline - let neighborOffsets = [ - [-1, 0], - [1, 0], - [0, -1], - [-1, -1], - [1, -1], - ]; - if (outlineBottom) { - neighborOffsets.push([0, 1], [-1, 1], [1, 1]); - } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; - if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { - for (let [dx, dy] of neighborOffsets) { - const newX = x + dx; - const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; - } - } - } - } - } - return new Layer(paddedHatPixels); - } - /** * @returns {AnimationType} The current animation key diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index f2c01f1..33cce0c 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -619,6 +619,103 @@ } } + const HAT = { + TOP_HAT: 'top-hat' + }; + + /** + * @param {string[][]} spriteSheet + * @returns {{ base: Layer[], down: Layer[] }} + */ + function createHatLayers(spriteSheet) { + const hatLayers = { + base: [], + down: [] + }; + for (const hatName in HAT) { + const hatKey = HAT[hatName]; + const hatLayer = buildHatLayer(spriteSheet, hatKey, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + hatLayers.base.push(hatLayer); + hatLayers.down.push(downHatLayer); + } + return hatLayers; + } + + /** + * @param {string[][]} spriteSheet + * @param {string} hatName + * @param {boolean} [outlineBottom=false] + * @param {number} [yOffset=0] + * @returns {Layer} + */ + function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + /** * @typedef {keyof typeof Animations} AnimationType */ @@ -670,19 +767,18 @@ }; // Build hat layers - const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); - const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + const hatLayers = createHatLayers(hatSpriteSheet); // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), - headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), - heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), - heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), - heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), - heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), + base: new Frame([this.layers.base, this.layers.tuftBase, ...hatLayers.base]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, ...hatLayers.down]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, ...hatLayers.base]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, ...hatLayers.down]), + heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartOne]), + heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base,this.layers.heartTwo]), + heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartThree]), + heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartTwo]), }; // Build animations from frames @@ -749,73 +845,6 @@ return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } - buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { - const LEFT_PADDING = 6; - const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); - - const hatPixels = getLayerPixels(spriteSheet, 0, 12); - const paddedHatPixels = []; - - // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { - const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); - } - - for (let x = 0; x < RIGHT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - paddedHatPixels.push(row); - } - // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - - // Add outline - let neighborOffsets = [ - [-1, 0], - [1, 0], - [0, -1], - [-1, -1], - [1, -1], - ]; - if (outlineBottom) { - neighborOffsets.push([0, 1], [-1, 1], [1, 1]); - } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; - if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { - for (let [dx, dy] of neighborOffsets) { - const newX = x + dx; - const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; - } - } - } - } - } - return new Layer(paddedHatPixels); - } - /** * @returns {AnimationType} The current animation key diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 2f4af0c..2f15ba2 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -605,6 +605,103 @@ } } + const HAT = { + TOP_HAT: 'top-hat' + }; + + /** + * @param {string[][]} spriteSheet + * @returns {{ base: Layer[], down: Layer[] }} + */ + function createHatLayers(spriteSheet) { + const hatLayers = { + base: [], + down: [] + }; + for (const hatName in HAT) { + const hatKey = HAT[hatName]; + const hatLayer = buildHatLayer(spriteSheet, hatKey, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + hatLayers.base.push(hatLayer); + hatLayers.down.push(downHatLayer); + } + return hatLayers; + } + + /** + * @param {string[][]} spriteSheet + * @param {string} hatName + * @param {boolean} [outlineBottom=false] + * @param {number} [yOffset=0] + * @returns {Layer} + */ + function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + /** * @typedef {keyof typeof Animations} AnimationType */ @@ -656,19 +753,18 @@ }; // Build hat layers - const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); - const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + const hatLayers = createHatLayers(hatSpriteSheet); // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), - headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), - heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), - heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), - heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), - heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), + base: new Frame([this.layers.base, this.layers.tuftBase, ...hatLayers.base]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, ...hatLayers.down]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, ...hatLayers.base]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, ...hatLayers.down]), + heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartOne]), + heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base,this.layers.heartTwo]), + heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartThree]), + heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartTwo]), }; // Build animations from frames @@ -735,73 +831,6 @@ return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } - buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { - const LEFT_PADDING = 6; - const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); - - const hatPixels = getLayerPixels(spriteSheet, 0, 12); - const paddedHatPixels = []; - - // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { - const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); - } - - for (let x = 0; x < RIGHT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - paddedHatPixels.push(row); - } - // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - - // Add outline - let neighborOffsets = [ - [-1, 0], - [1, 0], - [0, -1], - [-1, -1], - [1, -1], - ]; - if (outlineBottom) { - neighborOffsets.push([0, 1], [-1, 1], [1, 1]); - } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; - if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { - for (let [dx, dy] of neighborOffsets) { - const newX = x + dx; - const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; - } - } - } - } - } - return new Layer(paddedHatPixels); - } - /** * @returns {AnimationType} The current animation key diff --git a/dist/web/birb.js b/dist/web/birb.js index 2f4af0c..2f15ba2 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -605,6 +605,103 @@ } } + const HAT = { + TOP_HAT: 'top-hat' + }; + + /** + * @param {string[][]} spriteSheet + * @returns {{ base: Layer[], down: Layer[] }} + */ + function createHatLayers(spriteSheet) { + const hatLayers = { + base: [], + down: [] + }; + for (const hatName in HAT) { + const hatKey = HAT[hatName]; + const hatLayer = buildHatLayer(spriteSheet, hatKey, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + hatLayers.base.push(hatLayer); + hatLayers.down.push(downHatLayer); + } + return hatLayers; + } + + /** + * @param {string[][]} spriteSheet + * @param {string} hatName + * @param {boolean} [outlineBottom=false] + * @param {number} [yOffset=0] + * @returns {Layer} + */ + function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); + } + /** * @typedef {keyof typeof Animations} AnimationType */ @@ -656,19 +753,18 @@ }; // Build hat layers - const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); - const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + const hatLayers = createHatLayers(hatSpriteSheet); // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), - headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), - heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), - heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), - heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), - heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), + base: new Frame([this.layers.base, this.layers.tuftBase, ...hatLayers.base]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, ...hatLayers.down]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, ...hatLayers.base]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, ...hatLayers.down]), + heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartOne]), + heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base,this.layers.heartTwo]), + heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartThree]), + heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartTwo]), }; // Build animations from frames @@ -735,73 +831,6 @@ return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } - buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { - const LEFT_PADDING = 6; - const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); - - const hatPixels = getLayerPixels(spriteSheet, 0, 12); - const paddedHatPixels = []; - - // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { - const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); - } - - for (let x = 0; x < RIGHT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - paddedHatPixels.push(row); - } - // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - - // Add outline - let neighborOffsets = [ - [-1, 0], - [1, 0], - [0, -1], - [-1, -1], - [1, -1], - ]; - if (outlineBottom) { - neighborOffsets.push([0, 1], [-1, 1], [1, 1]); - } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; - if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { - for (let [dx, dy] of neighborOffsets) { - const newX = x + dx; - const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; - } - } - } - } - } - return new Layer(paddedHatPixels); - } - /** * @returns {AnimationType} The current animation key diff --git a/src/birb.js b/src/birb.js index 55f56de..83f1490 100644 --- a/src/birb.js +++ b/src/birb.js @@ -3,6 +3,7 @@ import Layer from './animation/layer.js'; import Frame from './animation/frame.js'; import Anim from './animation/anim.js'; import { BirdType, PALETTE } from './animation/sprites.js'; +import { createHatLayers } from './hats.js'; /** * @typedef {keyof typeof Animations} AnimationType @@ -55,19 +56,18 @@ export class Birb { }; // Build hat layers - const hatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false); - const downHatLayer = this.buildHatLayer(hatSpriteSheet, "top-hat", false, 1); + const hatLayers = createHatLayers(hatSpriteSheet); // Build frames from layers this.frames = { - base: new Frame([this.layers.base, this.layers.tuftBase, hatLayer]), - headDown: new Frame([this.layers.down, this.layers.tuftDown, downHatLayer]), - wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, hatLayer]), - wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, downHatLayer]), - heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartOne]), - heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), - heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartThree]), - heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, this.layers.heartTwo]), + base: new Frame([this.layers.base, this.layers.tuftBase, ...hatLayers.base]), + headDown: new Frame([this.layers.down, this.layers.tuftDown, ...hatLayers.down]), + wingsDown: new Frame([this.layers.base, this.layers.tuftBase, this.layers.wingsDown, ...hatLayers.base]), + wingsUp: new Frame([this.layers.down, this.layers.tuftDown, this.layers.wingsUp, ...hatLayers.down]), + heartOne: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartOne]), + heartTwo: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base,this.layers.heartTwo]), + heartThree: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartThree]), + heartFour: new Frame([this.layers.base, this.layers.tuftBase, this.layers.happyEye, ...hatLayers.base, this.layers.heartTwo]), }; // Build animations from frames @@ -134,73 +134,6 @@ export class Birb { return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); } - buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { - const LEFT_PADDING = 6; - const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); - - const hatPixels = getLayerPixels(spriteSheet, 0, 12); - const paddedHatPixels = []; - - // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { - const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); - } - - for (let x = 0; x < RIGHT_PADDING; x++) { - row.push(PALETTE.TRANSPARENT); - } - - paddedHatPixels.push(row); - } - // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); - } - - // Add outline - let neighborOffsets = [ - [-1, 0], - [1, 0], - [0, -1], - [-1, -1], - [1, -1], - ]; - if (outlineBottom) { - neighborOffsets.push([0, 1], [-1, 1], [1, 1]); - } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; - if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { - for (let [dx, dy] of neighborOffsets) { - const newX = x + dx; - const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; - } - } - } - } - } - return new Layer(paddedHatPixels); - } - /** * @returns {AnimationType} The current animation key diff --git a/src/hats.js b/src/hats.js new file mode 100644 index 0000000..8d01392 --- /dev/null +++ b/src/hats.js @@ -0,0 +1,100 @@ +import Layer from "./animation/layer.js"; +import { PALETTE } from "./animation/sprites.js"; +import { getLayerPixels } from "./shared.js"; + +const HAT = { + TOP_HAT: 'top-hat' +}; + +/** + * @param {string[][]} spriteSheet + * @returns {{ base: Layer[], down: Layer[] }} + */ +export function createHatLayers(spriteSheet) { + const hatLayers = { + base: [], + down: [] + }; + for (const hatName in HAT) { + const hatKey = HAT[hatName]; + const hatLayer = buildHatLayer(spriteSheet, hatKey, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + hatLayers.base.push(hatLayer); + hatLayers.down.push(downHatLayer); + } + return hatLayers; +} + +/** + * @param {string[][]} spriteSheet + * @param {string} hatName + * @param {boolean} [outlineBottom=false] + * @param {number} [yOffset=0] + * @returns {Layer} + */ +function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + const LEFT_PADDING = 6; + const RIGHT_PADDING = 14; + const TOP_PADDING = 4 + yOffset; + const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + + const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const paddedHatPixels = []; + + // Top padding + for (let y = 0; y < TOP_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + // Left and right padding + for (let y = 0; y < hatPixels.length; y++) { + const row = []; + for (let x = 0; x < LEFT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + for (let x = 0; x < hatPixels[y].length; x++) { + row.push(hatPixels[y][x]); + } + + for (let x = 0; x < RIGHT_PADDING; x++) { + row.push(PALETTE.TRANSPARENT); + } + + paddedHatPixels.push(row); + } + // Bottom padding + for (let y = 0; y < BOTTOM_PADDING; y++) { + paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) + .fill(PALETTE.TRANSPARENT) + ); + } + + // Add outline + let neighborOffsets = [ + [-1, 0], + [1, 0], + [0, -1], + [-1, -1], + [1, -1], + ]; + if (outlineBottom) { + neighborOffsets.push([0, 1], [-1, 1], [1, 1]); + } + for (let y = 0; y < paddedHatPixels.length; y++) { + for (let x = 0; x < paddedHatPixels[y].length; x++) { + const pixel = paddedHatPixels[y][x]; + if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { + for (let [dx, dy] of neighborOffsets) { + const newX = x + dx; + const newY = y + dy; + if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { + paddedHatPixels[newY][newX] = PALETTE.BORDER; + } + } + } + } + } + return new Layer(paddedHatPixels); +} \ No newline at end of file From e09d4f9eea6f8fd010e2a06f852f26068e442c7d Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Sun, 18 Jan 2026 19:24:17 -0500 Subject: [PATCH 04/24] Control hat type from application --- dist/extension.zip | Bin 150655 -> 150770 bytes dist/extension/birb.js | 34 +++++++++++++++++++--------------- dist/obsidian/main.js | 34 +++++++++++++++++++--------------- dist/userscript/birb.user.js | 34 +++++++++++++++++++--------------- dist/web/birb.embed.js | 34 +++++++++++++++++++--------------- dist/web/birb.js | 34 +++++++++++++++++++--------------- src/animation/anim.js | 7 ++++--- src/animation/frame.js | 11 ++++++----- src/application.js | 8 +++++--- src/birb.js | 7 ++++--- src/hats.js | 4 ++-- 11 files changed, 116 insertions(+), 91 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index 21abee3cfdc536478b5113038210e184d95fc077..a55ca9fa192aa742fc66b2e1478c69dc955237fd 100644 GIT binary patch delta 25820 zcmV(rK<>Z)mc07z4acy*U z&}+n~-|p3`>>+>M8w|VE4!*s99ZkbBY*#c7a(c&IR?R7f}F4_ZDO$PSOIcv#dy8dO@%DEEsQ zx5AhjUiW)RvrY^>%eIID{NzmR?c@1h?++Lw1c;!xT8NAVwuc2xJJE->H6% zOdb=++vEx$qFr$`-4eJH7Fw;uPJe^G_?q)SmV&1!pqj-;-c9wge- zBL)vmC(Vr{dq6ySdKwBrVeUX^1V1n(&eyN2-K)4Eh{S`-xewBz)}k6^CG9c~g|N{Z zbsLx$pe2ZYg7TbDLPkdLQvw+h#`5#%_t($_^-%O2u>*_kQ%7p_m z?A>I+f4GP&j9PCv>~+|QrJ>`Ok`YCZ#5YTWdQ|+ADxEY}rBQ*tuzwGGP{l*irO~fm zMKNV>5cRr&R64zX31LQs4{iZK^G@$J78Rsr4)Pu3MZVXsTkQtd2lfEg1fX*u!YeE} zom$*~8Ii2^mp210>(zFj5Eac|5tMKw3|-ifpaY^3g7=8<7?V#4IDf~N(rHOq zp={+e_{9vvFj`d#nM~HoqTU)D^k5!r_U^iXCo_xXT?W1o z4O?)Y;Xjjc7DWL?*dP8F(rLvd?Gufaj49MW*+^!L%Ww9blS~Ro0=_?!mI{0&A8+pe zCB50H9>B$P0PatKy-2`v(ka*r4=knf2c<8Aa}!AL9kVwJk^z4_nyO`~NxM2|degd( z+Zh1V=(mk`yN&o>jB?Ys#Sg)hwhiuNwP8Q{7xtZTwSH}S)h15bJT%ku8T-F|4)~Y| z4szPB4C1AMB}l#0Zj`pOv(c822Xac1K*NJn*S&u0E2maF82ZZyUC18D5EgqD(p6kF zb%(Fn!)l$^(WQTES-HQ-(YVKSgISON{HA!|&lfL@xJZ-y&1i7#V}JSZAwR%AKQcX=S)!;be9KHkJ zdUwKvvsSweKbce-(DPUwkRV$icjHW|>Ee$0fN9@>f6{+KQP<{6!YeaXw z?z17B2aql5zCw_GX9q(#WFD-E3xwlqkVeMhjUnNQ(l;+eceYWQLH>{^p?`%K>Ne*$fVfAf=BUF_m;T!kXSQc&-;p_O=u zV0_ENhnqP12De$S-}p^6EmWs?ntuljF`txX$A$e;rBX64H$=2ZgXzDDr2sTG!t@M@O6ZeckK9 z`-$3zM`f0GVRveerTzU2e5l0`VEJ--2oyHVXLvv2eo}U}d$^6tm<(4^m%l%jHn$0q zA7|pmmFc%sI3e2CvA7h_^A5j!bR(34e;IF_T3+5!s%Y^5+Qf{jQ~=peK9-NQyomz^ zoZ-w2ZcGi4Q_J#$>J7eMQF#Q5xrhK%TMrvJPbhvw9-=@X%Eu?WmD0!ZPN`J+SUlQ4 zI{A1|I5zSzJ@l9jw~`7^zLE$8IWhhBru;LV)KKDR;hg;A6&i^#rSo&u`E{?9e^Q}E z^XqeqbMsyi1Vl@!&9!)S*(;%FY0=8!dac>?iy%i@w7woMFVA^J6e%rgtS_&wEP6$h zE-h-V)#jJ{B9SO9i|cDEi>qF^6FYOUhyhW&a`N8VI^+(19u{*<@L3Ncp>(h zidY%2bMw{tYP!sbq*iG*S86M@Cb23al?H*;Mf}gJvE@r9>UathR&}EyN(TI%pfevu zBcXgun?7QbI}v6DqCMu#6O*P9IRQ_T;1M~0kKQ6*J}wn^OJyUJH5}a6Fn@8NgY$IT zAU9pA;xMw`jW$fVvS9iU9%h~-^`gUGAKt`5Cq^6u>~mVrw=oRuL9Y(;9rNkBH@dpU z=}K2D%~l8JvDH4$8KRrGcY_@{HoM=*4@Vg4Y2muj;KJ0T6slTEjS>$_MejkByryGy z#c2lA8taX@R2|2F=3-;9KA%yVFkqp<|D~#=ELP!EW3^geUzCcZ zMM@)EtQ~k_Pxi!SZk&S5*p!xs2>QSZ!p#wx1&7t3*R8f&!w0wJxl_K6*PMMVoyD0W{hm{X=i`OgI9U0{jQMU+*9qsM^PA zH_T=^o$mEJ|ISRPHW!yt1Tw4B^xv!1>fCy|G~rLPnbA1KpIQ};i-lANjz5_lg#1}s zTU%aBPqeIg;$frnq#rkm)joVS)pnY7Cy;tuHpaLoW{B{RJI~J`KPCi!x{w(_zFwm* zt}C6^AcG&Y`*k|6FRoxm5bEY1TsRiz7nc{)I>T`*UR$irr>8=~t<2&Sw;J`u)iLB8 zw;BtJ3-eFUrrJEJ)Ma#tK}gLe7@@M(Zui;^h;#iq%@(&9yBdZ$G((~Ou>iw&2Pa*t zijaZ_Y=wJwW@1qfMa?*W#!6Iei<6IYs~>|&@F|g{11Y3>Yoqlb8X$&VZZ$2a;oO{G=l@awvgc;KJ~ub*j1BlpyX8ApIrT})zy^vUQ)akd zxZ*jDS`F}}G7^OvvEQRFmr*p;?o6kO=upf|IH@2g+zzEojn6PiAPDg5ju!SxWspGa+b(}(|7PGH7a{)3a~6=@YI%X+20Qe9OAlMJ5DG_`7%7vhyClV%q6 z0q>Js7rB3rZ8~+G#$FREkmngtZN?>8l~#S!Zy{V$)FETcapKmhgV|i|pO{%sJ7VHS zeRXUlb@o?tHIC!7dUK0teR-|AoSqRLE9Yyg>nkZLr&w8EU5_&t6IshLI|y01wz9Ig zq-&LM$a86LA$kIbW(+3v+=bu7xBNTn3uNYntJ*u;t7|a0yC6j0xO@D2m zTLW$qbNMT)7zZGLDB~$3#3_V<1qGp+b{%mG3KtVGxXRdm@DiX8*i!6Kl&+L<;lRC} zyBv_j@uo$HcUywa&1t7Xg+-VsZBBgL8WnTFw8F6sd$)yn;PN6e| z-=GnWX@`v5#{bDT=`=6VYQYx`HGfiFE&y=4F*JJ6N?O2s-VD>~ZsvLO^+r^Kn{i3N zoe9+w)oj3HqUbDefV?TJfF{jeJeIXm$}4t#d!yYP^;pK7G1b;yL!Vvhrm%t?qb@k9%G4w_WD&3mWex~*ftpKVew*o z27rzH`({B@pdz$inuPcfpyW6WaugNUgxEQDZ%Cp`I^uLKtw3$LGk=#Xz_diL0Mil) zx$V?}XORqX{+7UcVb(N9Y}gdSWic;>3IOUiab}5Gc3N6p7Ebw>zZ|I?8Z0GEniY=fyVYT6dN|iq=x&1E^20_fo__p?_WooP&#=W?qEHd zNqUmHYWY|_iGR8RKYKBg2H`lcv^s>@*FTbl*h9sbSLyY@>uthXG2Y|fgV}FX)0SJ$ zeI?)!;|^bxz~FMM!H0aND5R!LmQgLZP0-h4-J~iztpXA_#bXEtIU$W$TeZm&B-Glw?3t2V$L3Kv}ei^>fREPvb{qqH&mf#o~9#wtg_QC{s7 zDnRWUK39&8KjPP`=oxn4GdNm&X5vD{U>u9|9KVJnH&Fg?ll7a}E3Y&H|MCMEhC@g9 z6T71H#ShInvQyP7Lc#4I<*;H5%=YPUqI-;ZPth!Tg;-BHd(loVKX9BJtZWfn!$U63 zP<g);FX4q60t#Y>BnJn3H$)~F`W^l%PRC%NJ2VKv7szll_=LZOVx(ux7Fa=(|RwIbNO~ zfJ4V^9};hZ5=fm1dh0Ktf#*chPN2oN%!Hif}-D4{ku& zzl3cjZ-I`_0-e6!k)2S?|1XG-N`0Y$eSfpwS;7ZyNxQsIiJLsC2e_78Qs^#`;w_rf zrR3846H{zv-h5^i_apgR)(c)d4^)m>W>Vd$3|(^KVqug{L92E>J{=eB;3uksne38)%LOk^J~AJvh6=*9ww!%GN%I zS0YUc0Cj*;$vb8%lP~zEfQ9SUE{zv}JfARm#0*}ts^2(*a ziL%o_CNP;9* zAdO+&N&CAXl1rxn{?IiJe>g)Ns5%3EkQY757Og>{hBO1CVSJ2C6}-s=w||b8%I3B; zkW0qcLz#R?-hdq;NF#HMY<3B*2*BLmgS^l}*JtK`%(9FS(@`r928haOPjL99_AwzC zyYHqOSML@ki38d_L<=^;D~CFD8`WVogkudgg>lBD08drWL*uZ9j|$egvSd6M!v-Z! zVw65y_vw?dr}xHe^9%^`_J4;WDl@}F$V^e$Px&2yd;U*KjP4FoJV3qFm!zs*%@$*h z2T9{qVIF69;?W+hyk7}${pgPD{huOcv;#LJ^0TcQDM>$})in8p8ZQ3DZ-`Hjn?J#TmG6V(k>cQ#Sq0sy^OR()W3;(r=2BQRgA@W|Chho4mZVCao0)JVvk0hLpA94ecnpt7Qcn&M&x zSo$%>!BW!0uMSeGH?|LYv(lH**Hc6A323A^)ssK2P~l{B^`pbGqM7Pzyt(bsj#Yj; zJ@vnYfln0MVTeGY-Ts$QP@Qk&SaD#V0Tx@h2BRwH|2-t`dVdCmv`V1;smJ3wk(=~X z^O#0W1FzUl=F7ARh=>vDPkuHtTY>0=#Wryscg8IR{MIm@gSPC|^y@(o_h|STgq7JZ z4Y(22mP-qBrZWE0GNUg1Ue!YXYaQFEHjb%9DFfR?7o_lAwCJwcKiroU^CgRH_BMP% z^h|X6LzoyD=zrLmF|mjOJE@SeJE^SlzuYikw586JBizEWCE-v11+eP)mT@KX!{kv{ zQ`lx*BBe#mn9n$&n2>s0E0|DDuSs4~f=|;(o=!|(t*zloScs**HwT!2T8!>N?z!iz z91Fe~1E|qX&fqq-bw;~nU_)*^eT30>(PYD)#%<@s41Xxx+#p7cr=XSygkt~BOBzAg zGN@BzVrPvC)sY$x9qNk*pL@qmoR*{C2K;6F~F9+<24^p=aMQ6{e%|@3e0;U`1!guEZeh@%{+BJ?)?cr_XduLr5VhDcurVZ&kB`!jKY(@oZGGJj5?OVHubBlE6#!sc+%VYs?v6{J>g9qe{)Rk_IanRkO=d7ZXM2Xik#3ujs=A1JwNHqIH26D4q>|Wdag}G@t%U6I z3F<}9CXGyadT5-)wqunaPeYP&u4m>|FG>K4O~vZ>YQAN4t6;y|tweb8Y_wP|hoK=3 z1%KoI$>>+SDU&-l`uJC!M`^!CHX95zjN<)^c&VO#0x<*rDaaN*vDC7C);^+V;ql0{!;N*8oX>K%X#kJpBP+q)HBXw4m=cN5lqHm zxiuTjEa2o(*ArM**y=d#1=-W@PV1$EWPin7iYVCyM6Ay&n5zf=dY8@%O{YEZvB`)- zw%eg!d}rv$h-&5<^u$H(!5=yuyz2Sq(Df+?(E~gM5X`bXy9NUHP}hn?SmfQEG|Co36e>tLI^o280V3zg*4mxcQ%uprZT~)V{-bG zsyMfE$4mo3LnJkngmfok67f_g7g?Q%OoW|SaZ99|ix)JLJez@3O?p1=tzFjl?OOPP zxM^bwbFSDIO!pDocYkM3e;Wftbbn&=dWc3sF`Cl~C9aZN4Iu$%9-hw5vUPnt3uEUR zIa|%gH*1;zbz9ZVDf_`rAz!k>7lOo2pRx6gHP81^5HzSFoZYq`GbMX2yE#Q4v-b1` zW@;QIazaZQ_A-b>Dsp>giN&xfzMaLE(xE63`RgIWl%|x(VNZ+sf2@&9DSr{7x~OYM zb8|A}ll+|?7UfKlPiFH8lr?_|VSPfV3T?Co$kRdXW?TF-nx2N*MM_Mhnj9A-P9do} z32!%rEand5*5I8%*kJ0&4g8Rbjx@`xm8_wSDOPc5Q(cz|#qGMC3uhWQu2pn5W_-hZHuKw+j-2N^_| zeA1Ygy^dTZLztvheu#rhG@Zt60TnJouPeUNGa2MIipPOr3|-zRVq;yn_!qO{%ja?Y zkb-fDd(}L3Mg3%0h-%I5T-PE7*$UBI_=9(=KsfE9fxOEEN?{3-#LYCy1MUxiCFo3m z$t?l^!Wq7a6NB`4q$i-p$R0{_DQvKQ|bLYE>D7(gc;c*3#*To#6jmkLLIP2F1~HU0#I0q?K1{O zP!jt>pvs(b;a%zDn-W7iWECjms_!P;5>R_y*dk?CVi#JS8-L_7%stD`as@y(Lkd#< z)8N_jJX{?$+xn5&5#28v${?zWYbh2gBo5*BPh1VE){5%9No%#FE-HH)Hay~kbT9F5 zen)?Pd-QgT)xkrzP9x7^WsR4y3(p4#42C7o*PSpxH49?%##3n6c&H0HX6N7|ffxWo zL$FU>DT>L>D1X7kR&nbUW9Fz-OZxiMU&V-<7KFu10xM#9CN-or0)=8C$m0?E2Ds`OE262brX!>04yy>G6+z4YD+&Y2|0Y zqj*~Mw=l*6Otz4Ex!JPXEU#;FB`U?r)UY1K-DdqhH-A-R>|~e@oi4btiVN`aybyFW zl`3~Fd|c777>FFBiR~8)_ogOLr?rG9JP_y-N2e$IXkcTA%qAsy&$J&m$Bm89MPbGn z;_BlEPUtIdOg4fmFOrL&L<7p2UQ{NoF>4J^3NpZB?5MKwNBS%GjHNdK=R&oA80^Le zQKSKblz)W0CnJ>Q4p0>cpA)zOc{OvIPgZCDS*NJ9ESgc^ww+QGSy$kjlI$v$D@Xxu zUZh|X;gP2~tWlP{`3D{gY&Zd7YH8j?D+mUo)Qz*&;24k#ZU_hiL-qyeF0gkZ?{VKA z@OA5B)UWB~w9k;hNdjT&Dl-qk%QGWSj3UHiP=7FATf^M+Kd0$*mxUEbV|E(gN$sS! zbQ|JLD{#CIh9HK3tX*j4mYhmRuQI<3vPA5d@2c>?9$In`V~qMiX*G`Lr0NOQ#$q9& zW3&n$1HQYv%Oj=ba8$#SSiO#W(}yh$IPEQeE7#PR(;jI85vYZ5!>kI)aPqfy{B|BE z1b@I{4LZud3~_7(n~(Ig? z8F>oCRpNW}Gn>IQWwHnZ10aXHhK@AInqX`azSrq)cv#t+NOYMmO87oJaj>%Uynpd2 zMv9vT6Y#>*l48pk{KnfG+WTILDWwbE<^W-kV+%+lc5+nb%QW(yiV-C<(S&`LU(p|y zRcdr)nn42pga#6O@FW=P`hSrAavxcDYj!7Z-X4eAflmg80F@$6H;}g%>tdHK6`nB7 z$V1;)C~()GbJmEPT>(e^wtm;Sgnt*zQzs@`(LGh-I1M_rm14V^d2wqCK9%J zO!FdjERffs4w3xw78u(hPC_a7NU4I1>)fVnxLt?a#2m@l(<2@>f_Nnw*?&-+X_)(P zN16A)9`P>rq!OASlgcnAC}-K?fQ=5Q^>bpYmTqZ__>LjVX1PhjbYq%DnsHn;#KK54 zypSNoG)rtQiRcFqCPSny4Wg-Hi_9euom50bwTyP8Fwx|sXf<#=OZyDFN|^Ab3-b#Q z@fSQn=D|k0^%rM__Y%2rA%7|uLKB4{wGx2lucSz!6HIf=>8Okfoxxj2J!tz?A7_J_LR;tuP&0-KmgrK^jcS`qgydi!GFSfaG8%Oz2=U) z$Ui*{5ltc$eaPy3g(ikEATusEJu@R)J@3&Z1^N?h_4S|`!9^qwh)8otC>AOcEyFM< zIXzd*_2(0Gnb8_b9&IyhA&cN<>-MQuQioeuWgAjSV)N=#EO~76DKPS&Cc)fmV?`#9 z4O9}dVz3e58Rg!aoPXogFmuSxVQ;!lk`vHZw3|N|ZiivvRxuL0A2i-jvn|X`+bY`3 z{!$rZkOG>HN!U!Q3&#oEQ8-dCJ>U^%K8dSG>S!{*Ja=;+)__C59^+XDaG5~Q~;EC1HUO`GvPpLjLW|S&9?Oe>#WbPPClqePLYqqM4zky!qjjiQd z9`+7T6zF}%aeoiugh1wItKZ2@7vMU9u)y*(f7~$%JcOemT3bCpinz!VcHYh!w#wJ| z>O+2+^EP3&*(kzR@g}DY^3!z+*mI~>?j_@Zon?6Qc34HeA^51cY*g?aXjjc#GwAT3 zo<=m?_t*{-DzzZjCi4Ue-etuZJ0GR><`)jzQ}5U7B!2{J6OK-KoHGJSw%R!=6Gl2z z$3lXIBb8Xm2DO}rrca(J?>oR_xv&jX;dGoe!nM9J(^N`fv4C+XA2(&!jwe7_XP+%!)l~ z&B!-Q19_hd=VNhh=D)syP{bNCu0KGv$LI1IIoSf@n{9*FA4Ddw+Q+Ojxn<{Q1>dq~ z)GDX+jqNNGjQzaw%;~^lOH4ADvu@|aFvxP!oquQ4U>}ohabbp?$iX@v(8dd(@RZAD zQ=sSqgrO^6ZRw#bOWx9{J1OWJI@SwFNSfgX7YPp_Kgjp&iPERL*O_0?iaK``tpOQko@^lz`qWB|{NQwsR zgMn5~ggJ3RauL+;c}eb(8p>hWn&E8Fq(DN9ow^KkrPDfQ(--uKAII?+AO>H!mrZDdCzdjF>iZ3V-q%YW|0}P2Z6V1Jf9vqIX3Zi>*{|<0U0T znBmH9G>e$M8GH6+l)Njk7FGz2D@OthFFf|zZRkoIH~^Hz=Fo8+tD zW2|enDstrGImy-aS{;v}^3TTn8sA0bpDT@cejP7P;m>BXG0z0+@@H+){ke*V$Mn3? zOd^OQV@MrkDejGaTF&mYCm1CA3GUmi)OUnq6wZkM_q zvD<9-5f>6Xj3h8#VhVHhVr>jGozv8;Is6Z`mAMWkEm2!RBn1JeL-#SR0u?+9MeK& zIG7!x8#BiR`e4fFd*){2qkmn}FRC4Vi|igH)8???;E2W?4V0j^S93SPu?VZPRz<*| zOirg5pK>m8>umeUu^WHP7M`L{lY%vHXyG=Xjs|9gMsZE_9t|wbbb+UdA<^_!4`n$h zJ1CrC$DkWM`LH1QE3XQGdw8qbrx7*pia?@Q$uF}Y6%o1gIY)@QGJjUX2cRK)RcV~i z(+mpg*y%zA#JtMUaV;WX(gd?|fpUL~95?T0H1J!#dgK z3sw)hl?WujGL4%eJDzY$WYUY1V5ngt{Z0~Q5AOkon zArg+7*cC}vFQaS_iGLJ1FJZ9N$xZ)#no*m&v{^G>$!K(p6Bg*7Niqg0afkXZ9W(-< zq^ZB^iRS;N!&fLE!j|ESl|p!qrJUG6N6?Y@6gsAgZxE|ETF#)cN^v5kDu%NA5-lXt zfToob6eHQ3(!Y#N>f*Sjeoil$2s!}j5|FbTqNd|00=MBry?iss!ulDPD3kzZ#VqXZ z#MrH!&g$}S*UCW6Zi-i$5b!dIRILH=KEinoCh0fyWR`^=B9cTXnGE_qv;Lsr0i&Iu zxsFX<1O5Y=etesfbfv@hfbHlS_to8}l2kq79 z2ToN`D4&wUV4|Cow!q9-xp{8Cd6kV=ni*g!8w2nE8#+H*d{iZ1^nt{?5RN1cJ#ktLG!C7I8(vgL zW|#*kMhdo_{Ar@720hWA0nPr!r33##eb#JxtQtp7N~p%+4?2Q$0xg$(#Nyi z&B_jdFD`(~+O;X!DeZ3WRKlXIQUMPKo_w6#cw_fu<0GQcKbDJlx(luOnuNkV-3AtXGCw|R6HmX5dhH42e2G?Aom zGk=Vt!(-53b3&2I#eS*0Qz~)L|N5f|OKJv}BqiF%{J`r3c>CztL9g4Z_p8m}GYoFf zufJlnR&M%wIJ_CWnw_mTco_qyl&#x-z8eo`udZiX4J1n8(0Pa)Ok6#EgC=5#`_hHf7F_Ow1`S}dL!6+Kh<6mJ$rrs2#6GpM8gN;!dYHLa1&M+>$PNfet)F8ZPmplqDxOjAJha3s&53}+ zg$6*``=rn{$d=15dTsiZJZ&Q>AAUkl?z7+=vPe zMPCtK0*5SwZhmQXX>D<3aV-kkA{czoLmsS~9)dLEz6?T52YcI=qe&2UUwtSTxVCBF zc@cf)>Hjnh<^mcx>~&W}%mbw~?eq#Z-5n^X!3}knPk<@BTvw5#;T4uPZ>9taX3n2O{^XSm zUS6v)o$z$apmeOQ2Y0N`pk;vTQ?0zRaSitzxtzTUV_kY>MD^zZ1mGuu@Ol};AOMin z|I>}p z2G0_#aOi0<`-B&cTg?X>(h8a4@-^ zfv4;Uhiur20AIjhBHf+3tW1I+_L3ezlz%rX!jtnWT}V22Ex%TR@f| z1aZ_sa8+Eb!wx(A`tN9p$yzkiS_$dFz#5NyE2_YMtlXHN8B4z-9!({X zF0I4+5`& z@btl#))}P3tM^+s3|6+qcvoV;vk4p>N>mn5R>;9{{mvq!7{TQT9I@mUmhnW;!W^F9 znO|C>jCx8_oQHvbG7Er+#$^kq1|aiSwW@)+z{d+$0eCLI48Y^V!^6cqj-~`zj&g1Q zVzbqT&*D{d)vrG2i3xSmbDT8aw5qv9{P`5TgmV@SDbq(9klgyDrn-w&WPXfz9v^*4 z3aH`Lapzn<>Yf_%8B2zLs<`CN5r;Ij%HP-!4h*FwSXmK#ME8T7 zY+i>YzMFX!GCN-CdRZJR&Zcz;;-?P-Q$ij>GeR*4x;-hN@P)wugKTDZ7rY!q(479Mubs^@#>Hz(z}gN@={X``~Yd3SYvT`gQ~?^ntX zqnm?^h0`zF>&F*oZ%=Bg4|@+6d!^lK{l5G8{rr5bv)o;Ov3jxizOx?RukCi?uZ`78 zyn3|$;_Jcc;p+BM;qBWiz}wg;7WY2ywU5?+-h4hToRrSD*Kcl4TH6nA=C3an7B_CM zPCxIiHfoV zi+6ip4v&Wy{oCfwd~0DbUhBSH0Di^KTlKq7YwyoX_b;mLFU7t4v+IYOPo=rt;@hn^ zy`%p7VB|zdvNlu z-1>Y{djDdvd%Ll)HMiHo->Ri1AQd!_fg@m#TRFk84U96cbL^IlXV5zw%&sk-%+*J0n}-K4 z)|RiT$^7i&9T2F{Rb@c9Gb@S_8vC&zXEx%iBuGTJgmOIC9K5vzF3$6F1rTN>!_QiGi&CO0c z+&OHY54tDk58cmao7d;)zIWW-xLu9!M!S{M&7JMN)!EVU#Ud!#Slr*J9zBdU-`u`G zI)AraSs8s@DeV@|F5Z;(w+pNN^`q6fy?&wm=4`ic_x|SXMQ!O}b7|{;Q(>>Ode-Rn z?`KPc#g%$}<=y$pr_J?u8+V(%o%v6-cr-t^xQrHG%iBlgi{}3O?)u8xtNrt})x%E< z^}~nxO7(bqZ?ttc>emOwmD|Wf$L}^Tu5SluQ~JEMzTGHojY?;|-RtG`_1#ZvM{f@A_SgH>^Mm#K z)0^XklX|Oiu~j>aZ&o&YZ{L2}J2{_UuOH8?EnVMTZ(>>%&OYxgmshGM_pH3~qEKJ^+E|JAzg9l=ptqs9 z_fAfiOa0G(dskOiuU}8Qbt4t9`B&GEBKvUb$Je;qpOY`C^`mfdE$heG?)k7?D;?f_ zD!e^uu3eW~?{`n$zF0qddw6oXwOe@ewNTtB4+@3(!qt2S*ncS&H+r4z#p}0k*N+ZL z_e<|L4|kTK2FrVkv(5L*cg4Mv;+vE5@!k8mldlJVXPx1G;d=Y_?ZauIwca^Do~>?G zx53P}Z(CQRo!0fiZGG!t@ATd2MZ0i-5BJC04@+@({;c!v?U$>ai=EG-_n%s&Pb<}h z+5Jz$i?5Z7xw!Sdc2!(lJ-EM~KRsL=bY~m=m3r~(?EcQi?B?F5^}&mU-a(@_Y{rd21|Gd*^zFE0?X!Q!C*_F|o{-87e`E0*XZ@n26 zNAbgQ_hNKjxL#O9h-c^h%I@Lr>D^LkcK3d1{eJkV*g0>0-QQp9Ud(=T0cMEJ}5N0?<*G%J7-_dK8Y|C%BSy+ zPTnjRFLrl5S=cF55SFW9zkgK_3U}oDfiWb`8t=Y#GX{qA1z-ATMvJKkA2nEQG&ce7I1Jh{5q-nhCbd>Jim72lsVhP!ot z0iPO>#5SATa=4Q2B6zoUOZ%H2w@-IBOa5(ZZ$~;lGrWu2P2H%Wjy1b%6gJ{4^?o<9 zBEoyokSd6;-e4Rh?<2xliHpW+tL+>egUqE8TOhn;HJOb27p@=`{XD5wKsGi?)u-wsv9b%}1uHM>TipmXX08ax1VW9?0#d`45jK+yi02o7agj{#HV=kMO&^a_Bw_CdyN4fjxTXCPI8||X0>E|w z@+(rHGQvFimT^&nH&JPy2qf-FZlBQ&9v{?uKnUzNUAbm|kT}h3>oOf~Mf*sYcTko6_~-?&p|mZuaI4FTNyz0v7vK0{9ba zB_lNA-~{0>A|HJN>e*X==LG45Sy>DK+XLj2+GAu!)no*mF`*3X^E{o&OunIH$^eBk z010=bh`E8}4NhOiIM_F6dH zJrGr2&IDS(3zWG_j?fNKF|dGn^f>jwKEKQrMZb*U&vUY zYw&;@7U2y{(cJULe<3GfJQOft)#)uBh(+5xWt;_28-3Hjli;q!f){spio3hF#oZ}V zB)Gc;x8hK&rMN?IN^vMqoKk4f;_|`M_vt(Dd`T|(?{DRH_bxM;+|6Q3DYvgCL!D0; zZGkdL6WqyY$ze;RIN!z}`gwfVRRVh5k^=`nK^^#u9uoWPC2`B)-&>3ci%cnD8M0?- zJWyZC*eFOtN8K6qlb>Q38@JeHu$xyQ3Kt@# z!V87MDJa9Xe3oi5F|DrS*$b4&Ju~t6^5HD|O2fqM@PB4Zig{nt+o05p9H3iGpLwz` zbt}yGPpnwnIt_ANnX6$s9U+>5w zBTNYw!kNYvH;`I4Wji2_DjxnoJ%F6kmI9l!Raye!BtswxZ4>5h45&nq9&N@GC zhf;XdxPU1s)@m;y<<3ItDq4A>I$GqCP$96jmwQ)e1lTB!PnW1t#9{sDrq%16SkpPX z%WvXWSwE4`)n8oGA)&B3Gus(TV&;em+5_WO+R_xm73{%}E%8w@Aj5~Bs**W{(Fb382G*I(T9@PODwEw*aAaqm+V3B>^cjXZU^OtdJ7 zkWP>@`n~;D@Ytu%sdjuKUx7$Sc(W9ls8W&#{T%3sB}iZR;8+L4f=bQ@mV?cLuEUeh zmOqxx=kq~=)s+xN^(~2_e_6l@M@{A&Q5O)c%U79n~}*llmNnvsM~{;Bh9sC~$4u3MMP zI9n&dSCc5D@I#OlKTaVP%ctZ{X6ZblwlB1i01V@wA34@Ii(GAA6D8PS(CgLsSHh3` z8zirCLozG(OZygo;yEC`Bz+4u*FQnxRyxE>Lm**3@j-fqf&O)0|1@aomlBN{7v8%b zrRqzY;n4aWHP;4@Bs2w74zKZ7u_LZ%AK4O4oGp<%I0K+Rn|;G*s@W;|t_`{|`XkJ~ zdE{s+&2Mehu?J`7Hx!{B^b-Q8{p2p=;yL)zN+2ZOY}|CLXbn6imsQ`YNvY~X=xy=o zZ8-1cSn@+%=}c_Sd{2Taf0CXKyZ}pK?A?uQ`cpxvgvy9i8%fadu&tPww6@}|=p4*0 zHcVd|=P=eOPjhKB$NOKagj8-le@IP82+tqs6=$^QOjd}(G{AMZW^o3ISCDWqYR3rL zY(UJ+()%54batGm$MI$-qv{uU6FJCFLNC@Uy$#2nfv7&-^jStSWna~@b7!TeXKH3D z$x~}MJud>8ok$F~$$Bz<6=6kI9^3V|okURizAh{78^li4%T?Zi&y3lESm#4=nDq(H zZhoyjf_P9zHtrJuCq|G@F_hseYA3wS(rZYUG$nW`Mjt;z7v8gA!a~Of*{-y@L%}gZ``tA)OLp zwnx%Or&h~DDuL^O`gL+U7$@q@SEf~W3_jx*=pWF7EqISoP@$VcVG2SoWz93~UiL0h z4SR2CPu$@?fIN4@}@Kl%SvddBQ5^rmUSK zI3-?U0_4FL36-Al22n~A1^Zz3uuyE7o1LE!YUO_QPo^p-Yt$3;&~_=QbBwW56qpdl z&OBMUBj55;3`;>p%2GNoE#{>7zyyi$-oeYMqJ7s#$|KrHQI`#klZ$=U@x`13qP2sT zZ0yi$#{P=r4U%=q;_u$Rtz9VEc^Bhuj|MS0&NwB3K&izq{i3({BMGCg%8*t@>aM$} zgNxFud10ajiO-DS4-_mR){WDtD}v=JsgwHjNhA4H=CK*yT<`Y)G}wsq@98|MV!tF$ z$YWBvy!Q&^u@HtzS;6JvDh$46gLKJu4O8vAvmXiw0vB=gyEbq6#e04;f3|JhWSS7I zcaz*bInuhX?|{Qup;@nTZXyN-WU=KG&(m-n!RZA=duN7SXP5*N+q*XXfoao0nIpsUqjl|tA88$#_yL_nno@~OQ$sJu7od}?Wi%aqT5?2DK%#QQv zf$?&tn$3HL-*`~HsJ!HkwM&j~xlaOg=eb^I{!&l`CCHbY@cKw>1M}$+)GMZw+U)%tp zmrZfZ%d^5DIU4=CY=P;V$Y4`zYojIeocj8GQ10|+!9|!i7&d*Yco3LKJ4-|ji$X;* zJQt*pEB%Op36NTm<#pgS5|iCA9D8p6a-Uepp6HE&(_L>NhcKk+HfTO&IfJFh{3}67 z=(R@NCoM0gGTtxn^QyEM?M&(nTHeL)pJzT>IHhqda{qch{%F7Y)|5Ac6k50SN(2%th1p5C9|3c`vBbQ&&Z_6a(j)=sz#cWhu_NX*wRg@r zNXb4z$Cqd(eN3}PJ8CsFl|(GX*|?C{>@IKI6M{y zpQQalLAYA19s5qNwoh;Zf563dC`M8?C5wrj)LTDTp>~Rp*y`p6Bgh+@<>u7OP{DdA zYoYCHl3#!V;$>*OPP4D~@tB=Zf%u87u0k6%ILal>=5c~m4Bsya3GSKxdiIYKi9r^` zX^bq>1EgPH83t+BGH$#WL-L*>lPi9v4b9fR&ucVZT=}MFFde{AW0q}=px6T4$ZGCB z4qnG21pD;~WALI&$f9dHDcWSsrN_<0%?W6S-!^-Zj|#Uc+PU7+NEr4 zHt%%W7p;%J{B;Vte072NOTu|K}(!SV%YJeY|S^+q^YK+9q zA`ICEhtF0ZGA3L86lLgSiJOB1*BP0=rP0?$qWD!?>Wl#*qcZe(0sbeE;LQ={hvV@p zM@=VQM#xFG5?^)P7Z+sVJCyI5J>iv;&7JdjFH^*xexnqnIWA13qk!&q>SNRlX-rBcT zN?>A|hkE}gHuA*pcWQctOB6-*(=p74Qw|TA{oOdh`6rPClC29Rqh}Dm zz_cW}elP`eR3NqRU;{gdUBfJMC&Bc$UBQQM6&0Lh_P+S8b0g=mlnkh9DB2VbucuJFA|bc6uVd> zH9EgZs}|0;-{m$aQUqk-;a~Ix$UV2IOhPl&e%b9Pz5Sgi3H7{ck;rSEn%Gt ztn@pqmT!b<5@y|Fv0UsE4$J8wAGI5n(grB|7Vu*+?Gs*y9L+DA1q7h9ogmzbVNMd| z3xdbl$AV-pn-9{7-FS?cy+cbb7M5p~v$?VgXB^%foQ}z2Wy+ch#Iv`Go&7k|M*htC zI>*CcE%nGRa4BBYcVX^r%KL;2C#M8bb$G6A&o4c?v-z4J`1H;>UW=L}tTsK< z9GU7%4zUI5Z2B~VP{ABYDSq3ji6a<^<1|{8`~)}a2DzKA9sT}dMm9|WMy(j~9;mlG z;7G0YcP>ksO;!hwTQgA(8tArHP-%QE3|rg#aWGicb@i;lwDpGXsCKUULoCzJ>2S z^OMI^W#KBMmim=yc>bviy)WytTd{_X&o)NK&WE@w@lzg-`Z+%|Kq7~uya|uhiwTUX z=1RfujXu!r<#4M|iEhH8iZOVe1m7rP3KXSN`|yDzX2dV?Qy>2{x#Il3!-QB^4_Q#wBrNJ8or&t;F#Ua4 z`(e&-all81NuH`v48mtM?j*%OWF zz;B5-G9kw*rbLqG!Z9xDZ<^9gm&{l4CN8`)eG`=@CvTK}gKQ6A!j%@jE?{iUCIrr% zAHY1m+=NTbr$v*ZLipyoSGN(=WX&1G{dS@M>Y0*D13mA-9HiVf0Ljg6uQE6~CS{4P z{9Ru_WjI;Qb|zbF^K#Lowmnl&I}jn)VyI9UU7MIwq7zrEMr%v+c4EOSU~Mn*IM#H_ zzj-Xjee8#sqZtZ1Y(Z>LTK#rBgFbvpHa+f#L>~$X;`%t*I}(dG1>8uOACCaTW^e|$ z6j?!8pHKFiJs@Q}#7KnBY{G;1Z^d>!8&<$#k&S!-L%gYW`#V9l)yKK|eJ~LmYD6lH zm+>>4S?bi;C(q6iJ|T>?!4P5BFY+Pn>#0ibg{Jk1%9VndI?F8>UvNyQ zkHquH)G9#A9LO)nRmy;p9M#WboBcS**GJ7o zoQ*0{PrR`%3eH@SDqZq_9ECLSZ5z6^DZ9hi3lkS8P9#%N+*}jdl@fswJ&Ghui8H-| zwrQOd7)X7u`s@p9zAo)MD&!n}>qmxE148e^!d5+_t6<1(Dfua1U!4?=v$2ti`e8Ht zD#L)34@pa6WJsK`o>qANicDg(3?$+%S15pT_PQE;SvjvK`w-eaoZ+oCu!byQs!G3N zvd3fNf>pC6EN2s^uG6$xnj`E6&M_U~?H^3ttcz4AQCBk2c;zAr7Kg+g)e>rK20=s_ zni|9UUCXGq0DYk$t&3sO$EcTHc>0K8AZg36 zbPzR96h;(p2a}$>YFV|^!!-)4cz#K+vN@-D7Rf1m{%i0K92!W8zq4#S?7_)@`5HNL z9#E{6K&wdHa7((Df%EERZMsc8(p8E72If5moGMFhl9}PA5fL$aq3CXGdajp7(5GHV zSd|OaGtwYdX(i^EkRZC>#%o!`fqv-eGMo_w#LE>)C<8)+v|?eA`+37r$qSMT{@(fC zL&e(IJ4BnSW`pEXjhJu~@TtVViy0>->e>9C|3(L_S3=ILshfH1*x4^?B(jc}?}*NL z;~->%=5FGz10!&O{CF_aWIe-MqgH*$B>0e8S&*m6Y;p~}m4`t>)F%+cf@Q;AM{}Q(~RFIc`%snNt7j__7wL*93 z)|&3Uv1n0=mL;gY5W4S-$(i}f(Ic@TUN50(iPak|e{?U%<9nDoIJmGeu4WaIeo--w zN$^bufN~8*apVR!=r9zOHX_t+B_$XTgB(JChOX&OBG1&E!HS4rBG91#T0BM%4`&=F zc`x7bMAA;j0WbcJ049+!R%NIZ(H6@CcCN|uZZgeY-g&=|`|JVHO@O?1s+xP(W4H;D z-YA6b6_G|tTpVP5zX%yM%nQx*s}&nQpW3Au9tFs$^<= z5oZYMb*lu&f@EJLCEhu#xrhd~4g|$?m1Z6zxe^C44!>8Y(>Jt6y(oY-<6^0t{Vz5YeP_jp^Q{N zz_6odaj-%*Y0Ikx?HH~kvDjW%XpQM==AxSL(PaWjwE=WO)cXT^bC)zKC$ipBpF+Lg z4w==MjUi$b`XcEyCanY>g9Vcngi;;5NSgGIu8OiRwM#S20{qTetNCaoD6SVDR=Y{Lcx9B zFP1(cREq~8k{_eX4B8^SRTePa4%8nRnn}H%N?y}{t|iWMmxnHmfZM-fw<0VvB#1}( zvse(OLcB|S32WIW@R9@PPFR6Q7xTmOh#k&THPusk)UlgOfG;4=^wMjz25eQfJKo7UO0rb`R5Px^pL|K(g)Yi!GXa#bmrpepxc2UQ&9rX7~pxkQsnbgz$si_Th2|qtk#uYNpLbRf_1cp=9==a0jAPMg9r&McJXia4g=a=yJ zy2=D3R7V1ahsLKHWx8{>3@0)fFdfQ#_NJ`N_25Gww0*}*pS+W1B`sFD3}Xi@$lSCs zuby8V;N2_ZT5En&mz7kG7W0bB=trEU@gj(QBgS0z4rO?V#qa9+4H_F&pZYTx{UVbf ztMc#Im@EZ+CwWj)+QWWTG27NEDDy~%OcRBDhBl4B_!V_N={r5n#{MdWqhckGz_G)~ zsnD-Wkj`4zev_!cD_1sZCeiH|&KRh??ViYeV%sbzgk1GbEo@p`bas+BWDY2FQR%tu z>&+wjDlMaY@4vs=PGemjNsd+1EdBP~rJ{P;mXK@H-bZQDvf&IdpB8gWFOdOI}l<_3SeEFF^UD@Vc-s*wwYDG}R zTK~gWQMa@>p~hw`-`V>s`K*%A8{5y^oB_n^-;N{`u5x;QUA4ziYk}qCfeXk&#uYRy z{E#paI7$|y%R@2%B@Xfla>gmB`1t|b7D;4@i9Z$T+BhFQbtCSUo0m8I5Bnml+d6-}DaV}3_4&RdA#Vw?YneuXX< z(yV^wP-xm#nEp^g9@?FVDTrGUN(h17v{)PI(1<1#&jWB6dE$IJDPDXiM6gP!?TDGk z2Wg|EYK#D-{8^^r)i@lID)pNxDT(*rAyrJM?F1?CyOF+Y(LfZJ=GfDBn>^WyQH$EY zd}(Z6ZZZ8r;X4#V5;iS{KCLFyeMrcjlUCN-eKD7EzL1;kSFDWz=sq%wV1Wd@{TYYc zT?LLIU+1i-imr&uHtv%3ZY15Oz31!zR>q_6BQ0gF$r&lPoW%ewU+9Egoonh4XzIvc zXs5~Og*61BF7&thW_M$1Pl}lSs(yfXwmTskk#euIh5_0Zn|Y2UWO}KwJPS4Chs`J#3!Hv{0VYwECbTfeVK>e zyQZ;Dacc}|+?+HlVyA0^8(;3f3=f9%9@8#Cu-`V{Y`tVZ63yvXHBd}NXz2e;S%yb> z(miT8;Zkg%7XqAD5HtjEf@1=E4ng(}g>L0Mw zm5`8iZqR5atpR{4VIV+V2@W0=@bq{b<1gSy{W#4(#MrUP*bzu4|G0*RHUfDcKbzVb zfryAti@r8s;nU22sKgf_b5l|e&>H@)L<<9c{6|tn1u;V_Wk6_6IHSNU(38PG==KS1 zjsuP1o(Bz-MPnJ#Jz5?Gq8U68lln|R@zX50dqNcb_VEbPQdLRcv zgKmI9L`|8yK;VCKNR$U5HjVEC)BbDvh|rp{4uK1QQB(dY(E6_geUuQJ1TTPNe^C?H z4KVm0>8WTaiy{aax~2d^X!>;z)c@OzCyvn+2oD;2LQRilF#ekeXHz96NbFyUrHK#^ zMEtpmj1JoF~f)`A3L9@dUa4dX|5Ievy03Nlo@o zxO|02qo}#R5D8i-`^UXQ_E7^~{-as@3Pi>H-*lFZ&KG|*h)^MgKZU3~ zb;s%Ek0x9J^iQCFT1NKp2mbpN_*0^Fup{f^xK;ow7yzLApAu`K*oq+De^TB{6~|h9 zO!xf%rQC=L#Zi1LF;MZ(o-!35cfW@D7a~Fz6#pc)|D@5x`=g;z`eQDt^a%3^|3J_G sz=S7=NBRd2{Rgf;K?}-1kVF|o`P3j0S~4rUgX|D*yZYK7iyUudW=YllKKtfBw!U?RXe9;@ary zpx1~|zul`>*+c%iHyC!S9ejKJI+~teSk2GjfAiD-qixXDFuot6MR(M06VmLjzy571 z`ZfBa9}h?U?jZVB>-E}kwfj9fyN-v~abG)%I_#-6h~jRw){Yx&H2b$HH?-DZllbTe zrxaL%BD(+XcXm_le^)zRSGU#nC{BYM#6yKCr9!$Xf6(&TKz4Xs#lxZw(xB36M!8?i zxE03K@Vei-i@Nb$ROH#H?9dFv zboZ!gy9a#pr*>;vkoK-5MVDeft`6g<+KqN92m4XnjyrL8e;D1hhSw2T5e;tQdaKz2 zenP-_821OtJws4RRrl(9RBu-YgG0zcX6YqmKyd30KV;WvHB5mM3u07Kgg}On`JL+L z*p%g5*DoWlo0n0m;m81Kw?lg!HG1_CN13n7;4PTxM(b9IZmQ-5@P2DB%vT$Yq#I!j zne6pu_-tExe%`JXYwpFWv%B_a2V?^4NrWp5!q5q~C%%3GgDLc@B%DMPe zRJz5OpGU8Mk8XRd#`mZyb3aYkUbon8)j#J1AEo^&Z{rde$d(2>+N(}P5t z`i{Xv(@Aq9$sQ0-o*sunP?$Rq8o>`tiSzaAYWFH`2qN*|a_)n4sI{m@SxLLhLm_PR zM%@PH1!xJPpP)P^l#r1T{FFe3gt7cQ`u#ODL4BBS$IW5%-~XLa<2O^I-@3Zata9Oi z40|_Oe=sg03!~N>4tpJTVrl63rDR0WcjB9+K|Lz|NtI5TtJ0`IU)aBgJ*eU#>C)&| zucDZ;H;8)OKq{Tyzl1QO!Uwkipn0cv8;c6kG6(q%@*>~s*R6Jg>jQfLYXZzhV^1|%}aJC%$d^WV(W8H>JRo7Xz~5HPO^>0_H*MA=O$ zy&JaRJi~t`<1C5-im*R?8q#USCG8W9m5eFWK-oxUjLUEKgOf`NNCJL5la&g5CBNU? z|4VwaQ$2u-=>Xgx0eg{v<)l-v7amwjOd(DbHt zAGb3AsL^j5?{*vUy%^=Daf=^SUm3(p151#4sof}TXJ?}=ArIt~B!Pwpsjhqd)>lrgb};mp5xS5)kRdGgETpTr zYU&POvxn6>ucJ$U*|KtflcRBu=?1eN|M^Yvz@IN(7;%v%`J2(;+QtwRMW*B^8wSo1OKFdg`%#jqi)nXD#JfSKNmpV zR{Iaw>06Kni}=3Y9&rz^o6S*Qb~Ug``|)59)vEny(E1ujxtktbAj1|E+Cy|D4y8U? zz@gS8K4whMGh`%%>Nn5_Qg9g80iPJv;(8V8g1ANtD^a=HtoB>fW$?lETi74MYuAYG zdfjJ3I1eB#)qRB^{mu@CaL7DZ6Bh`_*C36I#T!Gy6Qyrni0*8oG=uyhQ9}O;n^MDm z5|eTcCx1l2^VjSN@YGuy}^ms}E9yVXEfnkLp;m za@q>MRrqmU6Un?m&nS!Gb!(8VP;loWFeS_Pq*Kho$nii^4Jk7rYhL}%Ev*W^ksZuE!x>a^c2c?fYIJ(%^PDcp@x;SFoVRd_ z;Qd7H!=p0GyRbX8$I|}(1wPbb2(WxPJp>9H<}aX%?L+dbSyWlV-EsmtFVOPkvS z$&WK}sVY0=y``y#kldmKKK~7Bny(#}pCpDBfS~w^Fc!fq{OzHewb$;C|rGHdt z(fs<{;@rGf1Od^KYI7}KUG_>ST3WQSxL#{E{UXSb7Ok(x%gb|K5k*Ri8tcoeD~nzc zrAv#NYqj|$zeprX%i{Xl%HpcmED<@au)MlfjaR%1lrt?_Tv&-4{=l6GYI%KaAzp~R zrXp4b?A&~HzM3vGBB@oH&6V0pZ6>UWNToqwbrJvbYHazEi8`LbgjL`)nC+N)Y zqLENOrcJ+NlR6P*1*ARZ%_Ebg5jg>mliv|Jf8V`DzI-N*$w`!#Y&4Qfl<_c&XR`QpMu5h9}5Y}|7hz`L~f7*3#*t_aiZ(vgl{xSo6HRITmFd(kQ>+zb7 z)fJ~1P;0C==2CSW1DcDC#rk|kX~KYo2LG3;lCoHZQ;pSXeSJ|XDyL}i4VZVeycZiKw!gbm)ve}|~^ zfGu(}eg(z!)j*ieCAC}_fxRxSOiVuy|db6IcdUuPxV? zQxKdbBII3ftT(IcO5T^zB{wwOS$&X65sz>xg;=B$_yW6WN|#JwB&B17zGEN{6p&V< z>|_7Q{W=)%Wz<3()L@{lf~ZgMfBER`h!k!15d_d^gY*x*(KF!)Tng|X=zhI}XrO8z zr`<4{<#f8&@BBM6q1s$rN)gDcPSby{R;zRC>C%Kh&1Od96n|<}I4%}a9XS4Eb`bJs zZEbCNEj`h)=81=m&Xa!JC|3LM*;LzU)}27=ZP^&(9+@G+L+(63gZ!8ff9OJH0Qq{2 zzPPS*T7wLJ(C*jiyuP@C9YLs@pSW-=&Mz)6rgetnR=l=Yolj4Ngj<=#DQ-3Di>qVE zIc_x;78m9ppG~!SRH@785QC7KO)x@bt=;am8xZIEb($@1F?KZ!b7+P_{bK=!?+#A7 zRuv%y57-L#?##rZ9*UZAe~gu=+7>4t=T<)kli*V#O9xU&_0~q~K{P-N5q*W^>97r} zdNArX0T9YhwH^%N*nAk*aE_mz*!{F2fOTkLIZaSw`c40RagF~=Ns8lkW@*ChOwcKA zH<#lowuPZ6I&Q~n@!V=!P{X-7zs~=q0A$b2dVOwg+8G=0mv+l{R&wf-mVpfvMW)Pf zzi`EK8nqhWOJyVqHDbRsackAVY_9f?%&f;9F>#~5I<}HJ`>VMc$8lP{ zxka?TyjERK&j^o|^R?CWl@ygztgNrD$C-dPV;i)GM93@yRmNUmB zR>TIvHQ+`um&5$#wipK_=uyU7MhKK60`B45<hUSiIIFB&kU8d(6~ zjACfCnU$A>e}e|We^OiXqL;RF6Um!?H!{=R1WMxPOyr$tTGJ2YUWM8L@@Aw0nlu^p ze6|kf7m#(Nm1x=I3U8j5cQMt_r_L|_k%kKebC3U@H>e0DsbjaN)x3Uhl@qu+Z8BJ}Fp8vjqSn0Cg!bE(TkdHm!*Q{X-}v^Vu~e z=Pa0{*ns1IypP!SZ&B9a4nXMYYh1_<3mwx@rkAR%y2c&cVWriHalX?}u3Q@}2MH%F zg%+Czf0tZ_c5-++`v-tp@X^Cr~*a;ZyVZ>s527oG7+#b6utRyY1E^DFu%U@ws4h#tL7OsY-7>&u<0@=Il07I@tD>S_?E> zpV8Hr!BuM($YMtCzpiQ_Vi~553Hldne}leI#!_?frMx-(p2Tujo2P#DUI(Ed-WqfjLA?iG1vCF0>y-|)+q1)@u(DKtcX_{>VEkFY{KcD`w3rG`i6xj_t>fGU7X+=j`CG824?&8?9dNIyr*cayh2c= z9CBzUmmfGz4pxkJ*YJ=FCKM9JX+*^pz2S8>7F?nO*3;G9l}n$fA!m~oe@Xwc%}cm@ zhJb<~9Z7b<-VKq7lx^}8AYS51jz9rm9de#y)oVWXTe=4O(i(oRQj121u{msO#`sYf zevZe%#jo!iw-8nZz!bWr_|in>Z%7V{*Fqey#}g>Ks9ZiAN&bS@bEe$Ml8hec%ii5x zb$gr@MCoM|bPn1}_lVokf1dDR&X+B2$vz$zHa8Kbhq4t?UnM}YD|topOGz1LPSR)z zCbt2fRM|MHRE`e3TFxbjt?>K`bhK##M!7yg*JJCNf_fGr=!a152x37vthnCbMorw< z@mljH8Nfo-RG=4F4h4b_Zfoo9k-gFQH_TE%Rm9XC=wHnh}{XSmG-VYS&a zfjYbwKb0j?#N6uL{~e^QI)bSb&?{=^iUnKz$V#r;VBmi2-+yaSbEmYGy{Dnpl?xL6pa zQ~3kX=9S;n)mgJM%_{2)PDI?b^5i+yYJvb7?Ln0TdW^S$EK;MXQLD!NBo8u7kMRn6 zi@;FC8{TDu9>|9e+&rWRe+7!@`EESeBJx8DU<1w3 zAd(-yr3YvC-C9AiJK5Uj@D-#|Hc0|3p_ek%PW@x&p92e_`IcnLtTv6Jl4ecqYbRvT7Sz!Dyj724_(^uhqJ$dsdD6 z!J9(xv3RLsZd(Jn#ET7+$v5N;*bzeA^-LErWi|({e+aJg5|B8jSWg3#VCDv?b9c7+wR89-5h@i^7e-!Dt5bvkeQjXjq*DH_xzuf7~K@6 zcz}ATe=kW@z4|OR91mi~tHLVI?!-eMt-N0eaQ*0x#QmQlW;FjcB(k!t`zJ~7pw(0Y z+>lHKv%xYutVE^!z!(+Mc_==YKz*h$;Rf(&V6YNS0wecXkGk0NJq^^t4?tD!dQSzl z_#;r){rJgvElmc-`y(5&t$o@Mmoq@UG#AeefAI-&^CuXv@?(%Z>>HdiYoA+e9+QmK z42T9ff%G%jtxbk?jSI^UrH3c8VSOT~@2P1+^`tX{6Gg2he3N|{Ey%P3BUE%)c-hQN zLUm8Uk&YZI2~-h!Q#3yP#Osy2luFu0JOX9}=8F{`xjN|ZlZqb-2#`ZyPR{ApfdTa<;H~C)-lMZw=!)XvhRi|(5J z!+lvXU$V$%Z<{AX&qSv`go%-Xj-443izu*@3Mspj$}0cM4HHIN>P$JpEi79SfBy7e z0IU9P8CNntOrCNzg>6BRKa+8RiNg;?r) zbASn+#poX7o_jvZu}GLPfEtJ73~pmvXS7QOHsr?BM;Lt4PnUIz=W<)~HJzf2ncIp}sioxp&;e(KY%_&eomo(X)Eg^<3^7F0jl* z5Cvzi5=<0%8$suYcV2z}fIaEy8pogZxV7=46DtkGle4%m#7r$KLbarHJq*9$!pRAoN_+HO-3ZNsp1jNykmXaztQH;5hF}U?EbMxtvu8XXtV)$mC<5L^xb@ z7^IDiipMBYlbdgxdb@hLpo+h1PGb%(26dBZ#?RUAn{cGtW~4f&qh9S30tpTNPBv4S zT(-CrGx=0PcKHMypy!50e_T9eF-~IJv5JPL#z;BWGn0!KC1k_qBlUYV-?F+@us`fp z0wj5ESuB^sUta{}+bbZf2^Z-5df?1aP)j;5; z+4^J|(Ni^kTKN2We_dpRVele$(UR;CILIcuP_HB13DeFapu*1qd5!BdpK+&>;f=`D zDD@Q|q6nHRwM{~6<}1#DJ!irKC$lpX@>j~jY+tqbW^wUxPmoMH6+(y?f1F3I7IIDN z-`PxZn#zQ8j>+j`s^Z+v9WxCC4UyDP64ITFNyKBFTx4}3e=-qvV#O_yZZ2NXO!9UF z@)haXwYPTJx#wE=g1Bj;@N%x$7fkmN+;@LxPk$SqLv&*EgoZ{AGXBvDCGJyO4Iv?5 z9-hv6vUPnt3uA{5Ia|%gH*1;zbz9ZVDf_`rAz!k>XL7`tp0V|f$<0SX5Pqj3oZYq` zGcS2AyE#Q4f3x=V23BMoC2~S@7e+0JL@II*W{Jg+CO#m=meQdp5&7#O!``Ko$capg zNpNf!Bc()$>f)3g&CT(RPx5zqqLVX4KAFuYP}ckqn{DyWXnGoI z7kMF(Z*g3ZIEAF@B)r`evY0!JTZ4B7VS}kZTRk+Pe@Qr_K>k05gBipq)<5H?J2`70 zbI=ty3%G9gU~-iekUzI)b}NbHRQ0}!6BDUz`fj5B}3uW^6{IVMRy2@{zl-{0}4o$ML%Y}tGvyoj~o}0s(c2Gsq ze_V)bfAl)gKEFmQwtN9zm5g%NejYV5%9r4Z5lPVQ-yQ9rT14}3)8N!%E|2pD^Dllu z^<-GRK^>vB%qtEuh%ou2G0$5axk`pGNvr%2C$MNbjre*ME<>*?K2f)|G`oOY2qUiiII zSOOSvJ&W>yhd$rzeI5>B5~J2#cy&*Snah)I}{J+iR+Xh~#p4kXk8 ze|zNO11~H9g_YPoV_*a&aVZ3<%qbV%l|H^HG3-KCfimv9ZsPbDYR?NPq|8cyL926v zgnqea`B|<2Na;sG%6}R>d!C0sqGnrvXNo}g%f=gss^VITg$mg-xcw6cf~vKmdRWq0 zEvbvj-i8e?*&ydh{F~p=pWnWFyT$6@f1z8ak!P{8#>?2P-vb2g!jk6`M;M@*1+jVP zC^T$5)CC>0bMTQs5`05LuumN%ipk9=!NgW^>lNeKs8mb(1k+!|h?^D!um5Mq?3Obd z0)Tju2)7HEA}Hd1b^ud~X{$B6PZRz?c~`?)Sb710sDT+B&AC*!Ui^Nl6~{ z?8nV(E-`8n+$2D|Y=6luU9FCTA~2xYkgR0YDE`d1*YrVsPU>g+!iyYJevXhwniX-ZL~ z9)WL4QjA!xAP=^AmVuoKk37v`jk4t7JD9P872IVowKRF46$FD(>W)@xe?V>*+z=3= zg%kwPU10A--s93a;Oo}Ms9)2|X`kVGlLW%lRc0Q7muE(v7~u!w26z7e|L9xdE|8*j%s)ps@HK3+pwhpr@iHGg!`~60PF4+)ZYllZGWIOhsS~}%a}n6{Zg4ccFO~M2}{Zh2GFCI8=DHG z>gdQLb_AK{+D>m^?$TN?Farq=FW$+uS%t>MkR6zkq%tp9e`7o%VVnQze^RSNiii+p zKA7|GF8D%6*d-(*e-CN6O8kg^W;2+kOcr5a0OXK`#*qdoXpBw5M=Ra!3oCmQi7xX+ z3Ezh&4pw%acO=C~anoP|UU*+oY#D>!czZ*8-%By2bio4^APf>s0civ{j_Q1#MIIF~ zqGTqTu+Q=<`opqHjjl{HNZ_B)Kw=M`1Y=$Q57J+5@ak^Of9~YX1KdzM@X5dspi;!? z29noeUF_1O!V{($dF>ht1#ZW4&KhyEE8wW#*6%u(Z~;4YVxkq@dmWC`fa7amz)|+; zLV@S7`wwMFQUq;{LVtPC#08XuU%YzHBQu>%<|6aUt6^dM_w;jjsa=MHw2|`PWSS}# zml*#`JPd?we;#w4NF590b*Mum$+`u`b_ixr%6+F)LB@4%Q#RbL!);=YPvz;N+F| z8FrO0;Y}Cj7a-yACo$p?k!u3e;CJc2eJZ>`k@KpkmN8ym*0gull zNP4E4e?CKui*nK_|EtjbDGmeKK9>yQ`!Bhx^H=RDon>BKPjUkF}CI+`=l`kWUetSD#|Zi<6Im zkyj-N=3W~sGI?yElE4y!jR4Om_a3Gkr-qqBb`E>fb&{NbzM|dy!Eiea3%81q*!`gK zhMH|*ZrWDSX7-oLm|Q8e;1ji6~;3SPVHYpfV#RMY~N`Hd4Cfc zo|qYOge)=GT6+7k@3T(1CAB71G2l@LefgD?5UTQUxac8=Z}yOJyn#`OVGDk=O-O)X zFdhuWB78Jm#{fSpZq>jHN9U^DlO;Yxe+@jb8rmyJ>FFueXU2?DC8wQ>S(?lpV~G-_ zqJ7d;mGL*wE4{I`e9Ob$;fVsh&p7TuvJa5C+3I(4(*?LrAS|#v%^!Engbv|oh}KpQ zkRmSfgq^puhOP27zWR_~=DbaqZ8nOqRlLb*Bk^>d0`?rLm3zqsU}qT~ejQekf1w91 zI4&C%d))v=IZ;YcM`vOz89q3M%n%KHxRST1Y>AC*8<#QsANq=NA`b+ge? z*LYcAzVaza4BL1T#>cERpm)8VEih0xR&d5y5hEs?K@e$p+2y>dgTopF*n8a(rQSp` z&)91~0_>$kvj9-?NVAiGG97=Wq{QJ5-zXBWTkJV;Fy)@p<>Gsb zIl*-x_&4W%sy@rzkzqnQde)O)HZP&5bp?|jbFe1W^V|zKh5JLh*bF3LmI{f}(+OY` zWc3|5&1T_X+c9>>fl6$0va#*%zI2$xc zi4cEdr!E6s>9mg7^aXw5$1%LYK{ba1AkNR(5wyBTPD>k+fg8MlYF1qB298o3bb z5|bouL8sS6M7c}F)>LHPsxf?%ToQbdbgfoJqIkTixVm1e<3&*Z*_dDBA z9{TI~cQN#U^9qd#DxT}0||_mn8IAWSQ`UPX8|>94*x@K zW$tWAOVm~nNkITA`N0ZCa% zgeYs!%8AxMMvy~d`9xBL3W2DUV_K*T2eU(TW9GO(A50m2)Z1))v`hL$wWDv5-J@jM z92OiL(U_xw64dr;?j|@EVRhE32pE*f=@jE*&P8sWZ9h47Oq zz>Lr+u8H2Gfu)%)@H8F*5j7G;eVS)acBx8^gcc}l;K_dW4n)<6AY5s3Ie1!rcY#F{-DTL=(%83nh1doay zL&sF{4Pq5X%NaCQDNcW+RK-wsU!sL%8ql^5J zL)3H}Mc_7^s8=l7;g)NPm<0el=jd3O=}^e%WNGZmC7VeV;({BNS62+X$hih7;nQF< zb=^22KzmO`m0&$R#w)R|#>LNAVuA}oIGhS1IIC_QStzIu#ms*(v6&l}b9;tDp?GJ{ zLz%Dy;OnCkbz3-f~(ne_(^4;bwP&2?<@8t@;`^aDIhQ@^%d4SaQpz zCq?2HX#{=qi}dB28=fU&wNJP{Xs<>;aH@hr`IH<66Wvr*^(yMne6iA^QMruzd8N@- zP}gv=;c6OI8EuyGnV83V3>@Ui#KS^z3EY6R1!l&|^>Bat&8uw0(#!x;*%)~L-_ZHl z;-e}7qYotBg>WQs=!w%}pmFFt-0-40GQ&I=TH$8718U3rnLak$D8E;kFzm-kM6JF{vu}Rj7b3LcVMHDW*!GBQooHZ_EE^n5$ z3a9&(kL7<-rGiv_Wl+ZSYBW2<4_Y=|4N^vp#gq91_)%V&{JZ#s2Q#}3<3q&TLOA;a zySP+37c<@70+nw8Tfap4_++74GuQrFzFt|a#{)*9Bx#{cS@MiF8cDCN&Wel8Bwr>0RZakd5 zx}JY+HIU7Ok9o|x#(%7@*A^G5wWYb0`31g?ytr6hS#PX0=a*`Ywc281JzkkxT3TM2 z#of4J(k|Z{HW5q9W1uQ7fgo(7OWArxGeYpZV@g)OzseeXyhgst2~zSAGy0W8lz;o% zlsP{#Q5!swdlfC*@Y<>=>Bd(xL213(uKRySPhR13IHP7H-?nMo=#60O{ZxBN!tC|^ z6c8yKiG~lxg|obh;3ljt)@#Y|{BRY9u(=a8*NC*WRKlkIs?SNM@ht)`t~aVll}_v4 zmWkVN1|M>WZ5;HkYK*PRfFCW-{Ua!%@4)XyY;=QyobtVj{_9&P;EcL6HSAF!EBSx( z4pqSTzf+A+pCC2GRXn5Kd1#4OniBzs3k`s>_er5^kja)`^xE_*c??EQ7%78@YK1fe z2a)y^@)unopmxyMHJIrk`E&~j3>6%Tz9PH?4p|7@{L<>u+TzOMS`@TJF!-Q{WK}mk z1Zl>78HAb+_O>lYlOXKA`cN=%ZPS0igBi~a7aR} zcRw?@t|CdpD=cl^ObHasoIi*B$t!8LyjEj6;qjJ1=~!D2?pU8e%K+EMT6s}r;~MTc z@+^B5#=7*%i0aP+2*6JQ;q@|xK>#4D|Hm88We$+5&+|tI&UQcS8ixN+vWIy%WTBV> z6|gP~#w0pD2~L3ZWJn&$+4ux-vPbnOlao9-fAQ@MfhLDNG|hn4jCCZxitrkIjJnCv zH6y#yZ$T^jFbh_v{KAtUYA6=^nz`eNG0e{;L@)xEA1OM!f(jaPj2EsxR{P<|SJz6O z)aqZhr@6U*pd+h_afO~g$NOCk$cKLaK$N}7-DC&|D$MAbbr!?_|DB&m&{Z1ny*t#26F3=DSo+Vh}(9>e}3D5ktnh!Rl6*9%;Yo-y{NPT3L4F9x5i?Gk=f&MYe5ZEJZO<5gt7rkAN; z4GRp!zp!{E?V0t@qc^ofF!_TyA2th$f5sYmK*MHU!DEdAEW9@6yI2hAb@vBt9@p_; zt1&|+^%l$uv%8T^%lry?o)%7V^;6z?N;M;b1dgHo< zccQpRDS55ln1oJCR&Ziv*2Kj*U4V>a>)f1~*V$=4n#nn1RwaKD%*=lW%`KT`7Idu( zk(#RVTK;fGHo&6t9GaccpjDq?7A6q|Jq}IL&Zm7^PD6r*>scUpp-85|{Qr2G{gkko zX#pMz`x7?eoJ9;JPr_uTiP<;f@2w_GxXhI-SZ9}lg+rFD@RJq7@T*F;5m!5{jbxjz z6YWQ5-p=Jivv?|N<@V=gAU?ACCJ>2qLlj8i&U7#)`LL6boLcylPR$inJo z$rnb1C7#N9>I_Rd`KhTDHVfwLV++tD%>pHmNd?bf;vP@Lc&3VTzdH)EV`{4_uB;l* ze!M0oV88`7c@w~FvFwh^>)c0*8Z4!b0(0Ng)y37SyR6NQubzLszB1+;pqR>b%KWgt zld-w{l8j#bxiigH+-}TVjgV`?8~EY^Jo$kLIq|(hS_*%SbmV0L@RD*IX=6ng!b^GrAapIO-s{s$%<_n(Lw|)&k{WhaGcrV_~VlSuH5s|hY{Au!QOw2Uu@fq*8H&zlwwfPGK; z+YdbdW3HWrlpn{cZp%AQWW(t+PFpm{-G60Vc5047-IGPeKh|N|TK8sh;RloY6CnnTM&vDXx)2ikc@#kak zOr~gnwQxw8KGJ~X)+aU9U92MWG~#)D^d%{vhF8a(bNQ%yYRG3SDblIlTVI=RkSxG{ zA(xCE45oj+`4-v;zIF|^u&<&}i~P_qNvU3=t@ON9JqkMiCt4+Dp{CT$FW@1n`8m9( zv}$C-=w&EOzD5lKSdkb%$I6sAr+p%*PEnN0jwul$?=;KYA+Scz8uA@a#I zspfx}FIWFBzqlMOg^vtHGB8q_%saN~76=FtEKK8M;vHR$oiPD7HacaR*{WW(czQp3 z)4lp1Ufo(*df9r1$4&3%-fUm>3i#)+e0p6vy~1Co{8_jv7B29gjZdW&1oH5o^TYDV z+-{*iSgNnQMaky!-brceG~W9<>{hn=Tcv-}#r1G~Z@;kDYTSJqEnM6*HVU_23lFK$;B9Oai+g{c z_u5BmZ$2LvPDo+$it?h?5^Vb&(iyOCBr=NFM8?{dt8->03QDbGJeu4q*R*v4> z@0VNUt(%j>t;*5o&f&@0yWz>+*4o+D-08w$ulDABz23bkeeE>2;==Ob;pp&odv5Nu z*j+qX`tokAyRp2szO>M}`uzTM|I2^o)w_$`#k;*PhsVQ<{%vz-zO}FzuXW!p0Kekr zt@_=kwfE*Yn%nDa9WH-M!1|pDmq#u75ecD$h5Dz0&*Lc&=DDm@V8F zjvkQBd9ScN`?b5cGw2--X4e)^=IW!h&BKEiYs**b54T_T-tBF?y(?U7Hfo;-=ePCy z**9O#%16D**^AZVuXms0c>aH8=b-hl+4=hEZFOh%?L(=u(>$H~vN_nTzqs$d*=_As z&Pt{B^6~cdi?y9EgXY_trLBYe)3d|do4xvN@AzxusPMkuI(ql8y7~34*yyaxmfx*5 zS8EqL%bnvlpSMc8h1UDh()?{<`{KI%=4K}z?i{wy2i=qNhwkUI&Fg=2bn?*nTB@Gy z)NbRq2$Xse->r>$2Zf!@hZlEOg|*}5y~Ca2*_+e7?YDRP+r8b5+kUNb-#cz^+^)uV zqut8s=Faxs>g?$FViA;VEbebqj~+&wZ*Jcooxj_ztc<>{ly-|}7jH`Y+lAHs`qAp# zUcXR&bGBQ!dw=uxqPBnZu(`DLsj$~sJ!^FP_p_zJ;!3@~^6q@))8_iSjl0d>&itoZ zJer?dTtfxt_`r*TTrFy)*H`=-z_3MM;%I#|TroM5p zz4NX=d%sp(ydK`XXv|*>*4`bzSlXR0*NzWbgKF_^)Q#6}FJ6BfpY9coHy_qIbA`LZ z#m&aU!Pbl8)lb`nLT9Dd@4wjoynea`Iu7S5m3N=d-xj)O?c3Sb!piL0i#MnHqvM;E z&i+;D{n7i{LwWCE{nKiH?_m36a+_bGLR}j~Bn(G%CkuSB=*0)y^`;eBEhp zmTtaw8)x?yUpIeV+^>C^+bApz`m>#r!qsM>)48}99G7OxFPeqX#pk`vo7%(T-hJ=% z=wS2H!CN%NNxfCM*s2}IH!GXHw{Jh~ot)3F z*N^AcmagxvH!-aWXP@_$ORf9L@n&z~w0Cm;j{4+u>GW%_85bVj)ZZZI;l+75K0aNE zTVHne-&cQDuI`S%v>FTjwZUjuC?0fonw`C)mE+G#^W7I)m?PI~FYfQx`i=J|z0Uf6 ze=+VKe;T|vDU~;Fx6ex#h3fLr;l-!5w~N;+dkdqt{fDJq{9Zfl{YpZCsdsbd~QK+wdZLGxmUn`$_(A&`5dnbRV%ccJ3y{oIM*RQADx{(Ul{HyCn zk$t%J<7?dQ&&ik6`cXK!mi6Oo_k7r{l@9Md72cjS*RIR0_q!)=U#y?KJv=$x+AX~K zS}1Om2Zh3X;cC7E?7tL?8@qiHr`=$4rhdawqgXO)&+2;G@yW-wS@y$v3 z`0juG+{xF2v(9k8aJ_x|_TjY9TJM}6&sMjp+hFF~x2>zuPV4&Mw!U?+clz%1qFp$^ zhx_C0ho!hXf7W^T_RH1I#m?u^`%kUXr_gWIFsZnN|D@YCR`etmeh zf8J>{->h6cw0ecn?8@j(f6$r#e70Yxx8973qxfODdoemMTrVsl#Iy5$W%qFR^lqs% zyL-R1en0$F?3_2h?(eU4FJ?av8&}=Jo4fn_tKHuD?!%W(;ppym_e-;NI9J#|Y%G7w z?_6vgt)HK79~2th_mzu>owKiJpF|i6<7 zz!(x|jdx$WnSxMML*mWe7MA9#t*g7z-Np6J>ZiH2!_vy3L9~jdcPZ45#haPNEO6aZ!nIM_YvW@GZ)pm}K zLFQ74EfC(anoP$13s;beex6@lM*K4(SC(CEg4x_HR|DWO9&h-c2-vU8MO(*ZTf4CJ z<|9+pqnf*P%gAiTWwY6@QG(lXsq%5-=%`%zxOsX~sO%mcTHt&cVyvoMBP<>r?IUX2 z)^y`U7S4~wol@~lfatOwd^3L(UIUNtgx^u1@3L zBQM=1tSIgn3eIEXIl*p$&Kpty`IY()5q`o8Beb&(w~mUZm@H?zmEsPt8;5{g4IY5G zvGyiVKBK8%plAdzqH82Z8z_&rR1y=xHsH1j`v`|OvXw;3lO0ym3tN9cDa7-OxJagV zn+HRsrjN%dlCbxK-NTPM+|qstoT|7x0bsiT`4uTp8DSoM%eW}Po2a}#$wL@>lL6gJ zLQ)`rw&qTTUXv=)pLajRjST(6Tzb&l{5IqZ*Nh}K6?+(AOwH*o330lNStQ2b(xdpC3}6bec)Q67YH38>r0myO!cmc%Z6uGo~W7k59$TywKGZ+P(~0Ti&l0S?@Wnm-Uhg5-F-FYsd zS90Gc>{Xv=%q~bzD^6*8a@U(u_3HAxgJ^bax9#cXvq0&|QKs zbhmU3AV_x#NJ)(#At9l3yo1;Ky}$duznRaO+3Q*BJZqh`_WtLbeb$Kzc8!YU_Y*G) zh^m9zv-#h&78;7)akEceRMXW@brp0!8yqYfdpTat+_8g}vvF%wDP6F%S$$+q!qw25 zTKA(TpG&rnHJ(?we4K_8|5(|f^HMH6kva?_gjy}H@czQKqP3ku&Www3a>i@igJZ_q zA82?|JDOE{N%54Nj}=*?&}K07u6ssQT+v0_%9yU8+S17ghd`C@t z`YsH)+)649`R=#p7r|Jy@CwU6Q2n+9Tb5g|4@okIR@a8DedGcAX32wxHqIidz zPPVM=rL9evrXL~3cwU2Pwenl$lmcV;%+K4k6Mdeu@o6RXvbEL1vs{xta)CE|0H%ns zNYTiW+wis0d&?7PrQ>+70g{!hx1ewjD z-%36&T|DJ(U$n>xZbHj15h{QTE0@pmN!ey?^lDVRJnBJlcbNutjlP)Iweh@IsCm7A zEy?G7RFu6((~Y)nq9BZ;yobF0OB2LyS`8hAt8TR%k+7EPy3)NPPezhl?6U6rHh@al z=wfUH4x~dm3tZ*uGj>B4B@XHqRQY76k+|%lL>tTLl}5^G0cCn~g$jb4lP}vTz-rIC zgq2=b+Ug$tD*Rr}2%?s9pUIgZf6bi276`bp17RT+=K*(7#=!)L`h-LL?O4hp1}C_e zT}&T0!!ca%8+M=OwUHBN9pJ5`yzimj%n#K}D)F-XVDn10SQ+n%pzJ8B=BjitO>D-n zQDt{3tS4*hdS-nds(z5~g}v=gYc9mHN#ZfQrKc*hx9qLfIvb)P@&`tZb?k2r2E!&}W#DZWO9WXvwn;GWrNAb<5I!r?l`c&5! z6>jnb>^S#KPSOIxtmT%oasr-nOKIOpi;C(P9BUYEEvc7lnIk0Da2R)tr9DB5$fj~= zn_P>B!=c7}{9OJc+dJW5;aF7mx`ILma8HJ4f7G;eH63%;G7p6F#{g?r+s$xi3eB(P z3&ZA(L&BuWPk{?N)?~9(kXC4r7)#yN?lHvtaS&oj*@F4>3U9 z$ubl8V#k3cmR4S-^p1Zkvo>la1}(_dxulCrc~mN2@NAbKJ0mIKMpGn!|3-@lRe|P| zP)WgKD9J?A+6N3!_>w4}uRkUZCMIa0c9Q(S#Sga4DGP_F#P(MPg&rj`wcqRX&zM%@ zq35qqu_0+KjzQk~d~R$Udp}}8OAzHoj!lS{{8N6FwO(^^%T#>bROF{(2%D}1EXiQ{;8 z>*bOe;vVlI`k!__7=BWnQ5sx7U=x&xbx$F}xN;S&gZE+ zT^mhZxUt9~GU5$-OxM`oC&4V7KB);!j?Kb~&-Vv!iIH;6zLfj-`TLT5j`xFW6ysq$QvATu5O;T}BI63VvW6H-4M27HY z6u75B)8A&oPfu}!~E&`ar*7M{VF7*G0aij$GE zgu75RIzT%Ry}HAx%zO%zujVzagW|@ug)~e<_U+)}C#Qobh{rVU>t$F85mxA!6sla_ zEb1>GeINW@GZW%uxo~5QFRrdQN47z!Iuy+cILoSsG%VSU9AeEfD%eye%YC2x!YMQM zQ((;lK!6^yrvq-&9`$u+xBi7AOAm)}TzNXe8nKO&{Z6`LB;tgZ6Z)R>IDM6MMf#l?`p@7QtYWe@AutNloxF%01oH#_ zfGkK!Be|ZN7qPR(Tp`46fx=@bH^5gd2G0~ZnUs5~EiK@j7O{ejC?uYG6b_zO1|&|k}^R2qw)YHQ1q|&kNvH5i2djJ^#|1o%8GB9J7xK@dc{GvUhqWoRRQ74KtHxI zoRuB;64t6{*nwBEZ`k^b2o*I%t|kFVy0|f{DPk2~9mhJgweYov;eBLEHm;_gZb^rT zg(24vk2tp(S3T$St0D8#D|A#T*&bGu=+ z(RSD{=#PR&q(5mnDTkvIm}x#3P8gqh=-Uj|+oHVUW0=oTl8%cqE!nMryd2(QIT&n@ z!QB$?1-omPTm-G4z1ODRFX;2PhGsC759LCltIQIjc<-dxQZsGY3)aXMUfgCSJI2CH z+sA79aM1NM;%LmWid^z6b2nTq6uzzpvd=nd_3AYIHn%A07p~uG%6Zoit`6OtW2bo3 z;5`U{(8lO~kYy?*$z<>Jf8x!HyZ_Sbh%Torg1;a7ziEeb~ zzKlEj$$Nxz-n(k5z!F}dx~lWl1#Qx5IR4IcU*|fhBn5Q|O1g~xgjh30jR>t4RYrod zS6%wIB?cVtbYf_EEn@Sg);m;|OmE>~JDt8yCY(#C!xbfsu(&d2wS3@Ry#z|WDW8To zzOFf=H-?xj=622~2ukYot**px?kRG$GkH|@tn|iM>dXL9l2jXHmIxQ+LO)2Edw924sk{2+{MD)nb1}UbG}`onjdkebpj4 z7xbZ;IvX2^&Peh3tRC64c~%W9N+KhAi5q*lX;;S`J2B>vQv(sexp4oQv}Yjr!W&&q zX)x@Jg(}Qw0@pG*9-93VAFbuk`B#-S!vub~LF1ckf%1b(xA9*}`lTIdR_>DX1%4wq z=MJ__^l|$$J*&IEk*@g8)&Kw&F20>Cmg{x;zNtS3QC3lmOgP8ckzj5*L4*lj?3rP1 z8+uGTm=$cl&;)sXT}w*@I5+ym;C_IjbDzocg({ zYZxAqt|@ww@s;Kf)}8^Z2zys>xe$<47SLvAV=vhYBD1cVlXXqEF#q&3BaXzJdUW-e?C9=F76k;r0?lj3Y?%#m$Q zb}7Eex4p4%s}SF5rO+lf&S`RWMB~a(yI&%dRP}~1c)fBVowxcyNr6b2V@EzRg zDQe5Jxr0VJoN%j;N9_r2j0azylXm>zJ;)8qw}2;yz)2p{SUlS{S3I)#o{a>5)fYLW zfnj<88Mx*4nRT<0aF=(3gPc?L1=2RJ_cP!oRMx>e6e_EJ*L=m;GuU=BZAo_AG&zEH z^E{g;F8&6;Jk&H->56Q-MaH{#f5(IgwZq6metE!@R6+5MSguA&Q^-A|HVt97ER%Vt zm$%b8C{!kvoA~_$Xd7HOW=T`(rSAuLD#F+yJs+aGb3n+_@E3s-ci2j^_>FtkSaKIVgaw`{< zf;l8IwX-B>NCUqpbV`*XtrYv@pBs?z5`>~{xp}GJM(6=gof@}v6@pnyaeuos;b&)@ z8wLbDad6SVlCJdG&jVBQ$i&X~tF-1q9y{vE$F7t8xT;X35Yw6XO>Kb7*<1AFu@$k<~Bu{k6x>13Zt^GGQ1ZV4*7Z8efoIP%Q8OCWykhmk) zMb>AVHqAOm=!*BXt&Zudn|AT)<^f;PQsXGO;s#tOjLmX?IsMW?pX4;j^3YqKE$n3~ zI#_6kaCGEd+=A-4GEi47V;dXocLv_Qu`6crw33AgNXChUHQ- zL&fsF{p$vJ>%VkLr_&4eVJa$8K_Iz+oqzjZ=h3aK< zTB}E;hPriV_=Qe+a9K^wbA11}M+z={Ow4OTlx+nnB#GocU#yRG8HT~akodcv!1d){ zRPpMGp~ZHzz2d`g--RFnd1qYp3Vv=h2XAUHF1+EYFLbcrTX@~)5bOL6Nfqo&fstCR zT*j-Xb^aY@{GL=vtvk|*>EnskTFi|1@F;UD7kn@&KI^vxIo4*KDrJ6sn3eMM3+oIC z-+?%={EhW9EFM4h$LfcU&*ukyF~C$2&gJdV62FJif*7A1>93+h$)u zFtL=#rxDN_-bk+YA534S4NuLd#SMs=S|k#7 z{0?IoE8$KN$9xINDB9ISumXy^Jbly1@-X<)$zhBsLby?I5Kt!U@Kl7yIye06Ukfejg&=Q5KGkHnAo_rkE=nC#wlJ% z%u{H#`J;|pcdo_5xcOdva#c6v;-xkp6Eb^brny?q&X7oPImm2*fHD><7FW6oIDdz| z+3Xwd@!QyNmN~4T8}ko+d1lK8nz{1RB1h?2M^S@R0t)+Oti3xNKlwKCwf9)GZ^nf= zqxln$6Sqrf=hdD^s|Z$>GC1J3>AS>6m=|7o>M>x*vY{57>$|U4cX@6sHn@KNdbp<_J`@)nj5gc-oinGfN=w0~-Plj%sGynu4# zZvOV7Q~Bv^7Rs#ykht%ucM|IVVuD;XJUM*8e#v1)OdLrmg8uk?23665Hh*h``YQFZ zQSiKT$bn02jAWL6YLo=tQn|BwwGgi-v1Fmt4)HN_3C-g`OFk_2AmeG-&^gJb(~>Ex z$aL16xP@W2b9^VOHy?4u>!VjID~>N^Z&AU{>y){ek10Fu>ZE-CbxGn|y(YeMplOfL z%D#k|H_FXN46^dogxoQUi?2D?*QS;~YKFQ}j2{nGNLqAiN;|ZtHB7vXpx+3lIMHrh zwS?djybdd;yC7QGAkz5t#N2CtCE=PM{ij&kXltw4?l;?`Zaloj>tf9W1_jdk8;bR` zZX=`2)SVi%%i_1+CT_4pp`8T> zHDlI2$i@nA!l_Hte-UKm!X&}i_=5s^_Lvq@?aWvzZFXr=1AqGsn4}?|X0GHD^TZG9 zi{Kb9nA&PKxrAP5ux3t$sj5;25IMU6$Vp0enq6RErIsfS1&CgvROVz zwPQ~$Z$Gl)Bz|?*(B8MiUuRDU4rTe1W`ce72PTJ(i-_wntGqJXGk5jB$y+7svDs{? znS!f3U-ap=!N$Z#1dW(i?O^NV{%qDL)A_^%j_BcYeEPnxSCjd!wf%{K^gG6kjpGhO zI{A?qb42Y)vLaS1J23nPaIm&Go!UppGlCG;sj3d?7MhiVCULimX2P|V zUsvT*>@W^P9Mi;x8%YnZxIj-ijCq68&()n5%%6Z42jMLvgZ;Py_Hv9w0Pp14U^yvj zljA2uFJHuu;t9mlnwCgXx34o>rCVs$>yP`QRvcMr+;~ow2zm;m7=Pa(c{KMGf+te? zRqv_Id+g;8XlgJ4qvLrV?mOx&S`LO*!VzS}y|KWpxnr<}0NU#j%1P#es>Af~pYQ<* zs-L=>wkV4SGXSAyVE>sP20jC=&ELge4usO;NHIBUUUDA+K zcxAB}jCX4KBOIa^6)H6IM+fM+A%P)}x};<+-kyz+rsaPsqVXC(9)tQ9t}@g9uZ^*aVC_!lT)vsu^LEj%a(^J2dmn-p5+(&Wl z^Q?#Qe1h5Ie5nnh*e|&g_c@F67(>Kykd=`9S*%zL`LW0p@sB(odoVmsx^^ybYT@kF zC;ed7|CYaq_z@9$ii!I-%J+~3KUB~=p1P6gA5z!k_K&v0J+>F%vCN!R%A~Q_2W%X- z9@! z<**!Gj@{f`+sb&(Oj>=E@YxXRrxy+S6nS#Q?$P~?gWRymG3oZX_qH!&Jv>G03(0QD z)?i^2WI&6ZkIEm{Piez02W1rV9U&*=&DNFj2}Zhw1W1feC?6owmKB?@>fR%cd(`e| z5{$;1Wth{^U0*u8k=!o)(Lf@8J$6Q3eHrzM`P68JG^qypUFK9wNkRCU;u-Fu_9-JO z($aClGy1GwHfgytuA<8jI`mctKMVTWgM;c|fi%G)sc9t3Wi1#TA^0NjoaHHWV2}Fv zGWPbBlx6$euH^A!y%Xu#MC=fa-GSXoHTn+BBaTe2hIA5@;DeP+B%77BldkKC+NML4 zy+_Zh&bW&D`6YA9nH%8#WV#LbZ$Sp{tUi{E;9kC>=AHVfSFbV)>A7S(7w?G5HZ>o4 zQxr3Z{$q_oagU7PbvcM~MEm{Np72%xbk4%KJR5irYgxVg41?R(c&>!!{$)Rgo5q=< zj1y%IE9j7Z-fg1K!9-|W@jahk8!ZV7Y5aV1e@rD2?P=;~GZx0Z#6q_rs#gBoBkLrA ziJFDf#N=9SNSUjb#s9yV1T6QpwcGJ>oc5Cxu33@q58I+Sl9O(<}_j34S?I$D`=?;l#dU+gM(c+m2&tOJZ(VT{2T}1qRbr=1o$7>0%G$ zCjb!jGLg6|ioRSr6k<6xabsg9>_`w67#BU@8ftKQPsDMc%eIzmUI&H zu3TH*9+!kU3k3`HJ?c?OP+b>V2@5Crb3d_e94#su9M>XP`-}7=J#NJN-A03h#+A$; zFs3XE*df{~MrPcFu<*i9!EJC&EN(d%8YJ(NPS){km$$r-&yq8WLNzzxQy+CG$g_n=k0I(VU>2$Id5H^hG&_sa8qnp0TQ&5|VbOF4`~#>BBt zg?AzL`jd@4+~(k&ns)4L8kfu0Z5dp}Yy#o^SH17;Pbe`UoSyyc;f3M`M83^awJU0) z_Zqk$Be@8QD6O8D_1oo!s%J@Qa!Gc9wF%@Q!pOhJ!imz9Kb^4&LLR9xu*fi@Vf}WM z6@rL#*GgBItyBbCR3=as35uqp(X0%)#%{@w0`R+wxaY)2li5WWsyF;x^AY!0&1LCd_xC|s-Knc zIoaNl!Bbo-p%;U{P|F0lDyeL&C7w8Peuqr6qrSh?BHWr()Yg;JrdiR{CNd-(L49Td z-aE7a38{&n2DCQZf!l+Iz3FhryK_j9_N_Li`_Kq6VuTlh;_rW--(RJMklh@>Y)qrJ zU0Ox%bBy10)?A!tAO~>A`I4G?%c;cm+yGt}d|MW#EUtYFX2!Apw2>Xb*~S}Os0Eqm zORT+73Z{yYy_RL7!hJLdwYeAHfgeWub#$G(5C~Z^AL9-E5DB4B4n*9*f@VXBXlKjd zUJ_GG`P)PH=$D4i~9N(hH{84vUSQY0Ri8SB1-49%tvI) zS(N+uM~nNvcVbZz7w9hnP=}QD+t{ESD4_-A&+tn();@`r#@|8!YKmy+Z!RZi3=wzo zOay@l8439j;NgSljsL-s7SSRH3!;A;owKQz*Z zIt~E2VOTvtW8?=IA+0?Opxuu^&!NsTAXFG+6qpP8e<4hm&IHf^>F>$Up`9XR<9)Vv97|3^sO1fs%zZUZU* zi3KLO56t{W4+9+mH~u3L`~q74M=Ci7PX8l8FXa)QYOjIbf1roxpt%YlbeO?C(D2_0 z_yb|XPLV-l4-gCyBJ;mJbHbkBf<*rk_{@dU=R7eQ{X;Xkm zA0U_uHRzV=Vc;wVdI`em0dgDsr*6AVTT~8|o|l zOKo8wplAjO0RG2@8c-CZ=9s+ZNC;Js1U&<7l|#KGLEJ!0XoV!gV_6M!R}%CBG*bhm zmjcm06iq=2M1l0C2?*t!0FvRTDFQ*PNRI*Nh%Z92!^WgiuMKf3h z1ppW!1OS-+%Qx)fA0l!njWme#fnHb|!Jyy$7xj_`kvyP@59ne4Uvvb4{^32t!D|Wx z0RVo8gZ{sGCrAF+QbQ5*4+Z*E288uMLm`i#$shltVu1SoMIXpPyq}?YvLFiR`ez^( zbmFgOSq7mYn)^qC27Mw6!hc}mK-hxHzCLJZpw0;JPaV=-e!px&0sv|e$A8D83eA-T zasM&Ou3MpiA`FuLkC6`a7-96MTKPx0w)Y5wtN&vpy8W+kOb`!VA0l}phq$K1y+7AP z21U$sOlZ5@zb<#=L8bfiuL?;XMEp+@Y)=28+J8}}ht%Ah{Y6XvqFoQ@_0?Y#u^9d^ z{7Fm29h5@>#Pg>P*1?Xf^@#eik^=yY|5XQJWDt~70YnQeRrpup+7u9s5|0olV){V$ zAAvBTcMAUs7fTVLa>V(ol2-heGouG|jo>dD1qNaM?@3qtVDX&zuLWXF5&ub{O8TVP z|38I!RCcE207bR-Yom|F6)GsX)*mY7pE1c2}c>DE*NrbX*BUg?c8A In0kQ!0b+Pv0RR91 diff --git a/dist/extension/birb.js b/dist/extension/birb.js index ee81ae3..062135a 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -499,20 +499,21 @@ /** * @param {CanvasRenderingContext2D} ctx - * @param {BirdType} [species] - * @param {number} direction + * @param {number} direction * @param {number} canvasPixelSize + * @param {{ [key: string]: string }} colorScheme + * @param {string[]} tags */ - draw(ctx, direction, canvasPixelSize, species) { + draw(ctx, direction, canvasPixelSize, colorScheme, tags) { // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(species?.tags[0]); + const pixels = this.getPixels(tags[0]); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { const cell = direction === Directions.LEFT ? row[x] : row[pixels[y].length - x - 1]; - ctx.fillStyle = species?.colors[cell] ?? cell; + ctx.fillStyle = colorScheme[cell] ?? cell; ctx.fillRect(x * canvasPixelSize, y * canvasPixelSize, canvasPixelSize, canvasPixelSize); } } } } @@ -575,10 +576,11 @@ * @param {number} direction * @param {number} timeStart The start time of the animation in milliseconds * @param {number} canvasPixelSize The size of a canvas pixel in pixels - * @param {BirdType} [species] The species to use for the animation + * @param {{ [key: string]: string }} colorScheme The color scheme to use for the animation + * @param {string[]} tags The tags to use for the animation * @returns {boolean} Whether the animation is complete */ - draw(ctx, direction, timeStart, canvasPixelSize, species) { + draw(ctx, direction, timeStart, canvasPixelSize, colorScheme, tags) { // Reset cache if animation was restarted if (this.lastTimeStart !== timeStart) { this.#clearCache(); @@ -595,7 +597,7 @@ const currentFrameIndex = this.getCurrentFrameIndex(time); if (this.#shouldRedraw(currentFrameIndex, direction)) { - this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, species); + this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, colorScheme, tags); this.lastFrameIndex = currentFrameIndex; this.lastDirection = direction; } @@ -699,7 +701,7 @@ } } } - return new Layer(paddedHatPixels); + return new Layer(paddedHatPixels, hatName); } /** @@ -823,12 +825,13 @@ /** * Draw the current animation frame - * @param {BirdType} species The species color data + * @param {BirdType} species The species data + * @param {string} [hat] The name of the current hat * @returns {boolean} Whether the animation has completed (for non-looping animations) */ - draw(species) { + draw(species, hat) { const anim = this.animations[this.currentAnimation]; - return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); + return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species.colors, [...species.tags, hat || '']); } @@ -2023,6 +2026,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -2243,7 +2247,7 @@ flySomewhere(); } - if (birb.draw(SPECIES[currentSpecies])) { + if (birb.draw(SPECIES[currentSpecies], currentHat)) { birb.setAnimation(Animations.STILL); } @@ -2332,7 +2336,7 @@ if (!featherCtx) { return; } - FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type); + FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type.colors, type.tags); document.body.appendChild(featherCanvas); onClick(featherCanvas, () => { unlockBird(birdType); @@ -2478,7 +2482,7 @@ if (!speciesCtx) { return; } - birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type); + birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type.colors, type.tags); speciesElement.appendChild(speciesCanvas); content.appendChild(speciesElement); if (unlocked) { diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index ac84a97..e41a871 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -504,20 +504,21 @@ module.exports = class PocketBird extends Plugin { /** * @param {CanvasRenderingContext2D} ctx - * @param {BirdType} [species] - * @param {number} direction + * @param {number} direction * @param {number} canvasPixelSize + * @param {{ [key: string]: string }} colorScheme + * @param {string[]} tags */ - draw(ctx, direction, canvasPixelSize, species) { + draw(ctx, direction, canvasPixelSize, colorScheme, tags) { // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(species?.tags[0]); + const pixels = this.getPixels(tags[0]); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { const cell = direction === Directions.LEFT ? row[x] : row[pixels[y].length - x - 1]; - ctx.fillStyle = species?.colors[cell] ?? cell; + ctx.fillStyle = colorScheme[cell] ?? cell; ctx.fillRect(x * canvasPixelSize, y * canvasPixelSize, canvasPixelSize, canvasPixelSize); } } } } @@ -580,10 +581,11 @@ module.exports = class PocketBird extends Plugin { * @param {number} direction * @param {number} timeStart The start time of the animation in milliseconds * @param {number} canvasPixelSize The size of a canvas pixel in pixels - * @param {BirdType} [species] The species to use for the animation + * @param {{ [key: string]: string }} colorScheme The color scheme to use for the animation + * @param {string[]} tags The tags to use for the animation * @returns {boolean} Whether the animation is complete */ - draw(ctx, direction, timeStart, canvasPixelSize, species) { + draw(ctx, direction, timeStart, canvasPixelSize, colorScheme, tags) { // Reset cache if animation was restarted if (this.lastTimeStart !== timeStart) { this.#clearCache(); @@ -600,7 +602,7 @@ module.exports = class PocketBird extends Plugin { const currentFrameIndex = this.getCurrentFrameIndex(time); if (this.#shouldRedraw(currentFrameIndex, direction)) { - this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, species); + this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, colorScheme, tags); this.lastFrameIndex = currentFrameIndex; this.lastDirection = direction; } @@ -704,7 +706,7 @@ module.exports = class PocketBird extends Plugin { } } } - return new Layer(paddedHatPixels); + return new Layer(paddedHatPixels, hatName); } /** @@ -828,12 +830,13 @@ module.exports = class PocketBird extends Plugin { /** * Draw the current animation frame - * @param {BirdType} species The species color data + * @param {BirdType} species The species data + * @param {string} [hat] The name of the current hat * @returns {boolean} Whether the animation has completed (for non-looping animations) */ - draw(species) { + draw(species, hat) { const anim = this.animations[this.currentAnimation]; - return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); + return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species.colors, [...species.tags, hat || '']); } @@ -2066,6 +2069,7 @@ module.exports = class PocketBird extends Plugin { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -2286,7 +2290,7 @@ module.exports = class PocketBird extends Plugin { flySomewhere(); } - if (birb.draw(SPECIES[currentSpecies])) { + if (birb.draw(SPECIES[currentSpecies], currentHat)) { birb.setAnimation(Animations.STILL); } @@ -2375,7 +2379,7 @@ module.exports = class PocketBird extends Plugin { if (!featherCtx) { return; } - FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type); + FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type.colors, type.tags); document.body.appendChild(featherCanvas); onClick(featherCanvas, () => { unlockBird(birdType); @@ -2521,7 +2525,7 @@ module.exports = class PocketBird extends Plugin { if (!speciesCtx) { return; } - birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type); + birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type.colors, type.tags); speciesElement.appendChild(speciesCanvas); content.appendChild(speciesElement); if (unlocked) { diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 33cce0c..39bc16f 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -513,20 +513,21 @@ /** * @param {CanvasRenderingContext2D} ctx - * @param {BirdType} [species] - * @param {number} direction + * @param {number} direction * @param {number} canvasPixelSize + * @param {{ [key: string]: string }} colorScheme + * @param {string[]} tags */ - draw(ctx, direction, canvasPixelSize, species) { + draw(ctx, direction, canvasPixelSize, colorScheme, tags) { // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(species?.tags[0]); + const pixels = this.getPixels(tags[0]); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { const cell = direction === Directions.LEFT ? row[x] : row[pixels[y].length - x - 1]; - ctx.fillStyle = species?.colors[cell] ?? cell; + ctx.fillStyle = colorScheme[cell] ?? cell; ctx.fillRect(x * canvasPixelSize, y * canvasPixelSize, canvasPixelSize, canvasPixelSize); } } } } @@ -589,10 +590,11 @@ * @param {number} direction * @param {number} timeStart The start time of the animation in milliseconds * @param {number} canvasPixelSize The size of a canvas pixel in pixels - * @param {BirdType} [species] The species to use for the animation + * @param {{ [key: string]: string }} colorScheme The color scheme to use for the animation + * @param {string[]} tags The tags to use for the animation * @returns {boolean} Whether the animation is complete */ - draw(ctx, direction, timeStart, canvasPixelSize, species) { + draw(ctx, direction, timeStart, canvasPixelSize, colorScheme, tags) { // Reset cache if animation was restarted if (this.lastTimeStart !== timeStart) { this.#clearCache(); @@ -609,7 +611,7 @@ const currentFrameIndex = this.getCurrentFrameIndex(time); if (this.#shouldRedraw(currentFrameIndex, direction)) { - this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, species); + this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, colorScheme, tags); this.lastFrameIndex = currentFrameIndex; this.lastDirection = direction; } @@ -713,7 +715,7 @@ } } } - return new Layer(paddedHatPixels); + return new Layer(paddedHatPixels, hatName); } /** @@ -837,12 +839,13 @@ /** * Draw the current animation frame - * @param {BirdType} species The species color data + * @param {BirdType} species The species data + * @param {string} [hat] The name of the current hat * @returns {boolean} Whether the animation has completed (for non-looping animations) */ - draw(species) { + draw(species, hat) { const anim = this.animations[this.currentAnimation]; - return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); + return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species.colors, [...species.tags, hat || '']); } @@ -2028,6 +2031,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -2248,7 +2252,7 @@ flySomewhere(); } - if (birb.draw(SPECIES[currentSpecies])) { + if (birb.draw(SPECIES[currentSpecies], currentHat)) { birb.setAnimation(Animations.STILL); } @@ -2337,7 +2341,7 @@ if (!featherCtx) { return; } - FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type); + FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type.colors, type.tags); document.body.appendChild(featherCanvas); onClick(featherCanvas, () => { unlockBird(birdType); @@ -2483,7 +2487,7 @@ if (!speciesCtx) { return; } - birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type); + birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type.colors, type.tags); speciesElement.appendChild(speciesCanvas); content.appendChild(speciesElement); if (unlocked) { diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 2f15ba2..3fe2a00 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -499,20 +499,21 @@ /** * @param {CanvasRenderingContext2D} ctx - * @param {BirdType} [species] - * @param {number} direction + * @param {number} direction * @param {number} canvasPixelSize + * @param {{ [key: string]: string }} colorScheme + * @param {string[]} tags */ - draw(ctx, direction, canvasPixelSize, species) { + draw(ctx, direction, canvasPixelSize, colorScheme, tags) { // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(species?.tags[0]); + const pixels = this.getPixels(tags[0]); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { const cell = direction === Directions.LEFT ? row[x] : row[pixels[y].length - x - 1]; - ctx.fillStyle = species?.colors[cell] ?? cell; + ctx.fillStyle = colorScheme[cell] ?? cell; ctx.fillRect(x * canvasPixelSize, y * canvasPixelSize, canvasPixelSize, canvasPixelSize); } } } } @@ -575,10 +576,11 @@ * @param {number} direction * @param {number} timeStart The start time of the animation in milliseconds * @param {number} canvasPixelSize The size of a canvas pixel in pixels - * @param {BirdType} [species] The species to use for the animation + * @param {{ [key: string]: string }} colorScheme The color scheme to use for the animation + * @param {string[]} tags The tags to use for the animation * @returns {boolean} Whether the animation is complete */ - draw(ctx, direction, timeStart, canvasPixelSize, species) { + draw(ctx, direction, timeStart, canvasPixelSize, colorScheme, tags) { // Reset cache if animation was restarted if (this.lastTimeStart !== timeStart) { this.#clearCache(); @@ -595,7 +597,7 @@ const currentFrameIndex = this.getCurrentFrameIndex(time); if (this.#shouldRedraw(currentFrameIndex, direction)) { - this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, species); + this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, colorScheme, tags); this.lastFrameIndex = currentFrameIndex; this.lastDirection = direction; } @@ -699,7 +701,7 @@ } } } - return new Layer(paddedHatPixels); + return new Layer(paddedHatPixels, hatName); } /** @@ -823,12 +825,13 @@ /** * Draw the current animation frame - * @param {BirdType} species The species color data + * @param {BirdType} species The species data + * @param {string} [hat] The name of the current hat * @returns {boolean} Whether the animation has completed (for non-looping animations) */ - draw(species) { + draw(species, hat) { const anim = this.animations[this.currentAnimation]; - return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); + return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species.colors, [...species.tags, hat || '']); } @@ -2008,6 +2011,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -2228,7 +2232,7 @@ flySomewhere(); } - if (birb.draw(SPECIES[currentSpecies])) { + if (birb.draw(SPECIES[currentSpecies], currentHat)) { birb.setAnimation(Animations.STILL); } @@ -2317,7 +2321,7 @@ if (!featherCtx) { return; } - FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type); + FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type.colors, type.tags); document.body.appendChild(featherCanvas); onClick(featherCanvas, () => { unlockBird(birdType); @@ -2463,7 +2467,7 @@ if (!speciesCtx) { return; } - birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type); + birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type.colors, type.tags); speciesElement.appendChild(speciesCanvas); content.appendChild(speciesElement); if (unlocked) { diff --git a/dist/web/birb.js b/dist/web/birb.js index 2f15ba2..3fe2a00 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -499,20 +499,21 @@ /** * @param {CanvasRenderingContext2D} ctx - * @param {BirdType} [species] - * @param {number} direction + * @param {number} direction * @param {number} canvasPixelSize + * @param {{ [key: string]: string }} colorScheme + * @param {string[]} tags */ - draw(ctx, direction, canvasPixelSize, species) { + draw(ctx, direction, canvasPixelSize, colorScheme, tags) { // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(species?.tags[0]); + const pixels = this.getPixels(tags[0]); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { const cell = direction === Directions.LEFT ? row[x] : row[pixels[y].length - x - 1]; - ctx.fillStyle = species?.colors[cell] ?? cell; + ctx.fillStyle = colorScheme[cell] ?? cell; ctx.fillRect(x * canvasPixelSize, y * canvasPixelSize, canvasPixelSize, canvasPixelSize); } } } } @@ -575,10 +576,11 @@ * @param {number} direction * @param {number} timeStart The start time of the animation in milliseconds * @param {number} canvasPixelSize The size of a canvas pixel in pixels - * @param {BirdType} [species] The species to use for the animation + * @param {{ [key: string]: string }} colorScheme The color scheme to use for the animation + * @param {string[]} tags The tags to use for the animation * @returns {boolean} Whether the animation is complete */ - draw(ctx, direction, timeStart, canvasPixelSize, species) { + draw(ctx, direction, timeStart, canvasPixelSize, colorScheme, tags) { // Reset cache if animation was restarted if (this.lastTimeStart !== timeStart) { this.#clearCache(); @@ -595,7 +597,7 @@ const currentFrameIndex = this.getCurrentFrameIndex(time); if (this.#shouldRedraw(currentFrameIndex, direction)) { - this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, species); + this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, colorScheme, tags); this.lastFrameIndex = currentFrameIndex; this.lastDirection = direction; } @@ -699,7 +701,7 @@ } } } - return new Layer(paddedHatPixels); + return new Layer(paddedHatPixels, hatName); } /** @@ -823,12 +825,13 @@ /** * Draw the current animation frame - * @param {BirdType} species The species color data + * @param {BirdType} species The species data + * @param {string} [hat] The name of the current hat * @returns {boolean} Whether the animation has completed (for non-looping animations) */ - draw(species) { + draw(species, hat) { const anim = this.animations[this.currentAnimation]; - return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); + return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species.colors, [...species.tags, hat || '']); } @@ -2008,6 +2011,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -2228,7 +2232,7 @@ flySomewhere(); } - if (birb.draw(SPECIES[currentSpecies])) { + if (birb.draw(SPECIES[currentSpecies], currentHat)) { birb.setAnimation(Animations.STILL); } @@ -2317,7 +2321,7 @@ if (!featherCtx) { return; } - FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type); + FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type.colors, type.tags); document.body.appendChild(featherCanvas); onClick(featherCanvas, () => { unlockBird(birdType); @@ -2463,7 +2467,7 @@ if (!speciesCtx) { return; } - birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type); + birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type.colors, type.tags); speciesElement.appendChild(speciesCanvas); content.appendChild(speciesElement); if (unlocked) { diff --git a/src/animation/anim.js b/src/animation/anim.js index abdfad0..c41d5db 100644 --- a/src/animation/anim.js +++ b/src/animation/anim.js @@ -59,10 +59,11 @@ class Anim { * @param {number} direction * @param {number} timeStart The start time of the animation in milliseconds * @param {number} canvasPixelSize The size of a canvas pixel in pixels - * @param {BirdType} [species] The species to use for the animation + * @param {{ [key: string]: string }} colorScheme The color scheme to use for the animation + * @param {string[]} tags The tags to use for the animation * @returns {boolean} Whether the animation is complete */ - draw(ctx, direction, timeStart, canvasPixelSize, species) { + draw(ctx, direction, timeStart, canvasPixelSize, colorScheme, tags) { // Reset cache if animation was restarted if (this.lastTimeStart !== timeStart) { this.#clearCache(); @@ -79,7 +80,7 @@ class Anim { const currentFrameIndex = this.getCurrentFrameIndex(time); if (this.#shouldRedraw(currentFrameIndex, direction)) { - this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, species); + this.frames[currentFrameIndex].draw(ctx, direction, canvasPixelSize, colorScheme, tags); this.lastFrameIndex = currentFrameIndex; this.lastDirection = direction; } diff --git a/src/animation/frame.js b/src/animation/frame.js index b623e41..5f75869 100644 --- a/src/animation/frame.js +++ b/src/animation/frame.js @@ -53,20 +53,21 @@ class Frame { /** * @param {CanvasRenderingContext2D} ctx - * @param {BirdType} [species] - * @param {number} direction + * @param {number} direction * @param {number} canvasPixelSize + * @param {{ [key: string]: string }} colorScheme + * @param {string[]} tags */ - draw(ctx, direction, canvasPixelSize, species) { + draw(ctx, direction, canvasPixelSize, colorScheme, tags) { // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(species?.tags[0]); + const pixels = this.getPixels(tags[0]); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { const cell = direction === Directions.LEFT ? row[x] : row[pixels[y].length - x - 1]; - ctx.fillStyle = species?.colors[cell] ?? cell; + ctx.fillStyle = colorScheme[cell] ?? cell; ctx.fillRect(x * canvasPixelSize, y * canvasPixelSize, canvasPixelSize, canvasPixelSize); }; }; diff --git a/src/application.js b/src/application.js index 713e79b..5b4ad56 100644 --- a/src/application.js +++ b/src/application.js @@ -43,6 +43,7 @@ import { switchMenuItems, MENU_EXIT_ID } from './menu.js'; +import { HAT } from './hats.js'; /** @@ -236,6 +237,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -456,7 +458,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { flySomewhere(); } - if (birb.draw(SPECIES[currentSpecies])) { + if (birb.draw(SPECIES[currentSpecies], currentHat)) { birb.setAnimation(Animations.STILL); } @@ -548,7 +550,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { if (!featherCtx) { return; } - FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type); + FEATHER_ANIMATIONS.feather.draw(featherCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, type.colors, type.tags); document.body.appendChild(featherCanvas); onClick(featherCanvas, () => { unlockBird(birdType); @@ -695,7 +697,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { if (!speciesCtx) { return; } - birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type); + birb.getFrames().base.draw(speciesCtx, Directions.RIGHT, CANVAS_PIXEL_SIZE, type.colors, type.tags); speciesElement.appendChild(speciesCanvas); content.appendChild(speciesElement); if (unlocked) { diff --git a/src/birb.js b/src/birb.js index 83f1490..cfc2c65 100644 --- a/src/birb.js +++ b/src/birb.js @@ -126,12 +126,13 @@ export class Birb { /** * Draw the current animation frame - * @param {BirdType} species The species color data + * @param {BirdType} species The species data + * @param {string} [hat] The name of the current hat * @returns {boolean} Whether the animation has completed (for non-looping animations) */ - draw(species) { + draw(species, hat) { const anim = this.animations[this.currentAnimation]; - return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species); + return anim.draw(this.ctx, this.direction, this.animStart, this.canvasPixelSize, species.colors, [...species.tags, hat || '']); } diff --git a/src/hats.js b/src/hats.js index 8d01392..c5526a6 100644 --- a/src/hats.js +++ b/src/hats.js @@ -2,7 +2,7 @@ import Layer from "./animation/layer.js"; import { PALETTE } from "./animation/sprites.js"; import { getLayerPixels } from "./shared.js"; -const HAT = { +export const HAT = { TOP_HAT: 'top-hat' }; @@ -96,5 +96,5 @@ function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) } } } - return new Layer(paddedHatPixels); + return new Layer(paddedHatPixels, hatName); } \ No newline at end of file From 4838457054bb4ea600963b0767b25bebb8ef0301 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Sun, 18 Jan 2026 19:25:17 -0500 Subject: [PATCH 05/24] Create none hat --- dist/extension.zip | Bin 150770 -> 150809 bytes dist/extension/birb.js | 6 +++++- dist/obsidian/main.js | 6 +++++- dist/userscript/birb.user.js | 6 +++++- dist/web/birb.embed.js | 6 +++++- dist/web/birb.js | 6 +++++- src/application.js | 2 +- src/hats.js | 4 ++++ 8 files changed, 30 insertions(+), 6 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index a55ca9fa192aa742fc66b2e1478c69dc955237fd..495adcb233d38264dede97804939a9dcb11e4444 100644 GIT binary patch delta 26447 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

l` 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 z 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 G+W!Gs@p_E_ diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 062135a..f50db79 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -608,6 +608,7 @@ } const HAT = { + NONE: 'none', TOP_HAT: 'top-hat' }; @@ -621,6 +622,9 @@ down: [] }; for (const hatName in HAT) { + if (hatName === 'NONE') { + continue; + } const hatKey = HAT[hatName]; const hatLayer = buildHatLayer(spriteSheet, hatKey, false); const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); @@ -2026,7 +2030,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.NONE; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index e41a871..93d874e 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -613,6 +613,7 @@ module.exports = class PocketBird extends Plugin { } const HAT = { + NONE: 'none', TOP_HAT: 'top-hat' }; @@ -626,6 +627,9 @@ module.exports = class PocketBird extends Plugin { down: [] }; for (const hatName in HAT) { + if (hatName === 'NONE') { + continue; + } const hatKey = HAT[hatName]; const hatLayer = buildHatLayer(spriteSheet, hatKey, false); const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); @@ -2069,7 +2073,7 @@ module.exports = class PocketBird extends Plugin { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.NONE; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 39bc16f..081a52a 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -622,6 +622,7 @@ } const HAT = { + NONE: 'none', TOP_HAT: 'top-hat' }; @@ -635,6 +636,9 @@ down: [] }; for (const hatName in HAT) { + if (hatName === 'NONE') { + continue; + } const hatKey = HAT[hatName]; const hatLayer = buildHatLayer(spriteSheet, hatKey, false); const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); @@ -2031,7 +2035,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.NONE; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 3fe2a00..c7f134f 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -608,6 +608,7 @@ } const HAT = { + NONE: 'none', TOP_HAT: 'top-hat' }; @@ -621,6 +622,9 @@ down: [] }; for (const hatName in HAT) { + if (hatName === 'NONE') { + continue; + } const hatKey = HAT[hatName]; const hatLayer = buildHatLayer(spriteSheet, hatKey, false); const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); @@ -2011,7 +2015,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.NONE; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/web/birb.js b/dist/web/birb.js index 3fe2a00..c7f134f 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -608,6 +608,7 @@ } const HAT = { + NONE: 'none', TOP_HAT: 'top-hat' }; @@ -621,6 +622,9 @@ down: [] }; for (const hatName in HAT) { + if (hatName === 'NONE') { + continue; + } const hatKey = HAT[hatName]; const hatLayer = buildHatLayer(spriteSheet, hatKey, false); const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); @@ -2011,7 +2015,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.NONE; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/src/application.js b/src/application.js index 5b4ad56..08dab9c 100644 --- a/src/application.js +++ b/src/application.js @@ -237,7 +237,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.NONE; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/src/hats.js b/src/hats.js index c5526a6..b71a083 100644 --- a/src/hats.js +++ b/src/hats.js @@ -3,6 +3,7 @@ import { PALETTE } from "./animation/sprites.js"; import { getLayerPixels } from "./shared.js"; export const HAT = { + NONE: 'none', TOP_HAT: 'top-hat' }; @@ -16,6 +17,9 @@ export function createHatLayers(spriteSheet) { down: [] }; for (const hatName in HAT) { + if (hatName === 'NONE') { + continue; + } const hatKey = HAT[hatName]; const hatLayer = buildHatLayer(spriteSheet, hatKey, false); const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); From cf968dfec454524a315a0e71da3b5b4ee6b1cdf0 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Sun, 18 Jan 2026 19:30:07 -0500 Subject: [PATCH 06/24] Move heart up --- aseprite/birb.aseprite | Bin 2707 -> 2707 bytes dist/extension.zip | Bin 150809 -> 150687 bytes dist/extension/birb.js | 4 ++-- dist/obsidian/main.js | 4 ++-- dist/userscript/birb.user.js | 4 ++-- dist/web/birb.embed.js | 4 ++-- dist/web/birb.js | 4 ++-- sprites/birb.png | Bin 1156 -> 1077 bytes src/application.js | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/aseprite/birb.aseprite b/aseprite/birb.aseprite index 2bfc5517aba7777693f9de3feea0808d221cd528..4dbd106c2b23c899eb4e1ecee3d1133777f59b31 100644 GIT binary patch delta 44 ycmbO%I$3lB2NR>vW=^IZtc)C!53%=8{>!n3k!kWjj@3X`)nsKZBOot~%N77W5DrfO delta 47 zcmbO%I$3lB2NR?4W=^IZtc;wK53%<%vTXjxp~^T}p2LWdW%56c%E`)HMvTmp!?SC diff --git a/dist/extension.zip b/dist/extension.zip index 495adcb233d38264dede97804939a9dcb11e4444..daf3d35be569651872b1dbbc90ff027fba83a5ab 100644 GIT binary patch delta 27735 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 diff --git a/src/application.js b/src/application.js index 08dab9c..5b4ad56 100644 --- a/src/application.js +++ b/src/application.js @@ -237,7 +237,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.NONE; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ From 94454a2338025067fd0e1b72e46a44be5e043871 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Sun, 18 Jan 2026 19:32:38 -0500 Subject: [PATCH 07/24] Fix missing tuft sprites --- aseprite/hats.aseprite | Bin 370 -> 371 bytes dist/extension.zip | Bin 150687 -> 150797 bytes dist/extension/birb.js | 2 +- dist/obsidian/main.js | 2 +- dist/userscript/birb.user.js | 2 +- dist/web/birb.embed.js | 2 +- dist/web/birb.js | 2 +- sprites/birb.png | Bin 1077 -> 1157 bytes 8 files changed, 5 insertions(+), 5 deletions(-) diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite index 0ddd6b090a528ba0e5251a931909eded59489377..e2cfa0b31653f6425256783d9e63a6bda9987036 100644 GIT binary patch delta 36 scmeyw^qGmVcp_sx2+be4SmX~~dvAv1$!x8bX0RB%7s{jB1 delta 35 rcmey&^ofbFXd+`h2v2*=#KUVQ&VFJVZ6XGuc^?DAe diff --git a/dist/extension.zip b/dist/extension.zip index daf3d35be569651872b1dbbc90ff027fba83a5ab..157c870dc0b76eef88ccf60ebb0baf13f00fd366 100644 GIT binary patch delta 28026 zcmV(-K-|BdnF)=W39zIEe+>jPTmS$7000000000000#g70Agu!VlHZP<-PfLTQ`yh z`m_44xKU4!>Byq?&6A`FU;ssDBR22$^LZOgrj(hb{r{9Zm&!aDYn|U@K#?f#z=+sBgfBxrhf19cId&5z* z(;384YZ(2?S~CZw-O9^oe(44NKHYz{hadd=E1PuVQPhZQPZ(U)4k z-;JxiuhDrs9<}3ve|8kzu&2&2ihI>sH*T=e!rx}x&^p5%;-e#+QD6y*=>DtU*===D zz45xbt9Hk68ssn@DNHF9(#`mTmd^&V!=n|CiaJPxN~am+elp`$7&D{xpno6r;`^vH z81x6ZS<@mK#D9$A;V5oIwYb?I#Q0CA*NTA1>~nO4G0fPZe;J7B?orit5BTO!?bfs) z?OjQVF2zAy9mP?#7wuIJ52Cmm-^9I9bl(}ZBd{VG-p2J#vjhBufbl3E43&F^pp>d! z>uXf+R)@nQ$U$c56=gth>y18S*XT4%ffEa2R8oXMhLHI;)$7=lEv?)z7?sr4~9W$6eONLT*paGS0@yn=mhcQ2oe*G=F>vtMo zqpHmPG-3O_Vz*Pj&Y50cm})vcizvt;&`6uO7ek)we{3}SBFe?mgTlrSq1E(eqyD(w zj(d%yu4<%LY)#H9Ms<57PDQc!!?GDkA)HTzCM4S1F!9&wYb0f(f5Ko?- zhC)!7I}jSd4@`;k^>($_iW`DRJiJ=`ARTHgs!>+bF7r?b+x>B`fq4O1g6O9x&j}@D zWCTAWe~=+zEWe0;`xTm?KFW9F<|z8_|IVoKi>Wc_wAz_fE*+3j|27N8Wn^L0`lC_* zhMia%I({h`QS_DgW@%85ihok2ljf>4D$p19?@=GBctpB12Gv#+Q}%{YzZXcQ)B9Ht zW>om#763HA>EFeog0##*zK6WX_jLB9hhq@@BwQ zz1r>8s`cv+QPKPrK?z6Fg&hexASxkvj|g8QVBfOJ=tD#*@Pk7bV-YbKR69KZGd`a(J_DJzt%oCZIcVHifMN+FZU ze_C18JHx|1%!8f&eGl+tX0e>>eZSen>T-e4i{YnB|C8yV(my1}e&s>|UPk}41jy?L zgIe^`ey1%U^TFb%5DccVu9MrHLG5L9q99FAQLjG&pD@EzU3(fpMrEo|X{WT*4M*C* zNYnZzpaF@@@y;aU$NV=lb>5<{*ygp)e*px{YeM?iCYMomlS==VEjZ8cpXoS@qJSbC zjJ^-)wBnNXiN;FC6l$PsBs0e4H~YreX5#$qK&Jjq+^mkfRtd)WA*ScappSVXMx-i7 zLkhP%PvPJAHcbewr3nYEPP4PbPNRTfp#F=goK#gk4SSkoGhTn-wVO5H9)hwXe{;q2 zVE*48gG?hT#S|k{^hEhl4LGG3{rP8NbXoQqeIT<&8{SkOsB73TKdcY>-R^m(0XsA; znmQGwENsnb=e6F8Wv$F^u7%QGY_UoCF;mir&2aSCjdgwgHTu_oeL1X-+Ie7{TYM4e z-<@8LBY;?W%EC;y=g+_1KKx61f3s6PfQ#t>+@An@nSkY_Q?QpFSW4x0N?!)&rjXzp zx+HTbV!}*}#n&1aZU7g5g)BZOpB9e7mK2%hi!PXI0dor%SPe!dv830#{b9U4hMm;= z5L8KQ7FZ1Z`_iypy^RCIMZRM{)E{yu=XO$BGrEo+2`|0q7g1f-eBy)^e?I9R7I@MT zgoLY;ss}R7t7vqFHQ>FH7ZIU~RwHff49r*{fnC<}7XZ0W`on~!gVs32bY`(hfqT`J9B5?nT^?pDb5w4IbjIUa! z8^bWY>(nRq{?xuK4*dxWe}!ISfbG(s_i^pG{AcH+-S5TtPql%6^&5X~cVRwm!&rIz zbHAhj{ye^o2i54X)9WmB@+0i-bG_+ z%&GwdMVrs(tAmzoT!#~l#Yy40ADnN*kkNwFdeecDLA0S9R%(VRe-sNOFwLf5W}Q5* zU`AG>ZuJptXb$=}_%Xa4bl`FrwquqJ23465(eE%5>7h}F!qtbX4_{5yvecwq9W=e| zJjC4$0BZEx#{0cS{2)fTY24w5U`pEt_p;isAN>pa&bV4{n_jhvlQs{{^nAwt?|=h7 zA%er4_A7&UVPFYTe=oEfrR~B(v@7I+oRTEa@E}#YKj?hs)anL9e-WVz*#jBEV$VXl zimRsX@HKl_t@CSiC0kbRZ*ny5G2LL+<3GPB9{6)^&WMXN$={BLZ6Euq#}D}-_W7~- zsHFW_n`7&*1J$o{(b9AH_=J$^1mNsd>Zv$jG4!{WBzs#Ie{2k$Q@7KDXCbP=amG1( z55D#9g$d`KZWn$ssWhbLu{tC{c0umOxm44|9rFRx{s#U@3q@U5$Gxa?T!w#$elCEz zs}3Hq)3+cE7V$&9JLVo}p_>4&vc3s#OQku=6>Na<_fBKt>%Xw8y9=4y6HF zz@gS8K4whMe=}qxh3Xg32U2hp*8!gx)#7>;>VmjN%j;3O+N=&b)MfC&4LaB#!fV%v z?)$xGBRCHr)dPhf{VohgaL7Db6Bh`_ZIDLB;*BBUiPASOM0d7PnnC`MD4~CaO{rmj z7l*3d`|2adAU%d+qKNCBo%nd8Be9xrQGg5&w;-0?f5h8KOqt_y`kjL3uh~=NjZ8E` z?iNVCH31X+TTR1y_`+c^d8>d;i6}*d$@5F z7iA>sMp}yAg?*8!PDNv44osHA;u%$2AEXGwRLwCM*Rf>fv=w}-@Zc)e^9P}U~r}$U{O7TFx?H(T!K(pUh zxZ9<|8`g-c@PwjG>5@?5M}@FkDDr2sTG!uu$HzPP-R}3{{Y34f<1)*8usgNK(!s$c zKGb3euzWc?0t(yaGrS-1ASpZFKYE4Am<%nc%ikYMJFf_mALrvn%k*0+oD%JJEG`A~ zf4s*pAKeJ0VBQ<2mY4UGDq1{*HZkKW6+rgWkL43BZ{k1!XE^i2TT?^i)Uy1rdW-KZ zDvw|>7ZHGJ>th4w3B~uwLlg)^`Q&uJQus|%QnHH@qug494;7$a!yuP^{FUMX}5i0|BajCjgO_v#wf7B|? z=6Y?tHc>^S(jc(0g8z9nc74f29ZzAxs%}(7$$;NebmmvlNGPAsreCpzfP zr6~$;`Q3xT1sd}86C|1_xxd@~xaDrx3fXsrnkkIJ& zCl^Io63vopbSX>;ZW;r=$~Mxq@3tq}e5pLQr*zr3FuS)@qYf90PtO8E{A zfGOj#6Z5yP-XdQrZnbf`(i2OwbA$8P>VW4A(QVwn#f}`C z-7n;aBMkMlaNTHdVQNwee^o7|Mu~@|qIad(sN}FXQN2>fsOGQ^Rjia6y*ybeHh@$y z`k7U}KIgx&gx^$4J-Fc0lq|C(k|IOI@(uPka3gic%_epxpgt^Xp$yKnXmt;J{rg93 zLt4;?@U}Fg*Hu{Dq-l&Tj5fd_P9&BXNe)V5_umA^q8fI)gB~Idf1r9=I8h!7YkE~g zhu|o!-5>Q^gX%48is4^ofUjm8dlCl3wRkJu)UmqaGy`glt;S-ij$=S`rLj_9$|y}3 zu-xGPQdLqGt8l8ZQLS&SNJZroEq)w5cShoPPjjmxrI9Vx4m`0Zdtx&;&Ol~tO3Nbz zeP9LQ=7`LK!)n;?e^tAk(IecAkawK0!5jG)-8^E8+>D=r+toWbBVeqPmw%ZL^^JP9 zVU(jIw8w|lcrC7_NR;A3W24@zr|URA)Rt;%^|cfPXNd@Tw;Ef`>XwrCMRdgt4R=-_ zWKzUqoJt`U=@h=eUYgP+Qy59<1flO4$O8qW)hPSee{#PLe+K+9?jR0oI8;|bG$8nV z^ma^&HU|g-XmmmP$Nu=4a0D&|_z!fyeuHSB>Hw$RFq`Fcx<9!2cV~j=Gta@qGin!4;!5)gSb(w4&bw? zcGIjoh1A=!e+kAtF++rh+<9Ju{Fo5vLS_K@+D2boS8h7P41Un=*Xg{qvW^`=sGGlY z;aFK(SzAf#49Bf_bEUeJo(c)KGK*8(YSdRYCXjR7YAmlTFFie*YD=h6m(d{xAvK#| zgvwg`s^4uuoa^m0TijyoY8d9w42Al~0u0|BoOGQke?kf#u@&y$n~6m|6gA@*D^ay8 zPCm}9K@29rr$m+xrI6~ai`K(vh!`UJ3dz$^7gqIf+-m|Ll%Hxn7{amnFsb1jKRvPg zVM74x(DGWEpvLr@{rk!$|Cf>!$L-A0gxi^*Q`~N@#Z_zzLs4|xjyL1QjkKVKb8~5n z|4RYLf1aE5`r_iOGdAEa?UnE4)F&+i+bD`mnc;q+#d8|98sJN1Bnma+pif^eqiCwV z`I{=DLoqYqq=KMuJCrgtu3?fu5a8DxGf=1p?L5T4;kZ49>mi0ek=pcj0ROF=z)Z6I zJ11$QwozYAPg0LD8}U*-O|ukZ;#z&HI+ZcYf6HsjX2nV*F2$Jo>gr}%6*$rH0H~&f z%EAm7^)n6WL%+~)B(b6kV-OvtLN%l~ygpz{r$?i~wii=^1|q_I>F$ZE>VVdX33s+s zz!||)mi2mly}F?aCK)`PX=>H3EywFm(7v(0xss-9n)d7QQX@U<+@x4pT?Tto5+Blj ze|d9xaa||1TZamF)kgKMI!X&W*CAUrLE3%93|56Eu#X|mFxsNRFimNi(TIQSM=Ib@ zXk{?u9)WJy%j{Ci#)yf7R~w=aARQc3;AH3;5!6tG;~Pd-OzdM4<%ZQ@VuE|~U}Ft_ zs!)G8Ues%gTgzz~Oy)r~UfNhr+ZHKae{8NS)h6mVUTnlG@Svr-4|%b=wb)#2N)_b= z&gTb^^h|rMtYuToxj@jd+*>O^jW@eZbi1I^7y(C*x1+J>6)KxaGCM-9Zt;JqkvKwP zFMuc-Z66!{s|4V^zgj}xie;K98ZUtK+{4Z4{Q`0BdD8=ofpGk7Jf8hHj z^f@9qV~Ogk>UoTq$7Y?^-FbTRE~`J8(ic}(!wP(dQKoS6BK}g`9I)E*(f)|Gz|Alk z_YnGujU52lnVY_Zm2qvOx>8M1IW;FT z>o``f%0DRx;hcaGhySIjWU;Yg)=87Ao-X+jQzWjlCvT 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 v)*G7?pS Date: Sun, 18 Jan 2026 21:07:02 -0500 Subject: [PATCH 08/24] Add viking helmet --- aseprite/hats.aseprite | Bin 371 -> 474 bytes dist/extension.zip | Bin 150797 -> 151002 bytes dist/extension/birb.js | 30 ++++++++++++++++++------------ dist/obsidian/main.js | 30 ++++++++++++++++++------------ dist/userscript/birb.user.js | 30 ++++++++++++++++++------------ dist/web/birb.embed.js | 30 ++++++++++++++++++------------ dist/web/birb.js | 30 ++++++++++++++++++------------ sprites/hats.png | Bin 116 -> 212 bytes src/application.js | 2 +- src/hats.js | 26 ++++++++++++++++---------- 10 files changed, 107 insertions(+), 71 deletions(-) diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite index e2cfa0b31653f6425256783d9e63a6bda9987036..2668d218545ad2db45c543591c6113a2586b3ec8 100644 GIT binary patch delta 126 zcmey&bc>n&79#`0gQZLx*&P`f*(ZB4YNe+$Ffjc3$jC4OC<85E{KD-RtW*!#-=jtri delta 22 dcmcb`{F#Zpn2~|u!BWPJ?2e3#9Fsj6wE#{;1>OJv diff --git a/dist/extension.zip b/dist/extension.zip index 157c870dc0b76eef88ccf60ebb0baf13f00fd366..c3abb6d501969b493b33447748662e5e1d10a8bb 100644 GIT binary patch delta 27834 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 delta 27555 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

$bOEviE1%ND0T?>tsD*Pd88ofTF4 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 diff --git a/dist/extension/birb.js b/dist/extension/birb.js index f46576c..72de274 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -607,9 +607,12 @@ } } + const HAT_WIDTH = 12; + const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -621,13 +624,15 @@ base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -636,18 +641,19 @@ /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding @@ -1872,7 +1878,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2030,7 +2036,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 1b2f17b..88fe6e3 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -612,9 +612,12 @@ module.exports = class PocketBird extends Plugin { } } + const HAT_WIDTH = 12; + const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -626,13 +629,15 @@ module.exports = class PocketBird extends Plugin { base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -641,18 +646,19 @@ module.exports = class PocketBird extends Plugin { /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding @@ -1915,7 +1921,7 @@ module.exports = class PocketBird extends Plugin { }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2073,7 +2079,7 @@ module.exports = class PocketBird extends Plugin { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index a181574..c0c2b99 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -621,9 +621,12 @@ } } + const HAT_WIDTH = 12; + const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -635,13 +638,15 @@ base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -650,18 +655,19 @@ /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding @@ -1877,7 +1883,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2035,7 +2041,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index b34324f..3edea81 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -607,9 +607,12 @@ } } + const HAT_WIDTH = 12; + const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -621,13 +624,15 @@ base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -636,18 +641,19 @@ /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding @@ -1857,7 +1863,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2015,7 +2021,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/web/birb.js b/dist/web/birb.js index b34324f..3edea81 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -607,9 +607,12 @@ } } + const HAT_WIDTH = 12; + const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -621,13 +624,15 @@ base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -636,18 +641,19 @@ /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding @@ -1857,7 +1863,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAC5JREFUKJFjYBgFgwEwYhH7j08NE6k2sKALnJCVReFbPH6M0zp0p6ADRgYGBgYAqu4FCZWdtIcAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2015,7 +2021,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/sprites/hats.png b/sprites/hats.png index 1840ac978e4704bd9919e5740079d216da97d2b2..25500dd9ea11b7678a562c3516ece149d58c3d67 100644 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^5y)rvJ0SH!P zt~&BTRC$vV6WhWSbN7~6GXufl)7|0{AaJj?>hJ*|SdjVp5Qv^2_2wjqKGBlKVAqor unYBUv@Zs6vfjl6yDk?r}-6>!L0*2;Z-EC{`RulnU#^CAd=d#Wzp$P!ntxp^P literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k#^NA%Cx&(BWL^R}dY&$hAsQ2t z6C_xh84Z#IfA{QVuz-8cgsH9%qiyPXE?bo>U%>3f1_TVN-m!8{ox7zSsFT6d L)z4*}Q$iB}AZ;Jp diff --git a/src/application.js b/src/application.js index 5b4ad56..28e9095 100644 --- a/src/application.js +++ b/src/application.js @@ -237,7 +237,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = HAT.VIKING_HELMET; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/src/hats.js b/src/hats.js index b71a083..a295e19 100644 --- a/src/hats.js +++ b/src/hats.js @@ -2,9 +2,12 @@ import Layer from "./animation/layer.js"; import { PALETTE } from "./animation/sprites.js"; import { getLayerPixels } from "./shared.js"; +const HAT_WIDTH = 12; + export const HAT = { - NONE: 'none', - TOP_HAT: 'top-hat' + NONE: "none", + TOP_HAT: "top-hat", + VIKING_HELMET: "viking-helmet", }; /** @@ -16,13 +19,15 @@ export function createHatLayers(spriteSheet) { base: [], down: [] }; - for (const hatName in HAT) { + for (let i = 0; i < Object.keys(HAT).length; i++) { + const hatName = Object.keys(HAT)[i]; if (hatName === 'NONE') { continue; } + const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } @@ -31,18 +36,19 @@ export function createHatLayers(spriteSheet) { /** * @param {string[][]} spriteSheet - * @param {string} hatName + * @param {string} hatName + * @param {number} hatIndex * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ -function buildHatLayer(spriteSheet, hatName, outlineBottom = false, yOffset = 0) { +function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; - const TOP_PADDING = 4 + yOffset; - const BOTTOM_PADDING = Math.max(0, 16 - yOffset); + const TOP_PADDING = 5 + yOffset; + const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, 0, 12); + const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); const paddedHatPixels = []; // Top padding From 2773538a6cff78103beb54c73f5c62b77e4932aa Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Sun, 18 Jan 2026 22:41:37 -0500 Subject: [PATCH 09/24] Add cowboy hat --- aseprite/hats.aseprite | Bin 474 -> 589 bytes dist/extension.zip | Bin 151002 -> 151134 bytes dist/extension/birb.js | 5 +++-- dist/obsidian/main.js | 5 +++-- dist/userscript/birb.user.js | 5 +++-- dist/web/birb.embed.js | 5 +++-- dist/web/birb.js | 5 +++-- sprites/hats.png | Bin 212 -> 294 bytes src/application.js | 2 +- src/hats.js | 1 + 10 files changed, 17 insertions(+), 11 deletions(-) diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite index 2668d218545ad2db45c543591c6113a2586b3ec8..039ae7a89b63b47b3a4b43175e8a77683f4b51b9 100644 GIT binary patch delta 261 zcmcb`e3pgXmx+Pl!BXal?3GMRj1!yo)VnY+Ft92xFfcK&G5iNgLI4K?D?`PcDNa_h6#)e3_!#X z4a6Wb8BxsS0`fp+GBp3^*}>@Z?*GHh)BjCg$Ecb;>-K-)13V1MzXDDs0JS0;6#(Sp zHmafdzsC&5-d>)6@89+`tbWVC`Pgc{wv8*AXKy@oTZ(n@PS&F`CB_%e9KF!}PM@Kw H)y)C`LBmmE delta 128 zcmX@ha*LV$79#`0gQZLp*(;eoGfZsS6KBf6z`&}&z`(@7&hVcJ$N>Wm1{Q{jImrnP z&HpnbWFJhmSJeJ3FZuXldlTb_BjR7vfr@^8WMr5CG!2Lt!hslM2qTIiTnwy}S2LQk M`|vVon|WLW0E|Q)s{jB1 diff --git a/dist/extension.zip b/dist/extension.zip index c3abb6d501969b493b33447748662e5e1d10a8bb..397d645e4c286d4b0df9f16bec7698db4fee6c05 100644 GIT binary patch delta 28480 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 delta 28369 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 KsuG~5D*hjBu})Y3 diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 72de274..d5ed153 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -613,6 +613,7 @@ NONE: "none", TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", + COWBOY_HAT: "cowboy-hat", }; /** @@ -1878,7 +1879,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAMCAYAAAAK/x/DAAAAAXNSR0IArs4c6QAAAOBJREFUOI1jYBgFo2AU0BYwogvw8fH9h7E/ffqEVQ0U/CdD7j8SmxGJD1fLRKTDMQw+fPYSsgX/kdlocihgb2cE3Iz+MGsMeRZcNkJDhyjHtdS1MzAwMDDUNFVidQQuR106+5iwg/bJyUEYHz8yMDAwMJg8xtTEwMDAcOPBU4bZa7czvLx4gYGBgYHh3ac3DEUFxQyati4MNx48xXA0jPH6EMI8SUx5RnjcYUk76AA9Tfyvaeth4Pjxm+HdpzdwQS4xSYaWqhJ09f+RogoFwEKpcNVRVAeRAQhFD4YHiFEPACvNUImGnKycAAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2036,7 +2037,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.VIKING_HELMET; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 88fe6e3..d1604d9 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -618,6 +618,7 @@ module.exports = class PocketBird extends Plugin { NONE: "none", TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", + COWBOY_HAT: "cowboy-hat", }; /** @@ -1921,7 +1922,7 @@ module.exports = class PocketBird extends Plugin { }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAMCAYAAAAK/x/DAAAAAXNSR0IArs4c6QAAAOBJREFUOI1jYBgFo2AU0BYwogvw8fH9h7E/ffqEVQ0U/CdD7j8SmxGJD1fLRKTDMQw+fPYSsgX/kdlocihgb2cE3Iz+MGsMeRZcNkJDhyjHtdS1MzAwMDDUNFVidQQuR106+5iwg/bJyUEYHz8yMDAwMJg8xtTEwMDAcOPBU4bZa7czvLx4gYGBgYHh3ac3DEUFxQyati4MNx48xXA0jPH6EMI8SUx5RnjcYUk76AA9Tfyvaeth4Pjxm+HdpzdwQS4xSYaWqhJ09f+RogoFwEKpcNVRVAeRAQhFD4YHiFEPACvNUImGnKycAAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2079,7 +2080,7 @@ module.exports = class PocketBird extends Plugin { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.VIKING_HELMET; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index c0c2b99..498b953 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -627,6 +627,7 @@ NONE: "none", TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", + COWBOY_HAT: "cowboy-hat", }; /** @@ -1883,7 +1884,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAMCAYAAAAK/x/DAAAAAXNSR0IArs4c6QAAAOBJREFUOI1jYBgFo2AU0BYwogvw8fH9h7E/ffqEVQ0U/CdD7j8SmxGJD1fLRKTDMQw+fPYSsgX/kdlocihgb2cE3Iz+MGsMeRZcNkJDhyjHtdS1MzAwMDDUNFVidQQuR106+5iwg/bJyUEYHz8yMDAwMJg8xtTEwMDAcOPBU4bZa7czvLx4gYGBgYHh3ac3DEUFxQyati4MNx48xXA0jPH6EMI8SUx5RnjcYUk76AA9Tfyvaeth4Pjxm+HdpzdwQS4xSYaWqhJ09f+RogoFwEKpcNVRVAeRAQhFD4YHiFEPACvNUImGnKycAAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2041,7 +2042,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.VIKING_HELMET; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 3edea81..f612364 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -613,6 +613,7 @@ NONE: "none", TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", + COWBOY_HAT: "cowboy-hat", }; /** @@ -1863,7 +1864,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAMCAYAAAAK/x/DAAAAAXNSR0IArs4c6QAAAOBJREFUOI1jYBgFo2AU0BYwogvw8fH9h7E/ffqEVQ0U/CdD7j8SmxGJD1fLRKTDMQw+fPYSsgX/kdlocihgb2cE3Iz+MGsMeRZcNkJDhyjHtdS1MzAwMDDUNFVidQQuR106+5iwg/bJyUEYHz8yMDAwMJg8xtTEwMDAcOPBU4bZa7czvLx4gYGBgYHh3ac3DEUFxQyati4MNx48xXA0jPH6EMI8SUx5RnjcYUk76AA9Tfyvaeth4Pjxm+HdpzdwQS4xSYaWqhJ09f+RogoFwEKpcNVRVAeRAQhFD4YHiFEPACvNUImGnKycAAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2021,7 +2022,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.VIKING_HELMET; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/dist/web/birb.js b/dist/web/birb.js index 3edea81..f612364 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -613,6 +613,7 @@ NONE: "none", TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", + COWBOY_HAT: "cowboy-hat", }; /** @@ -1863,7 +1864,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAAAAXNSR0IArs4c6QAAAI5JREFUOI1jYBgFo2BIgv9oGJ86gnJM5Dri8NlLyAYhOwZFjgVd5wlZWRS+xePHBC1rqWtnYGBgYKhpqsTwFSOyQgIGoaidvXY7AwMDA8PLixcYGBgYGN59esPAwMDAoGnrwsDAwMCQGuzJwMDAwMiEZgA+jGJZarAnw8ObV1EMZ2BgYHh48yrccAYGBgYAg40ttqzdeHIAAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAMCAYAAAAK/x/DAAAAAXNSR0IArs4c6QAAAOBJREFUOI1jYBgFo2AU0BYwogvw8fH9h7E/ffqEVQ0U/CdD7j8SmxGJD1fLRKTDMQw+fPYSsgX/kdlocihgb2cE3Iz+MGsMeRZcNkJDhyjHtdS1MzAwMDDUNFVidQQuR106+5iwg/bJyUEYHz8yMDAwMJg8xtTEwMDAcOPBU4bZa7czvLx4gYGBgYHh3ac3DEUFxQyati4MNx48xXA0jPH6EMI8SUx5RnjcYUk76AA9Tfyvaeth4Pjxm+HdpzdwQS4xSYaWqhJ09f+RogoFwEKpcNVRVAeRAQhFD4YHiFEPACvNUImGnKycAAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2021,7 +2022,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.VIKING_HELMET; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/sprites/hats.png b/sprites/hats.png index 25500dd9ea11b7678a562c3516ece149d58c3d67..242b8da49b702a0bb45035b6db71b224a35a1170 100644 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^DnQJ`!3HF`{>vW*QjEnx?oJHr&dIz4avpfPIEGmC zCMQU+E=~}+AZD_O*Zyh=}tLVZDRdD z@n%MmMnZl%%blKo2H8B7Vlie;&g~kNk<8J zdn1s{44Y$DjvP2}py2Vr;I^CD+l}|^sb~a&hj*8o^SH7e<(aijkH=ij=4gRQ&&OW^ zhip83D%~pXBzjuEV6gT5vp(~6;)5R_XM>a%IO-XCwoO|lRPy!z#6?`J2b@+GTn!9i kpUBAJ%HPJ`5y;P=eKw%8ZO)oGK)*70y85}Sb4q9e0N7M?=>Px# literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^5y)rvJ0SH!P zt~&BTRC$vV6WhWSbN7~6GXufl)7|0{AaJj?>hJ*|SdjVp5Qv^2_2wjqKGBlKVAqor unYBUv@Zs6vfjl6yDk?r}-6>!L0*2;Z-EC{`RulnU#^CAd=d#Wzp$P!ntxp^P diff --git a/src/application.js b/src/application.js index 28e9095..5b4ad56 100644 --- a/src/application.js +++ b/src/application.js @@ -237,7 +237,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.VIKING_HELMET; + let currentHat = HAT.TOP_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ diff --git a/src/hats.js b/src/hats.js index a295e19..1a7d7bb 100644 --- a/src/hats.js +++ b/src/hats.js @@ -8,6 +8,7 @@ export const HAT = { NONE: "none", TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", + COWBOY_HAT: "cowboy-hat", }; /** From e0fae3781a8527f91af7684c45910c8a4578ed8f Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Mon, 19 Jan 2026 17:18:02 -0500 Subject: [PATCH 10/24] Add bowler hat and fez --- aseprite/hats.aseprite | Bin 589 -> 759 bytes dist/extension.zip | Bin 151134 -> 151277 bytes dist/extension/birb.js | 6 ++++-- dist/extension/manifest.json | 2 +- dist/obsidian/main.js | 8 +++++--- dist/obsidian/manifest.json | 2 +- dist/userscript/birb.user.js | 8 +++++--- dist/web/birb.embed.js | 6 ++++-- dist/web/birb.js | 6 ++++-- sprites/hats.png | Bin 294 -> 386 bytes src/hats.js | 2 ++ 11 files changed, 26 insertions(+), 14 deletions(-) diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite index 039ae7a89b63b47b3a4b43175e8a77683f4b51b9..7f768e4a7f619df9a77d0e748e499792968b1d53 100644 GIT binary patch delta 205 zcmX@h@|~6aI}-!LgQct+*~1x`SskxVPGpp2nN}(PesUAz>3V+#28LfB85t%pGB5xU zgFO(lDljlGF|afI2Wo@>4h9y6iaE&%4h%p8{wthmU_J1}BEs^ZME9is84|AYo8nS< z82)C8JdOscM>ftI$Ojq6%)o|Z92)~G*tmor+UFZO9UuHpm!AE9{?{-6{@b7JSK=4? by<*w7`dKY3T{4?2#Eb*aurplRukjTCgy=rs delta 33 pcmey)dX|OVmx+Pl!BXap?BR^ec6R$FCo;;iJV}+~p4`NE8UU-;3Ss~N diff --git a/dist/extension.zip b/dist/extension.zip index 397d645e4c286d4b0df9f16bec7698db4fee6c05..467d9b93c4f244b27f7fbe1154dc8aeb9a52b86e 100644 GIT binary patch delta 26934 zcmV(zK<2;RoC)on39zIE0+O+lrUfM(S?cLAU9zZs^OUQLq9}>Bc2bsP9Upg+OfD7| znUm-RDlRhk_P3cAlTj3m#=}m1{NjK9_P3e(pg$T1JDp*~wMM}ksx@;^+O570=9gaK zlRyR~CC!^)c4>Jdzli@W&Hj(HL09AGVT>02Nw-Uo7JmKpZ!^KK!5@=~24F6J(Qylm znQ?nKxDWc#eNY+>2gBT~wg`sNmq|1lM~$EsH3!28|LOEw0T7veiIW%yS|=Z~Yjhe~ zV8wzkDhWa$gU|e4coS(^&UXDOaJqRFbQ+cnkajb)H~7rUMMO-_4#rPXA722qfMp%HDOegt{0Q={2e zlN|_K0g;n=2qqHmZ=eb4<9s)2j)VXH?~EG1X_K)CP667I2_G_EW69~&qT#E6$ZCE$ zGvK-&cDuE(e)BOX>R$nraKK%dk)Q)Y#Ru;Y;VA(2Eu)M+29r?YdTy0OrBY;Jy!dJhP~r*84%TiPhy2pBMd4 zSMDe6p*lDuj=iCU0=x|VX$X*)4~kmw+I%Nlfain3Q6MO$k*t&3onh^Da3UbJr=UL= zgHM=YqOKhcz@yS?q<^#%TB=7QZD6EHedE!9h)m<1iN}xmuQPStpfA|wrOp8a%xOaO zF-@+5>?YO0Ew!L|hW|{*nH2>T;c)z8NGBB+w~sYeJSJZQWh0p}F1Oit#x@h>Z-+ef zccNxE=^7;%d>~yz4fCV=aM0~ubQ-WjlcFh8k<0wnH0_+$`w_2|+0CVp+p{f}mLHvxDmJ6> zV>goZ`AzVz|9|>+7>?U{V4Pcg70BP6evU=}v2v7!PPdmYpKc%i#l4xS?!m=$0PfF# zy^6uoq!X}L4p@@PAC$ff&P^e~cXUbSP}qb?jm6a(mv#V`e}ybAD3=zN!iE%?=8G(t zVgb_@&a)a+Cb6W~yMs}*J%OFn|L9eTZ5CJzgZt8`9)I3Op5emZu^$?YXeVcPQc^Rx zi5>}Fa?vlMIzcIvi>CgM9c3kR4mboN2E#nz zQ)t0HGUhdnk3BWrfpKNftb;=&PhV!m0D_{;=YR9zu*DnKQK~UJDIE8M^^GVQ4M?ds z9Vjt~Y$%JBm|+6N0P#$-DVP~2&mPRkFzAMlU_)~_=;6occG!W-VbqSOY&Z;gLIi)n zOe7DDI25iwUVnVjsuiwDcD2{^w(}5mGXRLuZyJ~Tjp%`ma&6q958jkE4eoihp?>5q z?0-9>u-?{QrHPd`2hHSs#{Tbs27E#Yj&jm358{==Vx(S4H$vNmg*}~4bdD?V50Re>pzgxqBX;@*q+$_0)VmYf!^>uKGUQziY|>#g8h-_~ za2Sj_U!x#*JAeyh+<`)S3|j0^8lnXpYE8mN$MiBoMiQug1AQO`M^PQ{38Pw651}py z*I;=)sD#aM*dbj8AKb8m{UN+|jo^OJe=&yh08%{^2;A?&XbgwUqcL%TaMT8Acr4Bs zVx9A88ESqc0|cxa`>pA7^w#tR`F(Aj88g zh-EhMW)hRk(Q^8Og6FQ;Q{;`9s6uWRNb`pp7it`OG$zeD4yuJc%t->VQ`#+@AHe-S z+mMaZEV<;X=j5KB9Z#Cr3S#!q#*tl=0jnEs$$A&|MW#AsjfpvsE{DZ44u4x8xd_7) z%`u$Rv1H|>6@07k(nX)_>nJbx=3RZa?Lr6VTiFzk=SMZu-V=hcJqQ3-?|Ovc?#ADbLt zzI}YQQ#!-P8c>Rc{B8I6m;f{f1A)6;D!ii_Q3y{c+LW#cO7tiYb_+%N*$nIQd;j=& z2fy2c0lc56eRN!*@;>ZN>9KThaD@-G2m;Js&X0h?wtj~9BO1nK7k}lWJygbIXmMTo z{i(FGMB}cOLN1th#wq2MeW8jJkDyI-T%`iYe)g$y zBIQjSDBuidesrrfSWXSg55rr0Z;|rw7IPK>sI~z%aE?&?h&%+IKvYi7%GJ`R%6_R- z{Zu?YI6nJySU6Gnn13BR%!XS@gePB(1%fy+`}ZdQGaJ_s;z;2l|Kk*@#AxZ#Vz{*B zl#*0P(bCr9%Hon!1Obtfu(=s+tT`nlT2i#WvQ=v~-6F`56m4xqYio;65s8!(HMZ6^ z)>oV&k}fG~Zq}Ao-6EDKDU0fx>nj^hvsmP$!rI1W7_B=MNPo_xXk~dlYPbWpA}Hnc z&E;r0a+_J_?Osml>7WIDOM z{^%-Vs*jKKpMO{hJLsa!`NdU4lj=%SWZ*hqW@fH4=Ez5A4|gIF`JI|N9jMmdb*?08 z$ZX;YI@6LBFlU}=k9qSpQyXuast%>wyR%7|%S}K5vTAqw?JrY8QVWJ*Q zO%x03^0WvfD$oSYr~sJ-Z6Tq-AI~m|yd>(9tGX1X1b=NBJ-+fb(#TKDTYuTKXiTjT z{PUk?D71b#KWSuvAZ?a^l2MXx-vF309y2k2e{vT2%1NnME>%=0YdE;CVgBMk2j}Ug zL2kAb;xKa954N>jSTK784>O%44T7V=5Z=T>FG3sy>~pf7?;;r5qd^_!JLXe+Fln`M zy3%J$vwzdWd2BeObB5qH8r)(>j?L~j;)f*+>1pP=YH((1TnbgqrK-gJQr5d%tSZ?r zj#V$$QPu3%Ar;G|s+ZHHYy)r=)z4Jr=_UOeOL#9V_2Gg~QnErN0T(F|D?RLQ;700B znoaCXKz&%&Oc|VMk<~rw5AGka4QW9m!rRge-hYO$xQV6_wlLBFhd2RSVnlLK8oU1{ zI2P2f+a2~1aRAlR!in;TS@9fG5@_Fz0{4Z~a56r;b)09Vae_QVW`YSC7-DPy(8 zNe0v!TaCp;9m{~`N@JzIlu;TpV7Wp6OH@f%tjwv#Mp)lk;flg3viNcI+!?duJ;|*q zmwyJPSUPaTp4b!V+&BlBu_>*L5%hr-gf>USEI6!2gMQfUj341{guLT~4c^Gdp!bL^ zax;1XZijbpM!;AnUjAi1)Hmv3LzSZ?w8MwhXf3KGNR;41W24@zC+k=~)Rt;%^|b^9 zYl$#5Xe6$JU`XKe!Rdr3+8iPXpwR{C9|w~c%n`U0;6IT4dJoY+;Si_Y zFq`>wdNAz$J2N3{uB;{qq^r~H-@`Cm+)9?l{Ao5b8YlQu3*op}PIO@Tli7jKpMTBG z&9%+sM9Z2d4mL7RhEby!4&k#2yGhoaLF!FeigC}(5auE6Ja0gLObB$rGl2NoMqjk9 z^g5#qevsWS(|K!U9XkSFH~-+mv9h$XwvyBtmRr&0O1PAq3Ng1bixb>x)K@lA$XRYR zmRFXSo}W#%B~+>N=n#XDm`yN3d4H|l8+02G=XyKI7P}bR8p<3pL!th$0K<0&CtW8* zNWmkv!h?IASfq!7W)xv13cKv&qq#MVz$EyTh@~SgB=y!s>rpU53=#PXiKpW(tm@IE z-vmG?Khb(Hgd_cs)^L`ej@bRQA%Jygc`Zp$HT`D)zOqUGOGt|4c4leJ?SD+r32ryn zq7d6cUlc93qs?e>BPpo<++5nC|0Muq&&_&$adFlf8}OI*EBAcrlazsN6a`wQ+%L4~ zoJOn$_);kng*4)DK)zgxq6z!+y%5o%n3-@=K~QKrlrS}JV3I%(;Mbi{pim#$d4zw% zaeEBcLj->!Y17*w{I`4plYeIU4^GlXZKJ-LoTLt8Hln3^l4c3UM78=>IF&KW%WKQJ zV#N}dU`%~=bu+07tmrrZL{ma#VFru`nTGVCTc{j~t?0r8M2D#m`V@!P2W;u|$!IX` z*_0py5n;aM?ukNiK+D90JDV%ujNm!TdcD3LZis@32T#s4v1-?rqkr{hXx~`hTuIV3 zN&EF^sgay@c2caYE`z-ZiT7#0yt%x%E|c1>LxsDr5#EL4q_EREWXe*cEhAR4WE zL@V&1CA#-{vAVU`Tx@a`;RVj;hmiD4d#)m7Q_ML}(6QVbD?p4lvrV+Spwa{ZM~}DT z3F{S7Hfb_jLauJn{}Lmygv4F~|4Wp{glyK=*1spzjXM1=0e`|0a=AwT%P5U^E7%g@ ze~BuYnm)!xC~g-0Op@CL-!-8x5Xl*FR9`6PF>D^|IxoBP*N%(8PL+T3cU#LlvEtGT&2 zeNJR<`eIf_wSSFpB}`B`F()$XSXQp`KM4r_oPZIB|0SwqvC`>DSc&;Dz!6Azf%CnoCx57%U}b${E6Q9)5WeK;PQ;~X))K%p)!5F(P& zFyF+sFL#nYqBH2qfDtlL9Q5E#iIi)Mo@I6i++6yfpaZmo7z!SrY_y9+p)0LA!X>)Q z=6`UBB3RQEKz%zzmLaZk!eKvFimn0CITQzvNZLT(Lxgj|IDQk;3vrPS1cNCLXlBL^ z$qC%asO?1YkUZE{59kQtJ`aWvf+dCY2)$9{5X6_H>&IX&#`xp)!$&hZ3x&RsWM}XT zHvt?x(IeG;&AV_VOd3AVSi)bJZ2v1i9e+`Gbr**)05ex8pA&cj!xsjo9stHc5zcMJ zSc4J(Ie5Y1B&5iZcJV|=K}87&;Rw{xEZk~rQp2+`dZuX8=^6sWKWW2H?KAGb!?T+miHwt>7Oz!QK$ z3Nj>kZE4cdhz@7a8NzSS2*3kG z>UQQi^YxZhgPn14z@3Kbv1(TEn13iT3oIaK3JaiVvsVsu>+qHVM@w4{uZ{2g=IORC z<|g`-2}yq>;X)%l;QyBt6(%6*n`X=5_v8!3qjHh;FbI~d#o zyv%y0vqnh?SctL#0E+>2Nl0wKwyc9v69w`IQ;H|QZAx4-VB%s0NB?m?!bh-6;tk&c z;#}Y0_O@SW8ICf!fo*g2nrO+i*il?^8LG_UX^kcLg=%aj zg;+Fd#uD=N?4E|N!p6tu0e_dd*mlKv2Zm4!aYc(0 z|I1yDL=F`Vn(b8CXPB#Lq2S3#q}>KcI~LxMKL0zb)*?ctO%S~ZJPBG%wjY$yME`Ag zu;^Ydu}J#vvv;4|yAhqrK;^P_qoV>@(R>d7 zm<_{#d4UT?Y}AlLl>)M9K_)r0c>BIt>w_MmQJk5VX-QeK z|C~{EhJcMR$cQ1+go``Aho>0_Eu>8;kXm+4R{W}#$+QiyeH%r@^*jY38Y!c_)0*qB zCXh`N>H9aq4wOzFhdWr0=Hs5Yu2?=sPogfv&tA;9fjmTt#?4Y9NRdPLW zdYiIVqLyXyY88;c zDjp>mWBB%pu?CS)!V&$0wgq zN|BC(+j$&8vSaUk`5nbo@0Sh^OH_8pVFB~)sM|xr7CIIw9$#!9Uuo0&;J!9^w5_*~ zFAfkWEnsVd`!1rS4dmU@2f%AaUkS<+VaOJ2D)cmcFN&|k{9(1nH#VSN%awrZkB}go zg4&a_3fU; zv3ibcpRwzri+-aVXz((_?y+4Rk#+GVNH#Hc58ZqOLQ)Ir<^{3ug_$9MGVb*C4nJEv z0$1!jWLPmaj!Fk0y`$TQ0kFDOuwq|Xe0b=n!GA}|`$`J;ZqzGy=LiaJ6_FK-&?-(* zLbT9ch(xC4&qI2J`&0}J-3TA@!~nUYWxgeAP?u7}?VM{7SwvF(;;Yv#8}(_<0-{8gI|+ z9e>8>nMUX`_ZYWVfrkbd#fTs@OZvozMR!`zCi>G!VP^+=0cGpNBas?Tpyd=Tt;S`f zUE)S-*eEIZxXSi%wR(K$)UsY@_$-#zAi~-N?6iG?!Y9W2h((XdAsIQ>k4Sx?0e_E# z+y=u3+U)n~sw(bCiB_OR@tTD08p-p5MOhQCoj);W=a=*|Rk1(fzj?)>h0Rkyx~3(% z6B)WDO@I}iJLNwBZAth|`aNrQCRt^i|FMYMR*pO;T1^o^)gGjPK#z1A$Rg=C**M4s zZQ79mjJk9Mxi(@}`FMEO4RRqret)D5V1iJ#vMOa9I$Z*{2k4i^gCJw{HHxlKL`NNs zM^i-n-~w2ei)3o@kKdAmGrkk4!0Eh9?MwK3lB6IY=G=vVW|m*0)+G*FvJX|_fz3SI z+8)RV@yxhLJn)bFhyP9gqW@Q;0G*2onM;7@rIOZ6n%thbK=)H{Fd2M;B6Y0hs-J zlxJGV`b?QMvn(b=%hZaa5#pV?Q(UQu9ik7$cr?gCF1I%0lnmVg;xHTjWlov8jc^?L zaEt*bFfJ(F!gCemINq<}qJnjl27d=e-uw_md1g2W z=@jLis@nm$=l&##k$rc92dJ0$5?7T=?`+!95nZ|}%;xM)9NMFm^D71}A8jy%`;*0t z?7(e~sqM;+kP~}IHA(AXholvB%cy(CShqZ9qhfJm(m5!;VN&?{V-mu(}B^=p>5u%|JV@MGC;l3lmkk90=e@O z3|Rj@NII+?om0L>yXrhA85sFV}I_ND@hx6C+GHb#>DbX9X_j)tZm(kaA zLvRVGQk>|?9ha|gGP?TFVHwd(^p$RIdNgC@-&RlkFJa&k#dPQ+5No&pB@{&Gs~igs z)Tf8VE-n~}%76KP4~hGMqL5SxWPeKFflTBkodM7Rn3x7mv6;-*NfQvUIHW)6v(9V* zA`=$d#3kIuHxzJN!+7@EQm@*t1A+a#{$~)DXFoTfji|I-U0&46_)E%EUAVo9h5pw% zHd8H)sX-|N+gKMQ@Le(JZkj*rmv#M;MK+UXASQYyI)B44OpFY4%*>ctL;^dlkYsmS zS@nOpVa#Ylof%8GI5KN+t8JapE*{vJHl8lR z=({MveSf)G+#`?8fWqx9qW|c8*${!Cn7{L!pb@qV>J%wuw#3`YNYz7!`t0?mz2gqz z5YTTNC}DMv1YV%7{+{fl^so_+=~1^*mom`X}roShj^qGKou+vpg<_u022R2ZmL9#IKtmYB(Q8QiMl zQROdj5G!HfI$17r5AMXERYyGIbj*P#cnpH^I1INIg85~fL&|yr>k3;PtGyt5@_*fG zy=3??yGs#&yo|d5^UHdv!(H!^8Mn!44}46TXP@n6=vUtvI&#hGT!Wst%00S6CkL;1 z{%Pp)NCxWxIt5_NvOK#Af%fCZ-AgfAp}K%6)~1g%LloqS4LWDg1P;7^FVySEp+j#O zARNX`EZW8$ts7j_r7&2e|K$3D4}YNunhUixOFAXN&VfA_%mOR3^HY+d@|tg+O8I7R zadD54j5}pQ@JT_MN46Fcn9JYUOtP9v!+uk8`kbn`G;>F%0i(f^>Ptehlaxd}*U42@ zCoB_wCq~?2>88aCnu#AIK@u!EA9vO+i9TlS`7O-UD2U~RENR%wAQDlLws(eD6p%)* zl2J?Ukd+Ak^_XEwla%mbPk)CpD;Xn~q=boTB;`FlAm%4v~HX8i=p>R(J) zmk^>t8=Vm{ppbSmE&dtI&O+@X*(k!@(t<=&h^tP++fE^axy86Mdanp8rtWNY(1a$T z83pqHF&@n$*0g?upY~9$fpk?9f7R!yJw}-^U{%K zu)AJfUerDE%G%;0)-(?6!7aqYp`z0m*KF7V0=FVfN+MdQGa8Q9*0y-e*Ujtf6POX zyr&ll3w$Lf=g15oVuJ|uWcV{POaT5@qLFes*}zki*}Wq@HZ%ceF+U4?x7ESVfe8a{;ozc;qgNp=W0F;JcpMSVg1e4oIjESjY*DH#dBc)oB zcfI~9Mzm?cC4~R%nC)_Aq6-kJ65tjJ<(&#>KRbdcMY+%=WmFTcMt-ctSXgpVg-`=C zc1@}7`jUJ3>)B2ZIl3u$yb%rPk9-ZXG%pGJ=fR_Bmi0F?#sG}BkaBI@uv(YbO}=cF zU}a)hPk-!gGk%}j5V=q(OoyBE}yHhdR_j?>50#Sfg2_wy)?3oaA!D+fe0pe%`7 zdE%;Bt2`<208g-^%Eljw#q0y2&H$_n)%>B@rGE!eBm)M?9_a=WQ>6sN8sg! z%6}6@5#pIGn6I62ZuXzE=Bw$3K7Qzj)D#XLd-+vikW*)}`z+w$L^1qZgCW4JggUnP~|;nZS;3?K4{^fxl-;tc_|c6bSe zw`2dQrIX)WIzUVtZS`mo<1-BL-I%9n7%M^(a|XGl@UDVbDmp@1<#h4R<*-%_x_@`_ zC@xPPv*m%kge7Gj0~nB(8=DH`f9dhdhy*fEYdd)ZbJxa#ff-2P@QmV1e)E%C(PBs) zXh~d|F5-WqP)CBT|CRqFR*3`=AT|nkdH!b5_$>M-uy7KH-v9? z{(RG0c57xQudlj8?Z77kLx7YbPB)Md8S7%7Tq<&kg6 zH651za%vbD|2_NCCO_ce;9!pb8&6Zgf)b~^!fR95=1~G2u490_@pTAi?l-`w9pWT} za!({xka3yYBpY_uVK*^yZGY|wPewt!VvVd6rv%qSxTEx?wI{qdKCOgIkZENY6O=P= zall3k)c85ERZF%sMf5@>l`YUF4bzPhSdtk>s|H&bv4&?7_?Tvi%{3wV5roMQscS_v zQEZU82BOo72vI2`JCd2G**-cA9M6({hFv90cdG=E!vc2+oVysHaQ zzz{T67+fm`sDH&p0v-R3KWRVoAC`_pV7?MDCNg$#mf*@H(fZ!A*0de)N})~d#h-qBWL zU7f#TPsuEE>LMKw1b>j;vFDU>;wTpC$X1M1FtZ+9re~_&(2l!Ee>xZD)cnitEr8R@jClo!Gp(6pNoReGUviRZ3tUq<^s>lg9=sj#*J`7 z6S$*rq@X?Ed2D)YSdP@uWNB^j_Q9_KhkiZ6gBf5N0lna-8L%Uu%k#7s=G`%cR$zbs zNN)5VIq96u(s=HuB}yn2&3`+=qKv1o_E21?*|4M(#P6gPCP`O?Vt4lM{SYv}{!I9cYI-*AyK(s3#+u-1pcH z6I9ZIw0}0~<1%>h7H91A+^;jgaM)ggM`lcVpK{CQW@QqBwJ}F$9L}kL5?jq21zPoN-p!i1B9-L>gXpKCkNGuzyAYJ5Pq9)R{}aN<5)ELF!)o>LtDP|)AMkTe_*LE~N6oUYiD z&OCp^G~k!da6T60=Kt#(2t`;!#^nd7_Vkk9c_+4j__}Ry`h&=LR(r}i<6Cx?R`4x5 zMt`kvN?tF|GQp^y*N!>uS!`l7CG9Q>gRI2eIYtfkG1(RuX4n}Ytkcuvcv}^-h&P)I zMHV0oUHEEBk9b*fmQLA8LEn&Ly?|7&8Gdk#2u6ao^nGmk&!iZ_Zryy^j=6`tG^c}fSm}-2o-eqOXwo<)|H>wa} zhAX?l0%G>&&DobKd0S#EEFT)J95FDwojK@sp(}Ba>p+)BXu|%os`On&l{eN=^0_?DKbpENl18}l!g3M27 z+v1d#F3Z(qm3b@~w4*Zar9(6;kE1D>VTGW7=45)vua{43=mEzmi!U8XCf|Ow=Wf@s z9#Oa1?ju@A@Z=Q3c!eoUtA7{O#z2$VVs*`-|B$xQ>tNgxwFN|6;DL&NsGeiOvcs*2 z^opFBAnaP=pa(u|u^+ynzp1V`Lg?qnBlNXI0uKcRABrviNg`Ts)9E>yzzxHjjV#)W zHEq0af*L4n;ihP~6V)ayODsdZEXw|82$}Rj{+JMD4O%$S8Sw~mcz>-RmK3If8VBl| zjmSc!a4<7OJ7yXe=z}REFU9M|N4g}xsC4u#Fng3to5O&EBN}tmQ-ac7%-tBrBCO6@ zh=4(!oK`VD=Uk+%v*{;C-MC{m@C1D_DX0bxE$jxgVrZZvRK+#bdo(ijWq~IXgQMw< z9?Ei1_E0!a9fNM<$$y6hNx$-<0B8?yRQoKV=4}y3^g8~f3sMo0OE)=!Smv=RAAp8L zq!HYho;oO~W21)*MRbo(_|I^UqHpB0Fx8Mk`@$@77ePv##A_akUFQ=;N_58XqeY|s z3#^k}dK>Ifwi2EM7^cyt$c)F|5}EaoeUV;UCcta<9+bpha(}i%6OQ^l7)XSd88EfS zJTsIg8NgWyAz`VBT@iQnD#!*AOOf>wdRv{`?B8c8YEzarW9ADPRmWIif&Q5$V~`Si zsQ=1BBLF06;;(w9`M>G#WeTvcW%y#b5T0W$Cv2c2$dULQI$Fgwh(#O?XV6%rIF?co zL*9L{7UF3@rV^DE6qRh6(!Zo8bRBxNEMy|TgmMuUQ4tU)HPgexSEDlMw%sjCi()D!a*)hyjI2c%N3+4&>71& z&&@Zdf3k|D&H$~f2HyWSbbhw@h)TfdJ&Cs=9B~|a?6er=IS!o;H=L-B%rFlMt+2D) z0yS|VZg7`cOg4T)%qf~`lRhGMZ_t%oL(i`GWTFYD)H*@7_)ggUt)d}Mc>YaelZ+K- zdrpjtP`Gvm|54O)*0|JM-YM-C&JU`eDy3=_e^~%4pp5panjPW?Et{+cDI<+VC-aB! zqrBFPzxae#So;n2A>zR*oc)1av{YIbGr7GPDm^f5{1TOuvvRd$6OOMS;kb&omh6|x zd;3-N>lE#l3V4$7?9=qd+vT(EPl!hUR4L+7G_9*81KvD1mh)k3XAzI zf9w$Ay2ZlL`$FZ@N%^vL@TpS%;6uW5gFD9;erdYJuYr$@(u9-3%~KQ|p4kSQV~SL- z4oa2%Qi%rruRofwq~>u+lB0d}2i|?at5Pox2mL{P7&gZ*Fu2jM{+gn-a*y%EOndYuPT#%{xTe8?fTaWrhzD7G#Gez3Oq53eZM4cq8S5K&s@ZTS^q z`dfiX%@s%ZQxXnIs0|+GN9_Lr($O>_w!?Z=v;J_$_XZe+)D}>><+(Xw4h< z=IbEB!6fR&OV>Q_O1~)%(#kxmgVia&{6i2W6bpUL-_waP%+FOsFanqFDLS))G8%l0 z=dV6S`{Bq})=E05mA_0+i;Mq2M@ALn3O)Ty_q*Yd5B>guD0|J_qyz*N7XLy0&kUgO zk-T&AWQh<{=6iVaLkDCp2TwfcB--f!j=r5ZXwfBj}o!E=o~_2IP9@0siF zciKF!3ONf#< zAX_b`w0Tlt3-^*4tl zJvs8}L!r6Q?2_JSckmV!EmA^Wn*9W88af?b!3ir}6IT{x0aD49xjDZivr|9nwKhULb{eep63lPt2~QlZ!+rC=P3&lRG@mnleBYbpOjOdp#FO1 z37#*Ke@QU^Kb~ekC2Tq^z(Zz#%toBEu%YBg7|%2|`{v!f^OOmfxsrM7?5ekL@UrE9 zGD7Ho70Fg{HPc!pTfa`VAFX-2nD@=%nXHxXyVE#nU#474X4$Rb64Q-mail37FN_w; zC9jF6f1EiKTV#H9UGkX`eu<;9esqS#o&40)fAX7obN0Cf=$U4o63C>2qcmxc$6`Dm z;@t0^gxNB+(`Q#!jn00YCK@nc1Dl))pj#}n<8nH8ks=M2P)DA*uXXJ*IaOF)_3ZSO zG2hUoRyI@SyY;P%E#_Bw^z6@_Z+4e8ml)YEULy$aHo~dH3W5_S;{mPCT#J6p%VG%Ph=ZUNV*8tz>#Qj@J>_AB z?SK7uG{tl+nrW^0^q{~RhkWazz>M7J&y1zt5|2zJkmVrWo%^ zjOc8_HAC1&^@i(q79hn4E=S;qCAYkWCxVt2@dVG(>MF^oqcq`k{I0K#T39sznQzrX zg}F?R7j6LXVtx&P)5F7)&~zM45@a|^a{~~Yoi2P9uY=Ywe3TOt(n&9I(tO(qe{(DN z^Er4i=L{U8%n)fna$D1y$}U!r5lVfJcn%+3N%E-S)UoGWF6xdNav4h$>4gu**X9}| z%dlUFOR5LGsjuIB8^P7C-WK+C;A@fZ8YT(VtJ+G=OU0ug^M9(M*M*v-ZfO~BTrDl) zv8D}`4b{s~nDmyoBNFLztW0^we_2SDCrywxN3_0QEnyU97;VpDEOS!=8aTB8VI80A zIIfDR6mfjKO#VM>#U?&v~(5e}pQHzqn|ma^!uXFlYXcY@r_|Nv|(mDcp z=%34@%GqMMFdVJc*H2Nhv-S3@w0j=C{W|Vfw}!i=(p7t9u6j|ZmNwcu_0hw{Msd5= zD=eOl7AKWSrPCc;RkmB@vv%?1rg*wrepkFY+J5(Lef0J7hl|@is(X$5_vMqxQm^zdIokd_ z9B*}tYn8jJg=YQj-e7I-ycphW?CuqhHj5Xn>M%NZyRb5Me{kAgxLkeQE{3I>-ST~V zv)Ejli>mLJ-tVj)oUXs$?$t`$<-*O)!TZtW;=9Lp_d9Fnf6a2YSn7PZZ!UbUZM}b3 zsE^Cr3y*Kt&khgnI+N3*m8-jz{hi9vW4DW#j?K&dZLzYoQocBQxA>uV^7U^0YWr-r z(%fk8@82I)qtWBumr*lXzbw>lPUd!Zu0Ed^I*SV%)%&wA?;i`hC&lxd{?%T$bW~Vv z?SELWU6on~lUYR`e_yT&hug>F^^1eco7KX*@S<`&s9Y>G`djxm^@U;O_``?Q{iB1e zqe1g%r+Ri+so$=h?p>X3ZGAqzIW3*`#^nzOkI~Wg=ElnV+T26+{@vSl;Wt-gvY4^`>}!KIkug z{XD+>aQl99?(ulHR=De*-kg;_bk_C?TPKr~=&pS~H#qEe*CR;wadTyLr*QC4`+Q$p zKD@asho#Sjz3nQz@aN0>pR3LFm79ak;<)_vtav$huo^AY54Jbw#!b zqr2+DZo6^%e_^+>vt4bKTf2>ut@lyu%Xs^$ebxHBebe2(9epmZv@SLaH?`exIa+u- zIr%VL-uQ4oyjv>nudna7_6rBYnJpaqV%md{Vn# z*}psds@d-uYTwxqJ71aj$jI?cOaMd_9PYfA2RwY+M#rCX>1SQs@2K@m#mt zKfBm%tuDV`DJ>7?P73A1Wp{aVr*OOqN-W;qA4Q)p?+f?ml`oUk^+tDa5EhQAgKG8t z&BbYOqL1AO%e_^4p_PErHHY-P^t;6>C>s`Gwxp>+QWp`>54f+AbeXnsY~6J6{V?@$z(KX;|*R+bYjhAPEPj zw^s+_U4Lu^K)y=(EjfD(y9D%v(x9| z{^x67M~{coGCugc_;rAAwn&SSfvn#2aT~N!kr-$S9Z;lW(dVrG(L~9ifBvId@Aosb zih+a~Dcj34_u3gl8(lLY2qfs-waQPIqbnPVr$h%a5fpQFZDP&G+H9C>sY;l8*Ko4z zxwia8+M|t|1wRwDs+4jepL1aSya*1T6&G6;7H1Qy4EZYb&Ah_PmBme;Fo$YkKf!G( z{$P@Y@q&tQs*}>}l$v<2qis&%eMi;G=7@AN*?w?HpijUzN7ZwYy}q{V{k88W7u)*F zydEDA=QAg+-$Cy`#j}#dVC|Kj zyvxvp6myx>5Or~o@49jBw%@h$v zabnS#_eT|+QY50+#xnTWRq!|avI#lpI`X+W`04#V(^}5&@&T-nN^V7(IV?!;srqR`MS|GP-z06cVB$-VGkl z-p`*OEo^SCSQgJbXmkWDbzKG=kt7J-k7Py#zvRGcxzR_m+%8z9iU(_EIVTI`oPr${ zA^0D$*ibS&FHYutoPBFe1RqQuTh;vI8;4sEb7SXjkfV6eO0(O_JO}o#KuF6~vrqlC zzt@6DuE=GOfq2_ekY5no_w4GUuuz9n!Ks29tOk>i@?xJTd5Yy?qb6qH+eA#%%H&Oh z>vq}grt7PR*A*Qt0q#MKj~|x{bzm2SkcC|5iiwJajX@>nx_O~iL^8sK-ZS|>PHt@k z`)8d&egY0Z4qQ2OTHno2z|D~lzBFNSa{O5N@g>Hsi-VV_b29k8z2&ngNhW_X(Yddl zGu#(`5rdYHYmVg`Z+TMYdF~E>-Sy=U2ho_q%`&jtY|pJ`ZV!3*U>eUD{Gw5p>?{pJa5;Am%(~d)i<|( z9aB2HbHDdJBjD2ZqWQd9pgq1xUx3VaFXXcc34sse*<5bNg?XpWpvVCcA=v??NLBB? zL;a1d_q#d4JP|>IrS>1fE37g4ZjdhlZdmbE`;!}ejupD3=6dj+rUgUmy6}^NvpZco zYiW1EXcIU3_1|4@(pT7Fm_Fir`7mGQ{VE^(?ZO4gNu;YXmsriAEI7kAil*eHcM9i9 zesQEGNFKZ2@oSVX#Mkf#qg?CaE|S%$CrfcZNfOV4yGYTD202<|ctEydv5gu& zJs($V(PAejU>*%Zq8D|w5tL?9A{R_XgWmywtBNg2mzs39!H(EM5{qGBw;zIZ*z-F$ z$u*`$kkmO=QxhMahu&RV)dp&DeL`zH5TAhp-rI2sXd{XabZIx3M-aoIT4!_TM;@iu zj@!4D8thb5B&(+&g^w)eUm$FhR8-W$E1w%TWSi#H2kx|v@?&;#5Q(QLBc5vtGflH1 z`knTffL8@1!ehBLkojf~gs!5iGdo%{b|7cx}-UF|g#PzPFN2r3vnp30&LVo42Q21n%(e4!Bb%B75^KG1-6jh3;L|E2KL8%g_o^kDA7Sey* z^AoH?*BYkje*X-gaD?Es&C^@0qj9i~sos>B^0RNthrvs3cS#Slblxp8WjlPPJPt*de!29BxCf26(cb6|(YWx0 zV>Ryw`WXL{4wf!`e^j0ZeU4F6R)%mhGsuYX1c&IH^V<8M;g6kZ&l^Kw;;+B(O7qC} zbOXw0SF)40vYm}If2yEDgw5GEAhii|yBf4KpNm7r@BSdRB4ce@;;anfPjm!b6M0I= zTO)7i=P#E=3|S;&QhHoS*5e!s+~dPT-zsjs9`RQ)ROLuI*jjw+6$S1rE-D&M2@2+!+{op@OIm_kma#mic8ih znW7Xe1>R|L(*2Q9c!j7)$0Bc=07{d`TftASMM%27b4_*F$FQWGbJD$?$Fan1hRIsG zOtNHO1&g(a2qz@G_xgY_w?v@(W$Cb3GN9b6J8><&*wN?vNST4&vnmMTN`VIh#dc-@ z>Q3gL*Ui(BCBnQ3voMIe z1!Ah{V{OmNnR>Zr;ZB8-;65XhfZV(s>6LyePF&F1Z!F_i0Ay@DJ?>`8@+K3XxK}yx z9G^D5Oyv3|bb~Zp%`;IND15j5CYnurI0KqnWyScq?^hHv z9~y|NZeFDL-3`|(ezGn^3!Bi=h+`#-6KSjutKIXxeMz8SI_2*n2%`zFd?wU7k#Go9 zG&+-2xRGB;Z?)yz?{u8gx!I@WF!=lEsM?~NI=#v}o|JlyW#dC?TKS^nxHhWq;Cxjt zWS`PxEncXTw=J2N8sepjNyFP^$^47TarG2x$6lm);ZwR^JX`X%rj~GM*dosOBul}A zLs>hq`(*x1vh+W(gG8hqd5H9NJk@Z$!=*7kp;YaU~8VTzfIaS%{?Z&;a z`W9{#b{(De(|n1y>`NhoI+C^uqDmDvx|~ma0YyAjS(RFCHZuM8*u<L5XY?hXA>t{whmi8f&^)8SGQe5%1h=l@e9SP za_9?f62cI?BiTLq+*kzO+E38lP=&(TS;;jmsJS+gO?DEFNzveoZO1Z~;VB(E2c6V{ z8SI(v+WaK?1D3_$x}P4%4!nL*1XS$ITs8M2YMJ7mY97F?>U+5vb)T@z&C~~Wbg*0E zcUytq@RVI2Oe@+#lBL*Srmekkk~%NGi#UIORp>Wu8c0|)ts|Y}{)EO&6(zYxnvQ5fHmd#NA9rqHL@z#-S~BRD(bHuzwc+3ZXWET# zL(;QH8K^Kpk|+N9q&8C40bg-aIwU#Odb!_sSg~RXQ9ws^C>~GXc@=So8@4)udtam- zM;9@i>U2p{Q{E!3o}aWr=Jb++84Leh=`t+rPze>k!ZAxc^m7BE}apvM}KXZpH9WWtt zQ1oYcA=#I|Hn z3?g}3NF8MA{@Zq=Ld`Jok-Cb1R$eHyP8Z*(A*FKtC`9)11R;}DB3bd1>VmWk>+Y9j z7#XDhH{MnJvD1%w^buNy#<LDXYj1=$kfDW&)84W7}K-99t z;o>62W6zGb_yd0tm8L_f^oZ=7f^P!Te{d2^e&n4talxWB4I2G;%U;Aobzs6yNwHOQ z{yDhcwLpLpNAGknbap_?jA7D$h|TACHg&(q@I#xKU)GXn$jZIIny6rPH!V%}H_;*d zDGC{#80k|ZgZ1axD}dIFYEEdL9s?xlL>-Mf`h}Bk&UBTiyo_)Lxn$9&6;Rsrr3oep zosDuoMMTRf-{l)DLv!J)-J5?38 zv(+aT_3*@n1dHK}pTZr_c!Yd>V&c~q73QpKAg7Y_}50ehnF8qRzZ;8v#Km*E(k^BZvtydOm;@l$4X8x>snqrm(W!wkOs=B$1-5fXDo9}*bKg{r(!JP^WT6h30x;F z7e*Gk0a4K#-qt_ZxT<|c;K6PNb9QkWB$Fz)Y&A@2! z>9ZUQl*g18s=HylLo0+F?;ih5Bq(d7m-`n1&B8#$OI%)BJ6bYYe+=ixK z$=XayEb4I$4dWK}65V=#YuNFXw^QpX8OdC)qEbI$wR{$d{y{7D#d|yg%*Nf<;-uNr z3nGA1Z?X@T?-rwRxDl->NluI=r$0o0R9Ro(h@F=+&mpDK*?w-*yZm zTSgK8F{DCPO87lHp`6t)u~f0th4Tm|SyGL`!~7rjByARlX5Pz9hWQdB+sW`4dg6=G zV4S{}kS;JbR=91*y_()EQoT0j{)Ld6Ri2|nnKgTt1u4FZi$YnKlS=SghRI*BLHhFv{vS251Kpi#!Kxw;J;UO8uE8lBjlABQwYqk$ zNw)`y$-#)G`hb9>lw#HaIlByULoi4yQk8Ve`LnFBuH=^fr?4>Pc3js0=bIuVl`gN5 zugqFmEF8bSBK{(7!8uy_biK92{~S(AB(y5@=j*wRXmtKPx>t4CbUwrLRX>0+^xl{d zB=`nOXhKJbPJ@k@^RODX7bCAKH&9ugMu2c}_XetALJEmM-(BV5xA7mU1{X-#+U9F1 zdB4^4E;_Pv0|^mK(5h}S*-MWd?t)6ihc_FAr}oWp%ftPD${(nuJnvn=y~e4Ja~)^K zzB;WOLW!p+&llU3PZdt9qiK*723xgZ3O3E#uFnW-m1a3Rs6k$QXj@!&2SsFPzQ8 zOa4l23Kqd+#vzMD7y;uJQLP4H=l8AMSgfG&LGw&0Au7ec&Jw~zLSE!X{`3-fnH&LC zZTBdcm?7@1uqcn{V9!^0bNsAynMJ&NbeMMi4dv08U^;kl01WE5jI+%NN$gutwCmE< zW~Oisu<^(o-Ae3cJyw4%OXXrc+d!efWB%>8=0NpJ+=i>`&azWiX~S2JMVc18&!osg z<%LR6`ys*Dtj{a@Y;kJ+M$#|*FxF~qu9Nt;TVx`%a7ldrs2`9poO|5sMrFut`yFLh z-@I9`Pk&jBd)ri1HL$@Yg7JI~k#BYZ8jY3XBKZn|vI_iloIg_2 z4+zI$Rv3$wtu>$UQaZyu*HL!dzOhW6om?-h9EPZYiluXP^CZEPp)=ZDh}*P_aG|i9 zMg!$M6pHeb5#cKdFV*qyGrx-oVw@%^M`oO91;6O~g@oBw3O5a7j)%qf>Xo2kYjN#oF8jh8Nsmw1ml7l~c|o-dmNwqN(o4Y{SQzKqFJf zOiZyrIf%Sg(~@yJ%i^;+b_pRb(hS;?u5D~bAzjx2(2|TZzkk5jPyRmP}8w_4ye7HC5=V{@LCDwEJdPb+EeFqvlOE{*ch%L@`= zm~+W?EBBlW!lBs3jD$rHlg_e;Ji!p;0O(>fk7LEkip}nIB-Gng{yI*k@w*1jZz@Y|{1czBcv@f3sSfKEts0h$n(OK)ln{Wb4`LLK`q{`U_z#8YyNoiE`E zNt*Oow=s-KldCig-0P-aWl{}X-WcV+^4j-OO%p0t1&cXuM9%RzA=RWp3Aq}IU;kK{ zXe8>R4z{j4yQTP+&o+Ba+g28V=!ExOgQD7ZKkt?C>edHbLR$&B&`5)8BBU0GQN8o^ zj`v)=q{A+i&pLkU4(Bs(D~^}McQ=2+>-0tiYm^b0>CT6o7ShS;r53;>#&{H260GZZ zib9OjQP?uMX{tVm6&R}Jagp{Qt>s9PVG*jjTXe^r$cO?wYV)tWwRI&Eil+0^uf(e* z`xXaoQCI$)Pt%vBS!P8$Pslk#-pzT}(Tdhzp={a@OBbgkx)}*4`l0s`GPuiQi3oPR z#m(FGz-Zue`t7E!hG8nF;o+h6&ClEB>(u;m_oWet014S2Vj0vNm zCH*M7e^k;E zGb!@ggqSWyyKoB6GfdtGz=#Ecp%qn*^o0GDw~LWsFh}2D?#U!q*veE({>zKs&$t!_ zv09>WU+sxb590oa<73;5v*0?6GqMqgpOsD>@p|_{4#GuXEfN36Tc@6w2k|($3O9;; z!>-6rbN#%4Xfu&={nqhI9HcnH5-c=-gAsDOAgE(2EBsoAAW-W-B}}hGcOIoYgJ>i0 z$oO)Si2Q8L;loOGtjn5#JXpBKB@h$c#C&o>Sy_wKrGfJ#%c`_?WpbeHS;Za~E6t+6 zAWcPx7ncWnQTk^qbL*p{n6>Ws<(w%1x4Y;D$4K&ad3p&B|49aX2BHLzpj?VekjMRr zQEp;2pFPkk+1g*R9e}hzYEM@jTe|QynIK(13 zY;LflTHfrGNG)(L)N#ir=J0JO>fKN>`oKLekRV$z7RZCz38uvgPrFg?kt6Ggc!B?F z`xW`|YEah-a=C^(-B^WX-bn&bDGBJ4=mq3 z*vlzeVGCOnL?g6N4Rz7a1fm}Pwsu?*yFJjha%KH?XDrx zmXcx)c&HAeUz52$W#~f~!UXbwqds)eyweYf0w-XuQE0>(1n|38$zYAFkqG_ls_!_d zrsGD{mOo_o>#izYeQw>fD;66KM*&JPjhC8@G;#@C79m3VE6|oc^x+nxi%0>I%qUm& zdxea4Qz1%)%@Gh4AY=5T;wJkMJ3h%&u^0@Wz0KwwNHvPpcrBjQ07MoWt%v+9YVgcu zH3u_PB4CUrS7sXh{IjA=9f!w=I`w+1ebC$fCTt(7Nk(BCT$UHFKQ{|})lBX*iUF1b zZ9f)F3K~EzasSK;ye$A(RJSTXNPFlt1N}RFF=j8#N0Ox;-?6{&QqCcO#6%-enzK`) zmDRu7$8#7@8Q6?PJ?HmD3 zqq}FAtn7>sZ_$cfGCh14-pwc0P)94U{DPFf`CeilFvwBQ;Y=-uzIsDKeROuuGx* zS53!Iwel~XiLV`1Vy=ks;vJYO@48`Da0K;1lF`Hm`R8);I9L%I^zSR>W;Jf3M4K;D zRJpX3yjZ*pmASX57sr7xtBK2>5QWnc@}Y)o)& zvhGSGG*>op!eXD0w$*NU?~-%i1s$eO*x>QTGT0<-h!$aLbHLPXWKVa70GGsiJ86OSYB`|-* zw8u$Xle)t1r1bdB&bV`%o|#c<1-2;M?@~w!)6zptpHuVeH+{m;Zj#PTC4Vrk z8Nj8#Be)l89rK)0NgX26qufV&VL;wGL-3tprE7NIBx$uaEuNINHSX%jg{CF%Xb-4SquxwoOvowz?SNTzfL-6tdb&F07!q6e!+#NtFeaJaa zoUVXPr8<^nk(w4-;TQ@Ggt9s1>rsfbhKPio5Ny-nd^nA~Y3E`2eE5+L{UNfU-+cIM zYpHiOo%Kfso0*J-WXD7AAUP#0R|%nwnJeWUsKH9lU0z_4RPlPb}3>6$*DB?|#0+b=Zy7Ch2`+QeT1 zSR9Y`lEvvO1{ehztaq2R(CK)I&-N&}KBwzBj&o-~ZU6Mu6Tg}nZIEgGXndwnE5l(A zK#OV*i~!PuJCrPRRzY}~JASbn5B;t3rMSp5U#_q?lur{HNAhTHDIUl?N ziD*b2M=mzp^R$}=XbJYw3XKwyAne+CJFdfHBc&*JC5IlaZy>>AQW*E=#r;Z>$D=HSlx4KXg;#YDFH zz(&MIgL+I9)Vc9t__X$7B;RZ`P%xpg{wEWfOlz&ElRIk2H)y7R2~8rn)SMoG-@>0I+j&^?J>zp#lW4Bj5v29`8>P z)YnE=x}rcp$s7Uz@1J?`^h6CP3G0Lv$$}(7I+d_>Sr8A%zY<0y2NDGl*28q=Ktdp? zdRU4ah>rSckbmPIH%R_9umO8gTX2|%JctZ-AO}K!%H~cEL=K{8euC665qS{dKk*mM z+Tm(Q0Kg~#0KoWf{8JM2olnxI83}tY{}?*l_hgg9*5yIOPw@5$nhgJi{0e`ehQcEh zoA?Xk6+nbf%2?$`h&BBeF8v2Sg#+Kga1{UUB1Gj;6Z!Q?Lk4441fjs<6hSyo(RqrG z9>SHsp3Y?;8f;bZZ$^$>aP0rH*8D^L`3z};(j!`Sf59k$N!Pu!+^>lo`3pi5IVll`6y`lKcc~-zvDeF z3!;C!v2gYmJ}w0`*tqiFdcHmN$?57}4>F8I(j6xDZtT29T>h(rl9dP~HDf*C&ce`5#*TAKLvy l&1wEauT(+QC{OAAv$DWykF&>28YZL$qC&Qj1wGdC{{UuQOV$7Y delta 27010 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 rl>P=ND?Ou= { alert("Thank you for using Pocket Bird! You are on version: 2026.1.18"); }, false), + new MenuItem("2026.1.19", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.19"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/extension/manifest.json b/dist/extension/manifest.json index 5a87d8c..8539dc3 100644 --- a/dist/extension/manifest.json +++ b/dist/extension/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Pocket Bird", "description": "It's a pet bird in your browser, what more could you want?", - "version": "2026.1.18", + "version": "2026.1.19", "homepage_url": "https://idreesinc.com", "icons": { "48": "images/icons/transparent/48x48x1.png", diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index d1604d9..fc27476 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -1,7 +1,7 @@ const { Plugin, Notice } = require('obsidian'); module.exports = class PocketBird extends Plugin { onload() { - console.log("Loading Pocket Bird version 2026.1.18..."); + console.log("Loading Pocket Bird version 2026.1.19..."); const OBSIDIAN_PLUGIN = this; (function () { 'use strict'; @@ -619,6 +619,8 @@ module.exports = class PocketBird extends Plugin { TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", COWBOY_HAT: "cowboy-hat", + BOWLER_HAT: "bowler-hat", + FEZ: "fez", }; /** @@ -1922,7 +1924,7 @@ module.exports = class PocketBird extends Plugin { }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAMCAYAAAAK/x/DAAAAAXNSR0IArs4c6QAAAOBJREFUOI1jYBgFo2AU0BYwogvw8fH9h7E/ffqEVQ0U/CdD7j8SmxGJD1fLRKTDMQw+fPYSsgX/kdlocihgb2cE3Iz+MGsMeRZcNkJDhyjHtdS1MzAwMDDUNFVidQQuR106+5iwg/bJyUEYHz8yMDAwMJg8xtTEwMDAcOPBU4bZa7czvLx4gYGBgYHh3ac3DEUFxQyati4MNx48xXA0jPH6EMI8SUx5RnjcYUk76AA9Tfyvaeth4Pjxm+HdpzdwQS4xSYaWqhJ09f+RogoFwEKpcNVRVAeRAQhFD4YHiFEPACvNUImGnKycAAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAATxJREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIRX8xyKGYjYTuQYfPnsJ2YL/yGw0ORSwtzMCbkZ/mDVRlikIqv5Hjgh84LONDcNnPT2G/6f54fYgy7Pg0giNXWLA/5a6dgYGBgaGmqZKohwF8/Sls48JqoV59MWXJwwcrJz/f/z+jj81fPrE8O/HD4bpvpwM/08zMDCafkSRxvDwGml2CINHloGBgYHB5DF2R9148JRh9trtDC8vXmBgYGBgePfpDUNRQTGDpq0Lw40HT9GVwwPi9SGEeZKY8hieISHgMQC6Z1EswJJ3caqFObKmrYeB48dvhnef3sAFucQkGVqqStDV/0dKyigAFsuFq47idM+LL08w9OGIaYJ5mJLCglDyxQggEtXTBAAAgRd0Slay6H4AAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2043,7 +2045,7 @@ module.exports = class PocketBird extends Plugin { insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.18", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.18"); }, false), + new MenuItem("2026.1.19", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.19"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/obsidian/manifest.json b/dist/obsidian/manifest.json index de3d1eb..24155c8 100644 --- a/dist/obsidian/manifest.json +++ b/dist/obsidian/manifest.json @@ -1,7 +1,7 @@ { "id": "pocket-bird", "name": "Pocket Bird", - "version": "2026.1.18", + "version": "2026.1.19", "minAppVersion": "0.15.0", "description": "Add a pet bird to fly around your notes and keep you company!", "author": "Idrees Hassan", diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 498b953..dfc280a 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Pocket Bird // @namespace https://idreesinc.com -// @version 2026.1.18 +// @version 2026.1.19 // @description It's a pet bird in your browser, what more could you want? // @author Idrees // @downloadURL https://github.com/IdreesInc/Pocket-Bird/raw/refs/heads/main/dist/userscript/birb.user.js @@ -628,6 +628,8 @@ TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", COWBOY_HAT: "cowboy-hat", + BOWLER_HAT: "bowler-hat", + FEZ: "fez", }; /** @@ -1884,7 +1886,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAMCAYAAAAK/x/DAAAAAXNSR0IArs4c6QAAAOBJREFUOI1jYBgFo2AU0BYwogvw8fH9h7E/ffqEVQ0U/CdD7j8SmxGJD1fLRKTDMQw+fPYSsgX/kdlocihgb2cE3Iz+MGsMeRZcNkJDhyjHtdS1MzAwMDDUNFVidQQuR106+5iwg/bJyUEYHz8yMDAwMJg8xtTEwMDAcOPBU4bZa7czvLx4gYGBgYHh3ac3DEUFxQyati4MNx48xXA0jPH6EMI8SUx5RnjcYUk76AA9Tfyvaeth4Pjxm+HdpzdwQS4xSYaWqhJ09f+RogoFwEKpcNVRVAeRAQhFD4YHiFEPACvNUImGnKycAAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAATxJREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIRX8xyKGYjYTuQYfPnsJ2YL/yGw0ORSwtzMCbkZ/mDVRlikIqv5Hjgh84LONDcNnPT2G/6f54fYgy7Pg0giNXWLA/5a6dgYGBgaGmqZKohwF8/Sls48JqoV59MWXJwwcrJz/f/z+jj81fPrE8O/HD4bpvpwM/08zMDCafkSRxvDwGml2CINHloGBgYHB5DF2R9148JRh9trtDC8vXmBgYGBgePfpDUNRQTGDpq0Lw40HT9GVwwPi9SGEeZKY8hieISHgMQC6Z1EswJJ3caqFObKmrYeB48dvhnef3sAFucQkGVqqStDV/0dKyigAFsuFq47idM+LL08w9OGIaYJ5mJLCglDyxQggEtXTBAAAgRd0Slay6H4AAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2005,7 +2007,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.18", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.18"); }, false), + new MenuItem("2026.1.19", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.19"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index f612364..294f737 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -614,6 +614,8 @@ TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", COWBOY_HAT: "cowboy-hat", + BOWLER_HAT: "bowler-hat", + FEZ: "fez", }; /** @@ -1864,7 +1866,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAMCAYAAAAK/x/DAAAAAXNSR0IArs4c6QAAAOBJREFUOI1jYBgFo2AU0BYwogvw8fH9h7E/ffqEVQ0U/CdD7j8SmxGJD1fLRKTDMQw+fPYSsgX/kdlocihgb2cE3Iz+MGsMeRZcNkJDhyjHtdS1MzAwMDDUNFVidQQuR106+5iwg/bJyUEYHz8yMDAwMJg8xtTEwMDAcOPBU4bZa7czvLx4gYGBgYHh3ac3DEUFxQyati4MNx48xXA0jPH6EMI8SUx5RnjcYUk76AA9Tfyvaeth4Pjxm+HdpzdwQS4xSYaWqhJ09f+RogoFwEKpcNVRVAeRAQhFD4YHiFEPACvNUImGnKycAAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAATxJREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIRX8xyKGYjYTuQYfPnsJ2YL/yGw0ORSwtzMCbkZ/mDVRlikIqv5Hjgh84LONDcNnPT2G/6f54fYgy7Pg0giNXWLA/5a6dgYGBgaGmqZKohwF8/Sls48JqoV59MWXJwwcrJz/f/z+jj81fPrE8O/HD4bpvpwM/08zMDCafkSRxvDwGml2CINHloGBgYHB5DF2R9148JRh9trtDC8vXmBgYGBgePfpDUNRQTGDpq0Lw40HT9GVwwPi9SGEeZKY8hieISHgMQC6Z1EswJJ3caqFObKmrYeB48dvhnef3sAFucQkGVqqStDV/0dKyigAFsuFq47idM+LL08w9OGIaYJ5mJLCglDyxQggEtXTBAAAgRd0Slay6H4AAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -1985,7 +1987,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.18", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.18"); }, false), + new MenuItem("2026.1.19", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.19"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/web/birb.js b/dist/web/birb.js index f612364..294f737 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -614,6 +614,8 @@ TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", COWBOY_HAT: "cowboy-hat", + BOWLER_HAT: "bowler-hat", + FEZ: "fez", }; /** @@ -1864,7 +1866,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAMCAYAAAAK/x/DAAAAAXNSR0IArs4c6QAAAOBJREFUOI1jYBgFo2AU0BYwogvw8fH9h7E/ffqEVQ0U/CdD7j8SmxGJD1fLRKTDMQw+fPYSsgX/kdlocihgb2cE3Iz+MGsMeRZcNkJDhyjHtdS1MzAwMDDUNFVidQQuR106+5iwg/bJyUEYHz8yMDAwMJg8xtTEwMDAcOPBU4bZa7czvLx4gYGBgYHh3ac3DEUFxQyati4MNx48xXA0jPH6EMI8SUx5RnjcYUk76AA9Tfyvaeth4Pjxm+HdpzdwQS4xSYaWqhJ09f+RogoFwEKpcNVRVAeRAQhFD4YHiFEPACvNUImGnKycAAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAATxJREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIRX8xyKGYjYTuQYfPnsJ2YL/yGw0ORSwtzMCbkZ/mDVRlikIqv5Hjgh84LONDcNnPT2G/6f54fYgy7Pg0giNXWLA/5a6dgYGBgaGmqZKohwF8/Sls48JqoV59MWXJwwcrJz/f/z+jj81fPrE8O/HD4bpvpwM/08zMDCafkSRxvDwGml2CINHloGBgYHB5DF2R9148JRh9trtDC8vXmBgYGBgePfpDUNRQTGDpq0Lw40HT9GVwwPi9SGEeZKY8hieISHgMQC6Z1EswJJ3caqFObKmrYeB48dvhnef3sAFucQkGVqqStDV/0dKyigAFsuFq47idM+LL08w9OGIaYJ5mJLCglDyxQggEtXTBAAAgRd0Slay6H4AAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -1985,7 +1987,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.18", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.18"); }, false), + new MenuItem("2026.1.19", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.19"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/sprites/hats.png b/sprites/hats.png index 242b8da49b702a0bb45035b6db71b224a35a1170..e815000394c52f6772f652add973a30692ba60c9 100644 GIT binary patch literal 386 zcmV-|0e$|7P)Px$JV``BR7iF6XU=)mkQ80J`Bf5Zspz41Z`@#F$Sk*wme=_9$Be5Bg__)j= z75v8{hGI4oxdtCTdkNWs|Hy1KITWzBGXic#f0#8&j|r-UdGy7XCkz~{od19P{*FI2 zeEP)j@5c{@>Asu{|4%b8Fq(cuk;d@w8fkV2gGZKufq{X+c6px@S==z>;@ys)aeS zrmcs8;MyegFUf07*qoM6N<$f+dWs8~^|S literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^DnQJ`!3HF`{>vW*QjEnx?oJHr&dIz4avpfPIEGmC zCMQU+E=~}+AZD_O*Zyh=}tLVZDRdD z@n%MmMnZl%%blKo2H8B7Vlie;&g~kNk<8J zdn1s{44Y$DjvP2}py2Vr;I^CD+l}|^sb~a&hj*8o^SH7e<(aijkH=ij=4gRQ&&OW^ zhip83D%~pXBzjuEV6gT5vp(~6;)5R_XM>a%IO-XCwoO|lRPy!z#6?`J2b@+GTn!9i kpUBAJ%HPJ`5y;P=eKw%8ZO)oGK)*70y85}Sb4q9e0N7M?=>Px# diff --git a/src/hats.js b/src/hats.js index 1a7d7bb..a088b69 100644 --- a/src/hats.js +++ b/src/hats.js @@ -9,6 +9,8 @@ export const HAT = { TOP_HAT: "top-hat", VIKING_HELMET: "viking-helmet", COWBOY_HAT: "cowboy-hat", + BOWLER_HAT: "bowler-hat", + FEZ: "fez", }; /** From 3227167cb52b145e3446830d59b879622d650517 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Mon, 19 Jan 2026 20:31:49 -0500 Subject: [PATCH 11/24] Add wardrobe menu --- aseprite/hats.aseprite | Bin 759 -> 756 bytes dist/extension.zip | Bin 151277 -> 152221 bytes dist/extension/birb.js | 144 ++++++++++++++++++++++++++++++++++- dist/obsidian/main.js | 144 ++++++++++++++++++++++++++++++++++- dist/userscript/birb.user.js | 144 ++++++++++++++++++++++++++++++++++- dist/web/birb.embed.js | 144 ++++++++++++++++++++++++++++++++++- dist/web/birb.js | 144 ++++++++++++++++++++++++++++++++++- sprites/hats.png | Bin 386 -> 388 bytes src/application.js | 108 +++++++++++++++++++++++++- src/hats.js | 27 +++++++ src/stylesheet.css | 13 +++- 11 files changed, 856 insertions(+), 12 deletions(-) diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite index 7f768e4a7f619df9a77d0e748e499792968b1d53..59d937e195755ce18fbf36f9ec36a3214fd13126 100644 GIT binary patch delta 75 zcmV-R0JQ)21@r|0^sxb(0ufjM008>&0RWHz00031002mntpXh?0E7Q%7%ui%Pw)T# h)BGs%|LyJne^gWZKTSdcMGjdUi&0RWHz00031002vqtpXh_VEE5~i9z81XB(UU kpY`miozV{ABO{yH*j-s)^yJNW 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 delta 28239 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 o6sCe22kM)R$U>!X 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 Xycs>iKvOA*pC*t3!CD6RT%i9CIy`%N diff --git a/dist/extension/birb.js b/dist/extension/birb.js index fa74efa..9ae9445 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -618,6 +618,33 @@ FEZ: "fez", }; + const HAT_METADATA = { + [HAT.NONE]: { + name: "Invisible Hat", + description: "It's like you're wearing nothing at all!" + }, + [HAT.TOP_HAT]: { + name: "Top Hat", + description: "For that classy, sophisticated look." + }, + [HAT.VIKING_HELMET]: { + name: "Viking Helmet", + description: "Sure, vikings never actually wore this style of helmet, but why let facts get in the way of good fashion?" + }, + [HAT.COWBOY_HAT]: { + name: "Cowboy Hat", + description: "You can't jam with the console cowboys without the appropriate attire." + }, + [HAT.BOWLER_HAT]: { + name: "Bowler Hat", + description: "For that authentic, Victorian look!" + }, + [HAT.FEZ]: { + name: "Fez", + description: "It's a fez. Fezzes are cool." + }, + }; + /** * @param {string[][]} spriteSheet * @returns {{ base: Layer[], down: Layer[] }} @@ -1752,9 +1779,20 @@ width: 322px !important; } +#birb-wardrobe { + width: calc(322px - 64px - 14px) !important; +} + +#birb-field-guide .birb-grid-content { + grid-template-rows: repeat(3, auto); +} + +#birb-wardrobe .birb-grid-content { + grid-template-rows: repeat(2, auto); +} + .birb-grid-content { display: grid; - grid-template-rows: repeat(3, auto); grid-auto-flow: column; gap: 10px; padding-top: 8px; @@ -1881,11 +1919,12 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAATxJREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIRX8xyKGYjYTuQYfPnsJ2YL/yGw0ORSwtzMCbkZ/mDVRlikIqv5Hjgh84LONDcNnPT2G/6f54fYgy7Pg0giNXWLA/5a6dgYGBgaGmqZKohwF8/Sls48JqoV59MWXJwwcrJz/f/z+jj81fPrE8O/HD4bpvpwM/08zMDCafkSRxvDwGml2CINHloGBgYHB5DF2R9148JRh9trtDC8vXmBgYGBgePfpDUNRQTGDpq0Lw40HT9GVwwPi9SGEeZKY8hieISHgMQC6Z1EswJJ3caqFObKmrYeB48dvhnef3sAFucQkGVqqStDV/0dKyigAFsuFq47idM+LL08w9OGIaYJ5mJLCglDyxQggEtXTBAAAgRd0Slay6H4AAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAT5JREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIQf8R+OjmM1ErqGHz15CNvw/MhtNDgXs7YyAm9EfZk2UZQqCqv+RIwKfuxgYGBg+6+kx/D/NjyIGAyy4dEJjlxjwv6WunYGBgYGhpqmSGEfBPX3p7GOCamEeffHlCQMHK+f/H7+/400N/+3tGT49f84w3ZeT4f9pBgZG048o8hgeXiPNDmHwyDIwMDAwmDzG7qgbD54yzF67neHlxQsMDAwMDO8+vWEoKihm0LR1Ybjx4CmGO2CM14cQ5kliymN4hoSAxwDonkWxAEvexakW5siath4Gjh+/Gd59egMX5BKTZGipKkFX/x8pKaMAWCwXrjqK0z0vvjzB0IcjprGlMEacHBIBoeSLEUAkqqcJAAAmBnNJoDeWTQAAAABJRU5ErkJggg=="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; + const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; @@ -1961,6 +2000,7 @@ const menuItems = [ new MenuItem(`Pet ${birdBirb()}`, pet), new MenuItem("Field Guide", insertFieldGuide), + new MenuItem("Wardrobe", insertWardrobe), new ConditionalMenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { @@ -2448,6 +2488,8 @@ if (document.querySelector("#" + FIELD_GUIDE_ID)) { return; } + // Remove wardrobe if open + removeWardrobe(); const contentContainer = document.createElement("div"); const content = makeElement("birb-grid-content"); @@ -2528,6 +2570,96 @@ } } + function insertWardrobe() { + console.log("Inserting wardrobe"); + if (document.querySelector("#" + WARDROBE_ID)) { + return; + } + // Remove field guide if open + removeFieldGuide(); + + const contentContainer = document.createElement("div"); + const content = makeElement("birb-grid-content"); + const description = makeElement("birb-field-guide-description"); + contentContainer.appendChild(content); + contentContainer.appendChild(description); + + const wardrobe = createWindow( + WARDROBE_ID, + "Wardrobe", + contentContainer + ); + + const generateDescription = (/** @type {string} */ hat) => { + const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + + const boldName = document.createElement("b"); + boldName.textContent = metadata.name; + + const spacer = document.createElement("div"); + spacer.style.height = "0.3em"; + + const descText = document.createTextNode(metadata.description); + + const fragment = document.createDocumentFragment(); + fragment.appendChild(boldName); + fragment.appendChild(spacer); + fragment.appendChild(descText); + + return fragment; + }; + + description.appendChild(generateDescription(currentHat)); + for (const hat of Object.values(HAT)) { + const hatElement = makeElement("birb-grid-item"); + if (hat === currentHat) { + hatElement.classList.add("birb-grid-item-selected"); + } + const hatCanvas = document.createElement("canvas"); + hatCanvas.width = SPRITE_WIDTH * CANVAS_PIXEL_SIZE; + hatCanvas.height = SPRITE_HEIGHT * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + console.log(hat); + birb.getFrames().base.draw( + hatCtx, + Directions.RIGHT, + CANVAS_PIXEL_SIZE, + SPECIES[currentSpecies].colors, + [...SPECIES[currentSpecies].tags, hat] + ); + hatElement.appendChild(hatCanvas); + content.appendChild(hatElement); + { + onClick(hatElement, () => { + switchHat(hat); + document.querySelectorAll(".birb-grid-item").forEach((element) => { + element.classList.remove("birb-grid-item-selected"); + }); + hatElement.classList.add("birb-grid-item-selected"); + }); + } + hatElement.addEventListener("mouseover", () => { + description.textContent = ""; + description.appendChild(generateDescription(hat)); + }); + hatElement.addEventListener("mouseout", () => { + description.textContent = ""; + description.appendChild(generateDescription(currentHat)); + }); + } + centerElement(wardrobe); + } + + function removeWardrobe() { + const wardrobe = document.querySelector("#" + WARDROBE_ID); + if (wardrobe) { + wardrobe.remove(); + } + } + /** * @param {string} type */ @@ -2538,6 +2670,14 @@ save(); } + /** + * @param {string} hat + */ + function switchHat(hat) { + currentHat = hat; + save(); + } + /** * Update the birds location from the start to the target location on a parabolic path * @param {number} speed The speed of the bird along the path diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index fc27476..ed55867 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -623,6 +623,33 @@ module.exports = class PocketBird extends Plugin { FEZ: "fez", }; + const HAT_METADATA = { + [HAT.NONE]: { + name: "Invisible Hat", + description: "It's like you're wearing nothing at all!" + }, + [HAT.TOP_HAT]: { + name: "Top Hat", + description: "For that classy, sophisticated look." + }, + [HAT.VIKING_HELMET]: { + name: "Viking Helmet", + description: "Sure, vikings never actually wore this style of helmet, but why let facts get in the way of good fashion?" + }, + [HAT.COWBOY_HAT]: { + name: "Cowboy Hat", + description: "You can't jam with the console cowboys without the appropriate attire." + }, + [HAT.BOWLER_HAT]: { + name: "Bowler Hat", + description: "For that authentic, Victorian look!" + }, + [HAT.FEZ]: { + name: "Fez", + description: "It's a fez. Fezzes are cool." + }, + }; + /** * @param {string[][]} spriteSheet * @returns {{ base: Layer[], down: Layer[] }} @@ -1795,9 +1822,20 @@ module.exports = class PocketBird extends Plugin { width: 322px !important; } +#birb-wardrobe { + width: calc(322px - 64px - 14px) !important; +} + +#birb-field-guide .birb-grid-content { + grid-template-rows: repeat(3, auto); +} + +#birb-wardrobe .birb-grid-content { + grid-template-rows: repeat(2, auto); +} + .birb-grid-content { display: grid; - grid-template-rows: repeat(3, auto); grid-auto-flow: column; gap: 10px; padding-top: 8px; @@ -1924,11 +1962,12 @@ module.exports = class PocketBird extends Plugin { }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAATxJREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIRX8xyKGYjYTuQYfPnsJ2YL/yGw0ORSwtzMCbkZ/mDVRlikIqv5Hjgh84LONDcNnPT2G/6f54fYgy7Pg0giNXWLA/5a6dgYGBgaGmqZKohwF8/Sls48JqoV59MWXJwwcrJz/f/z+jj81fPrE8O/HD4bpvpwM/08zMDCafkSRxvDwGml2CINHloGBgYHB5DF2R9148JRh9trtDC8vXmBgYGBgePfpDUNRQTGDpq0Lw40HT9GVwwPi9SGEeZKY8hieISHgMQC6Z1EswJJ3caqFObKmrYeB48dvhnef3sAFucQkGVqqStDV/0dKyigAFsuFq47idM+LL08w9OGIaYJ5mJLCglDyxQggEtXTBAAAgRd0Slay6H4AAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAT5JREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIQf8R+OjmM1ErqGHz15CNvw/MhtNDgXs7YyAm9EfZk2UZQqCqv+RIwKfuxgYGBg+6+kx/D/NjyIGAyy4dEJjlxjwv6WunYGBgYGhpqmSGEfBPX3p7GOCamEeffHlCQMHK+f/H7+/400N/+3tGT49f84w3ZeT4f9pBgZG048o8hgeXiPNDmHwyDIwMDAwmDzG7qgbD54yzF67neHlxQsMDAwMDO8+vWEoKihm0LR1Ybjx4CmGO2CM14cQ5kliymN4hoSAxwDonkWxAEvexakW5siath4Gjh+/Gd59egMX5BKTZGipKkFX/x8pKaMAWCwXrjqK0z0vvjzB0IcjprGlMEacHBIBoeSLEUAkqqcJAAAmBnNJoDeWTQAAAABJRU5ErkJggg=="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; + const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; @@ -2004,6 +2043,7 @@ module.exports = class PocketBird extends Plugin { const menuItems = [ new MenuItem(`Pet ${birdBirb()}`, pet), new MenuItem("Field Guide", insertFieldGuide), + new MenuItem("Wardrobe", insertWardrobe), new ConditionalMenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { @@ -2491,6 +2531,8 @@ module.exports = class PocketBird extends Plugin { if (document.querySelector("#" + FIELD_GUIDE_ID)) { return; } + // Remove wardrobe if open + removeWardrobe(); const contentContainer = document.createElement("div"); const content = makeElement("birb-grid-content"); @@ -2571,6 +2613,96 @@ module.exports = class PocketBird extends Plugin { } } + function insertWardrobe() { + console.log("Inserting wardrobe"); + if (document.querySelector("#" + WARDROBE_ID)) { + return; + } + // Remove field guide if open + removeFieldGuide(); + + const contentContainer = document.createElement("div"); + const content = makeElement("birb-grid-content"); + const description = makeElement("birb-field-guide-description"); + contentContainer.appendChild(content); + contentContainer.appendChild(description); + + const wardrobe = createWindow( + WARDROBE_ID, + "Wardrobe", + contentContainer + ); + + const generateDescription = (/** @type {string} */ hat) => { + const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + + const boldName = document.createElement("b"); + boldName.textContent = metadata.name; + + const spacer = document.createElement("div"); + spacer.style.height = "0.3em"; + + const descText = document.createTextNode(metadata.description); + + const fragment = document.createDocumentFragment(); + fragment.appendChild(boldName); + fragment.appendChild(spacer); + fragment.appendChild(descText); + + return fragment; + }; + + description.appendChild(generateDescription(currentHat)); + for (const hat of Object.values(HAT)) { + const hatElement = makeElement("birb-grid-item"); + if (hat === currentHat) { + hatElement.classList.add("birb-grid-item-selected"); + } + const hatCanvas = document.createElement("canvas"); + hatCanvas.width = SPRITE_WIDTH * CANVAS_PIXEL_SIZE; + hatCanvas.height = SPRITE_HEIGHT * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + console.log(hat); + birb.getFrames().base.draw( + hatCtx, + Directions.RIGHT, + CANVAS_PIXEL_SIZE, + SPECIES[currentSpecies].colors, + [...SPECIES[currentSpecies].tags, hat] + ); + hatElement.appendChild(hatCanvas); + content.appendChild(hatElement); + { + onClick(hatElement, () => { + switchHat(hat); + document.querySelectorAll(".birb-grid-item").forEach((element) => { + element.classList.remove("birb-grid-item-selected"); + }); + hatElement.classList.add("birb-grid-item-selected"); + }); + } + hatElement.addEventListener("mouseover", () => { + description.textContent = ""; + description.appendChild(generateDescription(hat)); + }); + hatElement.addEventListener("mouseout", () => { + description.textContent = ""; + description.appendChild(generateDescription(currentHat)); + }); + } + centerElement(wardrobe); + } + + function removeWardrobe() { + const wardrobe = document.querySelector("#" + WARDROBE_ID); + if (wardrobe) { + wardrobe.remove(); + } + } + /** * @param {string} type */ @@ -2581,6 +2713,14 @@ module.exports = class PocketBird extends Plugin { save(); } + /** + * @param {string} hat + */ + function switchHat(hat) { + currentHat = hat; + save(); + } + /** * Update the birds location from the start to the target location on a parabolic path * @param {number} speed The speed of the bird along the path diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index dfc280a..443e645 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -632,6 +632,33 @@ FEZ: "fez", }; + const HAT_METADATA = { + [HAT.NONE]: { + name: "Invisible Hat", + description: "It's like you're wearing nothing at all!" + }, + [HAT.TOP_HAT]: { + name: "Top Hat", + description: "For that classy, sophisticated look." + }, + [HAT.VIKING_HELMET]: { + name: "Viking Helmet", + description: "Sure, vikings never actually wore this style of helmet, but why let facts get in the way of good fashion?" + }, + [HAT.COWBOY_HAT]: { + name: "Cowboy Hat", + description: "You can't jam with the console cowboys without the appropriate attire." + }, + [HAT.BOWLER_HAT]: { + name: "Bowler Hat", + description: "For that authentic, Victorian look!" + }, + [HAT.FEZ]: { + name: "Fez", + description: "It's a fez. Fezzes are cool." + }, + }; + /** * @param {string[][]} spriteSheet * @returns {{ base: Layer[], down: Layer[] }} @@ -1757,9 +1784,20 @@ width: 322px !important; } +#birb-wardrobe { + width: calc(322px - 64px - 14px) !important; +} + +#birb-field-guide .birb-grid-content { + grid-template-rows: repeat(3, auto); +} + +#birb-wardrobe .birb-grid-content { + grid-template-rows: repeat(2, auto); +} + .birb-grid-content { display: grid; - grid-template-rows: repeat(3, auto); grid-auto-flow: column; gap: 10px; padding-top: 8px; @@ -1886,11 +1924,12 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAATxJREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIRX8xyKGYjYTuQYfPnsJ2YL/yGw0ORSwtzMCbkZ/mDVRlikIqv5Hjgh84LONDcNnPT2G/6f54fYgy7Pg0giNXWLA/5a6dgYGBgaGmqZKohwF8/Sls48JqoV59MWXJwwcrJz/f/z+jj81fPrE8O/HD4bpvpwM/08zMDCafkSRxvDwGml2CINHloGBgYHB5DF2R9148JRh9trtDC8vXmBgYGBgePfpDUNRQTGDpq0Lw40HT9GVwwPi9SGEeZKY8hieISHgMQC6Z1EswJJ3caqFObKmrYeB48dvhnef3sAFucQkGVqqStDV/0dKyigAFsuFq47idM+LL08w9OGIaYJ5mJLCglDyxQggEtXTBAAAgRd0Slay6H4AAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAT5JREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIQf8R+OjmM1ErqGHz15CNvw/MhtNDgXs7YyAm9EfZk2UZQqCqv+RIwKfuxgYGBg+6+kx/D/NjyIGAyy4dEJjlxjwv6WunYGBgYGhpqmSGEfBPX3p7GOCamEeffHlCQMHK+f/H7+/400N/+3tGT49f84w3ZeT4f9pBgZG048o8hgeXiPNDmHwyDIwMDAwmDzG7qgbD54yzF67neHlxQsMDAwMDO8+vWEoKihm0LR1Ybjx4CmGO2CM14cQ5kliymN4hoSAxwDonkWxAEvexakW5siath4Gjh+/Gd59egMX5BKTZGipKkFX/x8pKaMAWCwXrjqK0z0vvjzB0IcjprGlMEacHBIBoeSLEUAkqqcJAAAmBnNJoDeWTQAAAABJRU5ErkJggg=="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; + const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; @@ -1966,6 +2005,7 @@ const menuItems = [ new MenuItem(`Pet ${birdBirb()}`, pet), new MenuItem("Field Guide", insertFieldGuide), + new MenuItem("Wardrobe", insertWardrobe), new ConditionalMenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { @@ -2453,6 +2493,8 @@ if (document.querySelector("#" + FIELD_GUIDE_ID)) { return; } + // Remove wardrobe if open + removeWardrobe(); const contentContainer = document.createElement("div"); const content = makeElement("birb-grid-content"); @@ -2533,6 +2575,96 @@ } } + function insertWardrobe() { + console.log("Inserting wardrobe"); + if (document.querySelector("#" + WARDROBE_ID)) { + return; + } + // Remove field guide if open + removeFieldGuide(); + + const contentContainer = document.createElement("div"); + const content = makeElement("birb-grid-content"); + const description = makeElement("birb-field-guide-description"); + contentContainer.appendChild(content); + contentContainer.appendChild(description); + + const wardrobe = createWindow( + WARDROBE_ID, + "Wardrobe", + contentContainer + ); + + const generateDescription = (/** @type {string} */ hat) => { + const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + + const boldName = document.createElement("b"); + boldName.textContent = metadata.name; + + const spacer = document.createElement("div"); + spacer.style.height = "0.3em"; + + const descText = document.createTextNode(metadata.description); + + const fragment = document.createDocumentFragment(); + fragment.appendChild(boldName); + fragment.appendChild(spacer); + fragment.appendChild(descText); + + return fragment; + }; + + description.appendChild(generateDescription(currentHat)); + for (const hat of Object.values(HAT)) { + const hatElement = makeElement("birb-grid-item"); + if (hat === currentHat) { + hatElement.classList.add("birb-grid-item-selected"); + } + const hatCanvas = document.createElement("canvas"); + hatCanvas.width = SPRITE_WIDTH * CANVAS_PIXEL_SIZE; + hatCanvas.height = SPRITE_HEIGHT * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + console.log(hat); + birb.getFrames().base.draw( + hatCtx, + Directions.RIGHT, + CANVAS_PIXEL_SIZE, + SPECIES[currentSpecies].colors, + [...SPECIES[currentSpecies].tags, hat] + ); + hatElement.appendChild(hatCanvas); + content.appendChild(hatElement); + { + onClick(hatElement, () => { + switchHat(hat); + document.querySelectorAll(".birb-grid-item").forEach((element) => { + element.classList.remove("birb-grid-item-selected"); + }); + hatElement.classList.add("birb-grid-item-selected"); + }); + } + hatElement.addEventListener("mouseover", () => { + description.textContent = ""; + description.appendChild(generateDescription(hat)); + }); + hatElement.addEventListener("mouseout", () => { + description.textContent = ""; + description.appendChild(generateDescription(currentHat)); + }); + } + centerElement(wardrobe); + } + + function removeWardrobe() { + const wardrobe = document.querySelector("#" + WARDROBE_ID); + if (wardrobe) { + wardrobe.remove(); + } + } + /** * @param {string} type */ @@ -2543,6 +2675,14 @@ save(); } + /** + * @param {string} hat + */ + function switchHat(hat) { + currentHat = hat; + save(); + } + /** * Update the birds location from the start to the target location on a parabolic path * @param {number} speed The speed of the bird along the path diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 294f737..72b9f6d 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -618,6 +618,33 @@ FEZ: "fez", }; + const HAT_METADATA = { + [HAT.NONE]: { + name: "Invisible Hat", + description: "It's like you're wearing nothing at all!" + }, + [HAT.TOP_HAT]: { + name: "Top Hat", + description: "For that classy, sophisticated look." + }, + [HAT.VIKING_HELMET]: { + name: "Viking Helmet", + description: "Sure, vikings never actually wore this style of helmet, but why let facts get in the way of good fashion?" + }, + [HAT.COWBOY_HAT]: { + name: "Cowboy Hat", + description: "You can't jam with the console cowboys without the appropriate attire." + }, + [HAT.BOWLER_HAT]: { + name: "Bowler Hat", + description: "For that authentic, Victorian look!" + }, + [HAT.FEZ]: { + name: "Fez", + description: "It's a fez. Fezzes are cool." + }, + }; + /** * @param {string[][]} spriteSheet * @returns {{ base: Layer[], down: Layer[] }} @@ -1737,9 +1764,20 @@ width: 322px !important; } +#birb-wardrobe { + width: calc(322px - 64px - 14px) !important; +} + +#birb-field-guide .birb-grid-content { + grid-template-rows: repeat(3, auto); +} + +#birb-wardrobe .birb-grid-content { + grid-template-rows: repeat(2, auto); +} + .birb-grid-content { display: grid; - grid-template-rows: repeat(3, auto); grid-auto-flow: column; gap: 10px; padding-top: 8px; @@ -1866,11 +1904,12 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAATxJREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIRX8xyKGYjYTuQYfPnsJ2YL/yGw0ORSwtzMCbkZ/mDVRlikIqv5Hjgh84LONDcNnPT2G/6f54fYgy7Pg0giNXWLA/5a6dgYGBgaGmqZKohwF8/Sls48JqoV59MWXJwwcrJz/f/z+jj81fPrE8O/HD4bpvpwM/08zMDCafkSRxvDwGml2CINHloGBgYHB5DF2R9148JRh9trtDC8vXmBgYGBgePfpDUNRQTGDpq0Lw40HT9GVwwPi9SGEeZKY8hieISHgMQC6Z1EswJJ3caqFObKmrYeB48dvhnef3sAFucQkGVqqStDV/0dKyigAFsuFq47idM+LL08w9OGIaYJ5mJLCglDyxQggEtXTBAAAgRd0Slay6H4AAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAT5JREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIQf8R+OjmM1ErqGHz15CNvw/MhtNDgXs7YyAm9EfZk2UZQqCqv+RIwKfuxgYGBg+6+kx/D/NjyIGAyy4dEJjlxjwv6WunYGBgYGhpqmSGEfBPX3p7GOCamEeffHlCQMHK+f/H7+/400N/+3tGT49f84w3ZeT4f9pBgZG048o8hgeXiPNDmHwyDIwMDAwmDzG7qgbD54yzF67neHlxQsMDAwMDO8+vWEoKihm0LR1Ybjx4CmGO2CM14cQ5kliymN4hoSAxwDonkWxAEvexakW5siath4Gjh+/Gd59egMX5BKTZGipKkFX/x8pKaMAWCwXrjqK0z0vvjzB0IcjprGlMEacHBIBoeSLEUAkqqcJAAAmBnNJoDeWTQAAAABJRU5ErkJggg=="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; + const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; @@ -1946,6 +1985,7 @@ const menuItems = [ new MenuItem(`Pet ${birdBirb()}`, pet), new MenuItem("Field Guide", insertFieldGuide), + new MenuItem("Wardrobe", insertWardrobe), new ConditionalMenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { @@ -2433,6 +2473,8 @@ if (document.querySelector("#" + FIELD_GUIDE_ID)) { return; } + // Remove wardrobe if open + removeWardrobe(); const contentContainer = document.createElement("div"); const content = makeElement("birb-grid-content"); @@ -2513,6 +2555,96 @@ } } + function insertWardrobe() { + console.log("Inserting wardrobe"); + if (document.querySelector("#" + WARDROBE_ID)) { + return; + } + // Remove field guide if open + removeFieldGuide(); + + const contentContainer = document.createElement("div"); + const content = makeElement("birb-grid-content"); + const description = makeElement("birb-field-guide-description"); + contentContainer.appendChild(content); + contentContainer.appendChild(description); + + const wardrobe = createWindow( + WARDROBE_ID, + "Wardrobe", + contentContainer + ); + + const generateDescription = (/** @type {string} */ hat) => { + const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + + const boldName = document.createElement("b"); + boldName.textContent = metadata.name; + + const spacer = document.createElement("div"); + spacer.style.height = "0.3em"; + + const descText = document.createTextNode(metadata.description); + + const fragment = document.createDocumentFragment(); + fragment.appendChild(boldName); + fragment.appendChild(spacer); + fragment.appendChild(descText); + + return fragment; + }; + + description.appendChild(generateDescription(currentHat)); + for (const hat of Object.values(HAT)) { + const hatElement = makeElement("birb-grid-item"); + if (hat === currentHat) { + hatElement.classList.add("birb-grid-item-selected"); + } + const hatCanvas = document.createElement("canvas"); + hatCanvas.width = SPRITE_WIDTH * CANVAS_PIXEL_SIZE; + hatCanvas.height = SPRITE_HEIGHT * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + console.log(hat); + birb.getFrames().base.draw( + hatCtx, + Directions.RIGHT, + CANVAS_PIXEL_SIZE, + SPECIES[currentSpecies].colors, + [...SPECIES[currentSpecies].tags, hat] + ); + hatElement.appendChild(hatCanvas); + content.appendChild(hatElement); + { + onClick(hatElement, () => { + switchHat(hat); + document.querySelectorAll(".birb-grid-item").forEach((element) => { + element.classList.remove("birb-grid-item-selected"); + }); + hatElement.classList.add("birb-grid-item-selected"); + }); + } + hatElement.addEventListener("mouseover", () => { + description.textContent = ""; + description.appendChild(generateDescription(hat)); + }); + hatElement.addEventListener("mouseout", () => { + description.textContent = ""; + description.appendChild(generateDescription(currentHat)); + }); + } + centerElement(wardrobe); + } + + function removeWardrobe() { + const wardrobe = document.querySelector("#" + WARDROBE_ID); + if (wardrobe) { + wardrobe.remove(); + } + } + /** * @param {string} type */ @@ -2523,6 +2655,14 @@ save(); } + /** + * @param {string} hat + */ + function switchHat(hat) { + currentHat = hat; + save(); + } + /** * Update the birds location from the start to the target location on a parabolic path * @param {number} speed The speed of the bird along the path diff --git a/dist/web/birb.js b/dist/web/birb.js index 294f737..72b9f6d 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -618,6 +618,33 @@ FEZ: "fez", }; + const HAT_METADATA = { + [HAT.NONE]: { + name: "Invisible Hat", + description: "It's like you're wearing nothing at all!" + }, + [HAT.TOP_HAT]: { + name: "Top Hat", + description: "For that classy, sophisticated look." + }, + [HAT.VIKING_HELMET]: { + name: "Viking Helmet", + description: "Sure, vikings never actually wore this style of helmet, but why let facts get in the way of good fashion?" + }, + [HAT.COWBOY_HAT]: { + name: "Cowboy Hat", + description: "You can't jam with the console cowboys without the appropriate attire." + }, + [HAT.BOWLER_HAT]: { + name: "Bowler Hat", + description: "For that authentic, Victorian look!" + }, + [HAT.FEZ]: { + name: "Fez", + description: "It's a fez. Fezzes are cool." + }, + }; + /** * @param {string[][]} spriteSheet * @returns {{ base: Layer[], down: Layer[] }} @@ -1737,9 +1764,20 @@ width: 322px !important; } +#birb-wardrobe { + width: calc(322px - 64px - 14px) !important; +} + +#birb-field-guide .birb-grid-content { + grid-template-rows: repeat(3, auto); +} + +#birb-wardrobe .birb-grid-content { + grid-template-rows: repeat(2, auto); +} + .birb-grid-content { display: grid; - grid-template-rows: repeat(3, auto); grid-auto-flow: column; gap: 10px; padding-top: 8px; @@ -1866,11 +1904,12 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAATxJREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIRX8xyKGYjYTuQYfPnsJ2YL/yGw0ORSwtzMCbkZ/mDVRlikIqv5Hjgh84LONDcNnPT2G/6f54fYgy7Pg0giNXWLA/5a6dgYGBgaGmqZKohwF8/Sls48JqoV59MWXJwwcrJz/f/z+jj81fPrE8O/HD4bpvpwM/08zMDCafkSRxvDwGml2CINHloGBgYHB5DF2R9148JRh9trtDC8vXmBgYGBgePfpDUNRQTGDpq0Lw40HT9GVwwPi9SGEeZKY8hieISHgMQC6Z1EswJJ3caqFObKmrYeB48dvhnef3sAFucQkGVqqStDV/0dKyigAFsuFq47idM+LL08w9OGIaYJ5mJLCglDyxQggEtXTBAAAgRd0Slay6H4AAAAASUVORK5CYII="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAT5JREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIQf8R+OjmM1ErqGHz15CNvw/MhtNDgXs7YyAm9EfZk2UZQqCqv+RIwKfuxgYGBg+6+kx/D/NjyIGAyy4dEJjlxjwv6WunYGBgYGhpqmSGEfBPX3p7GOCamEeffHlCQMHK+f/H7+/400N/+3tGT49f84w3ZeT4f9pBgZG048o8hgeXiPNDmHwyDIwMDAwmDzG7qgbD54yzF67neHlxQsMDAwMDO8+vWEoKihm0LR1Ybjx4CmGO2CM14cQ5kliymN4hoSAxwDonkWxAEvexakW5siath4Gjh+/Gd59egMX5BKTZGipKkFX/x8pKaMAWCwXrjqK0z0vvjzB0IcjprGlMEacHBIBoeSLEUAkqqcJAAAmBnNJoDeWTQAAAABJRU5ErkJggg=="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; + const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; @@ -1946,6 +1985,7 @@ const menuItems = [ new MenuItem(`Pet ${birdBirb()}`, pet), new MenuItem("Field Guide", insertFieldGuide), + new MenuItem("Wardrobe", insertWardrobe), new ConditionalMenuItem("Sticky Note", () => createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { @@ -2433,6 +2473,8 @@ if (document.querySelector("#" + FIELD_GUIDE_ID)) { return; } + // Remove wardrobe if open + removeWardrobe(); const contentContainer = document.createElement("div"); const content = makeElement("birb-grid-content"); @@ -2513,6 +2555,96 @@ } } + function insertWardrobe() { + console.log("Inserting wardrobe"); + if (document.querySelector("#" + WARDROBE_ID)) { + return; + } + // Remove field guide if open + removeFieldGuide(); + + const contentContainer = document.createElement("div"); + const content = makeElement("birb-grid-content"); + const description = makeElement("birb-field-guide-description"); + contentContainer.appendChild(content); + contentContainer.appendChild(description); + + const wardrobe = createWindow( + WARDROBE_ID, + "Wardrobe", + contentContainer + ); + + const generateDescription = (/** @type {string} */ hat) => { + const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + + const boldName = document.createElement("b"); + boldName.textContent = metadata.name; + + const spacer = document.createElement("div"); + spacer.style.height = "0.3em"; + + const descText = document.createTextNode(metadata.description); + + const fragment = document.createDocumentFragment(); + fragment.appendChild(boldName); + fragment.appendChild(spacer); + fragment.appendChild(descText); + + return fragment; + }; + + description.appendChild(generateDescription(currentHat)); + for (const hat of Object.values(HAT)) { + const hatElement = makeElement("birb-grid-item"); + if (hat === currentHat) { + hatElement.classList.add("birb-grid-item-selected"); + } + const hatCanvas = document.createElement("canvas"); + hatCanvas.width = SPRITE_WIDTH * CANVAS_PIXEL_SIZE; + hatCanvas.height = SPRITE_HEIGHT * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + console.log(hat); + birb.getFrames().base.draw( + hatCtx, + Directions.RIGHT, + CANVAS_PIXEL_SIZE, + SPECIES[currentSpecies].colors, + [...SPECIES[currentSpecies].tags, hat] + ); + hatElement.appendChild(hatCanvas); + content.appendChild(hatElement); + { + onClick(hatElement, () => { + switchHat(hat); + document.querySelectorAll(".birb-grid-item").forEach((element) => { + element.classList.remove("birb-grid-item-selected"); + }); + hatElement.classList.add("birb-grid-item-selected"); + }); + } + hatElement.addEventListener("mouseover", () => { + description.textContent = ""; + description.appendChild(generateDescription(hat)); + }); + hatElement.addEventListener("mouseout", () => { + description.textContent = ""; + description.appendChild(generateDescription(currentHat)); + }); + } + centerElement(wardrobe); + } + + function removeWardrobe() { + const wardrobe = document.querySelector("#" + WARDROBE_ID); + if (wardrobe) { + wardrobe.remove(); + } + } + /** * @param {string} type */ @@ -2523,6 +2655,14 @@ save(); } + /** + * @param {string} hat + */ + function switchHat(hat) { + currentHat = hat; + save(); + } + /** * Update the birds location from the start to the target location on a parabolic path * @param {number} speed The speed of the bird along the path diff --git a/sprites/hats.png b/sprites/hats.png index e815000394c52f6772f652add973a30692ba60c9..0c4f52b1ba581436788be77059a28f5b5a591721 100644 GIT binary patch delta 305 zcmV-10nYw{1B3&RF#$f2GB1Az{72)Xn9W44p@+|2LN@$AG8;_}1?=sNfSb`DW=)i3 z3WBQtks|`1yBHW47(VOiG5kNxk0J&GEVy(+W0x54zoo97fq{X6p{A*l7)QZ9ed+9D zf@)zNeevZ90|zVT{~y1<<4q0!?d=&pJ%7$H-ItT$|7ivWM$?Zd@)&;}UL(y8VerT@ zFfcGMm^{Yrs2dNSGR$7Po#Exh3k(bl3=Ho+yL0A7DDJi1>SS%N= zI*QXhFTOm%(1#{Kq1OVm1@G1|L3q3E6`G$ZRw@6tK550&Yfsm^D$B zDF~|mM~(=5;IoYl!)HA`hX1Ge;r1ZQv*6MQja_2E|CYLT1_lNOhMJ~Iq8tVD^rf?p z395y8^u?Da3>>VS|9|}cjz2Yg`o!?>#}9_-zMKsIPctwuntnu)#_)ge8fkV2gGZKu zfq{X+c6px@S==z>;@ys)aeSrmcs8 createNewStickyNote(stickyNotes, save, deleteStickyNote), () => getContext().areStickyNotesEnabled()), new MenuItem(`Hide ${birdBirb()}`, () => birb.setVisible(false)), new DebugMenuItem("Freeze/Unfreeze", () => { @@ -650,6 +652,8 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { if (document.querySelector("#" + FIELD_GUIDE_ID)) { return; } + // Remove wardrobe if open + removeWardrobe(); const contentContainer = document.createElement("div"); const content = makeElement("birb-grid-content"); @@ -730,6 +734,100 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { } } + function insertWardrobe() { + console.log("Inserting wardrobe"); + if (document.querySelector("#" + WARDROBE_ID)) { + return; + } + // Remove field guide if open + removeFieldGuide(); + + const contentContainer = document.createElement("div"); + const content = makeElement("birb-grid-content"); + const description = makeElement("birb-field-guide-description"); + contentContainer.appendChild(content); + contentContainer.appendChild(description); + + const wardrobe = createWindow( + WARDROBE_ID, + "Wardrobe", + contentContainer + ); + + const generateDescription = (/** @type {string} */ hat) => { + const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + const unlocked = true; + + const boldName = document.createElement("b"); + boldName.textContent = metadata.name; + + const spacer = document.createElement("div"); + spacer.style.height = "0.3em"; + + const descText = document.createTextNode(!unlocked ? "Not yet unlocked" : metadata.description); + + const fragment = document.createDocumentFragment(); + fragment.appendChild(boldName); + fragment.appendChild(spacer); + fragment.appendChild(descText); + + return fragment; + }; + + description.appendChild(generateDescription(currentHat)); + for (const hat of Object.values(HAT)) { + const unlocked = true; + const hatElement = makeElement("birb-grid-item"); + if (hat === currentHat) { + hatElement.classList.add("birb-grid-item-selected"); + } + const hatCanvas = document.createElement("canvas"); + hatCanvas.width = SPRITE_WIDTH * CANVAS_PIXEL_SIZE; + hatCanvas.height = SPRITE_HEIGHT * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + console.log(hat); + birb.getFrames().base.draw( + hatCtx, + Directions.RIGHT, + CANVAS_PIXEL_SIZE, + SPECIES[currentSpecies].colors, + [...SPECIES[currentSpecies].tags, hat] + ); + hatElement.appendChild(hatCanvas); + content.appendChild(hatElement); + if (unlocked) { + onClick(hatElement, () => { + switchHat(hat); + document.querySelectorAll(".birb-grid-item").forEach((element) => { + element.classList.remove("birb-grid-item-selected"); + }); + hatElement.classList.add("birb-grid-item-selected"); + }); + } else { + hatElement.classList.add("birb-grid-item-locked"); + } + hatElement.addEventListener("mouseover", () => { + description.textContent = ""; + description.appendChild(generateDescription(hat)); + }); + hatElement.addEventListener("mouseout", () => { + description.textContent = ""; + description.appendChild(generateDescription(currentHat)); + }); + } + centerElement(wardrobe); + } + + function removeWardrobe() { + const wardrobe = document.querySelector("#" + WARDROBE_ID); + if (wardrobe) { + wardrobe.remove(); + } + } + /** * @param {string} type */ @@ -740,6 +838,14 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { save(); } + /** + * @param {string} hat + */ + function switchHat(hat) { + currentHat = hat; + save(); + } + /** * Update the birds location from the start to the target location on a parabolic path * @param {number} speed The speed of the bird along the path diff --git a/src/hats.js b/src/hats.js index a088b69..e15bbdc 100644 --- a/src/hats.js +++ b/src/hats.js @@ -13,6 +13,33 @@ export const HAT = { FEZ: "fez", }; +export const HAT_METADATA = { + [HAT.NONE]: { + name: "Invisible Hat", + description: "It's like you're wearing nothing at all!" + }, + [HAT.TOP_HAT]: { + name: "Top Hat", + description: "For that classy, sophisticated look." + }, + [HAT.VIKING_HELMET]: { + name: "Viking Helmet", + description: "Sure, vikings never actually wore this style of helmet, but why let facts get in the way of good fashion?" + }, + [HAT.COWBOY_HAT]: { + name: "Cowboy Hat", + description: "You can't jam with the console cowboys without the appropriate attire." + }, + [HAT.BOWLER_HAT]: { + name: "Bowler Hat", + description: "For that authentic, Victorian look!" + }, + [HAT.FEZ]: { + name: "Fez", + description: "It's a fez. Fezzes are cool." + }, +}; + /** * @param {string[][]} spriteSheet * @returns {{ base: Layer[], down: Layer[] }} diff --git a/src/stylesheet.css b/src/stylesheet.css index 917c0b8..39e2690 100644 --- a/src/stylesheet.css +++ b/src/stylesheet.css @@ -242,9 +242,20 @@ width: 322px !important; } +#birb-wardrobe { + width: calc(322px - 64px - 14px) !important; +} + +#birb-field-guide .birb-grid-content { + grid-template-rows: repeat(3, auto); +} + +#birb-wardrobe .birb-grid-content { + grid-template-rows: repeat(2, auto); +} + .birb-grid-content { display: grid; - grid-template-rows: repeat(3, auto); grid-auto-flow: column; gap: 10px; padding-top: 8px; From 7628ee2c874837eeb51055e5b36d639d2203cefc Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Mon, 19 Jan 2026 20:38:00 -0500 Subject: [PATCH 12/24] Add hat to save data --- dist/extension.zip | Bin 152221 -> 152281 bytes dist/extension/birb.js | 11 ++++++++--- dist/obsidian/main.js | 11 ++++++++--- dist/userscript/birb.user.js | 11 ++++++++--- dist/web/birb.embed.js | 11 ++++++++--- dist/web/birb.js | 11 ++++++++--- src/application.js | 11 ++++++++--- 7 files changed, 48 insertions(+), 18 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index ef7542eccb10a23ead95245d9315a0502d0f5299..218cf0582f7a0d28ac7709dff3d983532468aa5f 100644 GIT binary patch delta 28315 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

{5&pCf|!OGO%E@u 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 D>rDRt delta 28232 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

7$j92sifyWj8#`> zDq-Z(bT~K&q7}l!SKA(5xUfO1c%Z}=A<=4{)M3&)GJ|(CW#{D0Hk$+vP6j`HoJn%y zsginTe>QIxw#G3OZqU7`G(bu^CI~TAANzW_Ez*6%8#4mTZU8_KS5WrCIpHw5D=e9+ zvJimM4bxGA&3{CgeBK*w75o4?k~Zh>E;KZ~#|nNf_JY0#3vGX^Zo#1n zWWDp56G6Q)Bt&PipecJ~`E46jIiEye+>9QSq>Ui^db=h&MFs9+EqS=@XG(;^?m;5K z_Wp;}nPE&8v3Ob*HQ8+QGc%19l^-hdFt9I1iELi>5D<}y00tj`(@Xhv?1Hb0p)$vRNOd$Uyrw2bO0Aa!93P5OZ^&$YH?#D17;s1U8 zV?+Y?5du-`w4s4AZ~W()czaQy&{VL z#6@}zNc*=9ysz}?@A3*T_a79c418Dja`&%L|B3z;A=D*50s7ulb+4%8p9Cs2Fy^1o zUK8wfGw{HP{{;Gs348}$RRKcREu#W2{_VZ)l}r977)LxH@msDgmJsOtAIwSy{3qf% zEh^v>@ta*!3MdFfejOnF{|p^CO9n{&)-!`LKmuGjX9x&Ohfglf%qsE#AR{Cu1nlea zYJGmS0zQG?%K}9JP+)yoAP0aJ94q_kueSy~E(_!Zp4EU6OLz3#FC*DvjP?=^2<*8At?9 zQvzbX1z+(7U9bMaqkqA-76F36B+5Ycf8wM_P>d;gjj`~5;>3S?D@h7YPzIv?BaLgP zJ1}^aY5$KD4**6}eI2`1WgyO5&2OCn?1%abN8n%Ia(pU(yGc>y)uIdkZwnIge-9uy z>rG&c`X(TKo62a!Z@p;<@spC|bwu-D&;Rbta4@Rsznbz+#uoAZH8%495k29)`6B>> zRDsz4G{t+(+xktW|36Y$!oRVNtNv}u-fKBvE9qZIruG-|tGz-Ls=v@h4M-yS79_pi znc@%t0>b{)DbjxpIkFTG!rtVQjirUN3zMz0!zUGa=yz`l^4G)p^>YwY2Kbu$KiWx= A@&Et; diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 9ae9445..f8a2696 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -1513,6 +1513,7 @@ * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] */ @@ -1927,6 +1928,7 @@ const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; + const DEFAULT_HAT = HAT.NONE; // Birb movement const HOP_SPEED = 0.07; @@ -2079,7 +2081,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -2098,6 +2100,7 @@ userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; if (saveData.stickyNotes) { @@ -2110,13 +2113,15 @@ log(stickyNotes.length + " sticky notes loaded"); switchSpecies(currentSpecies); + switchHat(currentHat); } function save() { /** @type {BirbSaveData} */ const saveData = { - unlockedSpecies, - currentSpecies, + unlockedSpecies: unlockedSpecies, + currentSpecies: currentSpecies, + currentHat: currentHat, settings: userSettings }; diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index ed55867..dd28a5f 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -1556,6 +1556,7 @@ module.exports = class PocketBird extends Plugin { * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] */ @@ -1970,6 +1971,7 @@ module.exports = class PocketBird extends Plugin { const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; + const DEFAULT_HAT = HAT.NONE; // Birb movement const HOP_SPEED = 0.07; @@ -2122,7 +2124,7 @@ module.exports = class PocketBird extends Plugin { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -2141,6 +2143,7 @@ module.exports = class PocketBird extends Plugin { userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; if (saveData.stickyNotes) { @@ -2153,13 +2156,15 @@ module.exports = class PocketBird extends Plugin { log(stickyNotes.length + " sticky notes loaded"); switchSpecies(currentSpecies); + switchHat(currentHat); } function save() { /** @type {BirbSaveData} */ const saveData = { - unlockedSpecies, - currentSpecies, + unlockedSpecies: unlockedSpecies, + currentSpecies: currentSpecies, + currentHat: currentHat, settings: userSettings }; diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 443e645..e90a8b7 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -1518,6 +1518,7 @@ * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] */ @@ -1932,6 +1933,7 @@ const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; + const DEFAULT_HAT = HAT.NONE; // Birb movement const HOP_SPEED = 0.07; @@ -2084,7 +2086,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -2103,6 +2105,7 @@ userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; if (saveData.stickyNotes) { @@ -2115,13 +2118,15 @@ log(stickyNotes.length + " sticky notes loaded"); switchSpecies(currentSpecies); + switchHat(currentHat); } function save() { /** @type {BirbSaveData} */ const saveData = { - unlockedSpecies, - currentSpecies, + unlockedSpecies: unlockedSpecies, + currentSpecies: currentSpecies, + currentHat: currentHat, settings: userSettings }; diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 72b9f6d..768bce3 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -1498,6 +1498,7 @@ * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] */ @@ -1912,6 +1913,7 @@ const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; + const DEFAULT_HAT = HAT.NONE; // Birb movement const HOP_SPEED = 0.07; @@ -2064,7 +2066,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -2083,6 +2085,7 @@ userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; if (saveData.stickyNotes) { @@ -2095,13 +2098,15 @@ log(stickyNotes.length + " sticky notes loaded"); switchSpecies(currentSpecies); + switchHat(currentHat); } function save() { /** @type {BirbSaveData} */ const saveData = { - unlockedSpecies, - currentSpecies, + unlockedSpecies: unlockedSpecies, + currentSpecies: currentSpecies, + currentHat: currentHat, settings: userSettings }; diff --git a/dist/web/birb.js b/dist/web/birb.js index 72b9f6d..768bce3 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -1498,6 +1498,7 @@ * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] */ @@ -1912,6 +1913,7 @@ const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; + const DEFAULT_HAT = HAT.NONE; // Birb movement const HOP_SPEED = 0.07; @@ -2064,7 +2066,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -2083,6 +2085,7 @@ userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; if (saveData.stickyNotes) { @@ -2095,13 +2098,15 @@ log(stickyNotes.length + " sticky notes loaded"); switchSpecies(currentSpecies); + switchHat(currentHat); } function save() { /** @type {BirbSaveData} */ const saveData = { - unlockedSpecies, - currentSpecies, + unlockedSpecies: unlockedSpecies, + currentSpecies: currentSpecies, + currentHat: currentHat, settings: userSettings }; diff --git a/src/application.js b/src/application.js index 0081034..cb76bea 100644 --- a/src/application.js +++ b/src/application.js @@ -54,6 +54,7 @@ import { HAT, HAT_METADATA } from './hats.js'; * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] */ @@ -87,6 +88,7 @@ const FEATHER_ID = "birb-feather"; const WARDROBE_ID = "birb-wardrobe"; const DEFAULT_BIRD = "bluebird"; +const DEFAULT_HAT = HAT.NONE; // Birb movement const HOP_SPEED = 0.07; @@ -239,7 +241,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; - let currentHat = HAT.TOP_HAT; + let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; /** @type {StickyNote[]} */ @@ -258,6 +260,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; if (saveData.stickyNotes) { @@ -270,13 +273,15 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { log(stickyNotes.length + " sticky notes loaded"); switchSpecies(currentSpecies); + switchHat(currentHat); } function save() { /** @type {BirbSaveData} */ const saveData = { - unlockedSpecies, - currentSpecies, + unlockedSpecies: unlockedSpecies, + currentSpecies: currentSpecies, + currentHat: currentHat, settings: userSettings }; From d97e39449e144da4795c9bdc3656d1e18b7b02b0 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Mon, 19 Jan 2026 21:06:27 -0500 Subject: [PATCH 13/24] Fix hats on birds with tufts --- aseprite/hats.aseprite | Bin 756 -> 847 bytes dist/extension.zip | Bin 152281 -> 152406 bytes dist/extension/birb.js | 16 +++++++++++----- dist/obsidian/main.js | 16 +++++++++++----- dist/userscript/birb.user.js | 16 +++++++++++----- dist/web/birb.embed.js | 16 +++++++++++----- dist/web/birb.js | 16 +++++++++++----- sprites/hats.png | Bin 388 -> 447 bytes src/animation/frame.js | 14 ++++++++++---- 9 files changed, 65 insertions(+), 29 deletions(-) diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite index 59d937e195755ce18fbf36f9ec36a3214fd13126..04118e0ffd666d4b1e4844494f80ecd3bf05b3a4 100644 GIT binary patch delta 173 zcmeyudY+BlpP7N-!BV!3>{FQpqZk+%etl$Qn83)u07ML4lh-oI);Bc&59s0fSAXsD z@BjZz>^I%{|Nq;!|Msg^{++L;*r?O4)VD^CJB@)MW~t(vNHh~XfqYg41_ovZ7KZ;! zKn@tNGq5pK%t=l-z+!%Q^8aK(w(kEoUi^`tU31NjIpyPj1v`$zPbN$`^z_0J!zUBj LSQ(YSt2zJx>~cRR delta 81 zcmV-X0IvVf2J{67^a20?;H3qz2bBU5SO5S3`tbn(kO2Sy0RR91NRzDs9V!5W|7aL4 n_E}Hw|NqncDDwa9?f-vNQ~N(nLIOn&SsaU*DCPqI@E<1UocSN) diff --git a/dist/extension.zip b/dist/extension.zip index 218cf0582f7a0d28ac7709dff3d983532468aa5f..a779a17568477950f50d0beb8081cb08dd3bdaaa 100644 GIT binary patch delta 29416 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

aC8{N?NjC~WIz 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 0; i--) { + const tag = tags[i]; + if (this.#pixelsByTag[tag]) { + return this.#pixelsByTag[tag]; + } + } + return this.#pixelsByTag[TAG.DEFAULT]; } /** @@ -508,7 +514,7 @@ // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(tags[0]); + const pixels = this.getPixels(tags); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { @@ -1920,7 +1926,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAT5JREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIQf8R+OjmM1ErqGHz15CNvw/MhtNDgXs7YyAm9EfZk2UZQqCqv+RIwKfuxgYGBg+6+kx/D/NjyIGAyy4dEJjlxjwv6WunYGBgYGhpqmSGEfBPX3p7GOCamEeffHlCQMHK+f/H7+/400N/+3tGT49f84w3ZeT4f9pBgZG048o8hgeXiPNDmHwyDIwMDAwmDzG7qgbD54yzF67neHlxQsMDAwMDO8+vWEoKihm0LR1Ybjx4CmGO2CM14cQ5kliymN4hoSAxwDonkWxAEvexakW5siath4Gjh+/Gd59egMX5BKTZGipKkFX/x8pKaMAWCwXrjqK0z0vvjzB0IcjprGlMEacHBIBoeSLEUAkqqcJAAAmBnNJoDeWTQAAAABJRU5ErkJggg=="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAADBJPs9AAAAAXNSR0IArs4c6QAAAXlJREFUSIljYBgFo2AUjIJRMGjAzfDk/8h8poFzyuADN8OT/8tHPcAIJBSgIKj6H4YZGBhwKyRP7j8SZkBjUxOQZW7WPoP/1EpB/w+fvcSAw6Pocihgb2cE3Iz+MGuiLEOKMKLc9llPj+H/aX6cbkBWm7XP4H/WPgO4OvWVcxmRFbDg0vng/W0i3cPwv6WunYGBgYGhpqmSKE/AAunS2ccE1cIC5sWXJwwcrJz/f/z+zohH+f//9vYMn54/Z5juy8nw/zQDA6Ppx/8MDAz49DAwQFPPNKcLGOowAmiNNDuEwSPLwMDAwGDyGLsnbjx4yjB77XaGlxcvMDAwMDC8+/SGoaigmEHT1oXhxoOnGA6HMV4fQpgniSmP4UASIgoDMJp+JKhkmtOF/1n7DHArgDGQkzAOR6E7/n9NWw8Dx4/fDO8+vYELcolJMrRUlaCr/4+UtVAALBUVrjqK0z0vvjzB0IcjJWFLwQRTDz5AiWZC2QkjQGnoFpoBAEIPl1HPwyJ/AAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index dd28a5f..d1018f0 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -495,11 +495,17 @@ module.exports = class PocketBird extends Plugin { } /** - * @param {string} [tag] + * @param {string[]} [tags] * @returns {string[][]} */ - getPixels(tag = TAG.DEFAULT) { - return this.#pixelsByTag[tag] ?? this.#pixelsByTag[TAG.DEFAULT]; + getPixels(tags = [TAG.DEFAULT]) { + for (let i = tags.length - 1; i >= 0; i--) { + const tag = tags[i]; + if (this.#pixelsByTag[tag]) { + return this.#pixelsByTag[tag]; + } + } + return this.#pixelsByTag[TAG.DEFAULT]; } /** @@ -513,7 +519,7 @@ module.exports = class PocketBird extends Plugin { // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(tags[0]); + const pixels = this.getPixels(tags); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { @@ -1963,7 +1969,7 @@ module.exports = class PocketBird extends Plugin { }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAT5JREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIQf8R+OjmM1ErqGHz15CNvw/MhtNDgXs7YyAm9EfZk2UZQqCqv+RIwKfuxgYGBg+6+kx/D/NjyIGAyy4dEJjlxjwv6WunYGBgYGhpqmSGEfBPX3p7GOCamEeffHlCQMHK+f/H7+/400N/+3tGT49f84w3ZeT4f9pBgZG048o8hgeXiPNDmHwyDIwMDAwmDzG7qgbD54yzF67neHlxQsMDAwMDO8+vWEoKihm0LR1Ybjx4CmGO2CM14cQ5kliymN4hoSAxwDonkWxAEvexakW5siath4Gjh+/Gd59egMX5BKTZGipKkFX/x8pKaMAWCwXrjqK0z0vvjzB0IcjprGlMEacHBIBoeSLEUAkqqcJAAAmBnNJoDeWTQAAAABJRU5ErkJggg=="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAADBJPs9AAAAAXNSR0IArs4c6QAAAXlJREFUSIljYBgFo2AUjIJRMGjAzfDk/8h8poFzyuADN8OT/8tHPcAIJBSgIKj6H4YZGBhwKyRP7j8SZkBjUxOQZW7WPoP/1EpB/w+fvcSAw6Pocihgb2cE3Iz+MGuiLEOKMKLc9llPj+H/aX6cbkBWm7XP4H/WPgO4OvWVcxmRFbDg0vng/W0i3cPwv6WunYGBgYGhpqmSKE/AAunS2ccE1cIC5sWXJwwcrJz/f/z+zohH+f//9vYMn54/Z5juy8nw/zQDA6Ppx/8MDAz49DAwQFPPNKcLGOowAmiNNDuEwSPLwMDAwGDyGLsnbjx4yjB77XaGlxcvMDAwMDC8+/SGoaigmEHT1oXhxoOnGA6HMV4fQpgniSmP4UASIgoDMJp+JKhkmtOF/1n7DHArgDGQkzAOR6E7/n9NWw8Dx4/fDO8+vYELcolJMrRUlaCr/4+UtVAALBUVrjqK0z0vvjzB0IcjJWFLwQRTDz5AiWZC2QkjQGnoFpoBAEIPl1HPwyJ/AAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index e90a8b7..c0c0a22 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -504,11 +504,17 @@ } /** - * @param {string} [tag] + * @param {string[]} [tags] * @returns {string[][]} */ - getPixels(tag = TAG.DEFAULT) { - return this.#pixelsByTag[tag] ?? this.#pixelsByTag[TAG.DEFAULT]; + getPixels(tags = [TAG.DEFAULT]) { + for (let i = tags.length - 1; i >= 0; i--) { + const tag = tags[i]; + if (this.#pixelsByTag[tag]) { + return this.#pixelsByTag[tag]; + } + } + return this.#pixelsByTag[TAG.DEFAULT]; } /** @@ -522,7 +528,7 @@ // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(tags[0]); + const pixels = this.getPixels(tags); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { @@ -1925,7 +1931,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAT5JREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIQf8R+OjmM1ErqGHz15CNvw/MhtNDgXs7YyAm9EfZk2UZQqCqv+RIwKfuxgYGBg+6+kx/D/NjyIGAyy4dEJjlxjwv6WunYGBgYGhpqmSGEfBPX3p7GOCamEeffHlCQMHK+f/H7+/400N/+3tGT49f84w3ZeT4f9pBgZG048o8hgeXiPNDmHwyDIwMDAwmDzG7qgbD54yzF67neHlxQsMDAwMDO8+vWEoKihm0LR1Ybjx4CmGO2CM14cQ5kliymN4hoSAxwDonkWxAEvexakW5siath4Gjh+/Gd59egMX5BKTZGipKkFX/x8pKaMAWCwXrjqK0z0vvjzB0IcjprGlMEacHBIBoeSLEUAkqqcJAAAmBnNJoDeWTQAAAABJRU5ErkJggg=="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAADBJPs9AAAAAXNSR0IArs4c6QAAAXlJREFUSIljYBgFo2AUjIJRMGjAzfDk/8h8poFzyuADN8OT/8tHPcAIJBSgIKj6H4YZGBhwKyRP7j8SZkBjUxOQZW7WPoP/1EpB/w+fvcSAw6Pocihgb2cE3Iz+MGuiLEOKMKLc9llPj+H/aX6cbkBWm7XP4H/WPgO4OvWVcxmRFbDg0vng/W0i3cPwv6WunYGBgYGhpqmSKE/AAunS2ccE1cIC5sWXJwwcrJz/f/z+zohH+f//9vYMn54/Z5juy8nw/zQDA6Ppx/8MDAz49DAwQFPPNKcLGOowAmiNNDuEwSPLwMDAwGDyGLsnbjx4yjB77XaGlxcvMDAwMDC8+/SGoaigmEHT1oXhxoOnGA6HMV4fQpgniSmP4UASIgoDMJp+JKhkmtOF/1n7DHArgDGQkzAOR6E7/n9NWw8Dx4/fDO8+vYELcolJMrRUlaCr/4+UtVAALBUVrjqK0z0vvjzB0IcjJWFLwQRTDz5AiWZC2QkjQGnoFpoBAEIPl1HPwyJ/AAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 768bce3..9956113 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -490,11 +490,17 @@ } /** - * @param {string} [tag] + * @param {string[]} [tags] * @returns {string[][]} */ - getPixels(tag = TAG.DEFAULT) { - return this.#pixelsByTag[tag] ?? this.#pixelsByTag[TAG.DEFAULT]; + getPixels(tags = [TAG.DEFAULT]) { + for (let i = tags.length - 1; i >= 0; i--) { + const tag = tags[i]; + if (this.#pixelsByTag[tag]) { + return this.#pixelsByTag[tag]; + } + } + return this.#pixelsByTag[TAG.DEFAULT]; } /** @@ -508,7 +514,7 @@ // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(tags[0]); + const pixels = this.getPixels(tags); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { @@ -1905,7 +1911,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAT5JREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIQf8R+OjmM1ErqGHz15CNvw/MhtNDgXs7YyAm9EfZk2UZQqCqv+RIwKfuxgYGBg+6+kx/D/NjyIGAyy4dEJjlxjwv6WunYGBgYGhpqmSGEfBPX3p7GOCamEeffHlCQMHK+f/H7+/400N/+3tGT49f84w3ZeT4f9pBgZG048o8hgeXiPNDmHwyDIwMDAwmDzG7qgbD54yzF67neHlxQsMDAwMDO8+vWEoKihm0LR1Ybjx4CmGO2CM14cQ5kliymN4hoSAxwDonkWxAEvexakW5siath4Gjh+/Gd59egMX5BKTZGipKkFX/x8pKaMAWCwXrjqK0z0vvjzB0IcjprGlMEacHBIBoeSLEUAkqqcJAAAmBnNJoDeWTQAAAABJRU5ErkJggg=="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAADBJPs9AAAAAXNSR0IArs4c6QAAAXlJREFUSIljYBgFo2AUjIJRMGjAzfDk/8h8poFzyuADN8OT/8tHPcAIJBSgIKj6H4YZGBhwKyRP7j8SZkBjUxOQZW7WPoP/1EpB/w+fvcSAw6Pocihgb2cE3Iz+MGuiLEOKMKLc9llPj+H/aX6cbkBWm7XP4H/WPgO4OvWVcxmRFbDg0vng/W0i3cPwv6WunYGBgYGhpqmSKE/AAunS2ccE1cIC5sWXJwwcrJz/f/z+zohH+f//9vYMn54/Z5juy8nw/zQDA6Ppx/8MDAz49DAwQFPPNKcLGOowAmiNNDuEwSPLwMDAwGDyGLsnbjx4yjB77XaGlxcvMDAwMDC8+/SGoaigmEHT1oXhxoOnGA6HMV4fQpgniSmP4UASIgoDMJp+JKhkmtOF/1n7DHArgDGQkzAOR6E7/n9NWw8Dx4/fDO8+vYELcolJMrRUlaCr/4+UtVAALBUVrjqK0z0vvjzB0IcjJWFLwQRTDz5AiWZC2QkjQGnoFpoBAEIPl1HPwyJ/AAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; diff --git a/dist/web/birb.js b/dist/web/birb.js index 768bce3..9956113 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -490,11 +490,17 @@ } /** - * @param {string} [tag] + * @param {string[]} [tags] * @returns {string[][]} */ - getPixels(tag = TAG.DEFAULT) { - return this.#pixelsByTag[tag] ?? this.#pixelsByTag[TAG.DEFAULT]; + getPixels(tags = [TAG.DEFAULT]) { + for (let i = tags.length - 1; i >= 0; i--) { + const tag = tags[i]; + if (this.#pixelsByTag[tag]) { + return this.#pixelsByTag[tag]; + } + } + return this.#pixelsByTag[TAG.DEFAULT]; } /** @@ -508,7 +514,7 @@ // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(tags[0]); + const pixels = this.getPixels(tags); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { @@ -1905,7 +1911,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAMCAYAAAA+ht7fAAAAAXNSR0IArs4c6QAAAT5JREFUSIljYBgFo2AUjIJRMHgBI7qAgqDqfxj7wfvbWNVAwX8y5P4jsRmR+LjMIQf8R+OjmM1ErqGHz15CNvw/MhtNDgXs7YyAm9EfZk2UZQqCqv+RIwKfuxgYGBg+6+kx/D/NjyIGAyy4dEJjlxjwv6WunYGBgYGhpqmSGEfBPX3p7GOCamEeffHlCQMHK+f/H7+/400N/+3tGT49f84w3ZeT4f9pBgZG048o8hgeXiPNDmHwyDIwMDAwmDzG7qgbD54yzF67neHlxQsMDAwMDO8+vWEoKihm0LR1Ybjx4CmGO2CM14cQ5kliymN4hoSAxwDonkWxAEvexakW5siath4Gjh+/Gd59egMX5BKTZGipKkFX/x8pKaMAWCwXrjqK0z0vvjzB0IcjprGlMEacHBIBoeSLEUAkqqcJAAAmBnNJoDeWTQAAAABJRU5ErkJggg=="; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAADBJPs9AAAAAXNSR0IArs4c6QAAAXlJREFUSIljYBgFo2AUjIJRMGjAzfDk/8h8poFzyuADN8OT/8tHPcAIJBSgIKj6H4YZGBhwKyRP7j8SZkBjUxOQZW7WPoP/1EpB/w+fvcSAw6Pocihgb2cE3Iz+MGuiLEOKMKLc9llPj+H/aX6cbkBWm7XP4H/WPgO4OvWVcxmRFbDg0vng/W0i3cPwv6WunYGBgYGhpqmSKE/AAunS2ccE1cIC5sWXJwwcrJz/f/z+zohH+f//9vYMn54/Z5juy8nw/zQDA6Ppx/8MDAz49DAwQFPPNKcLGOowAmiNNDuEwSPLwMDAwGDyGLsnbjx4yjB77XaGlxcvMDAwMDC8+/SGoaigmEHT1oXhxoOnGA6HMV4fQpgniSmP4UASIgoDMJp+JKhkmtOF/1n7DHArgDGQkzAOR6E7/n9NWw8Dx4/fDO8+vYELcolJMrRUlaCr/4+UtVAALBUVrjqK0z0vvjzB0IcjJWFLwQRTDz5AiWZC2QkjQGnoFpoBAEIPl1HPwyJ/AAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; diff --git a/sprites/hats.png b/sprites/hats.png index 0c4f52b1ba581436788be77059a28f5b5a591721..25e28895a38fe60ff1e45cf41bfd9e9a968fcb93 100644 GIT binary patch literal 447 zcmV;w0YLtVP)Px$c}YY;R7iF6XU=)mkQ7~x0&G6*^$b6=ObIRZYH^Y z-1b>dkKzAmew=PVR-3iY;D6RW1GqZ%m2(-96|msa`QZI+BHhFAzoo97fq{X6p{A*l zC{Mrw>C)N91l7U<=EavM3>>VS|9|}c&WK0(|Nr*(44M#OmjWj!i!6VDSz`(#@@))}(ZajF(FnjHGhL;yFFfcGMFueQp zhM}mSm_gIlh2h47rx*^0F+Y3LT30RTb|mr>8dB7Xn?002ovPDHLkV1k-d##R6T literal 388 zcmV-~0ek+5P)Px$K1oDDR7iF6XU=)mkQ80J`Bf5Zspz41Z`@#F$Sk*wme=_9$Be5Bg__)j= z2mD9lqnOP^uAzs|UP3nfKQbFl4h8J(jDVZbA7)LIWeS3-|B)jCpSu_s7#Ke5=`s92 z&5t4m11z|7LSvU0@V}+5oq>UYfuW|Uk{Cz9J$>oyV}fd79)0oU2?GZ!=l>tSzvE2} z|LyG=K0SZVFx{7v;s0p{21e75DDoH{UL(y8VerT@FfcGMm^{Yrs2dNSGR$7Po#Exh z3k(bl3=Ho+yL0A7DDJi1>SS%N=I*QXhFTOm%(1#<{l26IWEH= 0; i--) { + const tag = tags[i]; + if (this.#pixelsByTag[tag]) { + return this.#pixelsByTag[tag]; + } + } + return this.#pixelsByTag[TAG.DEFAULT]; } /** @@ -62,7 +68,7 @@ class Frame { // Clear the canvas before drawing the new frame ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); - const pixels = this.getPixels(tags[0]); + const pixels = this.getPixels(tags); for (let y = 0; y < pixels.length; y++) { const row = pixels[y]; for (let x = 0; x < pixels[y].length; x++) { From 867d2142923640b15742f434cbb0b4ee8dabc9ba Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Tue, 20 Jan 2026 17:02:48 -0500 Subject: [PATCH 14/24] Add more hats --- aseprite/hats.aseprite | Bin 847 -> 1063 bytes dist/extension.zip | Bin 152406 -> 152935 bytes dist/extension/birb.js | 26 ++++++++++++++++++++++---- dist/extension/manifest.json | 2 +- dist/obsidian/main.js | 28 +++++++++++++++++++++++----- dist/obsidian/manifest.json | 2 +- dist/userscript/birb.user.js | 28 +++++++++++++++++++++++----- dist/web/birb.embed.js | 26 ++++++++++++++++++++++---- dist/web/birb.js | 26 ++++++++++++++++++++++---- sprites/hats.png | Bin 447 -> 636 bytes src/animation/sprites.js | 2 ++ src/hats.js | 17 ++++++++++++++++- src/stylesheet.css | 3 ++- 13 files changed, 134 insertions(+), 26 deletions(-) diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite index 04118e0ffd666d4b1e4844494f80ecd3bf05b3a4..cc136e9d9101c827353b0156b7a917eca233d063 100644 GIT binary patch delta 315 zcmX@lww!}qorQtn!BUQm>`$4vQsm6eFff$%D7~KimQkXfnSq7jKNABKurY8jRLn_E zaA5o|X>hPU=Fy#b))$}to1HT6h}OTy3qIGMe6aV#qlB#rh5~Mvn8n#&I*J`{V@%v* z@Hh}?!mp2v3=&;T?6*~9|4iOfhQax$=kO-xAm(a$2WfnmoJc9EqTRS!Oin*?4F zm6>$>3d5B7zqJJP?Efd;`M>G$sugLDj<;=@H`s8L#FaTn7b;Ks`~TvWg)0~Xqd)!q S_kG9e!&e)hFifmm9ti;M6>Rtb delta 116 zcmZ3^ah{FcpP7N-!BV!3>`$4J*T`|FF)+j|ReTf4z`*e9BO}8EMg|5TV(|2JOzk)K_2&5k+c<9`J^j>AtTOgZ%Q Q!V$wK6ImIRzpFX`02YfSEdT%j diff --git a/dist/extension.zip b/dist/extension.zip index a779a17568477950f50d0beb8081cb08dd3bdaaa..3aae9712b311151ae5b27bfcff7301e010be2358 100644 GIT binary patch delta 30871 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 IEa090KR9%r00000 delta 30351 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 diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 47c1c15..f031ecf 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -273,6 +273,7 @@ */ const SPRITE_SHEET_COLOR_MAP = { "transparent": PALETTE.TRANSPARENT, + "#fff000": PALETTE.THEME_HIGHLIGHT, "#ffffff": PALETTE.BORDER, "#000000": PALETTE.OUTLINE, "#010a19": PALETTE.BEAK, @@ -349,6 +350,7 @@ [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", + [PALETTE.THEME_HIGHLIGHT]: "#b9abcf", }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { @@ -622,6 +624,9 @@ COWBOY_HAT: "cowboy-hat", BOWLER_HAT: "bowler-hat", FEZ: "fez", + WIZARD_HAT: "wizard-hat", + BASEBALL_CAP: "baseball-cap", + FLOWER_HAT: "flower-hat" }; const HAT_METADATA = { @@ -631,7 +636,7 @@ }, [HAT.TOP_HAT]: { name: "Top Hat", - description: "For that classy, sophisticated look." + description: "The mark of a true gentlebird." }, [HAT.VIKING_HELMET]: { name: "Viking Helmet", @@ -649,6 +654,18 @@ name: "Fez", description: "It's a fez. Fezzes are cool." }, + [HAT.WIZARD_HAT]: { + name: "Wizard Hat", + description: "Grants the bearer terrifying mystical power, but luckily birds only use it to summon old ladies with bread crumbs." + }, + [HAT.BASEBALL_CAP]: { + name: "Baseball Cap", + description: "Birds unfortunately only ever hit 'fowl' balls..." + }, + [HAT.FLOWER_HAT]: { + name: "Flower Hat", + description: "To be fair, this is less of a hat and more of a dirt clod that your pet happened to pick up." + } }; /** @@ -1795,7 +1812,8 @@ } #birb-wardrobe .birb-grid-content { - grid-template-rows: repeat(2, auto); + grid-template-columns: repeat(3, auto); + grid-auto-flow: row; } .birb-grid-content { @@ -1926,7 +1944,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAADBJPs9AAAAAXNSR0IArs4c6QAAAXlJREFUSIljYBgFo2AUjIJRMGjAzfDk/8h8poFzyuADN8OT/8tHPcAIJBSgIKj6H4YZGBhwKyRP7j8SZkBjUxOQZW7WPoP/1EpB/w+fvcSAw6Pocihgb2cE3Iz+MGuiLEOKMKLc9llPj+H/aX6cbkBWm7XP4H/WPgO4OvWVcxmRFbDg0vng/W0i3cPwv6WunYGBgYGhpqmSKE/AAunS2ccE1cIC5sWXJwwcrJz/f/z+zohH+f//9vYMn54/Z5juy8nw/zQDA6Ppx/8MDAz49DAwQFPPNKcLGOowAmiNNDuEwSPLwMDAwGDyGLsnbjx4yjB77XaGlxcvMDAwMDC8+/SGoaigmEHT1oXhxoOnGA6HMV4fQpgniSmP4UASIgoDMJp+JKhkmtOF/1n7DHArgDGQkzAOR6E7/n9NWw8Dx4/fDO8+vYELcolJMrRUlaCr/4+UtVAALBUVrjqK0z0vvjzB0IcjJWFLwQRTDz5AiWZC2QkjQGnoFpoBAEIPl1HPwyJ/AAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjZJREFUWIXtl01oE1EUhb8nim0tjVIrxKKJgkJBWoS4EsmmUFwoCKJZqrtstFWpEKWr0FgQFDcuhIIupboSgosiWAWDFGo3Rlw00AaqhpbUFEOLXhdpxvnJ/DTGVmQODLyZd+beM/fcN/MGfPjw4WPToDZbwP8KEZHqWCllW+ctG6bo34d44HgLVC1+UWnneui5vgEVNKz4GooKcl2aCQADE+FKMp0JFgPCuw5J9XARVs+c6A5M40Zi3XF3nHxBQ7UEBMIfGF05A2vF7wlFufH2sIFW7wqQiclpbAppnjNgfCSmxbh77rinZLqG8KTtW3c38i5gq8HMj8QzHkN7g/bODwiXOp6RmjlKTyjKhf2PaG/tNHBtDcgtfvKaT5JDKZJDKbx20PhITG+EI6qFny/N0bSt2S2+SDTKz3KZB6eaPZvwOpagrWWrJz2mVWwbW//hTRyc4mLoMQCDR14aeJasY53bK4PWfQBEZmdrJsjm8jx8mubz+ykAFpYKXO2/RteJXrK5fC3RAHx99Tte0Dpv2S2soxEsUMeKbhSJxDMcuF+CtdfQcrpPHHaHsvtsPwA/2joAWBy96cRHKcXzK6fJZj+ilEJEDOZoA/0St3locxK5NXyHpvIqC0sF7WLLniDJxHUzX+w6fnqyYsjAkze2euZLc5b7yqvfaz10rY502mpLJJ4h/6XEzOVh2m8Pspzuc7pH9vae105WdgYpjN1zy+GIP/kPcFvaFsP+opZ6Yadpw7T/Ahaj2bhiv50TAAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2050,7 +2068,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.19", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.19"); }, false), + new MenuItem("2026.1.20", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.20"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/extension/manifest.json b/dist/extension/manifest.json index 8539dc3..713ccb1 100644 --- a/dist/extension/manifest.json +++ b/dist/extension/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Pocket Bird", "description": "It's a pet bird in your browser, what more could you want?", - "version": "2026.1.19", + "version": "2026.1.20", "homepage_url": "https://idreesinc.com", "icons": { "48": "images/icons/transparent/48x48x1.png", diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index d1018f0..d10542c 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -1,7 +1,7 @@ const { Plugin, Notice } = require('obsidian'); module.exports = class PocketBird extends Plugin { onload() { - console.log("Loading Pocket Bird version 2026.1.19..."); + console.log("Loading Pocket Bird version 2026.1.20..."); const OBSIDIAN_PLUGIN = this; (function () { 'use strict'; @@ -278,6 +278,7 @@ module.exports = class PocketBird extends Plugin { */ const SPRITE_SHEET_COLOR_MAP = { "transparent": PALETTE.TRANSPARENT, + "#fff000": PALETTE.THEME_HIGHLIGHT, "#ffffff": PALETTE.BORDER, "#000000": PALETTE.OUTLINE, "#010a19": PALETTE.BEAK, @@ -354,6 +355,7 @@ module.exports = class PocketBird extends Plugin { [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", + [PALETTE.THEME_HIGHLIGHT]: "#b9abcf", }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { @@ -627,6 +629,9 @@ module.exports = class PocketBird extends Plugin { COWBOY_HAT: "cowboy-hat", BOWLER_HAT: "bowler-hat", FEZ: "fez", + WIZARD_HAT: "wizard-hat", + BASEBALL_CAP: "baseball-cap", + FLOWER_HAT: "flower-hat" }; const HAT_METADATA = { @@ -636,7 +641,7 @@ module.exports = class PocketBird extends Plugin { }, [HAT.TOP_HAT]: { name: "Top Hat", - description: "For that classy, sophisticated look." + description: "The mark of a true gentlebird." }, [HAT.VIKING_HELMET]: { name: "Viking Helmet", @@ -654,6 +659,18 @@ module.exports = class PocketBird extends Plugin { name: "Fez", description: "It's a fez. Fezzes are cool." }, + [HAT.WIZARD_HAT]: { + name: "Wizard Hat", + description: "Grants the bearer terrifying mystical power, but luckily birds only use it to summon old ladies with bread crumbs." + }, + [HAT.BASEBALL_CAP]: { + name: "Baseball Cap", + description: "Birds unfortunately only ever hit 'fowl' balls..." + }, + [HAT.FLOWER_HAT]: { + name: "Flower Hat", + description: "To be fair, this is less of a hat and more of a dirt clod that your pet happened to pick up." + } }; /** @@ -1838,7 +1855,8 @@ module.exports = class PocketBird extends Plugin { } #birb-wardrobe .birb-grid-content { - grid-template-rows: repeat(2, auto); + grid-template-columns: repeat(3, auto); + grid-auto-flow: row; } .birb-grid-content { @@ -1969,7 +1987,7 @@ module.exports = class PocketBird extends Plugin { }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAADBJPs9AAAAAXNSR0IArs4c6QAAAXlJREFUSIljYBgFo2AUjIJRMGjAzfDk/8h8poFzyuADN8OT/8tHPcAIJBSgIKj6H4YZGBhwKyRP7j8SZkBjUxOQZW7WPoP/1EpB/w+fvcSAw6Pocihgb2cE3Iz+MGuiLEOKMKLc9llPj+H/aX6cbkBWm7XP4H/WPgO4OvWVcxmRFbDg0vng/W0i3cPwv6WunYGBgYGhpqmSKE/AAunS2ccE1cIC5sWXJwwcrJz/f/z+zohH+f//9vYMn54/Z5juy8nw/zQDA6Ppx/8MDAz49DAwQFPPNKcLGOowAmiNNDuEwSPLwMDAwGDyGLsnbjx4yjB77XaGlxcvMDAwMDC8+/SGoaigmEHT1oXhxoOnGA6HMV4fQpgniSmP4UASIgoDMJp+JKhkmtOF/1n7DHArgDGQkzAOR6E7/n9NWw8Dx4/fDO8+vYELcolJMrRUlaCr/4+UtVAALBUVrjqK0z0vvjzB0IcjJWFLwQRTDz5AiWZC2QkjQGnoFpoBAEIPl1HPwyJ/AAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjZJREFUWIXtl01oE1EUhb8nim0tjVIrxKKJgkJBWoS4EsmmUFwoCKJZqrtstFWpEKWr0FgQFDcuhIIupboSgosiWAWDFGo3Rlw00AaqhpbUFEOLXhdpxvnJ/DTGVmQODLyZd+beM/fcN/MGfPjw4WPToDZbwP8KEZHqWCllW+ctG6bo34d44HgLVC1+UWnneui5vgEVNKz4GooKcl2aCQADE+FKMp0JFgPCuw5J9XARVs+c6A5M40Zi3XF3nHxBQ7UEBMIfGF05A2vF7wlFufH2sIFW7wqQiclpbAppnjNgfCSmxbh77rinZLqG8KTtW3c38i5gq8HMj8QzHkN7g/bODwiXOp6RmjlKTyjKhf2PaG/tNHBtDcgtfvKaT5JDKZJDKbx20PhITG+EI6qFny/N0bSt2S2+SDTKz3KZB6eaPZvwOpagrWWrJz2mVWwbW//hTRyc4mLoMQCDR14aeJasY53bK4PWfQBEZmdrJsjm8jx8mubz+ykAFpYKXO2/RteJXrK5fC3RAHx99Tte0Dpv2S2soxEsUMeKbhSJxDMcuF+CtdfQcrpPHHaHsvtsPwA/2joAWBy96cRHKcXzK6fJZj+ilEJEDOZoA/0St3locxK5NXyHpvIqC0sF7WLLniDJxHUzX+w6fnqyYsjAkze2euZLc5b7yqvfaz10rY502mpLJJ4h/6XEzOVh2m8Pspzuc7pH9vae105WdgYpjN1zy+GIP/kPcFvaFsP+opZ6Yadpw7T/Ahaj2bhiv50TAAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2093,7 +2111,7 @@ module.exports = class PocketBird extends Plugin { insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.19", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.19"); }, false), + new MenuItem("2026.1.20", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.20"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/obsidian/manifest.json b/dist/obsidian/manifest.json index 24155c8..cb12fa6 100644 --- a/dist/obsidian/manifest.json +++ b/dist/obsidian/manifest.json @@ -1,7 +1,7 @@ { "id": "pocket-bird", "name": "Pocket Bird", - "version": "2026.1.19", + "version": "2026.1.20", "minAppVersion": "0.15.0", "description": "Add a pet bird to fly around your notes and keep you company!", "author": "Idrees Hassan", diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index c0c0a22..b3aaf31 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Pocket Bird // @namespace https://idreesinc.com -// @version 2026.1.19 +// @version 2026.1.20 // @description It's a pet bird in your browser, what more could you want? // @author Idrees // @downloadURL https://github.com/IdreesInc/Pocket-Bird/raw/refs/heads/main/dist/userscript/birb.user.js @@ -287,6 +287,7 @@ */ const SPRITE_SHEET_COLOR_MAP = { "transparent": PALETTE.TRANSPARENT, + "#fff000": PALETTE.THEME_HIGHLIGHT, "#ffffff": PALETTE.BORDER, "#000000": PALETTE.OUTLINE, "#010a19": PALETTE.BEAK, @@ -363,6 +364,7 @@ [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", + [PALETTE.THEME_HIGHLIGHT]: "#b9abcf", }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { @@ -636,6 +638,9 @@ COWBOY_HAT: "cowboy-hat", BOWLER_HAT: "bowler-hat", FEZ: "fez", + WIZARD_HAT: "wizard-hat", + BASEBALL_CAP: "baseball-cap", + FLOWER_HAT: "flower-hat" }; const HAT_METADATA = { @@ -645,7 +650,7 @@ }, [HAT.TOP_HAT]: { name: "Top Hat", - description: "For that classy, sophisticated look." + description: "The mark of a true gentlebird." }, [HAT.VIKING_HELMET]: { name: "Viking Helmet", @@ -663,6 +668,18 @@ name: "Fez", description: "It's a fez. Fezzes are cool." }, + [HAT.WIZARD_HAT]: { + name: "Wizard Hat", + description: "Grants the bearer terrifying mystical power, but luckily birds only use it to summon old ladies with bread crumbs." + }, + [HAT.BASEBALL_CAP]: { + name: "Baseball Cap", + description: "Birds unfortunately only ever hit 'fowl' balls..." + }, + [HAT.FLOWER_HAT]: { + name: "Flower Hat", + description: "To be fair, this is less of a hat and more of a dirt clod that your pet happened to pick up." + } }; /** @@ -1800,7 +1817,8 @@ } #birb-wardrobe .birb-grid-content { - grid-template-rows: repeat(2, auto); + grid-template-columns: repeat(3, auto); + grid-auto-flow: row; } .birb-grid-content { @@ -1931,7 +1949,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAADBJPs9AAAAAXNSR0IArs4c6QAAAXlJREFUSIljYBgFo2AUjIJRMGjAzfDk/8h8poFzyuADN8OT/8tHPcAIJBSgIKj6H4YZGBhwKyRP7j8SZkBjUxOQZW7WPoP/1EpB/w+fvcSAw6Pocihgb2cE3Iz+MGuiLEOKMKLc9llPj+H/aX6cbkBWm7XP4H/WPgO4OvWVcxmRFbDg0vng/W0i3cPwv6WunYGBgYGhpqmSKE/AAunS2ccE1cIC5sWXJwwcrJz/f/z+zohH+f//9vYMn54/Z5juy8nw/zQDA6Ppx/8MDAz49DAwQFPPNKcLGOowAmiNNDuEwSPLwMDAwGDyGLsnbjx4yjB77XaGlxcvMDAwMDC8+/SGoaigmEHT1oXhxoOnGA6HMV4fQpgniSmP4UASIgoDMJp+JKhkmtOF/1n7DHArgDGQkzAOR6E7/n9NWw8Dx4/fDO8+vYELcolJMrRUlaCr/4+UtVAALBUVrjqK0z0vvjzB0IcjJWFLwQRTDz5AiWZC2QkjQGnoFpoBAEIPl1HPwyJ/AAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjZJREFUWIXtl01oE1EUhb8nim0tjVIrxKKJgkJBWoS4EsmmUFwoCKJZqrtstFWpEKWr0FgQFDcuhIIupboSgosiWAWDFGo3Rlw00AaqhpbUFEOLXhdpxvnJ/DTGVmQODLyZd+beM/fcN/MGfPjw4WPToDZbwP8KEZHqWCllW+ctG6bo34d44HgLVC1+UWnneui5vgEVNKz4GooKcl2aCQADE+FKMp0JFgPCuw5J9XARVs+c6A5M40Zi3XF3nHxBQ7UEBMIfGF05A2vF7wlFufH2sIFW7wqQiclpbAppnjNgfCSmxbh77rinZLqG8KTtW3c38i5gq8HMj8QzHkN7g/bODwiXOp6RmjlKTyjKhf2PaG/tNHBtDcgtfvKaT5JDKZJDKbx20PhITG+EI6qFny/N0bSt2S2+SDTKz3KZB6eaPZvwOpagrWWrJz2mVWwbW//hTRyc4mLoMQCDR14aeJasY53bK4PWfQBEZmdrJsjm8jx8mubz+ykAFpYKXO2/RteJXrK5fC3RAHx99Tte0Dpv2S2soxEsUMeKbhSJxDMcuF+CtdfQcrpPHHaHsvtsPwA/2joAWBy96cRHKcXzK6fJZj+ilEJEDOZoA/0St3locxK5NXyHpvIqC0sF7WLLniDJxHUzX+w6fnqyYsjAkze2euZLc5b7yqvfaz10rY502mpLJJ4h/6XEzOVh2m8Pspzuc7pH9vae105WdgYpjN1zy+GIP/kPcFvaFsP+opZ6Yadpw7T/Ahaj2bhiv50TAAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2055,7 +2073,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.19", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.19"); }, false), + new MenuItem("2026.1.20", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.20"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 9956113..5c4d0a5 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -273,6 +273,7 @@ */ const SPRITE_SHEET_COLOR_MAP = { "transparent": PALETTE.TRANSPARENT, + "#fff000": PALETTE.THEME_HIGHLIGHT, "#ffffff": PALETTE.BORDER, "#000000": PALETTE.OUTLINE, "#010a19": PALETTE.BEAK, @@ -349,6 +350,7 @@ [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", + [PALETTE.THEME_HIGHLIGHT]: "#b9abcf", }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { @@ -622,6 +624,9 @@ COWBOY_HAT: "cowboy-hat", BOWLER_HAT: "bowler-hat", FEZ: "fez", + WIZARD_HAT: "wizard-hat", + BASEBALL_CAP: "baseball-cap", + FLOWER_HAT: "flower-hat" }; const HAT_METADATA = { @@ -631,7 +636,7 @@ }, [HAT.TOP_HAT]: { name: "Top Hat", - description: "For that classy, sophisticated look." + description: "The mark of a true gentlebird." }, [HAT.VIKING_HELMET]: { name: "Viking Helmet", @@ -649,6 +654,18 @@ name: "Fez", description: "It's a fez. Fezzes are cool." }, + [HAT.WIZARD_HAT]: { + name: "Wizard Hat", + description: "Grants the bearer terrifying mystical power, but luckily birds only use it to summon old ladies with bread crumbs." + }, + [HAT.BASEBALL_CAP]: { + name: "Baseball Cap", + description: "Birds unfortunately only ever hit 'fowl' balls..." + }, + [HAT.FLOWER_HAT]: { + name: "Flower Hat", + description: "To be fair, this is less of a hat and more of a dirt clod that your pet happened to pick up." + } }; /** @@ -1780,7 +1797,8 @@ } #birb-wardrobe .birb-grid-content { - grid-template-rows: repeat(2, auto); + grid-template-columns: repeat(3, auto); + grid-auto-flow: row; } .birb-grid-content { @@ -1911,7 +1929,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAADBJPs9AAAAAXNSR0IArs4c6QAAAXlJREFUSIljYBgFo2AUjIJRMGjAzfDk/8h8poFzyuADN8OT/8tHPcAIJBSgIKj6H4YZGBhwKyRP7j8SZkBjUxOQZW7WPoP/1EpB/w+fvcSAw6Pocihgb2cE3Iz+MGuiLEOKMKLc9llPj+H/aX6cbkBWm7XP4H/WPgO4OvWVcxmRFbDg0vng/W0i3cPwv6WunYGBgYGhpqmSKE/AAunS2ccE1cIC5sWXJwwcrJz/f/z+zohH+f//9vYMn54/Z5juy8nw/zQDA6Ppx/8MDAz49DAwQFPPNKcLGOowAmiNNDuEwSPLwMDAwGDyGLsnbjx4yjB77XaGlxcvMDAwMDC8+/SGoaigmEHT1oXhxoOnGA6HMV4fQpgniSmP4UASIgoDMJp+JKhkmtOF/1n7DHArgDGQkzAOR6E7/n9NWw8Dx4/fDO8+vYELcolJMrRUlaCr/4+UtVAALBUVrjqK0z0vvjzB0IcjJWFLwQRTDz5AiWZC2QkjQGnoFpoBAEIPl1HPwyJ/AAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjZJREFUWIXtl01oE1EUhb8nim0tjVIrxKKJgkJBWoS4EsmmUFwoCKJZqrtstFWpEKWr0FgQFDcuhIIupboSgosiWAWDFGo3Rlw00AaqhpbUFEOLXhdpxvnJ/DTGVmQODLyZd+beM/fcN/MGfPjw4WPToDZbwP8KEZHqWCllW+ctG6bo34d44HgLVC1+UWnneui5vgEVNKz4GooKcl2aCQADE+FKMp0JFgPCuw5J9XARVs+c6A5M40Zi3XF3nHxBQ7UEBMIfGF05A2vF7wlFufH2sIFW7wqQiclpbAppnjNgfCSmxbh77rinZLqG8KTtW3c38i5gq8HMj8QzHkN7g/bODwiXOp6RmjlKTyjKhf2PaG/tNHBtDcgtfvKaT5JDKZJDKbx20PhITG+EI6qFny/N0bSt2S2+SDTKz3KZB6eaPZvwOpagrWWrJz2mVWwbW//hTRyc4mLoMQCDR14aeJasY53bK4PWfQBEZmdrJsjm8jx8mubz+ykAFpYKXO2/RteJXrK5fC3RAHx99Tte0Dpv2S2soxEsUMeKbhSJxDMcuF+CtdfQcrpPHHaHsvtsPwA/2joAWBy96cRHKcXzK6fJZj+ilEJEDOZoA/0St3locxK5NXyHpvIqC0sF7WLLniDJxHUzX+w6fnqyYsjAkze2euZLc5b7yqvfaz10rY502mpLJJ4h/6XEzOVh2m8Pspzuc7pH9vae105WdgYpjN1zy+GIP/kPcFvaFsP+opZ6Yadpw7T/Ahaj2bhiv50TAAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2035,7 +2053,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.19", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.19"); }, false), + new MenuItem("2026.1.20", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.20"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/web/birb.js b/dist/web/birb.js index 9956113..5c4d0a5 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -273,6 +273,7 @@ */ const SPRITE_SHEET_COLOR_MAP = { "transparent": PALETTE.TRANSPARENT, + "#fff000": PALETTE.THEME_HIGHLIGHT, "#ffffff": PALETTE.BORDER, "#000000": PALETTE.OUTLINE, "#010a19": PALETTE.BEAK, @@ -349,6 +350,7 @@ [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", + [PALETTE.THEME_HIGHLIGHT]: "#b9abcf", }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { @@ -622,6 +624,9 @@ COWBOY_HAT: "cowboy-hat", BOWLER_HAT: "bowler-hat", FEZ: "fez", + WIZARD_HAT: "wizard-hat", + BASEBALL_CAP: "baseball-cap", + FLOWER_HAT: "flower-hat" }; const HAT_METADATA = { @@ -631,7 +636,7 @@ }, [HAT.TOP_HAT]: { name: "Top Hat", - description: "For that classy, sophisticated look." + description: "The mark of a true gentlebird." }, [HAT.VIKING_HELMET]: { name: "Viking Helmet", @@ -649,6 +654,18 @@ name: "Fez", description: "It's a fez. Fezzes are cool." }, + [HAT.WIZARD_HAT]: { + name: "Wizard Hat", + description: "Grants the bearer terrifying mystical power, but luckily birds only use it to summon old ladies with bread crumbs." + }, + [HAT.BASEBALL_CAP]: { + name: "Baseball Cap", + description: "Birds unfortunately only ever hit 'fowl' balls..." + }, + [HAT.FLOWER_HAT]: { + name: "Flower Hat", + description: "To be fair, this is less of a hat and more of a dirt clod that your pet happened to pick up." + } }; /** @@ -1780,7 +1797,8 @@ } #birb-wardrobe .birb-grid-content { - grid-template-rows: repeat(2, auto); + grid-template-columns: repeat(3, auto); + grid-auto-flow: row; } .birb-grid-content { @@ -1911,7 +1929,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAMCAYAAADBJPs9AAAAAXNSR0IArs4c6QAAAXlJREFUSIljYBgFo2AUjIJRMGjAzfDk/8h8poFzyuADN8OT/8tHPcAIJBSgIKj6H4YZGBhwKyRP7j8SZkBjUxOQZW7WPoP/1EpB/w+fvcSAw6Pocihgb2cE3Iz+MGuiLEOKMKLc9llPj+H/aX6cbkBWm7XP4H/WPgO4OvWVcxmRFbDg0vng/W0i3cPwv6WunYGBgYGhpqmSKE/AAunS2ccE1cIC5sWXJwwcrJz/f/z+zohH+f//9vYMn54/Z5juy8nw/zQDA6Ppx/8MDAz49DAwQFPPNKcLGOowAmiNNDuEwSPLwMDAwGDyGLsnbjx4yjB77XaGlxcvMDAwMDC8+/SGoaigmEHT1oXhxoOnGA6HMV4fQpgniSmP4UASIgoDMJp+JKhkmtOF/1n7DHArgDGQkzAOR6E7/n9NWw8Dx4/fDO8+vYELcolJMrRUlaCr/4+UtVAALBUVrjqK0z0vvjzB0IcjJWFLwQRTDz5AiWZC2QkjQGnoFpoBAEIPl1HPwyJ/AAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjZJREFUWIXtl01oE1EUhb8nim0tjVIrxKKJgkJBWoS4EsmmUFwoCKJZqrtstFWpEKWr0FgQFDcuhIIupboSgosiWAWDFGo3Rlw00AaqhpbUFEOLXhdpxvnJ/DTGVmQODLyZd+beM/fcN/MGfPjw4WPToDZbwP8KEZHqWCllW+ctG6bo34d44HgLVC1+UWnneui5vgEVNKz4GooKcl2aCQADE+FKMp0JFgPCuw5J9XARVs+c6A5M40Zi3XF3nHxBQ7UEBMIfGF05A2vF7wlFufH2sIFW7wqQiclpbAppnjNgfCSmxbh77rinZLqG8KTtW3c38i5gq8HMj8QzHkN7g/bODwiXOp6RmjlKTyjKhf2PaG/tNHBtDcgtfvKaT5JDKZJDKbx20PhITG+EI6qFny/N0bSt2S2+SDTKz3KZB6eaPZvwOpagrWWrJz2mVWwbW//hTRyc4mLoMQCDR14aeJasY53bK4PWfQBEZmdrJsjm8jx8mubz+ykAFpYKXO2/RteJXrK5fC3RAHx99Tte0Dpv2S2soxEsUMeKbhSJxDMcuF+CtdfQcrpPHHaHsvtsPwA/2joAWBy96cRHKcXzK6fJZj+ilEJEDOZoA/0St3locxK5NXyHpvIqC0sF7WLLniDJxHUzX+w6fnqyYsjAkze2euZLc5b7yqvfaz10rY502mpLJJ4h/6XEzOVh2m8Pspzuc7pH9vae105WdgYpjN1zy+GIP/kPcFvaFsP+opZ6Yadpw7T/Ahaj2bhiv50TAAAAAElFTkSuQmCC"; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; @@ -2035,7 +2053,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.19", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.19"); }, false), + new MenuItem("2026.1.20", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.20"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/sprites/hats.png b/sprites/hats.png index 25e28895a38fe60ff1e45cf41bfd9e9a968fcb93..61e2103ab52a66b51ddc96f775d49dc7fcbe3fcc 100644 GIT binary patch literal 636 zcmV-?0)zdDP)Px%Hc3Q5R9J=WmrZCBQ51#0CyH$?jZ!PbqKSe+L0W{k63M1eTqp>lS*p8iv{k7P zrK`|b5EM5qgn}-mx)OqmB3K236lym{Tr|)Is)m--6hn(%7iq@%$^10NR%8wgyqS0A z-ZS^yH}eL3`0(Ll)1Wq6!2b#nk?L3}Wn1Sh8>Z;rhj`$43sfzBQEBIT=()ZD6*R2) z8j1>XU78610~6s&GMxz)1H!uwN%e3MR?nR14ou@lV%>3foP0q;wFCsh9~fOZ18c?a z2}QZ__OO9g?+TEK$!Tl~X`VA+d?cpDxO?unr)0W@@TBcqcQ^7bV5`B*kHj+`Lwkev z&JPHeI-Zf5IZ96`%7y)pXm9N_aBU69Eq?NvPm)6^l0zxHcF_1pOmBoEs)e5~&C#^2 z*)6_EG|JC%nFptuJ)7`4mY}U=t0z6CRcsqu|KUv>oZ@2WF#v-{UK)6otYe+qD}&a3 z07PbIYbMC%@;rQ+=JWe002Y=CTBL7V#q%qt$!0&IltM%d=4b=`61RD1 za}v2Ve21p;Dho>m?PANGAj!maGhggFetNQE$iR~~wtD7EbC&zctKVxqbghnb+GPx$c}YY;R7iF6XU=)mkQ7~x0&G6*^$b6=ObIRZYH^Y z-1b>dkKzAmew=PVR-3iY;D6RW1GqZ%m2(-96|msa`QZI+BHhFAzoo97fq{X6p{A*l zC{Mrw>C)N91l7U<=EavM3>>VS|9|}c&WK0(|Nr*(44M#OmjWj!i!6VDSz`(#@@))}(ZajF(FnjHGhL;yFFfcGMFueQp zhM}mSm_gIlh2h47rx*^0F+Y3LT30RTb|mr>8dB7Xn?002ovPDHLkV1k-d##R6T diff --git a/src/animation/sprites.js b/src/animation/sprites.js index 3aca274..6baf707 100644 --- a/src/animation/sprites.js +++ b/src/animation/sprites.js @@ -31,6 +31,7 @@ export const PALETTE = { */ export const SPRITE_SHEET_COLOR_MAP = { "transparent": PALETTE.TRANSPARENT, + "#fff000": PALETTE.THEME_HIGHLIGHT, "#ffffff": PALETTE.BORDER, "#000000": PALETTE.OUTLINE, "#010a19": PALETTE.BEAK, @@ -107,6 +108,7 @@ export const SPECIES = { [PALETTE.UNDERBELLY]: "#d7cfcb", [PALETTE.WING]: "#b1b5c5", [PALETTE.WING_EDGE]: "#9d9fa9", + [PALETTE.THEME_HIGHLIGHT]: "#b9abcf", }, [TAG.TUFT]), europeanRobin: new BirdType("European Robin", "Native to western Europe, this is the quintessential robin. Quite friendly, you'll often find them searching for worms.", { diff --git a/src/hats.js b/src/hats.js index e15bbdc..c93916d 100644 --- a/src/hats.js +++ b/src/hats.js @@ -11,6 +11,9 @@ export const HAT = { COWBOY_HAT: "cowboy-hat", BOWLER_HAT: "bowler-hat", FEZ: "fez", + WIZARD_HAT: "wizard-hat", + BASEBALL_CAP: "baseball-cap", + FLOWER_HAT: "flower-hat" }; export const HAT_METADATA = { @@ -20,7 +23,7 @@ export const HAT_METADATA = { }, [HAT.TOP_HAT]: { name: "Top Hat", - description: "For that classy, sophisticated look." + description: "The mark of a true gentlebird." }, [HAT.VIKING_HELMET]: { name: "Viking Helmet", @@ -38,6 +41,18 @@ export const HAT_METADATA = { name: "Fez", description: "It's a fez. Fezzes are cool." }, + [HAT.WIZARD_HAT]: { + name: "Wizard Hat", + description: "Grants the bearer terrifying mystical power, but luckily birds only use it to summon old ladies with bread crumbs." + }, + [HAT.BASEBALL_CAP]: { + name: "Baseball Cap", + description: "Birds unfortunately only ever hit 'fowl' balls..." + }, + [HAT.FLOWER_HAT]: { + name: "Flower Hat", + description: "To be fair, this is less of a hat and more of a dirt clod that your pet happened to pick up." + } }; /** diff --git a/src/stylesheet.css b/src/stylesheet.css index 39e2690..4df8d50 100644 --- a/src/stylesheet.css +++ b/src/stylesheet.css @@ -251,7 +251,8 @@ } #birb-wardrobe .birb-grid-content { - grid-template-rows: repeat(2, auto); + grid-template-columns: repeat(3, auto); + grid-auto-flow: row; } .birb-grid-content { From f5742ac3a7e88694be31eb064b95018f91258cda Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Tue, 20 Jan 2026 17:17:37 -0500 Subject: [PATCH 15/24] Make the baseball cap pink --- aseprite/hats.aseprite | Bin 1063 -> 1064 bytes dist/extension.zip | Bin 152935 -> 152927 bytes dist/extension/birb.js | 2 +- dist/obsidian/main.js | 2 +- dist/userscript/birb.user.js | 2 +- dist/web/birb.embed.js | 2 +- dist/web/birb.js | 2 +- sprites/hats.png | Bin 636 -> 635 bytes 8 files changed, 5 insertions(+), 5 deletions(-) diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite index cc136e9d9101c827353b0156b7a917eca233d063..3c98c7c26b367c47d5ec9461685fe1c5b1bc3760 100644 GIT binary patch delta 67 zcmZ3^v4Vq9Vj%8&1lfTZ_ X_;~B1vKMKIM;RXQD(|1XoVfu2rzRLN delta 66 zcmZ3%v7CcZeIsKivtS?t1H-S6j0_VP85n?w!Etgrv$E_Q4-ZBOZndpVhO=h<57K*B Vz!TJd)P{$Lq56kh!{imr4FEYg6Q2M8 diff --git a/dist/extension.zip b/dist/extension.zip index 3aae9712b311151ae5b27bfcff7301e010be2358..a087c4742264118ed40695e939e2681c83431c2a 100644 GIT binary patch delta 28474 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

W0PS8S_9mHhd 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 ar~ygd7{2=3&{zQTr~^r0)?|QhiT^+Sq7$e9 diff --git a/dist/extension/birb.js b/dist/extension/birb.js index f031ecf..24d6ef6 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -1944,7 +1944,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjZJREFUWIXtl01oE1EUhb8nim0tjVIrxKKJgkJBWoS4EsmmUFwoCKJZqrtstFWpEKWr0FgQFDcuhIIupboSgosiWAWDFGo3Rlw00AaqhpbUFEOLXhdpxvnJ/DTGVmQODLyZd+beM/fcN/MGfPjw4WPToDZbwP8KEZHqWCllW+ctG6bo34d44HgLVC1+UWnneui5vgEVNKz4GooKcl2aCQADE+FKMp0JFgPCuw5J9XARVs+c6A5M40Zi3XF3nHxBQ7UEBMIfGF05A2vF7wlFufH2sIFW7wqQiclpbAppnjNgfCSmxbh77rinZLqG8KTtW3c38i5gq8HMj8QzHkN7g/bODwiXOp6RmjlKTyjKhf2PaG/tNHBtDcgtfvKaT5JDKZJDKbx20PhITG+EI6qFny/N0bSt2S2+SDTKz3KZB6eaPZvwOpagrWWrJz2mVWwbW//hTRyc4mLoMQCDR14aeJasY53bK4PWfQBEZmdrJsjm8jx8mubz+ykAFpYKXO2/RteJXrK5fC3RAHx99Tte0Dpv2S2soxEsUMeKbhSJxDMcuF+CtdfQcrpPHHaHsvtsPwA/2joAWBy96cRHKcXzK6fJZj+ilEJEDOZoA/0St3locxK5NXyHpvIqC0sF7WLLniDJxHUzX+w6fnqyYsjAkze2euZLc5b7yqvfaz10rY502mpLJJ4h/6XEzOVh2m8Pspzuc7pH9vae105WdgYpjN1zy+GIP/kPcFvaFsP+opZ6Yadpw7T/Ahaj2bhiv50TAAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjVJREFUWIXtl01oE1EUhb8nim0tBikKJWiioFCUFiGuRLIRigsFUSRL6y4btSoVgnQVmhZEwY0LQdClqCshuChCq2iQQu3GiIsG2kgaYyU1xcGC10WacX4yP42xFcmBgTfzztx75p77Zt5ACy200MKGQW20gP8VIiK1sVLKsc6b1k3Rvw/xwfEXqFb8stLPjTByWwZU0bTi6ygryPXoJgAMToaryQwm2AwI79gvtcNDWCNzYjiwjJuJNcfdduI5TdUSEAi/5/6P07Ba/L5QlOtvDphoja4AmZyawaGQ1jkTxsdieozb5476SmZoCF/avvX2Im8Djhqs/Eg84zO0P+jv/IBwYedTUrOH6QtFOb/nAV2dQRPX0YDc149+80lyOEVyOIXfDhofixmNcEWt8IXKPG1b2r3ii0Sj/NQ07p5s923Cy1iC7R2bfemxrGLH2MYPb2LfNAOhhwAMHXph4tmyPg5urQ46dwMQmZurmyCby3PvSZqFd9MALC6VuHL5Kj3HjpPN5euJBuDzxO943fZ5225hDY1ggzpS9qJIJJ5h750KrL6GltP94rI7FG1gFIAvhSIAwfQtNz5KKZ5dOkU2+wGlFCJiMkcfGJe4w0Nbk8iNkZu0aSssLpX0ix27ukkmrln54tTxM1NVQwYfvXLUU6jM2+7TVr7Xe+h6Hem21ZZIPEO+WGH24ghdo0Msp/vd7pHXB8/qJ59KRc4sTHjlcMWf/Ad4LW2bYX9RS6Nw0rRu2n8BRDXduO3EyKAAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index d10542c..dbe0fe1 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -1987,7 +1987,7 @@ module.exports = class PocketBird extends Plugin { }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjZJREFUWIXtl01oE1EUhb8nim0tjVIrxKKJgkJBWoS4EsmmUFwoCKJZqrtstFWpEKWr0FgQFDcuhIIupboSgosiWAWDFGo3Rlw00AaqhpbUFEOLXhdpxvnJ/DTGVmQODLyZd+beM/fcN/MGfPjw4WPToDZbwP8KEZHqWCllW+ctG6bo34d44HgLVC1+UWnneui5vgEVNKz4GooKcl2aCQADE+FKMp0JFgPCuw5J9XARVs+c6A5M40Zi3XF3nHxBQ7UEBMIfGF05A2vF7wlFufH2sIFW7wqQiclpbAppnjNgfCSmxbh77rinZLqG8KTtW3c38i5gq8HMj8QzHkN7g/bODwiXOp6RmjlKTyjKhf2PaG/tNHBtDcgtfvKaT5JDKZJDKbx20PhITG+EI6qFny/N0bSt2S2+SDTKz3KZB6eaPZvwOpagrWWrJz2mVWwbW//hTRyc4mLoMQCDR14aeJasY53bK4PWfQBEZmdrJsjm8jx8mubz+ykAFpYKXO2/RteJXrK5fC3RAHx99Tte0Dpv2S2soxEsUMeKbhSJxDMcuF+CtdfQcrpPHHaHsvtsPwA/2joAWBy96cRHKcXzK6fJZj+ilEJEDOZoA/0St3locxK5NXyHpvIqC0sF7WLLniDJxHUzX+w6fnqyYsjAkze2euZLc5b7yqvfaz10rY502mpLJJ4h/6XEzOVh2m8Pspzuc7pH9vae105WdgYpjN1zy+GIP/kPcFvaFsP+opZ6Yadpw7T/Ahaj2bhiv50TAAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjVJREFUWIXtl01oE1EUhb8nim0tBikKJWiioFCUFiGuRLIRigsFUSRL6y4btSoVgnQVmhZEwY0LQdClqCshuChCq2iQQu3GiIsG2kgaYyU1xcGC10WacX4yP42xFcmBgTfzztx75p77Zt5ACy200MKGQW20gP8VIiK1sVLKsc6b1k3Rvw/xwfEXqFb8stLPjTByWwZU0bTi6ygryPXoJgAMToaryQwm2AwI79gvtcNDWCNzYjiwjJuJNcfdduI5TdUSEAi/5/6P07Ba/L5QlOtvDphoja4AmZyawaGQ1jkTxsdieozb5476SmZoCF/avvX2Im8Djhqs/Eg84zO0P+jv/IBwYedTUrOH6QtFOb/nAV2dQRPX0YDc149+80lyOEVyOIXfDhofixmNcEWt8IXKPG1b2r3ii0Sj/NQ07p5s923Cy1iC7R2bfemxrGLH2MYPb2LfNAOhhwAMHXph4tmyPg5urQ46dwMQmZurmyCby3PvSZqFd9MALC6VuHL5Kj3HjpPN5euJBuDzxO943fZ5225hDY1ggzpS9qJIJJ5h750KrL6GltP94rI7FG1gFIAvhSIAwfQtNz5KKZ5dOkU2+wGlFCJiMkcfGJe4w0Nbk8iNkZu0aSssLpX0ix27ukkmrln54tTxM1NVQwYfvXLUU6jM2+7TVr7Xe+h6Hem21ZZIPEO+WGH24ghdo0Msp/vd7pHXB8/qJ59KRc4sTHjlcMWf/Ad4LW2bYX9RS6Nw0rRu2n8BRDXduO3EyKAAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index b3aaf31..a42b11e 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -1949,7 +1949,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjZJREFUWIXtl01oE1EUhb8nim0tjVIrxKKJgkJBWoS4EsmmUFwoCKJZqrtstFWpEKWr0FgQFDcuhIIupboSgosiWAWDFGo3Rlw00AaqhpbUFEOLXhdpxvnJ/DTGVmQODLyZd+beM/fcN/MGfPjw4WPToDZbwP8KEZHqWCllW+ctG6bo34d44HgLVC1+UWnneui5vgEVNKz4GooKcl2aCQADE+FKMp0JFgPCuw5J9XARVs+c6A5M40Zi3XF3nHxBQ7UEBMIfGF05A2vF7wlFufH2sIFW7wqQiclpbAppnjNgfCSmxbh77rinZLqG8KTtW3c38i5gq8HMj8QzHkN7g/bODwiXOp6RmjlKTyjKhf2PaG/tNHBtDcgtfvKaT5JDKZJDKbx20PhITG+EI6qFny/N0bSt2S2+SDTKz3KZB6eaPZvwOpagrWWrJz2mVWwbW//hTRyc4mLoMQCDR14aeJasY53bK4PWfQBEZmdrJsjm8jx8mubz+ykAFpYKXO2/RteJXrK5fC3RAHx99Tte0Dpv2S2soxEsUMeKbhSJxDMcuF+CtdfQcrpPHHaHsvtsPwA/2joAWBy96cRHKcXzK6fJZj+ilEJEDOZoA/0St3locxK5NXyHpvIqC0sF7WLLniDJxHUzX+w6fnqyYsjAkze2euZLc5b7yqvfaz10rY502mpLJJ4h/6XEzOVh2m8Pspzuc7pH9vae105WdgYpjN1zy+GIP/kPcFvaFsP+opZ6Yadpw7T/Ahaj2bhiv50TAAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjVJREFUWIXtl01oE1EUhb8nim0tBikKJWiioFCUFiGuRLIRigsFUSRL6y4btSoVgnQVmhZEwY0LQdClqCshuChCq2iQQu3GiIsG2kgaYyU1xcGC10WacX4yP42xFcmBgTfzztx75p77Zt5ACy200MKGQW20gP8VIiK1sVLKsc6b1k3Rvw/xwfEXqFb8stLPjTByWwZU0bTi6ygryPXoJgAMToaryQwm2AwI79gvtcNDWCNzYjiwjJuJNcfdduI5TdUSEAi/5/6P07Ba/L5QlOtvDphoja4AmZyawaGQ1jkTxsdieozb5476SmZoCF/avvX2Im8Djhqs/Eg84zO0P+jv/IBwYedTUrOH6QtFOb/nAV2dQRPX0YDc149+80lyOEVyOIXfDhofixmNcEWt8IXKPG1b2r3ii0Sj/NQ07p5s923Cy1iC7R2bfemxrGLH2MYPb2LfNAOhhwAMHXph4tmyPg5urQ46dwMQmZurmyCby3PvSZqFd9MALC6VuHL5Kj3HjpPN5euJBuDzxO943fZ5225hDY1ggzpS9qJIJJ5h750KrL6GltP94rI7FG1gFIAvhSIAwfQtNz5KKZ5dOkU2+wGlFCJiMkcfGJe4w0Nbk8iNkZu0aSssLpX0ix27ukkmrln54tTxM1NVQwYfvXLUU6jM2+7TVr7Xe+h6Hem21ZZIPEO+WGH24ghdo0Msp/vd7pHXB8/qJ59KRc4sTHjlcMWf/Ad4LW2bYX9RS6Nw0rRu2n8BRDXduO3EyKAAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 5c4d0a5..a77d732 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -1929,7 +1929,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjZJREFUWIXtl01oE1EUhb8nim0tjVIrxKKJgkJBWoS4EsmmUFwoCKJZqrtstFWpEKWr0FgQFDcuhIIupboSgosiWAWDFGo3Rlw00AaqhpbUFEOLXhdpxvnJ/DTGVmQODLyZd+beM/fcN/MGfPjw4WPToDZbwP8KEZHqWCllW+ctG6bo34d44HgLVC1+UWnneui5vgEVNKz4GooKcl2aCQADE+FKMp0JFgPCuw5J9XARVs+c6A5M40Zi3XF3nHxBQ7UEBMIfGF05A2vF7wlFufH2sIFW7wqQiclpbAppnjNgfCSmxbh77rinZLqG8KTtW3c38i5gq8HMj8QzHkN7g/bODwiXOp6RmjlKTyjKhf2PaG/tNHBtDcgtfvKaT5JDKZJDKbx20PhITG+EI6qFny/N0bSt2S2+SDTKz3KZB6eaPZvwOpagrWWrJz2mVWwbW//hTRyc4mLoMQCDR14aeJasY53bK4PWfQBEZmdrJsjm8jx8mubz+ykAFpYKXO2/RteJXrK5fC3RAHx99Tte0Dpv2S2soxEsUMeKbhSJxDMcuF+CtdfQcrpPHHaHsvtsPwA/2joAWBy96cRHKcXzK6fJZj+ilEJEDOZoA/0St3locxK5NXyHpvIqC0sF7WLLniDJxHUzX+w6fnqyYsjAkze2euZLc5b7yqvfaz10rY502mpLJJ4h/6XEzOVh2m8Pspzuc7pH9vae105WdgYpjN1zy+GIP/kPcFvaFsP+opZ6Yadpw7T/Ahaj2bhiv50TAAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjVJREFUWIXtl01oE1EUhb8nim0tBikKJWiioFCUFiGuRLIRigsFUSRL6y4btSoVgnQVmhZEwY0LQdClqCshuChCq2iQQu3GiIsG2kgaYyU1xcGC10WacX4yP42xFcmBgTfzztx75p77Zt5ACy200MKGQW20gP8VIiK1sVLKsc6b1k3Rvw/xwfEXqFb8stLPjTByWwZU0bTi6ygryPXoJgAMToaryQwm2AwI79gvtcNDWCNzYjiwjJuJNcfdduI5TdUSEAi/5/6P07Ba/L5QlOtvDphoja4AmZyawaGQ1jkTxsdieozb5476SmZoCF/avvX2Im8Djhqs/Eg84zO0P+jv/IBwYedTUrOH6QtFOb/nAV2dQRPX0YDc149+80lyOEVyOIXfDhofixmNcEWt8IXKPG1b2r3ii0Sj/NQ07p5s923Cy1iC7R2bfemxrGLH2MYPb2LfNAOhhwAMHXph4tmyPg5urQ46dwMQmZurmyCby3PvSZqFd9MALC6VuHL5Kj3HjpPN5euJBuDzxO943fZ5225hDY1ggzpS9qJIJJ5h750KrL6GltP94rI7FG1gFIAvhSIAwfQtNz5KKZ5dOkU2+wGlFCJiMkcfGJe4w0Nbk8iNkZu0aSssLpX0ix27ukkmrln54tTxM1NVQwYfvXLUU6jM2+7TVr7Xe+h6Hem21ZZIPEO+WGH24ghdo0Msp/vd7pHXB8/qJ59KRc4sTHjlcMWf/Ad4LW2bYX9RS6Nw0rRu2n8BRDXduO3EyKAAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; diff --git a/dist/web/birb.js b/dist/web/birb.js index 5c4d0a5..a77d732 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -1929,7 +1929,7 @@ }`; const SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAgCAYAAABjE6FEAAAAAXNSR0IArs4c6QAABD9JREFUeJztnT9rFEEYh3+TWATE7hDcsxW7CBbmA0Qs0uSuSiloYSBgIRhCPkCQFIKCYNBKK6szjZWpbEyTziLY5k6RAwsjpDGvRXbWubmd3btzd2c293vgyGRvb9/Z25ln39l/BxBCCCGEkOlC+a4ACR8REdd7Sim2IVJb2HhrgE8B6djtZhMA0Ol2B8pV1IEQMqVITCuKpBVFQ+UsORYVvxVF8nl+XmRtbahcdnxCymTGdwVIPu1mExuNBjrt9lC5SvY/fcJGo5GUCak7FGCN8CWgTreLJ/3+wLQn/X4yBCaEkFIwh8Cf5+eTV1VD4LQ6VBmbEBIAkkLVsX0KyKwD5UfIlCEiZwf/jb9Vx/ctIB/yJ6RMLviuQN3Yv3HDS1yllBIR8XnpCS93IWRK0ZmPzv6YBRFSf7hHHwNTesyGqsfe6XAbkP+FDYjUAi0/7TwRqVyAFPCUknYGlENA4gHZ6bYEgLcTQHHsoNs/++no5F4Ibe55zRdy7lEtEgqYAMBOt6WLXk4AKaWSOoSW/dn9wkc/rSOZZ4HNL9NofNDTRMScp5QGYQ99jOkQEQmtIZLyeNB873Vb+xTwKJhdYWW7l0yj/9w4BWiK53DlPvAI2L79Onl/p9seOB5ThoxCEDAhGt8CzkCUUon0zjtXZpV8+yOFbAvnQkREZi5GA9PuPevhw+oMll6eAgCOf34DALxbjwb2MkXIaEjAGBTwraU2HjTf63kLi0tIzRCX+L4e/cLB8+teThiVxZVZJUsvT/FhdQZFSDBTgIgFdP9VegqtBYhYgjBklBpsjI3gW8AkbFa2e/JuPZr27Zwrv1CH66HgHALrOw9c75vyg3XMIY1Jhsmnv3tDAtbys2Pbw3HXOo0am4TDye6izC3vKV0GgLllv/LzLeCV7Z7XA3uu+HEiVJt+llnRWFg42V3E2o+PAIAXl28DAO4evh0pwNejXwAwUSqu46dloLaANToTTVkWQAnWln/i26t8+6ULuPp6mLgEZPa3kkXkzD7rJMGRBWgzt7yHmw8Pce3qpdTPWhtiIgH5FjAhmlDEpznZXRSzD9j9rQIBiav/T4UAYUgwDVt8mCD78i1gQkKmv7Ugaxc6wODIp6r27RQgaiTBXAEiPq5nS+j4yzEAoLG57/rsvyATSse3gAkJnf7WQtLA73x/A5y1fe8SNE9MhtzvciuWJiEtvzQam/uFrbhvARNCchGdhNgi1BIMuf+N9DzAeCXQ31rInK9I+SHjTLQpYLtORdeBEJKJOnh+/azDOUQYMrkC1BLKk2CZ4tGxkSK8qupACHGicDb0HhDhucJ8Gkbn6ePkqRi6XOYDCqwbvVPjl10HQkg+9hNzQu+PY/0splIKnaePk//NMkrMuvRys+Iz8yMkDOKbEYAa9MexfhPEHIra5SrIix/6l03IeadufXDs6/KcC6pgxX3HJ4ScL/4CWsLSrzMo7i0AAAAASUVORK5CYII="; const FEATHER_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAARhJREFUWIXtlbENwjAQRf8hSiZIRQ+9WQNRUFIAKzACBSsAA1Ag1mAABqCCBomG3hQQ9OMEx4ZDNH5SikSJ3/fZ5wCJRCKRSPwZ0RzMWmtLAhGvQyUAi9mXP/aFaGjJRQQiguHihMvcFMJUVUYlAMuHixPGy4en1WmVQqgHYHkuZjiEj6a2/LjtYzTY0eiZbgC37Mxh1UN3sn/dr6cCz/LHB/DJj9s+2oMdbtdz6TtfFwQHcMvOInfmQNjsgchNWLXmdfK6gyioAu/6uKrsm1kWLAciKuCuey5nYuXAh234bdmZ6INIUw4E/Ix49xtjCmXfzLL8nY/ktdgnAKwxxgIoXIyqmAOwvIqfiN0ALNd21HYBO9XXGMAdnZTYyHWzWjQAAAAASUVORK5CYII="; - const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjZJREFUWIXtl01oE1EUhb8nim0tjVIrxKKJgkJBWoS4EsmmUFwoCKJZqrtstFWpEKWr0FgQFDcuhIIupboSgosiWAWDFGo3Rlw00AaqhpbUFEOLXhdpxvnJ/DTGVmQODLyZd+beM/fcN/MGfPjw4WPToDZbwP8KEZHqWCllW+ctG6bo34d44HgLVC1+UWnneui5vgEVNKz4GooKcl2aCQADE+FKMp0JFgPCuw5J9XARVs+c6A5M40Zi3XF3nHxBQ7UEBMIfGF05A2vF7wlFufH2sIFW7wqQiclpbAppnjNgfCSmxbh77rinZLqG8KTtW3c38i5gq8HMj8QzHkN7g/bODwiXOp6RmjlKTyjKhf2PaG/tNHBtDcgtfvKaT5JDKZJDKbx20PhITG+EI6qFny/N0bSt2S2+SDTKz3KZB6eaPZvwOpagrWWrJz2mVWwbW//hTRyc4mLoMQCDR14aeJasY53bK4PWfQBEZmdrJsjm8jx8mubz+ykAFpYKXO2/RteJXrK5fC3RAHx99Tte0Dpv2S2soxEsUMeKbhSJxDMcuF+CtdfQcrpPHHaHsvtsPwA/2joAWBy96cRHKcXzK6fJZj+ilEJEDOZoA/0St3locxK5NXyHpvIqC0sF7WLLniDJxHUzX+w6fnqyYsjAkze2euZLc5b7yqvfaz10rY502mpLJJ4h/6XEzOVh2m8Pspzuc7pH9vae105WdgYpjN1zy+GIP/kPcFvaFsP+opZ6Yadpw7T/Ahaj2bhiv50TAAAAAElFTkSuQmCC"; + const HATS_SPRITE_SHEET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAMCAYAAACdrrgZAAAAAXNSR0IArs4c6QAAAjVJREFUWIXtl01oE1EUhb8nim0tBikKJWiioFCUFiGuRLIRigsFUSRL6y4btSoVgnQVmhZEwY0LQdClqCshuChCq2iQQu3GiIsG2kgaYyU1xcGC10WacX4yP42xFcmBgTfzztx75p77Zt5ACy200MKGQW20gP8VIiK1sVLKsc6b1k3Rvw/xwfEXqFb8stLPjTByWwZU0bTi6ygryPXoJgAMToaryQwm2AwI79gvtcNDWCNzYjiwjJuJNcfdduI5TdUSEAi/5/6P07Ba/L5QlOtvDphoja4AmZyawaGQ1jkTxsdieozb5476SmZoCF/avvX2Im8Djhqs/Eg84zO0P+jv/IBwYedTUrOH6QtFOb/nAV2dQRPX0YDc149+80lyOEVyOIXfDhofixmNcEWt8IXKPG1b2r3ii0Sj/NQ07p5s923Cy1iC7R2bfemxrGLH2MYPb2LfNAOhhwAMHXph4tmyPg5urQ46dwMQmZurmyCby3PvSZqFd9MALC6VuHL5Kj3HjpPN5euJBuDzxO943fZ5225hDY1ggzpS9qJIJJ5h750KrL6GltP94rI7FG1gFIAvhSIAwfQtNz5KKZ5dOkU2+wGlFCJiMkcfGJe4w0Nbk8iNkZu0aSssLpX0ix27ukkmrln54tTxM1NVQwYfvXLUU6jM2+7TVr7Xe+h6Hem21ZZIPEO+WGH24ghdo0Msp/vd7pHXB8/qJ59KRc4sTHjlcMWf/Ad4LW2bYX9RS6Nw0rRu2n8BRDXduO3EyKAAAAAASUVORK5CYII="; // Element IDs const FIELD_GUIDE_ID = "birb-field-guide"; diff --git a/sprites/hats.png b/sprites/hats.png index 61e2103ab52a66b51ddc96f775d49dc7fcbe3fcc..88fe2ddebb453a94ba3989973815707c1581d1a7 100644 GIT binary patch delta 597 zcmV-b0;>J|1p5S#F@H5lL_t(oh3%J3XcJKsg}*0?Z7l{V3MFWwpiq<+A+AKS5sC{1 zQ6x+2E*rHf6@qjXnifRCjSE50rKl?*xF|xaXplnf#)yjs+DIB>B{jvtg4acwaegvC zjjwn!%xv);SZ#$6|Vn+vkq@N@i#XU)sL)_9AZs zjvB1|NIc^+w0}S7@BDypVdqm)vxn&mMLECc0bQLz6W7sz+}DqO^GR|zMRGWW-wqld ziy4h@MXm6K$~;tD7L3%X9BZnuT}M04y$*xPNl_Dm}-Jlg;Jpi3Z^F#P4|B z_IcZGVGWI7gE~_7qDUm3Veg#^tiFbp)BWPII}~kT6o4;D=aRR^ot$4x=ALkS^47B@iS9ZLk1tca@13(%-inM zR=(GJ=uUba>9*CDNIXNnSYh_!2wkH?ET{Y3?vd9A&*~?iN=42rOnBvR#h?5Kcr9(4 jVSiCeqj1u+ZrXnVL^a*G?Zn8S00000NkvXXu0mjf&6Xx| delta 598 zcmV-c0;&D`1pEY$F@H8mL_t(oh3%J3XcJKsg}*0?Z7q#bE5xFSff{P+p1%ni7H%44E&<3i8medqOi(VIL#`($o zG{#nB4h+1Rcjn$R_uM!027LJN;bYUFHe0~|3K5a&SSe*&=YK65rs&^?c;I*oR4sl{ zY3F+AxxN7vG_3d7hZ&z$HEOyfpk-EnuEd_hCC z1O&n#7+pC7YsK#gMY-|zuz^1BoZ@2WF#v-{ zUK)6otYe+qD}&a307PbIYbMC%@;rQ+=JWe002Y=CTz~DqM%Rg6vblUM(ExmX^*dhB zI&ax6tfLVuP{)dH6p6$$9JpVCwb#&cx=$Q-hqC)@KL9`4IsjN4z3Ie9DaG?Er^#kN zqLe~J4CZJ9{Svo%Xmb*|HGGGr@+u2U1?^(Xo*>D@bu(Y=I(~YxV#vUgH@14_OLLa{ z%B$aNJx_G4j&#~;OC+8l|E0vtHR(1v{jNNm~;fO!^4{%%B k7Q_CcmU>~QX~VSt0v4m$xMIJZ6951J07*qoM6N<$g5-uC%K!iX From 3b2081943d02219795145c55897445ca5738781e Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Wed, 21 Jan 2026 22:25:49 -0500 Subject: [PATCH 16/24] Add hat item --- dist/extension.zip | Bin 152927 -> 154034 bytes dist/extension/birb.js | 212 +++++++++++++++++++++++++++------- dist/extension/manifest.json | 2 +- dist/obsidian/main.js | 214 ++++++++++++++++++++++++++++------- dist/obsidian/manifest.json | 2 +- dist/userscript/birb.user.js | 214 ++++++++++++++++++++++++++++------- dist/web/birb.embed.js | 212 +++++++++++++++++++++++++++------- dist/web/birb.js | 212 +++++++++++++++++++++++++++------- src/application.js | 76 +++++++++++-- src/hats.js | 132 ++++++++++++++++----- src/stylesheet.css | 10 ++ 11 files changed, 1034 insertions(+), 252 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index a087c4742264118ed40695e939e2681c83431c2a..88c37aecf11fcbbbb54eb11e17fd7a0495e459a5 100644 GIT binary patch delta 31589 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 D)|h8g diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 24d6ef6..cecc246 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -629,6 +629,7 @@ FLOWER_HAT: "flower-hat" }; + /** @type {{ [hatId: string]: { name: string, description: string } }} */ const HAT_METADATA = { [HAT.NONE]: { name: "Invisible Hat", @@ -684,62 +685,108 @@ } const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } return hatLayers; } + /** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Anim} + */ + function createHatItemAnimation(hatId, spriteSheet) { + const hatLayer = buildHatItemLayer(spriteSheet, hatId); + const frames = [ + new Frame([hatLayer]) + ]; + return new Anim(frames, [1000], true); + } + /** * @param {string[][]} spriteSheet * @param {string} hatName * @param {number} hatIndex - * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; const TOP_PADDING = 5 + yOffset; const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); - const paddedHatPixels = []; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, TOP_PADDING, BOTTOM_PADDING, LEFT_PADDING, RIGHT_PADDING); + hatPixels = drawOutline(hatPixels, false); + return new Layer(hatPixels, hatName); + } + + /** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Layer} + */ + function buildHatItemLayer(spriteSheet, hatId) { + if (hatId === HAT.NONE) { + return new Layer([], TAG.DEFAULT); + } + const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, 1, 1, 1, 1); + hatPixels = drawOutline(hatPixels, true); + hatPixels = pushToBottom(hatPixels); + return new Layer(hatPixels, TAG.DEFAULT); + } + + /** + * Add transparent padding around the pixel array + * @param {string[][]} pixels + * @param {number} top + * @param {number} bottom + * @param {number} left + * @param {number} right + * @returns {string[][]} + */ + function pad(pixels, top, bottom, left, right) { + const paddedPixels = []; + const rowLength = pixels[0].length + left + right; // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < top; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { + for (let y = 0; y < pixels.length; y++) { const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { + for (let x = 0; x < left; x++) { row.push(PALETTE.TRANSPARENT); } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); + for (let x = 0; x < pixels[y].length; x++) { + row.push(pixels[y][x]); } - - for (let x = 0; x < RIGHT_PADDING; x++) { + for (let x = 0; x < right; x++) { row.push(PALETTE.TRANSPARENT); } - - paddedHatPixels.push(row); + paddedPixels.push(row); } // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < bottom; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } + return paddedPixels; + } - // Add outline + /** + * Draw an outline around non-transparent pixels + * @param {string[][]} pixels + * @param {boolean} [outlineBottom=false] + * @return {string[][]} + */ + function drawOutline(pixels, outlineBottom = false) { let neighborOffsets = [ [-1, 0], [1, 0], @@ -750,21 +797,42 @@ if (outlineBottom) { neighborOffsets.push([0, 1], [-1, 1], [1, 1]); } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; + for (let y = 0; y < pixels.length; y++) { + for (let x = 0; x < pixels[y].length; x++) { + const pixel = pixels[y][x]; if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { for (let [dx, dy] of neighborOffsets) { const newX = x + dx; const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; + if (newY >= 0 && newY < pixels.length && newX >= 0 && newX < pixels[newY].length && pixels[newY][newX] === PALETTE.TRANSPARENT) { + pixels[newY][newX] = PALETTE.BORDER; } } } } } - return new Layer(paddedHatPixels, hatName); + return pixels; + } + + /** + * Trim transparent rows from the bottom and push them to the top + * @param {string[][]} pixels + * @returns {string[][]} + */ + function pushToBottom(pixels) { + let trimmedPixels = pixels.slice(); + let trimCount = 0; + while (trimmedPixels.length > 1) { + const firstRow = trimmedPixels[trimmedPixels.length - 1]; + if (firstRow.every(pixel => pixel === PALETTE.TRANSPARENT)) { + trimmedPixels.pop(); + trimCount++; + } else { + break; + } + } + trimmedPixels = pad(trimmedPixels, trimCount, 0, 0, 0); + return trimmedPixels; } /** @@ -1602,6 +1670,16 @@ z-index: 2147483630 !important; } +.birb-item { + image-rendering: pixelated; + position: absolute; + bottom: 0; + transform-origin: bottom; + transform: scale(calc(var(--birb-scale) * 1.5)) !important; + transform-origin: bottom; + z-index: 2147483630 !important; +} + .birb-window { font-family: "Monocraft", monospace !important; line-height: initial !important; @@ -1950,6 +2028,7 @@ const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; const WARDROBE_ID = "birb-wardrobe"; + const HAT_ID = "birb-hat"; const DEFAULT_BIRD = "bluebird"; const DEFAULT_HAT = HAT.NONE; @@ -2068,7 +2147,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.20", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.20"); }, false), + new MenuItem("2026.1.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), ]; const styleElement = document.createElement("style"); @@ -2257,6 +2336,9 @@ setInterval(update, UPDATE_INTERVAL); focusOnElement(true); + + // TODO: This is for testing + generateHat(); } function update() { @@ -2437,6 +2519,47 @@ } } + /** + * Insert the hat as an item element in the document if possible + */ + function generateHat() { + if (document.querySelector("#" + HAT_ID)) { + return; + } + // Select a random hat + const hatKeys = Object.keys(HAT); + const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + + // Find a random valid element to place the hat on + const element = getRandomValidElement(); + if (!element) { + return; + } + + // Create hat element + const hatCanvas = document.createElement("canvas"); + hatCanvas.id = HAT_ID; + hatCanvas.classList.add("birb-item"); + hatCanvas.width = 14 * CANVAS_PIXEL_SIZE; + hatCanvas.height = 14 * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + + // Create hat animation + const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); + hatAnimation.draw(hatCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, SPECIES[currentSpecies].colors, [TAG.DEFAULT]); + + // Position hat above the element + const rect = element.getBoundingClientRect(); + hatCanvas.style.left = (rect.left + rect.width / 2 - hatCanvas.width / 2) + "px"; + hatCanvas.style.top = (rect.top - hatCanvas.height + window.scrollY) + "px"; + + // Append to document + document.body.appendChild(hatCanvas); + } + /** * @param {string} birdType */ @@ -2768,14 +2891,9 @@ } /** - * Focus on an element within the viewport - * @param {boolean} [teleport] Whether to teleport to the element instead of flying - * @returns Whether an element to focus on was found + * @returns {HTMLElement|null} The random element, or null if no valid element was found */ - function focusOnElement(teleport = false) { - if (frozen) { - return false; - } + function getRandomValidElement() { const MIN_FOCUS_ELEMENT_TOP = getContext().getFocusElementTopMargin(); const elements = document.querySelectorAll(getContext().getFocusableElements().join(", ")); const inWindow = Array.from(elements).filter((img) => { @@ -2797,10 +2915,22 @@ } }); if (nonFixedElements.length === 0) { - return false; + return null; } const randomElement = nonFixedElements[Math.floor(Math.random() * nonFixedElements.length)]; - focusedElement = randomElement; + return randomElement; + } + + /** + * Focus on an element within the viewport + * @param {boolean} [teleport] Whether to teleport to the element instead of flying + * @returns Whether an element to focus on was found + */ + function focusOnElement(teleport = false) { + if (frozen) { + return false; + } + focusedElement = getRandomValidElement(); log("Focusing on element: ", focusedElement); updateFocusedElementBounds(); if (teleport) { @@ -2808,7 +2938,7 @@ } else { flyTo(getFocusedElementRandomX(), getFocusedY()); } - return randomElement !== null; + return focusedElement !== null; } /** diff --git a/dist/extension/manifest.json b/dist/extension/manifest.json index 713ccb1..283d052 100644 --- a/dist/extension/manifest.json +++ b/dist/extension/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Pocket Bird", "description": "It's a pet bird in your browser, what more could you want?", - "version": "2026.1.20", + "version": "2026.1.21", "homepage_url": "https://idreesinc.com", "icons": { "48": "images/icons/transparent/48x48x1.png", diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index dbe0fe1..4b1fd4c 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -1,7 +1,7 @@ const { Plugin, Notice } = require('obsidian'); module.exports = class PocketBird extends Plugin { onload() { - console.log("Loading Pocket Bird version 2026.1.20..."); + console.log("Loading Pocket Bird version 2026.1.21..."); const OBSIDIAN_PLUGIN = this; (function () { 'use strict'; @@ -634,6 +634,7 @@ module.exports = class PocketBird extends Plugin { FLOWER_HAT: "flower-hat" }; + /** @type {{ [hatId: string]: { name: string, description: string } }} */ const HAT_METADATA = { [HAT.NONE]: { name: "Invisible Hat", @@ -689,62 +690,108 @@ module.exports = class PocketBird extends Plugin { } const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } return hatLayers; } + /** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Anim} + */ + function createHatItemAnimation(hatId, spriteSheet) { + const hatLayer = buildHatItemLayer(spriteSheet, hatId); + const frames = [ + new Frame([hatLayer]) + ]; + return new Anim(frames, [1000], true); + } + /** * @param {string[][]} spriteSheet * @param {string} hatName * @param {number} hatIndex - * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; const TOP_PADDING = 5 + yOffset; const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); - const paddedHatPixels = []; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, TOP_PADDING, BOTTOM_PADDING, LEFT_PADDING, RIGHT_PADDING); + hatPixels = drawOutline(hatPixels, false); + return new Layer(hatPixels, hatName); + } + + /** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Layer} + */ + function buildHatItemLayer(spriteSheet, hatId) { + if (hatId === HAT.NONE) { + return new Layer([], TAG.DEFAULT); + } + const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, 1, 1, 1, 1); + hatPixels = drawOutline(hatPixels, true); + hatPixels = pushToBottom(hatPixels); + return new Layer(hatPixels, TAG.DEFAULT); + } + + /** + * Add transparent padding around the pixel array + * @param {string[][]} pixels + * @param {number} top + * @param {number} bottom + * @param {number} left + * @param {number} right + * @returns {string[][]} + */ + function pad(pixels, top, bottom, left, right) { + const paddedPixels = []; + const rowLength = pixels[0].length + left + right; // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < top; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { + for (let y = 0; y < pixels.length; y++) { const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { + for (let x = 0; x < left; x++) { row.push(PALETTE.TRANSPARENT); } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); + for (let x = 0; x < pixels[y].length; x++) { + row.push(pixels[y][x]); } - - for (let x = 0; x < RIGHT_PADDING; x++) { + for (let x = 0; x < right; x++) { row.push(PALETTE.TRANSPARENT); } - - paddedHatPixels.push(row); + paddedPixels.push(row); } // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < bottom; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } + return paddedPixels; + } - // Add outline + /** + * Draw an outline around non-transparent pixels + * @param {string[][]} pixels + * @param {boolean} [outlineBottom=false] + * @return {string[][]} + */ + function drawOutline(pixels, outlineBottom = false) { let neighborOffsets = [ [-1, 0], [1, 0], @@ -755,21 +802,42 @@ module.exports = class PocketBird extends Plugin { if (outlineBottom) { neighborOffsets.push([0, 1], [-1, 1], [1, 1]); } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; + for (let y = 0; y < pixels.length; y++) { + for (let x = 0; x < pixels[y].length; x++) { + const pixel = pixels[y][x]; if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { for (let [dx, dy] of neighborOffsets) { const newX = x + dx; const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; + if (newY >= 0 && newY < pixels.length && newX >= 0 && newX < pixels[newY].length && pixels[newY][newX] === PALETTE.TRANSPARENT) { + pixels[newY][newX] = PALETTE.BORDER; } } } } } - return new Layer(paddedHatPixels, hatName); + return pixels; + } + + /** + * Trim transparent rows from the bottom and push them to the top + * @param {string[][]} pixels + * @returns {string[][]} + */ + function pushToBottom(pixels) { + let trimmedPixels = pixels.slice(); + let trimCount = 0; + while (trimmedPixels.length > 1) { + const firstRow = trimmedPixels[trimmedPixels.length - 1]; + if (firstRow.every(pixel => pixel === PALETTE.TRANSPARENT)) { + trimmedPixels.pop(); + trimCount++; + } else { + break; + } + } + trimmedPixels = pad(trimmedPixels, trimCount, 0, 0, 0); + return trimmedPixels; } /** @@ -1645,6 +1713,16 @@ module.exports = class PocketBird extends Plugin { z-index: 2147483630 !important; } +.birb-item { + image-rendering: pixelated; + position: absolute; + bottom: 0; + transform-origin: bottom; + transform: scale(calc(var(--birb-scale) * 1.5)) !important; + transform-origin: bottom; + z-index: 2147483630 !important; +} + .birb-window { font-family: "Monocraft", monospace !important; line-height: initial !important; @@ -1993,6 +2071,7 @@ module.exports = class PocketBird extends Plugin { const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; const WARDROBE_ID = "birb-wardrobe"; + const HAT_ID = "birb-hat"; const DEFAULT_BIRD = "bluebird"; const DEFAULT_HAT = HAT.NONE; @@ -2111,7 +2190,7 @@ module.exports = class PocketBird extends Plugin { insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.20", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.20"); }, false), + new MenuItem("2026.1.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), ]; const styleElement = document.createElement("style"); @@ -2300,6 +2379,9 @@ module.exports = class PocketBird extends Plugin { setInterval(update, UPDATE_INTERVAL); focusOnElement(true); + + // TODO: This is for testing + generateHat(); } function update() { @@ -2480,6 +2562,47 @@ module.exports = class PocketBird extends Plugin { } } + /** + * Insert the hat as an item element in the document if possible + */ + function generateHat() { + if (document.querySelector("#" + HAT_ID)) { + return; + } + // Select a random hat + const hatKeys = Object.keys(HAT); + const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + + // Find a random valid element to place the hat on + const element = getRandomValidElement(); + if (!element) { + return; + } + + // Create hat element + const hatCanvas = document.createElement("canvas"); + hatCanvas.id = HAT_ID; + hatCanvas.classList.add("birb-item"); + hatCanvas.width = 14 * CANVAS_PIXEL_SIZE; + hatCanvas.height = 14 * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + + // Create hat animation + const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); + hatAnimation.draw(hatCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, SPECIES[currentSpecies].colors, [TAG.DEFAULT]); + + // Position hat above the element + const rect = element.getBoundingClientRect(); + hatCanvas.style.left = (rect.left + rect.width / 2 - hatCanvas.width / 2) + "px"; + hatCanvas.style.top = (rect.top - hatCanvas.height + window.scrollY) + "px"; + + // Append to document + document.body.appendChild(hatCanvas); + } + /** * @param {string} birdType */ @@ -2811,14 +2934,9 @@ module.exports = class PocketBird extends Plugin { } /** - * Focus on an element within the viewport - * @param {boolean} [teleport] Whether to teleport to the element instead of flying - * @returns Whether an element to focus on was found + * @returns {HTMLElement|null} The random element, or null if no valid element was found */ - function focusOnElement(teleport = false) { - if (frozen) { - return false; - } + function getRandomValidElement() { const MIN_FOCUS_ELEMENT_TOP = getContext().getFocusElementTopMargin(); const elements = document.querySelectorAll(getContext().getFocusableElements().join(", ")); const inWindow = Array.from(elements).filter((img) => { @@ -2840,10 +2958,22 @@ module.exports = class PocketBird extends Plugin { } }); if (nonFixedElements.length === 0) { - return false; + return null; } const randomElement = nonFixedElements[Math.floor(Math.random() * nonFixedElements.length)]; - focusedElement = randomElement; + return randomElement; + } + + /** + * Focus on an element within the viewport + * @param {boolean} [teleport] Whether to teleport to the element instead of flying + * @returns Whether an element to focus on was found + */ + function focusOnElement(teleport = false) { + if (frozen) { + return false; + } + focusedElement = getRandomValidElement(); log("Focusing on element: ", focusedElement); updateFocusedElementBounds(); if (teleport) { @@ -2851,7 +2981,7 @@ module.exports = class PocketBird extends Plugin { } else { flyTo(getFocusedElementRandomX(), getFocusedY()); } - return randomElement !== null; + return focusedElement !== null; } /** diff --git a/dist/obsidian/manifest.json b/dist/obsidian/manifest.json index cb12fa6..662f18c 100644 --- a/dist/obsidian/manifest.json +++ b/dist/obsidian/manifest.json @@ -1,7 +1,7 @@ { "id": "pocket-bird", "name": "Pocket Bird", - "version": "2026.1.20", + "version": "2026.1.21", "minAppVersion": "0.15.0", "description": "Add a pet bird to fly around your notes and keep you company!", "author": "Idrees Hassan", diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index a42b11e..3a33416 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Pocket Bird // @namespace https://idreesinc.com -// @version 2026.1.20 +// @version 2026.1.21 // @description It's a pet bird in your browser, what more could you want? // @author Idrees // @downloadURL https://github.com/IdreesInc/Pocket-Bird/raw/refs/heads/main/dist/userscript/birb.user.js @@ -643,6 +643,7 @@ FLOWER_HAT: "flower-hat" }; + /** @type {{ [hatId: string]: { name: string, description: string } }} */ const HAT_METADATA = { [HAT.NONE]: { name: "Invisible Hat", @@ -698,62 +699,108 @@ } const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } return hatLayers; } + /** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Anim} + */ + function createHatItemAnimation(hatId, spriteSheet) { + const hatLayer = buildHatItemLayer(spriteSheet, hatId); + const frames = [ + new Frame([hatLayer]) + ]; + return new Anim(frames, [1000], true); + } + /** * @param {string[][]} spriteSheet * @param {string} hatName * @param {number} hatIndex - * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; const TOP_PADDING = 5 + yOffset; const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); - const paddedHatPixels = []; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, TOP_PADDING, BOTTOM_PADDING, LEFT_PADDING, RIGHT_PADDING); + hatPixels = drawOutline(hatPixels, false); + return new Layer(hatPixels, hatName); + } + + /** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Layer} + */ + function buildHatItemLayer(spriteSheet, hatId) { + if (hatId === HAT.NONE) { + return new Layer([], TAG.DEFAULT); + } + const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, 1, 1, 1, 1); + hatPixels = drawOutline(hatPixels, true); + hatPixels = pushToBottom(hatPixels); + return new Layer(hatPixels, TAG.DEFAULT); + } + + /** + * Add transparent padding around the pixel array + * @param {string[][]} pixels + * @param {number} top + * @param {number} bottom + * @param {number} left + * @param {number} right + * @returns {string[][]} + */ + function pad(pixels, top, bottom, left, right) { + const paddedPixels = []; + const rowLength = pixels[0].length + left + right; // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < top; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { + for (let y = 0; y < pixels.length; y++) { const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { + for (let x = 0; x < left; x++) { row.push(PALETTE.TRANSPARENT); } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); + for (let x = 0; x < pixels[y].length; x++) { + row.push(pixels[y][x]); } - - for (let x = 0; x < RIGHT_PADDING; x++) { + for (let x = 0; x < right; x++) { row.push(PALETTE.TRANSPARENT); } - - paddedHatPixels.push(row); + paddedPixels.push(row); } // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < bottom; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } + return paddedPixels; + } - // Add outline + /** + * Draw an outline around non-transparent pixels + * @param {string[][]} pixels + * @param {boolean} [outlineBottom=false] + * @return {string[][]} + */ + function drawOutline(pixels, outlineBottom = false) { let neighborOffsets = [ [-1, 0], [1, 0], @@ -764,21 +811,42 @@ if (outlineBottom) { neighborOffsets.push([0, 1], [-1, 1], [1, 1]); } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; + for (let y = 0; y < pixels.length; y++) { + for (let x = 0; x < pixels[y].length; x++) { + const pixel = pixels[y][x]; if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { for (let [dx, dy] of neighborOffsets) { const newX = x + dx; const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; + if (newY >= 0 && newY < pixels.length && newX >= 0 && newX < pixels[newY].length && pixels[newY][newX] === PALETTE.TRANSPARENT) { + pixels[newY][newX] = PALETTE.BORDER; } } } } } - return new Layer(paddedHatPixels, hatName); + return pixels; + } + + /** + * Trim transparent rows from the bottom and push them to the top + * @param {string[][]} pixels + * @returns {string[][]} + */ + function pushToBottom(pixels) { + let trimmedPixels = pixels.slice(); + let trimCount = 0; + while (trimmedPixels.length > 1) { + const firstRow = trimmedPixels[trimmedPixels.length - 1]; + if (firstRow.every(pixel => pixel === PALETTE.TRANSPARENT)) { + trimmedPixels.pop(); + trimCount++; + } else { + break; + } + } + trimmedPixels = pad(trimmedPixels, trimCount, 0, 0, 0); + return trimmedPixels; } /** @@ -1607,6 +1675,16 @@ z-index: 2147483630 !important; } +.birb-item { + image-rendering: pixelated; + position: absolute; + bottom: 0; + transform-origin: bottom; + transform: scale(calc(var(--birb-scale) * 1.5)) !important; + transform-origin: bottom; + z-index: 2147483630 !important; +} + .birb-window { font-family: "Monocraft", monospace !important; line-height: initial !important; @@ -1955,6 +2033,7 @@ const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; const WARDROBE_ID = "birb-wardrobe"; + const HAT_ID = "birb-hat"; const DEFAULT_BIRD = "bluebird"; const DEFAULT_HAT = HAT.NONE; @@ -2073,7 +2152,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.20", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.20"); }, false), + new MenuItem("2026.1.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), ]; const styleElement = document.createElement("style"); @@ -2262,6 +2341,9 @@ setInterval(update, UPDATE_INTERVAL); focusOnElement(true); + + // TODO: This is for testing + generateHat(); } function update() { @@ -2442,6 +2524,47 @@ } } + /** + * Insert the hat as an item element in the document if possible + */ + function generateHat() { + if (document.querySelector("#" + HAT_ID)) { + return; + } + // Select a random hat + const hatKeys = Object.keys(HAT); + const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + + // Find a random valid element to place the hat on + const element = getRandomValidElement(); + if (!element) { + return; + } + + // Create hat element + const hatCanvas = document.createElement("canvas"); + hatCanvas.id = HAT_ID; + hatCanvas.classList.add("birb-item"); + hatCanvas.width = 14 * CANVAS_PIXEL_SIZE; + hatCanvas.height = 14 * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + + // Create hat animation + const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); + hatAnimation.draw(hatCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, SPECIES[currentSpecies].colors, [TAG.DEFAULT]); + + // Position hat above the element + const rect = element.getBoundingClientRect(); + hatCanvas.style.left = (rect.left + rect.width / 2 - hatCanvas.width / 2) + "px"; + hatCanvas.style.top = (rect.top - hatCanvas.height + window.scrollY) + "px"; + + // Append to document + document.body.appendChild(hatCanvas); + } + /** * @param {string} birdType */ @@ -2773,14 +2896,9 @@ } /** - * Focus on an element within the viewport - * @param {boolean} [teleport] Whether to teleport to the element instead of flying - * @returns Whether an element to focus on was found + * @returns {HTMLElement|null} The random element, or null if no valid element was found */ - function focusOnElement(teleport = false) { - if (frozen) { - return false; - } + function getRandomValidElement() { const MIN_FOCUS_ELEMENT_TOP = getContext().getFocusElementTopMargin(); const elements = document.querySelectorAll(getContext().getFocusableElements().join(", ")); const inWindow = Array.from(elements).filter((img) => { @@ -2802,10 +2920,22 @@ } }); if (nonFixedElements.length === 0) { - return false; + return null; } const randomElement = nonFixedElements[Math.floor(Math.random() * nonFixedElements.length)]; - focusedElement = randomElement; + return randomElement; + } + + /** + * Focus on an element within the viewport + * @param {boolean} [teleport] Whether to teleport to the element instead of flying + * @returns Whether an element to focus on was found + */ + function focusOnElement(teleport = false) { + if (frozen) { + return false; + } + focusedElement = getRandomValidElement(); log("Focusing on element: ", focusedElement); updateFocusedElementBounds(); if (teleport) { @@ -2813,7 +2943,7 @@ } else { flyTo(getFocusedElementRandomX(), getFocusedY()); } - return randomElement !== null; + return focusedElement !== null; } /** diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index a77d732..5992b61 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -629,6 +629,7 @@ FLOWER_HAT: "flower-hat" }; + /** @type {{ [hatId: string]: { name: string, description: string } }} */ const HAT_METADATA = { [HAT.NONE]: { name: "Invisible Hat", @@ -684,62 +685,108 @@ } const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } return hatLayers; } + /** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Anim} + */ + function createHatItemAnimation(hatId, spriteSheet) { + const hatLayer = buildHatItemLayer(spriteSheet, hatId); + const frames = [ + new Frame([hatLayer]) + ]; + return new Anim(frames, [1000], true); + } + /** * @param {string[][]} spriteSheet * @param {string} hatName * @param {number} hatIndex - * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; const TOP_PADDING = 5 + yOffset; const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); - const paddedHatPixels = []; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, TOP_PADDING, BOTTOM_PADDING, LEFT_PADDING, RIGHT_PADDING); + hatPixels = drawOutline(hatPixels, false); + return new Layer(hatPixels, hatName); + } + + /** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Layer} + */ + function buildHatItemLayer(spriteSheet, hatId) { + if (hatId === HAT.NONE) { + return new Layer([], TAG.DEFAULT); + } + const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, 1, 1, 1, 1); + hatPixels = drawOutline(hatPixels, true); + hatPixels = pushToBottom(hatPixels); + return new Layer(hatPixels, TAG.DEFAULT); + } + + /** + * Add transparent padding around the pixel array + * @param {string[][]} pixels + * @param {number} top + * @param {number} bottom + * @param {number} left + * @param {number} right + * @returns {string[][]} + */ + function pad(pixels, top, bottom, left, right) { + const paddedPixels = []; + const rowLength = pixels[0].length + left + right; // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < top; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { + for (let y = 0; y < pixels.length; y++) { const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { + for (let x = 0; x < left; x++) { row.push(PALETTE.TRANSPARENT); } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); + for (let x = 0; x < pixels[y].length; x++) { + row.push(pixels[y][x]); } - - for (let x = 0; x < RIGHT_PADDING; x++) { + for (let x = 0; x < right; x++) { row.push(PALETTE.TRANSPARENT); } - - paddedHatPixels.push(row); + paddedPixels.push(row); } // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < bottom; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } + return paddedPixels; + } - // Add outline + /** + * Draw an outline around non-transparent pixels + * @param {string[][]} pixels + * @param {boolean} [outlineBottom=false] + * @return {string[][]} + */ + function drawOutline(pixels, outlineBottom = false) { let neighborOffsets = [ [-1, 0], [1, 0], @@ -750,21 +797,42 @@ if (outlineBottom) { neighborOffsets.push([0, 1], [-1, 1], [1, 1]); } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; + for (let y = 0; y < pixels.length; y++) { + for (let x = 0; x < pixels[y].length; x++) { + const pixel = pixels[y][x]; if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { for (let [dx, dy] of neighborOffsets) { const newX = x + dx; const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; + if (newY >= 0 && newY < pixels.length && newX >= 0 && newX < pixels[newY].length && pixels[newY][newX] === PALETTE.TRANSPARENT) { + pixels[newY][newX] = PALETTE.BORDER; } } } } } - return new Layer(paddedHatPixels, hatName); + return pixels; + } + + /** + * Trim transparent rows from the bottom and push them to the top + * @param {string[][]} pixels + * @returns {string[][]} + */ + function pushToBottom(pixels) { + let trimmedPixels = pixels.slice(); + let trimCount = 0; + while (trimmedPixels.length > 1) { + const firstRow = trimmedPixels[trimmedPixels.length - 1]; + if (firstRow.every(pixel => pixel === PALETTE.TRANSPARENT)) { + trimmedPixels.pop(); + trimCount++; + } else { + break; + } + } + trimmedPixels = pad(trimmedPixels, trimCount, 0, 0, 0); + return trimmedPixels; } /** @@ -1587,6 +1655,16 @@ z-index: 2147483630 !important; } +.birb-item { + image-rendering: pixelated; + position: absolute; + bottom: 0; + transform-origin: bottom; + transform: scale(calc(var(--birb-scale) * 1.5)) !important; + transform-origin: bottom; + z-index: 2147483630 !important; +} + .birb-window { font-family: "Monocraft", monospace !important; line-height: initial !important; @@ -1935,6 +2013,7 @@ const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; const WARDROBE_ID = "birb-wardrobe"; + const HAT_ID = "birb-hat"; const DEFAULT_BIRD = "bluebird"; const DEFAULT_HAT = HAT.NONE; @@ -2053,7 +2132,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.20", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.20"); }, false), + new MenuItem("2026.1.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), ]; const styleElement = document.createElement("style"); @@ -2242,6 +2321,9 @@ setInterval(update, UPDATE_INTERVAL); focusOnElement(true); + + // TODO: This is for testing + generateHat(); } function update() { @@ -2422,6 +2504,47 @@ } } + /** + * Insert the hat as an item element in the document if possible + */ + function generateHat() { + if (document.querySelector("#" + HAT_ID)) { + return; + } + // Select a random hat + const hatKeys = Object.keys(HAT); + const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + + // Find a random valid element to place the hat on + const element = getRandomValidElement(); + if (!element) { + return; + } + + // Create hat element + const hatCanvas = document.createElement("canvas"); + hatCanvas.id = HAT_ID; + hatCanvas.classList.add("birb-item"); + hatCanvas.width = 14 * CANVAS_PIXEL_SIZE; + hatCanvas.height = 14 * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + + // Create hat animation + const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); + hatAnimation.draw(hatCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, SPECIES[currentSpecies].colors, [TAG.DEFAULT]); + + // Position hat above the element + const rect = element.getBoundingClientRect(); + hatCanvas.style.left = (rect.left + rect.width / 2 - hatCanvas.width / 2) + "px"; + hatCanvas.style.top = (rect.top - hatCanvas.height + window.scrollY) + "px"; + + // Append to document + document.body.appendChild(hatCanvas); + } + /** * @param {string} birdType */ @@ -2753,14 +2876,9 @@ } /** - * Focus on an element within the viewport - * @param {boolean} [teleport] Whether to teleport to the element instead of flying - * @returns Whether an element to focus on was found + * @returns {HTMLElement|null} The random element, or null if no valid element was found */ - function focusOnElement(teleport = false) { - if (frozen) { - return false; - } + function getRandomValidElement() { const MIN_FOCUS_ELEMENT_TOP = getContext().getFocusElementTopMargin(); const elements = document.querySelectorAll(getContext().getFocusableElements().join(", ")); const inWindow = Array.from(elements).filter((img) => { @@ -2782,10 +2900,22 @@ } }); if (nonFixedElements.length === 0) { - return false; + return null; } const randomElement = nonFixedElements[Math.floor(Math.random() * nonFixedElements.length)]; - focusedElement = randomElement; + return randomElement; + } + + /** + * Focus on an element within the viewport + * @param {boolean} [teleport] Whether to teleport to the element instead of flying + * @returns Whether an element to focus on was found + */ + function focusOnElement(teleport = false) { + if (frozen) { + return false; + } + focusedElement = getRandomValidElement(); log("Focusing on element: ", focusedElement); updateFocusedElementBounds(); if (teleport) { @@ -2793,7 +2923,7 @@ } else { flyTo(getFocusedElementRandomX(), getFocusedY()); } - return randomElement !== null; + return focusedElement !== null; } /** diff --git a/dist/web/birb.js b/dist/web/birb.js index a77d732..5992b61 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -629,6 +629,7 @@ FLOWER_HAT: "flower-hat" }; + /** @type {{ [hatId: string]: { name: string, description: string } }} */ const HAT_METADATA = { [HAT.NONE]: { name: "Invisible Hat", @@ -684,62 +685,108 @@ } const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } return hatLayers; } + /** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Anim} + */ + function createHatItemAnimation(hatId, spriteSheet) { + const hatLayer = buildHatItemLayer(spriteSheet, hatId); + const frames = [ + new Frame([hatLayer]) + ]; + return new Anim(frames, [1000], true); + } + /** * @param {string[][]} spriteSheet * @param {string} hatName * @param {number} hatIndex - * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ - function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { + function buildHatLayer(spriteSheet, hatName, hatIndex, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; const TOP_PADDING = 5 + yOffset; const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); - const paddedHatPixels = []; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, TOP_PADDING, BOTTOM_PADDING, LEFT_PADDING, RIGHT_PADDING); + hatPixels = drawOutline(hatPixels, false); + return new Layer(hatPixels, hatName); + } + + /** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Layer} + */ + function buildHatItemLayer(spriteSheet, hatId) { + if (hatId === HAT.NONE) { + return new Layer([], TAG.DEFAULT); + } + const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, 1, 1, 1, 1); + hatPixels = drawOutline(hatPixels, true); + hatPixels = pushToBottom(hatPixels); + return new Layer(hatPixels, TAG.DEFAULT); + } + + /** + * Add transparent padding around the pixel array + * @param {string[][]} pixels + * @param {number} top + * @param {number} bottom + * @param {number} left + * @param {number} right + * @returns {string[][]} + */ + function pad(pixels, top, bottom, left, right) { + const paddedPixels = []; + const rowLength = pixels[0].length + left + right; // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < top; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { + for (let y = 0; y < pixels.length; y++) { const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { + for (let x = 0; x < left; x++) { row.push(PALETTE.TRANSPARENT); } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); + for (let x = 0; x < pixels[y].length; x++) { + row.push(pixels[y][x]); } - - for (let x = 0; x < RIGHT_PADDING; x++) { + for (let x = 0; x < right; x++) { row.push(PALETTE.TRANSPARENT); } - - paddedHatPixels.push(row); + paddedPixels.push(row); } // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < bottom; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } + return paddedPixels; + } - // Add outline + /** + * Draw an outline around non-transparent pixels + * @param {string[][]} pixels + * @param {boolean} [outlineBottom=false] + * @return {string[][]} + */ + function drawOutline(pixels, outlineBottom = false) { let neighborOffsets = [ [-1, 0], [1, 0], @@ -750,21 +797,42 @@ if (outlineBottom) { neighborOffsets.push([0, 1], [-1, 1], [1, 1]); } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; + for (let y = 0; y < pixels.length; y++) { + for (let x = 0; x < pixels[y].length; x++) { + const pixel = pixels[y][x]; if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { for (let [dx, dy] of neighborOffsets) { const newX = x + dx; const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; + if (newY >= 0 && newY < pixels.length && newX >= 0 && newX < pixels[newY].length && pixels[newY][newX] === PALETTE.TRANSPARENT) { + pixels[newY][newX] = PALETTE.BORDER; } } } } } - return new Layer(paddedHatPixels, hatName); + return pixels; + } + + /** + * Trim transparent rows from the bottom and push them to the top + * @param {string[][]} pixels + * @returns {string[][]} + */ + function pushToBottom(pixels) { + let trimmedPixels = pixels.slice(); + let trimCount = 0; + while (trimmedPixels.length > 1) { + const firstRow = trimmedPixels[trimmedPixels.length - 1]; + if (firstRow.every(pixel => pixel === PALETTE.TRANSPARENT)) { + trimmedPixels.pop(); + trimCount++; + } else { + break; + } + } + trimmedPixels = pad(trimmedPixels, trimCount, 0, 0, 0); + return trimmedPixels; } /** @@ -1587,6 +1655,16 @@ z-index: 2147483630 !important; } +.birb-item { + image-rendering: pixelated; + position: absolute; + bottom: 0; + transform-origin: bottom; + transform: scale(calc(var(--birb-scale) * 1.5)) !important; + transform-origin: bottom; + z-index: 2147483630 !important; +} + .birb-window { font-family: "Monocraft", monospace !important; line-height: initial !important; @@ -1935,6 +2013,7 @@ const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; const WARDROBE_ID = "birb-wardrobe"; + const HAT_ID = "birb-hat"; const DEFAULT_BIRD = "bluebird"; const DEFAULT_HAT = HAT.NONE; @@ -2053,7 +2132,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.20", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.20"); }, false), + new MenuItem("2026.1.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), ]; const styleElement = document.createElement("style"); @@ -2242,6 +2321,9 @@ setInterval(update, UPDATE_INTERVAL); focusOnElement(true); + + // TODO: This is for testing + generateHat(); } function update() { @@ -2422,6 +2504,47 @@ } } + /** + * Insert the hat as an item element in the document if possible + */ + function generateHat() { + if (document.querySelector("#" + HAT_ID)) { + return; + } + // Select a random hat + const hatKeys = Object.keys(HAT); + const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + + // Find a random valid element to place the hat on + const element = getRandomValidElement(); + if (!element) { + return; + } + + // Create hat element + const hatCanvas = document.createElement("canvas"); + hatCanvas.id = HAT_ID; + hatCanvas.classList.add("birb-item"); + hatCanvas.width = 14 * CANVAS_PIXEL_SIZE; + hatCanvas.height = 14 * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + + // Create hat animation + const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); + hatAnimation.draw(hatCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, SPECIES[currentSpecies].colors, [TAG.DEFAULT]); + + // Position hat above the element + const rect = element.getBoundingClientRect(); + hatCanvas.style.left = (rect.left + rect.width / 2 - hatCanvas.width / 2) + "px"; + hatCanvas.style.top = (rect.top - hatCanvas.height + window.scrollY) + "px"; + + // Append to document + document.body.appendChild(hatCanvas); + } + /** * @param {string} birdType */ @@ -2753,14 +2876,9 @@ } /** - * Focus on an element within the viewport - * @param {boolean} [teleport] Whether to teleport to the element instead of flying - * @returns Whether an element to focus on was found + * @returns {HTMLElement|null} The random element, or null if no valid element was found */ - function focusOnElement(teleport = false) { - if (frozen) { - return false; - } + function getRandomValidElement() { const MIN_FOCUS_ELEMENT_TOP = getContext().getFocusElementTopMargin(); const elements = document.querySelectorAll(getContext().getFocusableElements().join(", ")); const inWindow = Array.from(elements).filter((img) => { @@ -2782,10 +2900,22 @@ } }); if (nonFixedElements.length === 0) { - return false; + return null; } const randomElement = nonFixedElements[Math.floor(Math.random() * nonFixedElements.length)]; - focusedElement = randomElement; + return randomElement; + } + + /** + * Focus on an element within the viewport + * @param {boolean} [teleport] Whether to teleport to the element instead of flying + * @returns Whether an element to focus on was found + */ + function focusOnElement(teleport = false) { + if (frozen) { + return false; + } + focusedElement = getRandomValidElement(); log("Focusing on element: ", focusedElement); updateFocusedElementBounds(); if (teleport) { @@ -2793,7 +2923,7 @@ } else { flyTo(getFocusedElementRandomX(), getFocusedY()); } - return randomElement !== null; + return focusedElement !== null; } /** diff --git a/src/application.js b/src/application.js index cb76bea..6f1af83 100644 --- a/src/application.js +++ b/src/application.js @@ -1,5 +1,5 @@ import Frame from './animation/frame.js'; -import Layer from './animation/layer.js'; +import Layer, { TAG } from './animation/layer.js'; import Anim from './animation/anim.js'; import { Birb, Animations } from './birb.js'; import { Birdsong } from './sound.js'; @@ -43,7 +43,7 @@ import { switchMenuItems, MENU_EXIT_ID } from './menu.js'; -import { HAT, HAT_METADATA } from './hats.js'; +import { HAT, HAT_METADATA, createHatItemAnimation } from './hats.js'; /** @@ -86,6 +86,7 @@ const HATS_SPRITE_SHEET = "__HATS_SPRITE_SHEET__"; const FIELD_GUIDE_ID = "birb-field-guide"; const FEATHER_ID = "birb-feather"; const WARDROBE_ID = "birb-wardrobe"; +const HAT_ID = "birb-hat"; const DEFAULT_BIRD = "bluebird"; const DEFAULT_HAT = HAT.NONE; @@ -393,6 +394,9 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { setInterval(update, UPDATE_INTERVAL); focusOnElement(true); + + // TODO: This is for testing + generateHat(); } function update() { @@ -576,6 +580,47 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { } } + /** + * Insert the hat as an item element in the document if possible + */ + function generateHat() { + if (document.querySelector("#" + HAT_ID)) { + return; + } + // Select a random hat + const hatKeys = Object.keys(HAT); + const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + + // Find a random valid element to place the hat on + const element = getRandomValidElement(); + if (!element) { + return; + } + + // Create hat element + const hatCanvas = document.createElement("canvas"); + hatCanvas.id = HAT_ID; + hatCanvas.classList.add("birb-item"); + hatCanvas.width = 14 * CANVAS_PIXEL_SIZE; + hatCanvas.height = 14 * CANVAS_PIXEL_SIZE; + const hatCtx = hatCanvas.getContext("2d"); + if (!hatCtx) { + return; + } + + // Create hat animation + const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); + hatAnimation.draw(hatCtx, Directions.LEFT, Date.now(), CANVAS_PIXEL_SIZE, SPECIES[currentSpecies].colors, [TAG.DEFAULT]); + + // Position hat above the element + const rect = element.getBoundingClientRect(); + hatCanvas.style.left = (rect.left + rect.width / 2 - hatCanvas.width / 2) + "px"; + hatCanvas.style.top = (rect.top - hatCanvas.height + window.scrollY) + "px"; + + // Append to document + document.body.appendChild(hatCanvas); + } + /** * @param {string} birdType */ @@ -912,14 +957,9 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { } /** - * Focus on an element within the viewport - * @param {boolean} [teleport] Whether to teleport to the element instead of flying - * @returns Whether an element to focus on was found + * @returns {HTMLElement|null} The random element, or null if no valid element was found */ - function focusOnElement(teleport = false) { - if (frozen) { - return false; - } + function getRandomValidElement() { const MIN_FOCUS_ELEMENT_TOP = getContext().getFocusElementTopMargin(); const elements = document.querySelectorAll(getContext().getFocusableElements().join(", ")); const inWindow = Array.from(elements).filter((img) => { @@ -947,10 +987,22 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { return style.position !== "fixed" && style.position !== "sticky"; }); if (nonFixedElements.length === 0) { - return false; + return null; } const randomElement = nonFixedElements[Math.floor(Math.random() * nonFixedElements.length)]; - focusedElement = randomElement; + return randomElement; + } + + /** + * Focus on an element within the viewport + * @param {boolean} [teleport] Whether to teleport to the element instead of flying + * @returns Whether an element to focus on was found + */ + function focusOnElement(teleport = false) { + if (frozen) { + return false; + } + focusedElement = getRandomValidElement(); log("Focusing on element: ", focusedElement); updateFocusedElementBounds(); if (teleport) { @@ -958,7 +1010,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { } else { flyTo(getFocusedElementRandomX(), getFocusedY()); } - return randomElement !== null; + return focusedElement !== null; } /** diff --git a/src/hats.js b/src/hats.js index c93916d..c875e59 100644 --- a/src/hats.js +++ b/src/hats.js @@ -1,4 +1,6 @@ -import Layer from "./animation/layer.js"; +import Anim from "./animation/anim.js"; +import Frame from "./animation/frame.js"; +import Layer, { TAG } from "./animation/layer.js"; import { PALETTE } from "./animation/sprites.js"; import { getLayerPixels } from "./shared.js"; @@ -16,6 +18,7 @@ export const HAT = { FLOWER_HAT: "flower-hat" }; +/** @type {{ [hatId: string]: { name: string, description: string } }} */ export const HAT_METADATA = { [HAT.NONE]: { name: "Invisible Hat", @@ -71,62 +74,108 @@ export function createHatLayers(spriteSheet) { } const index = i - 1; const hatKey = HAT[hatName]; - const hatLayer = buildHatLayer(spriteSheet, hatKey, index, false); - const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, false, 1); + const hatLayer = buildHatLayer(spriteSheet, hatKey, index); + const downHatLayer = buildHatLayer(spriteSheet, hatKey, index, 1); hatLayers.base.push(hatLayer); hatLayers.down.push(downHatLayer); } return hatLayers; } +/** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Anim} + */ +export function createHatItemAnimation(hatId, spriteSheet) { + const hatLayer = buildHatItemLayer(spriteSheet, hatId); + const frames = [ + new Frame([hatLayer]) + ]; + return new Anim(frames, [1000], true); +} + /** * @param {string[][]} spriteSheet * @param {string} hatName * @param {number} hatIndex - * @param {boolean} [outlineBottom=false] * @param {number} [yOffset=0] * @returns {Layer} */ -function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yOffset = 0) { +function buildHatLayer(spriteSheet, hatName, hatIndex, yOffset = 0) { const LEFT_PADDING = 6; const RIGHT_PADDING = 14; const TOP_PADDING = 5 + yOffset; const BOTTOM_PADDING = Math.max(0, 15 - yOffset); - const hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); - const paddedHatPixels = []; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, TOP_PADDING, BOTTOM_PADDING, LEFT_PADDING, RIGHT_PADDING); + hatPixels = drawOutline(hatPixels, false); + return new Layer(hatPixels, hatName); +} + +/** + * @param {string[][]} spriteSheet + * @param {string} hatId + * @returns {Layer} + */ +function buildHatItemLayer(spriteSheet, hatId) { + if (hatId === HAT.NONE) { + return new Layer([], TAG.DEFAULT); + } + const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); + hatPixels = pad(hatPixels, 1, 1, 1, 1); + hatPixels = drawOutline(hatPixels, true); + hatPixels = pushToBottom(hatPixels); + return new Layer(hatPixels, TAG.DEFAULT); +} + +/** + * Add transparent padding around the pixel array + * @param {string[][]} pixels + * @param {number} top + * @param {number} bottom + * @param {number} left + * @param {number} right + * @returns {string[][]} + */ +function pad(pixels, top, bottom, left, right) { + const paddedPixels = []; + const rowLength = pixels[0].length + left + right; // Top padding - for (let y = 0; y < TOP_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < top; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } // Left and right padding - for (let y = 0; y < hatPixels.length; y++) { + for (let y = 0; y < pixels.length; y++) { const row = []; - for (let x = 0; x < LEFT_PADDING; x++) { + for (let x = 0; x < left; x++) { row.push(PALETTE.TRANSPARENT); } - - for (let x = 0; x < hatPixels[y].length; x++) { - row.push(hatPixels[y][x]); + for (let x = 0; x < pixels[y].length; x++) { + row.push(pixels[y][x]); } - - for (let x = 0; x < RIGHT_PADDING; x++) { + for (let x = 0; x < right; x++) { row.push(PALETTE.TRANSPARENT); } - - paddedHatPixels.push(row); + paddedPixels.push(row); } // Bottom padding - for (let y = 0; y < BOTTOM_PADDING; y++) { - paddedHatPixels.push(Array(hatPixels[0].length + LEFT_PADDING + RIGHT_PADDING) - .fill(PALETTE.TRANSPARENT) - ); + for (let y = 0; y < bottom; y++) { + paddedPixels.push(Array(rowLength).fill(PALETTE.TRANSPARENT)); } + return paddedPixels; +} - // Add outline +/** + * Draw an outline around non-transparent pixels + * @param {string[][]} pixels + * @param {boolean} [outlineBottom=false] + * @return {string[][]} + */ +function drawOutline(pixels, outlineBottom = false) { let neighborOffsets = [ [-1, 0], [1, 0], @@ -137,19 +186,40 @@ function buildHatLayer(spriteSheet, hatName, hatIndex, outlineBottom = false, yO if (outlineBottom) { neighborOffsets.push([0, 1], [-1, 1], [1, 1]); } - for (let y = 0; y < paddedHatPixels.length; y++) { - for (let x = 0; x < paddedHatPixels[y].length; x++) { - const pixel = paddedHatPixels[y][x]; + for (let y = 0; y < pixels.length; y++) { + for (let x = 0; x < pixels[y].length; x++) { + const pixel = pixels[y][x]; if (pixel !== PALETTE.TRANSPARENT && pixel !== PALETTE.BORDER) { for (let [dx, dy] of neighborOffsets) { const newX = x + dx; const newY = y + dy; - if (newY >= 0 && newY < paddedHatPixels.length && newX >= 0 && newX < paddedHatPixels[newY].length && paddedHatPixels[newY][newX] === PALETTE.TRANSPARENT) { - paddedHatPixels[newY][newX] = PALETTE.BORDER; + if (newY >= 0 && newY < pixels.length && newX >= 0 && newX < pixels[newY].length && pixels[newY][newX] === PALETTE.TRANSPARENT) { + pixels[newY][newX] = PALETTE.BORDER; } } } } } - return new Layer(paddedHatPixels, hatName); + return pixels; +} + +/** + * Trim transparent rows from the bottom and push them to the top + * @param {string[][]} pixels + * @returns {string[][]} + */ +function pushToBottom(pixels) { + let trimmedPixels = pixels.slice(); + let trimCount = 0; + while (trimmedPixels.length > 1) { + const firstRow = trimmedPixels[trimmedPixels.length - 1]; + if (firstRow.every(pixel => pixel === PALETTE.TRANSPARENT)) { + trimmedPixels.pop(); + trimCount++; + } else { + break; + } + } + trimmedPixels = pad(trimmedPixels, trimCount, 0, 0, 0); + return trimmedPixels; } \ No newline at end of file diff --git a/src/stylesheet.css b/src/stylesheet.css index 4df8d50..c02f3d3 100644 --- a/src/stylesheet.css +++ b/src/stylesheet.css @@ -41,6 +41,16 @@ z-index: 2147483630 !important; } +.birb-item { + image-rendering: pixelated; + position: absolute; + bottom: 0; + transform-origin: bottom; + transform: scale(calc(var(--birb-scale) * 1.5)) !important; + transform-origin: bottom; + z-index: 2147483630 !important; +} + .birb-window { font-family: "Monocraft", monospace !important; line-height: initial !important; From 130fae6e0ce08f8443db46170d5722d855dafff1 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Wed, 21 Jan 2026 22:36:12 -0500 Subject: [PATCH 17/24] Add hat collection message --- dist/extension.zip | Bin 154034 -> 154192 bytes dist/extension/birb.js | 30 ++++++++++++++++++++++++------ dist/obsidian/main.js | 30 ++++++++++++++++++++++++------ dist/userscript/birb.user.js | 30 ++++++++++++++++++++++++------ dist/web/birb.embed.js | 30 ++++++++++++++++++++++++------ dist/web/birb.js | 30 ++++++++++++++++++++++++------ src/application.js | 20 ++++++++++++++++---- src/fieldGuide.js | 0 src/hats.js | 2 +- src/stylesheet.css | 8 +++++++- 10 files changed, 144 insertions(+), 36 deletions(-) create mode 100644 src/fieldGuide.js diff --git a/dist/extension.zip b/dist/extension.zip index 88c37aecf11fcbbbb54eb11e17fd7a0495e459a5..8d055b9bb164fcaaa450946d9b736e5753190c5a 100644 GIT binary patch delta 30757 zcmV(rK<>Y?vkB0&39zIE0)ZTprUfQ{=$$QBQyAOaYo>bI7y~ZM)#g?__0**8w4LA! zLK0k4@W(}i*Fx4dh^-bdOCxDvh)9tHt1>;JdV(!H|}%@($cTL z{%y|t)%$%AjK+iB(EDEN_d9{#d-g8c!KfV!q$96OJ%vLr==rry(4a<3f15Ky3y0f; zkBo3mfJG>x`)9keJAdGJt*-6{{mwXugB+931{Qw_n_lXT8n?ih8?^`h2d@`Ac*Vh> zKS<517TzHEHV%fPpyAbmW`7XiKVh%s0g?H4=m=w&(?e4bfPw7^*AljRf z7+ng3z#j#k-}CmW2W2nl1l^!F@*cub+XE}S;ayM(!V_g>gAWPr5m zp?&lk{rZ?jnXdETHJJHEcrQd(RnrW(91cfmztM=gVa5=Xt=<%$bxW%R)VKc9Jf-Fu zzd7A1Y@l-3&~=nZtI`2kKBc6@2iD_Zag#@8fUYeLrkGdp_%a zoUr{~p%d0`Q>xeZs+x>XBMNdbG@?z=3n0&RYBc}eO9kA6z{Vd;tJ%#){c*h=^cqpi z?-2Moq7GCaM#}HigMQPiQa$dH%}mqp4ABwSRq8=Rn|sFKVd=QJl4J{rB~LFyAy9wN z9S9BM2c`t+dfV@{f(9cJ46id^xI?K$W|S&PmuVP;t^T;zfL?%>Ao?lFQ%ngS8G)Z; z$dE89zx00l2un~Or8_}$5w0bP7cHfGMY23kL5!BCGz((tzu_-|5u+ z`t295pniEU!X9^_M}iIr6&Jikgl7-fx3n?(;t>_-gFzT$VKEu_VUIx>3mbnjIqW%& z%-S{$hi1G;2NelmNe1KKy{FNJ%wfubLVx$3-*cx$VTG`j)ZmR8hGMjs6k;;5mM8Ua zc+iJ?u-$*?0Um1>mD7CRZ#FTzT;g-a{d8r2Qax1r2gI?DG*N(;-oG>f((*x}=6%rL z$roUK&^QVNg=rx3-9(A6EsZBwPgW#RH_;o?UTd^4f85bVFh~!fp2vee^n`z%NHLCz6lQv! z!N2icoDejZMjX^OO>2o(BZpz2{`;An6jMD5dveLmbfM$!A@kI3oL>{a%FwMH6t{YSDj)G$4)5Bi6!2JcVR}olJIstoSfhDPYrSv6mZUzZ{U`rB*!Y<6z zSZu3tX$EllXUJlMvT0!`tVxmRzQ}|r9xyH89IrviB&PIwr$2uTw#M+2dS9F>knx~N@{wy!Gz$&C;bAd^PEpOVTO;ohX)>Y1RNz4N= z&8nzuhIZhslJ_1#WvfQC(HfXAK?1v^>Cx>7&ZYOp0IBsGlQaZn1ovj>;G>OL+zEteS6PEJ5#sJHuKOTbGQRR>DxZUps_>bSfzxs_owmNVhx8STy{wNg%z#m6< z!NB(p!d|!(rbk%ar+WTre)19Reb0`Z6yL5DaZP zo%RPUUbqgY8gr1s3O|_Gh$5o~DfMOpB?gfXWv~)AOrU5Wj%zjpGacmFg&XO69e)Bg zGza}I{utg3LWCTK?SRS#1D_Sb`yFl~MQ9|TaQ)@_%d@Il;hN-EJ5BGx$Doq{K%9Qv zxYTO|kL-VxtHvRHa8z11c;MNF`jKB)cLsjFt$LLvM%pYi22zB@nuX}fp_;nESFK^C z&PVT>m#nnDNs)68b%R@v|NK+%z|VyRB`(|~eK&s|wr%XMCtuP-tn&l)QAqo%G{@3k z1}a|{yzD!~_?VCq1R(7d>WMgDGPIYMME15!*cdvgZrDR)!K)!~MmqcezV#oN2^V3f zgE$#i8dBuZ9}+=!K<>r`SCh#d`T(`>B0j01Na*UQ=Y>ZV#D^%(1yJ|?V1kvt2C1+J z9_xRdF|FZcu{j>_ss=vkAQ%q4nm_P{;ZxwH?)nIUj6xW+iPz$Q(f}qA8C8s0;{_jZKf0i=2$ z5V+r^;RpeliFR>;aL@*6cr4Z!BAy6+(@cMK;~T{pWDkiX^v|#C2lMHr@7j={K&DJvzd5L-nY=OZDRR_G~XF=~gyv{XX5{D5*J z#6<*#d5c#4lTpcD-F+s@Gu0ciI70(YyJ-=`XZk4Pxm z6t4(MFcAnl`2zjf^y~8X-qF!E{%-gCh<>8>;ZcRkd+pwUwO7W1csc01sZ0(#z~FJH|FxnR*6 zr<7Orgep=zgf&s)D&|4<)323dDQ{v!0ed)$!#h=jk?es?i`RMfPLH=0D$Nb1*Ho{6GJn3pA5X6c3Uz*Kk zCX<=BYPf=BYN4W4OGqe%Xzzkha-~YM89%#eH-+p-QFb%4oXJ{65F;t^n;XIUs#QV) zC`D__n>7a&k~S&Y+zeJ%?Xi&HNl{~Sb$xBw0!T6_Ma_*`cEv7Yxs!jgpuVxTylyp% z1XC)ku5b9knpJ_MQHqvxYeB;vxDiw-uW#gnTwpb2;ZtBUSwHK?%aq_sm1c9TwpN>} z!m_InSYO6JR*fB7eo@CVtMI)WRW?PCiW!#mne7(Jr)=&s78(d+gm>iLyA@_wHZg>W z2AaHKGSS0i8%?(Jz1@EwmXKsrhitZKfA{)}ZLX<4KGJ_8Q*EJ(GV3p{BKB6zM+FA1 zv}$hdIzf}Zz{c3>M&!3@Ds`Y*zbIXa)evps3Q#lBw0H&R%nR+IH!qa3TyeP)xfpQU zC~~z`k-o%gEMHtp31F<2BV$~Tgb-pFt4FGdVqsmHrixevQqX^d3XoaQ782_H{^Hch z6Q`P(mBod_K}$=Aue{jQ@)PmawSfkWnH9W${YwvpW;yFm8kr|ZYbSwZl;qoW6K0G@ zE9P&{mMc&>E*46~iW15iw)bn$Uu^qe*IhSA%@=)aSq^&MmMRw(%pW2SP5VuK@322W z%rV~$kSzf(o_v4o`vC6vuwRFh4}EI)$E`N@V0!G2hF$F1`UBdH@a}^C9oFqw5`QOt z7{ZX9X09s>&PD-Tr@&Q|eWohU z@95u{=(~Qghd_Otk`*fPxJVJP(#0wW!KTi**~Iz<)Q3+0&6L5;7y0JHUjJc&#Yzhn z5iyyj_sNG}PBaa$(2)k%>haiLBa(yCh!HfwF|UR-@t}vi1el%{_ML~!nx2mw5^T7& z`=fqq;NQXX7?T_mK7SpKI6NQcR+URVT`V0~Vo&S|ly01X%vicsMo1083_?pNViv+$ z!+y{2grf<9l8|@o!y#rl@wyW%q?^H8aNEB}$O0}s@$ygep}t=C8_GBuLR)-T308wz zj6^X$G}i0Qdc2O|LoHidt*^!)7*B-ByV=-m`kS#TNqnen`hT^$%uU#Yy{7dME!4iS z_5@>Wav`f1O(TGenUkq2);;M3m8 zm`L9oAg7?w0gopA@mppcA`}Qm$nw97A+S{7C6Ji2LZg15?(@@~J= zfH>FNakiLQ+tg6ZA%7L~1ZHZ40ul2IePk$1u(IwyD8(X!p!eb89hiOx2_-TpVPkRiQuyU($ zf+`PZ865wS5`LSrof1f1wbq%Ocpd?)KB!d59~t4 zk;vW7k3n?!6uwJw1d+g&ut(m7ZqGgkd6LK)rsz@NOFUZ?6VY+5fGvlYT=2E}n!hdv z#(z>b?Se0_=7O~sXx~`dSdP;*PW!bW+lXtOQHtf29M~I^c$fCMja+6;l-kTg`Fp?N z-}|Guu+u!G%ce+MLJFeKG=U=xafWy2<%e-flfR90%DyK84ue(!LmrSfhegj0S=j(7 zb_kL~^Z_Kqz6Um%Zjq1;LpbhIvc}YcCx0?-m<^^B+|q;fRRpwL`$3T_p6Kee%w{ew zgOMKiL3TYC_bp<)*jUcirs^18tOv^owZ*!3d9kvYX=apjC(EI_KY*ks`g0X2o8itm zf{y84djaCS>Gh;pE)~bfUz*&F#%x!}*i4hz5OQUc{)vsm5E6?H{1YpU2-&Q!u7CYV zs2g?qCkDb0GFPL25=x_G4c1QhCsrlV(nr{c^y^7Kk>qB=w_WH9B!&i@BhuT5i>?QC&xqJwWYn%hQ!VNsARHIdK!73-F&d zbfTBQETa>_#%6O$>!JFnXj|v6&>sF^SPh(Mv8ORDDh&7`rS&UYFJP48f z$>xw!*0F&X*1>F=?O)KWmm@YoqrN^hlN$f4xgG>T+`O4dw7$CGuf{dPVt-|}w!XO* zqjHRu_4UmlaWWD6nbd*H%8j+P(j0}uIzl&%}pt#298D@vzX7(Rm z2(*M43OqiUKQ5>q9bGvJ!(P-mXskR^hS|I5Lc3}C*DGY z@t5nzFOxAEE&-C0U>Y?rxVWh0N;dIOQ`Ltw32i8slm|LR0o_#RwItUPC`?KImr8<} zu54)mcb!bJg5SIMlf@cA2|Y964c~AW=^>L38(jg8lWiL}e@N<~P+{uP)KH=PegL=l zeNFv+;cZL&P&R}pOZA!9kJ$8|;_W2q<5aEK2Q|Mx!-VK8DM{_h_d+Daf=yFag*`Mf zDl7@HtO3yqDs7Ahe8whL!DLH!`u#g2y-a77_a$H<#~J{f7StsPF)8RW6-!MN$PcCz zYrbhpT+?8pe_{oW{$qVam|}-y8{rFN?ta91bhpqj9A$E*Tu(1Jf;_5*-2fX`gXqM$ zvdWNXq9xN}Tj7#Y#?7`?22bO!Av9HEPtC`?RnyLxYq)k*LN1mWSij(S8oSTfa={R4 zJ`SBx6glYlcl2`v9GT=MOHUgyD&b^hyDAb*aS9eIe;0*4oNkOy0T9%2h+c!J!ahj9 z8sXhUR3bQ%av(o`7XYR!nQ+C^2^=VMulQJ4;p z>FLz1WUK+ngG*w4qM-1XI}@ZQVq}Prtd6YIf4mUHmq=A7gBS%F*a!@-ry6`oCyGK$Ws*E<#%+eZp6Vu6*;o~jz!)Ay zFvtnf7_Ry$UtmK=51>4>`=lpmOQO9LDOa!GTO>D!9C%Z0h*KfvxWF5c8*;F49*(4q z?sL$5r>-%}k>Cig_VU%Q7p3j$9uUmt_#^;(fARQ^FW*u9@Q9Px(X-@fSC5XrqLi{S z`*(}j1?AY{d1;?A#rKNkgCdpPb7sO~JLq(A1r6=Y6pk*oj;>VGdjFx;pP1HLM;B$J zehb)I|Dl7tZw+~;_!;n;!4pHdD1FYKZmXIP;S+KlOwFx)rMQ(Zm%kSB$7n+CQVm!fcMNr%qWRiZV!U$PWo$xl`WE?Ex9##@5iz41nufam;8tb~KGQ;n3_FwiA5wo_zxOW} z=ST=+2p3o&XOZQqKc?vu2c&Lrw9p*IB{t)LC1xFx<{=kghg7D(J8a?Ogd*RHG@=ZU z82KWZkD;=~@;?ie9iC!|+q4yn)DoQXJ;!}qNS8wLd9+R@d18ZG20A0xJkS&pN4uFO7X(G8C+|}RWHK;GCVfV_lh!7$rgsMOUeDXRt z`ZRUKW$Ki6f;c`CtWtwdX<0GvJe;N3f>s&@U8=#+8scNAq0dgUNGFM%ML25C=ugqV z)Zmc{*~RBXyK8?UBJCitqnaWPbMr6cp)sEoS$LNTc*(LBSz^~&9A1G6aY*dvXr(CP z9D8SCk#ISL)ayi|1Bp&z;q~N*uWS04fr=5QjK1?wrfB`LoDvQ!u-qY1i3K=lm9c40 z5!bKB`R#2uktkauX%yP>{gGBtb|oq!_a?+h# zH32)(C%F}%&avJr!}^FvEgz<(fT;MMlv$i;mI=H4o!=m-ljiR|3*q;ki`sk7rons9 z8TS-iTFV^Cu~Hkp+-Julu>?&d*g^w8i7y28CvGj4lAvhNt$K zmC>CV8BKpZ)^-pRi%gI)sVsXCD`n&P_DwZ0un9eCifN!#GY5(Po5dgt(UbpsEn~G= zAPa4TlkQch_P6*FzDNof z&IOceLXk`U`Z&419p=>N4ovNoZ*J;zoD*oe1v4t4~&*>q_WM@D!$XJbwCJAFd|r_9rY z^#j$k)eU>OmhQ&&&2b)N&_V^$EF^zpcDvTJC*?XXkH)WS6>uz`B;otS|RDS0i z74UEt7MR0yAu;x}80R?(E8WUx#bXB!MgilSa=y`GPC?{c8dwTRzf{uUR0e-&TS)l$ zJ<=(??}%YQ+vqet{$rN1!{_KX-7F#8)j|EJ8t}5h+Dv)MuJuwhs!Fv~E+e+g|K$kz z*3lOJ#=lj({0hr4eAp?|5B|p28Q>HD7eOw$DpFER5G1QHxqPf_Wn0tUk|OGfVZ#sc zdGN#RiU3u!TQW@Z@`qZ4!+d`YLDumoIL1YYbOi?DSk_IcI&My4BykvPz=jY+Bb8RH zwrorhfSKRJG}D3?P#meS6ScGli)du6FdX8PMrTI$MQl?Eqxf;egLgwaeViU^xHsB} zR5$#Q@50gONPzBw?wot6f+P{UH7xT$tKJGniOvPPZl$B&$sv_V26XEG80HOx!ceTNmY<-xj7XT#k?i~*wjn03fLYdorU5% zK8HlNcv8^zbztDz%mRPI*Et>a5T|_|sN4@gRUi7V1-1MmQ0+nRYP?ov1EY%(Xrth@ zc&#RYdav$XQ^Y5b+dsj8wI73|sS!8LSP!8y=WD3{%_2r7RIy@~RErxup_sbDWx zk~SPZS0hkgwD9nqI0iqi_(jnhD%6O`odA_obs8!)i9w}`8fuJ-31BJKKMj^7-Ti7H z#d@RmPH$TJ68d^+2sQzg6vuk9$K@KFgsxsYEG?R`zNVY&9`#uHZ)2zan=r76qC0dE zh^*Ux6AEJUl^lNy4%DZE#SZow#pL|YA@R^xD8x+y`Ja-jEVF5o(uOE!PFw@4SkI-` zaTgH#v}8Z&bL!ese^FSyU!xS)ZVl(zY0I`k`V}<9HcWp8VOjgRgdz%3WhIy4NXFb8 zeo0wEui~NqxsJ7}%|=NfV3Q%T1u=Y=HM$%6hxxLmzG#2JvB{>dQHzM4h|XXH7b5{3 ztr;_mNML6blI+eZtNu4Pj2Nw{GiL~wTh%1|>0baVdqF&|NI%pwUE&JsOMQvb%v<#t z>0&cpwvr0!XrI+2jl0Y6Xd5}n^O5T-wdLRlif!>B<4W%vvC}yVrRH%>R^$fcDOG|qB{UHTivFGETk1KTqEVoCgXFN2 zj8sK~QQxc`IqXVd9kuF2Tu0~ju{A(lYiYQJEE8F&@*UhrX{n;A{yn_}l=a&)C#%VW zK|L5ciq6?x!r4&WNZ=vqp**S|q1Hw|tInit{3w6%P>z{V_!irvxH+8eJVBREu!lfv z2AFP!VprqqagM?22pUzE#7$uyormIICTyVorivVLP=5P8w&pOYg)?nrml2xQ9i`kc?B@HbK%yZv;BW_h~SS>X<{^Cy@W3F7IvTa+d| zO=8`#$d6?qiE^fAdbX>;rvda!A9kx5|YAjSLDvTW;ybAv$^vltd z*_|tU{Hy3uJg$+<21N~Jc>g3`Vy9m~Oo4w1Gw@VV7kjB1l&tya)TXvEg71qD=qX{K zR%zOG1tHzBYh}AcMxq2B6$@gAVdNO8QkKiqqpcV;>&Wg0#mn&ysYWmwhvwFjx0ruJ z`hmxY3{Stmg zfM8Pne7(+l5wwYhJ$6_@^}0eEdD4HkxL$}(&fyINt}plyilDhrTRjy;F9A^~?Sffg zWOi}J%Md*0>-QqRYg}yHBP63vN!lQ8_}4U#Of9_PB)^lHWGt0BDL5sk##$wqic76K zwoPP7btNI*$&^IA)X7y+CoB_gCtA}Y=_YpsmWf|wM3%SYOIUN4j(wXJAfA%G<)N^u8n7YYF{Iz ztJ(M_sR>ZmRaum1S4@A5IC)^5&i0uH?3ZfL{DcB{wHwh8CXP!A%Xk zNKR<)68{Qw%mD`k0fp@OL{5!iUD*~D2cTS5ZXT?KxLHBhomr-lv<<(3Ea~h|2B7?2b@51{0>aFSW91?63 z%1!$$Y9^GgAS;(8LArlGKPsPTMAOLF#fC^GjjaszFZzP&(Xjf%I!Fl&siX)KwMsLau(Za}Z4oX-uNFN5I~(LKil>2L3_X~}6g8HKi+<6gYy5c{Kb%2A zdOI&MP(Kc$t>qCgxx!wmr1=%FVPHu(>=6(pS~Hs zeV0b4qo!Lw)3uY{FCu?$#NztT;GcF!e|&$oR*U{{(yNn`r?Jw`%hUx}2RNk(Po5qR z#sI}F2-Fk8u47}N&giI>gN+0Z*eDu;ed59hCU@fq6J5p3S4bIRqgs^5jsGl0v}oaI z!CyIMGo9(|0;H2-sXnPRMr4eOah zb2{#G=i{jd6?UU1&~YIezh2Ad68R7>ZdrenFq|6MF`DRpF>!Cp`&{HL;e|-7Hv{kN zv`i|kkW!13PG5g%5#rL#X=lR?QK)gcxZ3!E6Y_{ST|SA!mi*Kk5e@M_d6$9}SGlzc z^E?mm7%Qq|{Ba%fNHfzKfC-`M9}2taK@`Y=!4>s%X#rD~R)Ata=(V~Q$SdbPVU!G6 zjsK^EqTI5eMuDqOgrc~G6R|12ZIjlL)EqBNsRs|K39C<`WjVA{7Ck8sH3;441QIo#v0GyfqB>H5`-7F(iLpxK>k@^i7Bz)3cqlVGk=g3@}FdAhepsb5`{TYvr*JqEocO zh20z~Cud^*;o%{Tvy!864KFVDyYm`lYN^0UZ|Qr!GlZT@!?p29)IySJQiW(Z>3a=K z>v2Q?P=IIbNXK;s8=D>+kgc#n5)X%X9tE=B&>E+x88whe8n=I)481K%C=CY1N8C+5 z#DrT=Qzb+lI~zmXOUPm$pE|L$!*h_l9Q&)LPJVc{jGQ)F>d_?T(H@4xZuEPcj1{2? zoxu&ccwA0A6*WRyI;hDzmBL)r@7&{NAtZZ#C*tWP5Bw!eDT^3DpQ7AYRN&UiEKGXfmV@R7q5s?(X_dsg49&{a5}Inn#jl$#4Pb6`l-cWoH9v-f#;jTjR%G_xX(cOB;K<;`OFUsYuTGgbk-Lk`~X?O z@Uqi%{SG@RMh#}*H8;o1ODX)O+bh~*Vlg?nb3zw9{Rn@;;I055jois`ogO~r=Q@=r zDMe%UX?}UXYgUQVmFNaB{8QRap&l#=#=QO)(w{GflGU1C$^ZH*dAlCW4n_+{fQ%w` zH*j7a^J0%eD)a#OBA;Z#M3Iyh{_Kqh9flG)1+g6ynJUdonARaF#{vV6uuqKjw=uG= zE6833Nj`s4C-(Fp_u-Kwys_%N!=@D9wy!SnRexDEG>re8e`oGX<1u4nj{h5}sbE1D zE#d+RTISKUpIk=+`RLjZewa)Hqjt!X5XwE1R6)i?w@Eh4s>3W|4Nh{lRFGS@(KRuLg8W#mUP6V(NQA)U#SuQVEe zgblV0{6T@C|3n`nfa+INB+&8i=#%P){zD(1V~P2Sh!K&of-}>!Vz1DQHVKUfPRjwO z6xI~8*gc+vf5yfH3D*n7+i=vi@QChU6W@j}5)d78#NB~-)-^)Xa@9zmTFC5^PU*h_ z-Bxj00w~l$@~(fY|5CwU@ux(~th%^=J`@f}8EZYh2wMWhLLFI(u?c3@gUj?*??+m3 z7wD&jA+kxhq77Msudu{$23X@#^NWkT)U)2?6`()SRvxEaWL#MCfCx7S<1taGY#GYT z;@xw>T>gB4F1YoG8VGr$%_zhjI@{s>ORcyLEn$Uicv=99SDRuTJn6eN9*y9CE6rxg zBJTg7mw&zaM`)OD7efWB&l(oFv)GDb-XXgVcfi(wCelX+5H(?CQ=w$#xiyPCOsbZa1>Uk~se zAecr#FZks-zCDFR5HD)c>X=f0E3kzzp_kBDruC^TQl~dAK$%@|BEVP%3bK-gC(P7O zmnDiGn%=hT+pH6AajjWZ6nNA@Uv?!SgqS>RE?UUpo8DxcZlDaJ+k!soCPV;dFcu8K zf+Pc}P^}g%Vp1{ ?t@2W~hz7waBP@h)oMiMG&ILCj9ii9J(plo&aG>73otNO#oy zK`0gQl`#@y{2la)FKjj6(sWvjs?maRp7Ml1W*kK8rsney4hRc8Pxa%09tDGs)?lm6 zVSgnF6f_L5@>Vz?e65VHiq*UPQu}SpY@UeNSFw~+C;7=d1?*|4TJHJ!H?3tMR`@rU?IZ7kcz!zg<8r&(H*G@|UhU)9BC zjRG8ED`p^B2Pm}^Dc$E=S)>U5Qe;^G=$%$Y75qV$WpS6>K3QjGbjpb+iG6a3(~Xlr-=GG34i@`kL2B_ozALQZkINsR+Vi`A zvv7+h>zF{~ouJTv@!F@nGrq#g&2q?qv~l|3mAj@L%&!JBx05biLuiW zV3lNr^}&zV2>-)UC`X(0FBA}rkV@&bBm7<4y(F283D<04gxc^f z$VZs@S1+4>AQuW|TI`|nRbY(SSE_gLvMw^raAen8LeAcz-Y!u_-jryw?n0xP19nvb z!!4oxP6xIU8@U#AHHRdDkBT(>NUA9p62M_chqyR@f0UZ)8Mj-=TxqpY!<*5FN)uWQ z;E?g7bV9jerIy=DE;8Q{o<_x{@CXm=Td8KW~((64T9h@<1XkCz3 zu-mw1zs@;H92PVYF&0r;rDAEyGOx`TzVXE)^S?CluDXvm)4cg#);IBzGhX|{&qj8m zrhcw}HG=FWULeNTX0wr{2e$BWgnUn%hUb}E}4B<`TU_jkcpztcjhrzS_H z(eRpE()JEfQGgv356`}qwgFC-O_2F9EnBS8;$^8Cud;|KgH}{JymWwOCESb0WS9|L z`XeRkA>@7c%#I##oH6;*mSjJ6N4?p1yO#NXh`LP@{tS79 zzJ^HPp`hRr*_8hz5e>N6^c;>6hT+9V679vCW||vVps@KpMZ@i&Hf|YWY3dd9uq?`d z{xyV*#~@!PL`j1dPJ}}qK?-lIMUui)a73jNkcUd?V0wsV%rq|02P%W7gJEfu+)9@e z7nP2_dwPwM==o}J2t-3i9V001#odi?EWqom`A8UKc$?kh9~Hg zOF=cTX<-(ih6ZYc%5cq$9t}0kWP&Guhl{i6wH-=|g>_N5NF9T26v>ANNq?oq0MHs< zoA!BR&6^^S=tK0Enve>}T)IsW#1fBH@d0Q^MjFA5=&1$;b4*?|kx5fTt?>!}Iqp&H zjeHiSYEr1ape6Psn5WzMXwE~i9ekop3EV*3=m$f(qT27!709@nn3fWb1Q0fpIy^T^ zB{6n3gE)vticFNyS?Z+bf0?JOO_|!Xn=fQkHpU1G?9VJ2gOr#}{r3hM0U$|}c-0Hd z|BC@%rT`0DLM)aG5jo~^!Ui^i0*Nn^ygVU)W=g3G)0X-jMafvu0Z?YAl;#jwIvRx& zHk@f!G}`WxYmP8;09e7%sWR0elhMf1)M-v?##IQHC}L?E#Dq_h%_MYVgaGX=6IF!w z^b)VwyP6h1<%uyaNZ~Lhh`?!cYsf-^YEVoZ6E!pAGGR|wC zF-hhQGg^kkmEV>$%Y!C@gFFWN7=az_reTuwF_RdEh=71rb`*8MYJ}a0um`V&Zj+n3 z(2bSM>px9wgiuivyV)@|bEomT?Dvj%plUTmN1CvSLxf8rRX8NPkFZ|@CH;<`)U@y_ zB5{V2dd|#d*6%7bMxbAw1O5U_Kg3mk{Pni(YG|ALWciYD3gehkKPeJ#xDo8l8}7?? zH!M#^TOW6RkY1I2AXNp0(lI%76kSyn^UCH>ebLe)S-F(;^Fgw$V6G8j!}Ca(Wu#dw zW}~AtdUC~QolW? zNj+4Q5fAZ`>OLM+#b_C?7`Y{T#nSFx75!R8JH`En7h z>1J^0@vP(&z+U%jA@(@lVJ(qKZ(;0*@c8>lUzSCf0!KJ zseOCU@Ac~gzd3q~!3_uX50uZ9ns1Lrcf$`$OZ5gF*T6nzct1$@g3(f|y%geTEq23t z^(E8z_sz}Pa?Y=euriFX`M6{ZF&m9pc<68fP*uQHVK4<;>&~n`No+k^eQ;7qPSBj86T%g@~Es~Ps7lP7C!N`sw&j_7zhEDq^j0SI|k~N;Te%N*wZ-jQs z<(KX$lleP3(xw>K7|@^7{jNI(7XAK?lMd?sEJZ-{ocTNTKi7xB$1NJNP?=^A?q1Nr zKI-o^O%gc@e?*_jO>@F0Dx3~9AVp-Qrv=L$dR)wI##pB|CpxVdQzuPdi?v|%5CkM{ zekW}8c>8AvA;hAB9IZL^>dgmlojIreTx7~GJD;?7=zbN>EDPUtYkp7WgQvd6r>WU4 zI1l~jCa=har^T{G@2T0x(RsI-Q#94k0_rxi3SMgDf0z%ejryKA@BX08%QhZtRc^?v z-W;t^>qlM|X4i=4apC0c7Ls?`DO_YhvP6gt9F|NEqBwYr6mABBx^-To_UOz>0y;6r zhBS+(3miO#+|ok!Vc_EgN*ou?^mWaJL$zo17u4of1t6f>+zA#9ty4Z=*965UOU8tax_T^ zc}e>T)+}^Fp1}z#H771-WCBu>ExNgw741|Xm2xhsS;z$VY2*&PqV`Xb$g1rw-tBI2~OX&;wUm!R%^<_MlEl5sHqA6B!U5;o)e2>T;8 ze`2qT9VJV`Sku_;TeR2CGZZdyCUfT56=&k$Y0Lejh0y&flC8v5tF@AB^>yYvVcgqH z+I5TPl4iais&U-EoQm$~X}5-hWVepTF-_@cVl-H0ohFX`v2-Z%$lU5`%4bHnC6>v0 zt%gON{FG|B%^aP5X##qonPUVJsbCpRe_G?Q7%%$Rdwn2bHcSnB9LlQE{+rcAC2g4G zGD`u}5=*bRtj=wu$b!Ypk>l>Gx@MZ3DXg}6w)#rYH*~2gYnAz7eIsL;^a_ujBj$_E zFz7TETVve!VGVpahrJR27TOm3DT;Wi0yp%q5>Za`k3`%+qdDEL(NF{>wm@e&7Kz${V!vncqBR` zuUJf6#aOf^s6P{&8ABFw{?Otlf01}0UT)Be?53?*j><*mB+fw|m%7FJ`ww=Drh-*D zSEB!fk7)*hH)d$Z%GSR{T(Vdngm;tzuZ!_o$&mK5Y{!bdZfCf*HS%zA4UXJkTP~Gb z#lus%3?6pMuB?zxY)u0Qqy8}ZNG*(Eg9f&0zJi&fw@udpID?&(BoZ%5f06?k2|Y)W zW&vU|>>vvB!D|itiR`kGm3@coguBpBE#v1)@FLD>I7FENE|*Dd&T1;_a-0+aGD4{z z5zjKFwj?>!u$1 z4_&R;WTLEAlZHd7lv* z6r}aGz8fiwxw#2$=!+POZb}jiUsyp{N3mKf_%f3sR@AzQOCTg{on0L|foUr;t1F?S zc$}5OIk3)i$q`s9u4*Ivn=&xUy|E04p$*^~qi;0@s<=9VM(om5e;a@06&WxjEsn2% zlr{>e@NRh9EwKaV>yX*$Qq#-wRBZ;#1+dLH`$cI=IO>et zN=nIgwnw$iq4m8}GMo4xKG-)=fD?c1up+DeL*yeh@l$jQv;1FrdDWc?Ulq*k2 zp3;^;heHTwVwxrsf1Uh>{34ZCC28r5rg^#pZM_9h99!2e3(7_Uu0ux=>Cj&oKx8J+FkEa@X1}9&l-PR_r_Hc*wqVqz+O=!*d@CP*Tbq#LfL0xvx>q0f{Gp+NW>B#Ai zIaLP8&5cvH1-f<>?<{b6>gNb~a>kDXeSqD<_~oSrf$_v}TEz7+x!Ep{-*!Kr?|9v` z@o@2S_5JP9Rx|mNN#9LLin~2BwYrFWNnt)x0e1ags|=MXv^i47QoVDKl84T@NsHrbAJ68v^*n6`6suJ7*L6R_Q^x~u$M zwA#?rpnYme!y}i1$*70F`E+>hws#|BIFvBY6YZ6j*F0+MP+O;K`-=><_t?kVy;jAe zi8(dx$~&nbWpZb)`64oCa8i*OSQlt~$Lx!t<$jUUzqPf|_EgfT`O(;@4M;fsclpOb~Z9+j8dh#O{&8OBdY+eYy&GxvTTJzAn1L`tFPV z@x2V;H1yLFIf3K8!M(JhYt1?ht7EPxp7Fpr$mE>HeX(ne>+)g~(b~5}J$$0u<)x?$ z)I_1kXkkpJpBZEbzZSdJmX-{xSq({v-`UK~Yn{@T?F3i4RdlDL4OPb%t>1b;<0- z^4EBu)9h(I6ld!kATp?~=KSWyu1wDkSD5U67y1W@=z(v6j~)-Uby_+NI!S`hx0auu z9NtYCc?b_`F?Jg@CbU1!SeF~7Mhx9v?eyn89KKmbd&>~gI~sVsf6zu6#VQokJNY;r zw*GyuS`MM1N>O}URguWiU|nCk zexc%Nd2qJj=D^k_oQ8%kt3(tZxO|-Rs0(E{wI_uKqDQYC9V@ubv={?bZyIXn2ARMP zp|&e6E2QPj$MdMx?q&VMJFQBL30|I-c@FGMS_n#rk5_En`7KUvzAjDex(y5oLSreO zREgX7pZ20b?pb@$1(`fCiY6CQPqm{L{SpUGGex+VWOnDY1*4H})DQan?{pSgc=-h1 zEz|D+zcS8)%7)l7#&`7=S$5OxgSs@^o10gJ_!b5E>4eIC)`V8{%DzAnl!oO-$4fAS zlnR0#r-z{3dm{(aof7x~lWVQQNgYSFZmiMZ2NK}d?)1T+%mU$Q&~f1X-B@Qq%|%U# z;u8!RX|y{nqbRHQ^BZfZ$9Gpp!-_tC! znt%Otyo8W0G#pXiwfv}rZ@jQhpLz^@Y2KQ4I^eQFcOPRY*r^+owN*dJfOygFtzPf_ z=+?;hnWA%P!wo)m%=&PXh^nO6H{5J&*^ts~d#e>+b7b-v5;LlQ<0?PY&)C?X=H*_Z zVJq}5l62Feq5>c-+eLlV;^bJ_?(GyiTpPtRCb#M9=3%f#HaBmzxV$rcACd?3hnPdp zmlbVIcp1pn)gd(am>J_7byf{;EzxQE!H-I152AIam^8GQtNKq_wQY+{WV4tMR+JDW zEuPKp(E?~ew^z+10a&vnvPPDjjHQgFjO5cChH^=~!Pqd59ed49>|m4%dK zs=Om2J}yg(aEr2%Yklx6cXaadNorgw|D^R6|1C$_pbFH-NxjL&4stKeazr}!6+b6( zYUc@RSD#446k?q3RO8|ir_-)SVz--!8gHYmEj&7#Ec(l_Qg3aTM4tqhciP!Cekxq` z9UwdUuvVufxjN`*?JCIId3o;OF!d-%>Ovc|WO{qkc7D73d`*!XvXrJp{~9W}=Nb0q zaqkZ)>Aabq^SD2NS~#1%_DUTttA|unm(5LoFuPbTm?}^zIlh`5dCF|5Uw%zuUydg0 z&`{015PI*H_YJT}kH7#jG=KdPu6P?|H|~Ur*_@WvRdBXZzqay-Qz~eRVGSYL+&tcM z?5o)L(c3&MfAd|BY<UQ|sPN7s=AEFhXM@$6VdD7MoE?S}>d)DW&O5Wp34>+S zrpBYa@w}}clU=Eq$P8;eHX#ZQr;j1*C^OrD1;Y%F_hpLpD4d(W@u zS8Jx+CfnS*!n5V|oPVNx&4sBV)ES`N2D` z+&(H&Ik~k&&W_Aa8P|DurL)2zC0@POe_xY$8-j>eX4aCn1%#KUtuOwTtq90WZd~_^ zYM6k}U=Z&%%UE*<1vM17xrM8IZ5@eU8r zi4g2v*rCgo0dP7r+ycWwgt3!Nmkxpjq=Gm{$nmuek71iFks9#&K`}{I6^g{vTxMwS z=!n7deZxIso6x9GuUtNq6~(p)X9?N*Y!j&-jN>OZJrR21h>wn&JZzTzDXZ_rjRR>ytPN7VY~ zw$oQY)K7v@4mS$Eh0`YIXyIc=Jz`*GmG#n^%#^(zo zPtV3mh#Py5>1Pux5yIl-dPb?Q+Fo_;ciqPPD45t8f(fQN9mu9&HFM2aLDKWV7QcH)HfmH?nI#ta|qspxtcb zE|;_frz|ky=au8q1Q_T(QjgaypSe`rc2B{k+{sc-2nw#va7QX*s<2J?(RUkRV6sc& zCaY`@<2=>28g})ut=CFKhAJZ-njEh8S8{tWzH+|AQ|G!mxm|B~;wE4xfE+$x9D92= z1GT4-Ijl|;$iSA83^U72AEc;USUka4{b?4gz^Q{o0|7XEm4Zq z*N-`0L64P58$WvWIrMkzoYPVGrdsW`z0qgkrhd5a3gBkja%Y9%Z;$Ro$vs`902U|Q zk40K?O#+^JIW!gJ91^Z(R9bIW+aN)$Ka$djMjws)OAA>sG~OJqH#F!*BFP$&y$<=r zUokLp>Nq5G?nx|H;Jj0bTwl1<7KZv_N+1W$9L2}95?0#Gly6xQ1tdxi1fo7RmmGpnR?@m;5XR8?cf+ySH8gI_LPTh; zP8mJ2uPxR#vj?1hQxM=(-h$$PZoVNcugLoaAN%GDWbiB%^?L0fFD{G6K6Z2U;-P)^ zoshGOyJQzZtS-N&8NR{Zkp9YA^7_;A>+lgncoIRpAopKVcTRoz4(GuCWk!uq?0UK!0w3)qUkIsJTw{LW9ZM?v~%F zX$V=SNgJPZdh`{QmuVHW502`cJc-M1G)?}?vzPT#=z>hb`-5a;(MOe4jw78GQ&lW? zkzwH!bQxo`uLHULOA6wfeg>W--svHN)=Gs{GH18Io6ReclhwZ*Pb`*}bi;sY$7XM|yDUmUc<=rwICeZroA zz=4x{M3o%RT+>lCyb`dMpVf<8CYPk@fYB*f$h^xX-QY8`l7Om<^wE(P(3Dh%^C$m6 z?-q#)TUpZUe|*a%gMy`r43FqTZeH>$1vbDOVHFk~&?% z%O$R!__P=9s~PuiJ+ATPffQOtn4c@q)#TviaA7rcuK9iGo+bd>gn&`*eU9-NLFQt1 zL@o=+T8{OdkVX{7bTwYj?Yp*~jHWlu3ItFM*&>LSqzCHnl@{^*3cI+SJL8N%)LlEG zMje^?J<@|VuRQKEjSySzpOYZGu}q>Qa!3jmh1B=Y)Sjo29@!6)&W@NCMppenu+cpV za&XjLRkLhPW=lZ7?8HhU^~nbfY`$=w+zL%9YJ)jB)E0x6qA`tg5!0p2m$rw}+$tDc z>o1ge%G;HbvQ#9zilusxbF1GdpSVS>&Xy6jgn<1LU2Y+FgDR<{Cv{t({pLG~MhA0M zFnz*rX8Bx)=v6b?{W^!NYmm5t5N87gqUGg%i}MeXl6xTG@@LecQc_SJf<=iOG+wS@ zo(>K6{6Qq)TdxXfaz5>w&?{CJod&P|R;ut%ZQpM;n6jx96-mgghM;;wwbF1c)R%7- z$7AQHW1u`2Q+VDj*`%=xF{I)^9uz*!Q=FW-I|Y^K+eJ4AW#I_+@GQ@+ka1@$b`y#! zu7yqvM?LT;$*`SbDt#_>H%OL|@IBO&_nIC`VW!Fg&KSE>Ri9E@C10BKRD+qDvyo%eJeD_^ zJ60Op#1WIxHmxaPI1|LQ<+7BBkffJHY7W2MGy#}2I;dKmE@t(ZafVXKyDQkCS`{eF=TY{drm^+Aa8@5&aYfo>K<#)5{IUX^rL{p%Hlx9c_#~ zY&IY%QTFZ?4OwkVj)A3igI4Iv7AhBlM1v3s2=-7Y>{s&xuI&Qw;V%n3g-T)7Oyn*_ z$a&Qij)IiD?CMKBcCdd{4=gU0pR;4CNL zs6X{U{i~|AAdS;q&H#k1D(SnJ zVD%GKi@OYqzmhENb0i$YIc{!3$tcI0Q`SkZ`pTy_??n*5#`#J#k3DjMCK%G)tETzy}JP?@_1LQB`nG$lO`jZ1w zCFHxO#$FZQh0CTy)V>SMFp~39aP4e7P3N>Sd=h3OBymx`nn@zB?6A&+iF%)-#PeY~ z$kFEmZOuZHYJ7wMLIwT?lG~zI48I&yn|P}*U?W1Gk!B!(zL1{@dkLM10Qr#;Q3`*3Zyo6OWxyh z3q}+KJF(j)bqlMUD>a$lPgZ}aQJy@{rT}r5s6!veW8)fF%#Yr+`Vz|_C?C~Z(hzwtic@hS$i^AV*`dB?@HLfp!9&lSo_w<-;gleG9=wV~rY>X&)QQ z0;SVY0;y_93bH*lsBhj_?b8p6c>Xq1vjMvj1>z@5LzyycN`k0sF*8@-=7@(;0xt6= zL4f$1#pMBdFW{6l6evO;9ieXKrAQGLIZog7o39714(gHU-dUhbxfszO?t9^4@YNsw zE&{ z{>wyYC|(r{p=oL+@*q7hNN`0F=HVmW>hZ!$B}OB%Igo%J#q$Qh?n9I0;(PC#xIr;g z5=$c)?nTkwQ?Y4dl4eUw{p3(Bw@oQR?cpWA7@u1h-kJQ5A;i5l3)Z`<*^6!s(lBZxmjxuV6Ac9RrX-45h}Aw^FbOu>SPG5=x*Q)ij#F=bgao>CIgonB1;bQYAdSKN zE{zLq*&^9yu*Xu)H9Twl;aIZ%BcLZZ0(+atSqbqIa%jwV2AS1n*F zDy}x_=yr|p+Gz_lZfXZ8x3B{8em_L66r--xECUN$_cA$J5|sRRp_q$_QTeVhO63A` zoYiqiCK!VPJ;P|cFOY{tSXbZ1*oFM29uVP*tVXG6D*P5`J?b2GL)j_uIa4HimlqOn zz#(hK>clt;s5UZH(>xmK2VopLBkim?Gi{;hQH3jUEp8C4Jrx-v397<#Ty}d@tLDcd z1v+9SX$we5^kg_lu*4fW?wec+m7OFJqFU)bEgDe3Cd>t+ljF`#?CTiK(5ii{?Arg9 zI4u;n8C5}+6X2f z=2YjQos!$$c+>0dfs{^~Z&S8$P$7Bl-nKHvT=r008)-B^V66Ri*NkitaeiRE4E&;)L;ggGu>+!RqRQVIXQ^+Zoy zuU~{Ma*}9n9p%c=+%A+f(buwPfj+n6=Rpg~0RjG5bfpqAr6nY+ce7ytG!D79jg+Fg zIbappvqEW_eS_eWZcvNZ>!^Wvy@H^qKi($;RLU2c`n%B;csTo`qR_|RQHuwCCDgc; zt8+e6A;&e-uzxRCkZwdzK#SA-ou1A7HTM-toCuc1$(CY1SvDCiZd`hh7Quo&`Y46Q z$7DN(bC#>H_0o;L9(g{qmox>pW8`GsKEYH0OCe0QDSSPSg%Pd=jLTg{+Q%6(0O4r;u^R1uw#)t=#bc_h@auBpv-rHi6Ssi|#bp#^dzRne zzPSmGG}0Q_%2(HV(Nxv={ym%;c~BY-BJe|AJU0xfw}ShPsI=tLx0SBv9ekvczg_Ld zewWRoEb?spEnbv3jr0m-NusM0p|7kn`dcFO4561HmhOcxiB|l62;58mb95{`{k?>5 zh6UYE$gM*`7{aJx1LvXUCj{^mErFuZj}&N$Z#%yj#-etsQGcn!M`O8B+39^fddm+G z$44@mO1%f2CszjYbtq(++0bP>i-(e3Ef4U!FBU1R;cDr*K)DZEcbr98N)lN1b@z(jR%Jd@M_@ z-@1v*T>kjkpE$**W?q^XEctpP^|%byYKu*Sd^2!Bnt+HU-mg>cX6uZw%Xr`t&U&m# zEKv2$)R88@uQcYUJj1O`?W-RD;py$UsF9?FNu0qPl1q$~W)vZr?n6f%X|M+{WS*$8 z<+sO3OLO#NlP!(H*+;dDSQ(ba)vI0aTcV<5j0kGy8KRC5w-m)wq_P+an*_Xk+RG%q z;`=F_m~0d;nl3XJ5v$JOVt4}bYB(|MEdMqmLGA=LcIXacaNGlV-FsE79}@AzoB{=N z5)@T&Z|3wgG@K_X5F-gK=*Y-`fx|Ttr-v0A7`h=2s66?KQBt^UoH@)(Y_t2E@THSa zT9tUI9H{JteO>L!%V!lGeXNI;^_w~THIeD{vU4u`e5oJBsQN!o4;v2# z2Ky*9-!KSk8TRBOT_?kD(Wwx;hS*op&9~vAewV?)15tFyoR?{Ek)%8U)=h@R_!kdh zn~1$uqmQB_FDJ}h601bnQ?&RUdD@14zGi^-1Y|p1t8?#cT6QzS ztI^={DzeJmh&G<$`+|LMR1h_|+(S8ugO^PXqf;z5$8-0dUoO#~ z<}@2gCqb1cGp}mA%kUf41%AuHyh&AHcfSPAqWA!e5H0Y${bICokND<{9Nvu>V97td>{anWwh)`1{r(ouX3U^It1kNHbr@*p4AZvtu1R?6K!r~R92ghI-Z zA-Fa$aK~0qg$>V1GhMleg8fsk;c5?eTYpqdC zq*vj@rh-?9XXI-fSPwS$k9=dRc*u~mX08Q?zQ=iBCe9@uGbT&?0Q2whD?wr z0bdYk#5ex!`jq%9f{01s0`VA#gG_&JSezNaEu6iHhHBDV=kY$Pkf45Jbr#ZxP~Eev ziekl2uWWvDqQ%;plw(R95t;SNxk_NQwWcGVgzBg0y^dppwq6cmaaC$nM=hAR*Ex)# zlTQLQ2+b$9Yi0~y?J}~QK;qzAVbvGs1=F$ydPc?W1NwaGu5zBdwXLp z$DH^cfy|u%uhgR8?1czn)D~vnEwow|81%-rV$h0vC1!Q!H(m;d$Lk&u8rPDGo#ML7 z&K|?;SiF!OXL{4YD?$HmN-O&<>Evs;6hnaBoZWi&BfY>u4Ady|dEZA*cKum&%fi)C zdL{KEyP27E36fidQMurN=4_LI_?Hq`wS*Fe=0|qDE!zW1xMWFeKTXCHqge(J0D>QB zeUlnLF2$6VnwXr-)q@gwen@go8GJ2|O1{o@XF7cR-R6=TjKwo0fK6S4C3Bw3Y);3c z>-^#5ft(=fUeST%44DBfHf>Xk%GBndU?W5yX!o~A`?E67az^Ln6IvsdrG!?Y@^u5c5 z-x(KC6e!c_>|aKl!pd50ZIL8SloeiEVI3yeG5gm)=pGu_P@N9YISBJ*UG!vWBi;xf z3@77R-S5}=+RU7c-&W2%ai-{g<6>T7MH9n}#pq+_Ub$WBbU z%{qqWOOUJO9SVMb*wN2$r6r3S!|9uZ^mcNnZGD+6DA8Ktj+-A4l)H} zIQxFYFG4d(s*aT1k)>U^cE=u>*>2SP+BozTT+yU3&=D?+qVF@LRpx+(pI~qVny2A1%j;E-dtMC#8^(zwz;fY5Uiblsf}_ z@+h`W?FI0LK>xh}YX%vq5E)6E2--e`)j~t(5JnpFgW<@JtB2YK#FQUm zH%3f&Xq>z25@ByW!w0-!069wIu4!KN#L7U(jIf}+acUaX60vHi*hBAklcy2`j(h1{ zi*|iOD@r&c-xLioRTBux?xL^QV#0Q{k-zvVY0L;$Ap5BQ;Wt4QBt`DK_ev^~?A>5D z90j^tSADse>sRIZv*h-c5?_J98iwtwA}FUeTvvvvPw)wQ6(`X3)bjnh*rjpiJArKP zJ<}u#YFGZO;Nf=w<+}cmAX(pF#9WlBDi`Z-Njfo@R>RG4 zx1htDCdZdCBP#v~{G>^Kn1M+nJ}C71~xn3s4zzFn^BHmtKi;LBg(AYpK7HVIVagq3Gn zUtJ|?mDDsDoFdH{A(t!@=s#$%g>0kl3ujE?` zJ&LNFIaYvULA&^t* zqkD(Bi{t|x5P4|}UL1dXenX^O;-ZL0;kcN5m7W_9O;IrF`ulfO;jEu{hqn{w$SN5J zDa(|w$vY^1S`jrvE1#BeLcH%q;ERQvKlkFH)4PQs8?LYscu@bs$e<3~PGf$s3!kRi zIS(`fJXxG4W^5i_Bo{e`qg?RA3AfhPeQ7&pIy;1h7DUDDutMVC<}QDHP2CDDd#YC z5H&W2nkiZg$=%2(?WcqbXp(0#PoQq4S6cnl08(Q=qWG!fsBU@_$GiTlq3ZGccp2v+ z(89+9C}&DWR1&(p5u(A{=Fnz0ja|o@EmXm(qi&N?$`u{=+BFjz%5T=0FHq?~CrZ|^tL_t;VZ@7d~w8`Dwz0wFU zfqD7K1MyLG%BNw(Z710{~x3WLjlkZrqlg;8r3>0)tCW+TdtB29_9) z;>_5hlbEVMI96Ws8h^d|_(j6tv9k5v!tqgz>-?hns8B`XloQa(=@0 zD)c^tScc{Lz>5q!I1GY4Dq;2A{EzjqPijc|DE>tsMRW^9XQ@9t4y1HSxDw%yS_2tB z70)B%P&s>S3R}#15q`J`xrlW@@BQ!#b)R=7)Tg}4jnNCai4YmWb|TpmjdPGaA8zd5 zlIC$9dOL!Kd1HhGN zGTubOZMt(P#2GMtX?U#170VGf*rt;)uarOeLI7@Q~?FV{g(w9b@U%J*BD@(3cE&@1`O+4Vz zPei`ArkGltV;@yuYgY#?5$;tMG_TQztr!A7^I662-YhPh$(aA?0#q0G~d|{j3R%j!gY* zy}Q<|!XUlgCry)I~%^ma6Ex zRz{!nk*{?daifyeX4#YKWL&=0kr?Y~Gm-Qv{q&n@hBP)(M$N`Y-{V}%{iR~4WLq^m zVTJ-l-#Ie(M}2`Z6r7*Ehyh7;>4(%POU;&_1RgFwOu3!g1V-S#eqRf?vB*cvQLm&@ z&PTB`E-e1AMK8nMVu7N)c@U$x3=y<*ixR*Vn`s1$OsagtSAnJ#XaEVUQe$jhJR-db zH7(A;hHhPW?MGLm~6)C=q?rrp4R|Jcw*Clw2Zy-HyM_%Zle*loO31#xK|a+K68q#5~T=mbE?u3 zp98u^Ym#PeOBbC&yB=Y*47FI3oe{Rf0$&><*MVOBFYWrB=9jF zes}R|(9AzL1BE@WjSK>;}CLeXB4JDq&`o;RUtobj0 z2n>4F#zSp%O0My^Dav$VS(^eXRVAisUe#;m#;+Jj6l>`6y8Kc?Nk^lZk27YM%dIZ( zMfzrR|HUJ4%)JPJocDZfIYiMR9DgfZM(3CYOBEdAw+TZ%K+o#OPK9W$_JgNHxwsN` zONwpX+aAi=@IA(69I4VTsG$d6&WcCW{k84-ceU##zYAua>G+~i3KTxTkB8MkE=2N0 zs_h2Jw7@&Di=Q8Lw|5}EC3o^Fnu?|Bx){py1{+tqw0$T*v{IB(`bTC9`kuJ?c*Mu~ zPnMm*nvUMkHXXQ*njfS;OE>mE>I3$L!ToQq@q+6OxPVUN7ThfYPnGOkPM@pc-h*bO zps<-qCw9pwo{}Q7L$s4R5o&Wt(Dpa}C+UV91;)yQPoVpR(r_gGavv+JZs+)8teWGH zJvk+w#Gn`eoM3}}C=b87=))CeKCmM!)##GRE;u7Tb;`6|{g=lY*`W7zJgAx@)iO7sxrW?mt zl^2{D$;-+|GnQ;UXs$x{v1k}fMT`x_;Qipr$)ySKEH5L|OQN9)Ud+$+&vvb2P+G&l zG!f*F{rIH0E(3#+8hL}H(Og8A_;vzl_p%|un3-T5kPLo=yIM)1ua*IOzRhIYMI|u# z5$V&Dt+uUFfCOEmKUZLQza-+XPmH|K5pa7=D;G8|@cZ4ux@RPQ&1cFPz8R2D^Z1RN?|c z${mG4OC&Trd^jOvm*ppW@}mbPG9%!3cU;p7_O4iOTUr#Be0;S@)vG_E>wmOa*GPH* zFZ~qUAdX33wEE2jFS>(jDIoGrzYgg!_kM*4XShIGMlKYv0_x?m9y{tT`MV6*-_Ars6z4a*4`8G|*1{{ufu>wgAde|!)l zm{kpg01;k*%>e!XAyf$7GORw_KgNt;zb#lKNWmIx>0iTV4~&p!$n3B8zi#N&L8uUt z16cdNHh&@SKTyvR?D)SBq~i>>EFnNDE@4Uk%?5IJ1Dov{11uzPWM(r5EdqP8V=^wza(;)Tz?Ah_zW*x zFp4sW0Tu%0Rt9mwu7ItSpCfvK()0USsq#nZ_a7w@_^S$tkm66|Ukz#jiZ5VbhHznEX#Yp#(80fsh`^gFpx1xg zKm75)IQ|d%Rux3>2US*mM%$59g) zsnhabQ))238VK#b4nYX(U?X)9F*tJ#77ZNrk0wRlZi3{2(o@jr7QKmJ4I_{&PGS|tWQGvfXiix&EyP~;k*7vSmt zdd)h^u>AeZz58E$tgC^9YOjBeZCg{diYx+Z#3|kCW!0r>^=q9GFLzM zmzf9#hUS0t0sZA478UrD)_-c~rS>V@`yVv%Y; zqm|_Upfcnj)c delta 30559 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 z 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 NAcLV-dYf%v{|9 { + switchHat(hatId); + hatCanvas.remove(); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + }); // Create hat animation const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); @@ -2826,6 +2843,7 @@ * @param {string} hat */ function switchHat(hat) { + log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 4b1fd4c..536995d 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -740,7 +740,7 @@ module.exports = class PocketBird extends Plugin { if (hatId === HAT.NONE) { return new Layer([], TAG.DEFAULT); } - const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + const hatIndex = Object.values(HAT).indexOf(hatId) - 1; let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); hatPixels = pad(hatPixels, 1, 1, 1, 1); hatPixels = drawOutline(hatPixels, true); @@ -1717,10 +1717,16 @@ module.exports = class PocketBird extends Plugin { image-rendering: pixelated; position: absolute; bottom: 0; - transform-origin: bottom; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; + transition-duration: 0.2s; z-index: 2147483630 !important; + cursor: pointer; +} + +.birb-item:hover { + transform: scale(calc(var(--birb-scale) * 2)) !important; + transition-duration: 0.2s; } .birb-window { @@ -2381,7 +2387,7 @@ module.exports = class PocketBird extends Plugin { focusOnElement(true); // TODO: This is for testing - generateHat(); + insertHat(); } function update() { @@ -2565,13 +2571,13 @@ module.exports = class PocketBird extends Plugin { /** * Insert the hat as an item element in the document if possible */ - function generateHat() { + function insertHat() { if (document.querySelector("#" + HAT_ID)) { return; } // Select a random hat - const hatKeys = Object.keys(HAT); - const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + const hats = Object.values(HAT); + const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -2589,6 +2595,17 @@ module.exports = class PocketBird extends Plugin { if (!hatCtx) { return; } + onClick(hatCanvas, () => { + switchHat(hatId); + hatCanvas.remove(); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + }); // Create hat animation const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); @@ -2869,6 +2886,7 @@ module.exports = class PocketBird extends Plugin { * @param {string} hat */ function switchHat(hat) { + log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 3a33416..21b9da3 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -749,7 +749,7 @@ if (hatId === HAT.NONE) { return new Layer([], TAG.DEFAULT); } - const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + const hatIndex = Object.values(HAT).indexOf(hatId) - 1; let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); hatPixels = pad(hatPixels, 1, 1, 1, 1); hatPixels = drawOutline(hatPixels, true); @@ -1679,10 +1679,16 @@ image-rendering: pixelated; position: absolute; bottom: 0; - transform-origin: bottom; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; + transition-duration: 0.2s; z-index: 2147483630 !important; + cursor: pointer; +} + +.birb-item:hover { + transform: scale(calc(var(--birb-scale) * 2)) !important; + transition-duration: 0.2s; } .birb-window { @@ -2343,7 +2349,7 @@ focusOnElement(true); // TODO: This is for testing - generateHat(); + insertHat(); } function update() { @@ -2527,13 +2533,13 @@ /** * Insert the hat as an item element in the document if possible */ - function generateHat() { + function insertHat() { if (document.querySelector("#" + HAT_ID)) { return; } // Select a random hat - const hatKeys = Object.keys(HAT); - const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + const hats = Object.values(HAT); + const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -2551,6 +2557,17 @@ if (!hatCtx) { return; } + onClick(hatCanvas, () => { + switchHat(hatId); + hatCanvas.remove(); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + }); // Create hat animation const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); @@ -2831,6 +2848,7 @@ * @param {string} hat */ function switchHat(hat) { + log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 5992b61..43eb0bb 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -735,7 +735,7 @@ if (hatId === HAT.NONE) { return new Layer([], TAG.DEFAULT); } - const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + const hatIndex = Object.values(HAT).indexOf(hatId) - 1; let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); hatPixels = pad(hatPixels, 1, 1, 1, 1); hatPixels = drawOutline(hatPixels, true); @@ -1659,10 +1659,16 @@ image-rendering: pixelated; position: absolute; bottom: 0; - transform-origin: bottom; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; + transition-duration: 0.2s; z-index: 2147483630 !important; + cursor: pointer; +} + +.birb-item:hover { + transform: scale(calc(var(--birb-scale) * 2)) !important; + transition-duration: 0.2s; } .birb-window { @@ -2323,7 +2329,7 @@ focusOnElement(true); // TODO: This is for testing - generateHat(); + insertHat(); } function update() { @@ -2507,13 +2513,13 @@ /** * Insert the hat as an item element in the document if possible */ - function generateHat() { + function insertHat() { if (document.querySelector("#" + HAT_ID)) { return; } // Select a random hat - const hatKeys = Object.keys(HAT); - const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + const hats = Object.values(HAT); + const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -2531,6 +2537,17 @@ if (!hatCtx) { return; } + onClick(hatCanvas, () => { + switchHat(hatId); + hatCanvas.remove(); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + }); // Create hat animation const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); @@ -2811,6 +2828,7 @@ * @param {string} hat */ function switchHat(hat) { + log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/dist/web/birb.js b/dist/web/birb.js index 5992b61..43eb0bb 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -735,7 +735,7 @@ if (hatId === HAT.NONE) { return new Layer([], TAG.DEFAULT); } - const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + const hatIndex = Object.values(HAT).indexOf(hatId) - 1; let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); hatPixels = pad(hatPixels, 1, 1, 1, 1); hatPixels = drawOutline(hatPixels, true); @@ -1659,10 +1659,16 @@ image-rendering: pixelated; position: absolute; bottom: 0; - transform-origin: bottom; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; + transition-duration: 0.2s; z-index: 2147483630 !important; + cursor: pointer; +} + +.birb-item:hover { + transform: scale(calc(var(--birb-scale) * 2)) !important; + transition-duration: 0.2s; } .birb-window { @@ -2323,7 +2329,7 @@ focusOnElement(true); // TODO: This is for testing - generateHat(); + insertHat(); } function update() { @@ -2507,13 +2513,13 @@ /** * Insert the hat as an item element in the document if possible */ - function generateHat() { + function insertHat() { if (document.querySelector("#" + HAT_ID)) { return; } // Select a random hat - const hatKeys = Object.keys(HAT); - const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + const hats = Object.values(HAT); + const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -2531,6 +2537,17 @@ if (!hatCtx) { return; } + onClick(hatCanvas, () => { + switchHat(hatId); + hatCanvas.remove(); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + }); // Create hat animation const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); @@ -2811,6 +2828,7 @@ * @param {string} hat */ function switchHat(hat) { + log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/src/application.js b/src/application.js index 6f1af83..6c3273e 100644 --- a/src/application.js +++ b/src/application.js @@ -396,7 +396,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { focusOnElement(true); // TODO: This is for testing - generateHat(); + insertHat(); } function update() { @@ -583,13 +583,13 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { /** * Insert the hat as an item element in the document if possible */ - function generateHat() { + function insertHat() { if (document.querySelector("#" + HAT_ID)) { return; } // Select a random hat - const hatKeys = Object.keys(HAT); - const hatId = hatKeys[Math.floor(Math.random() * (hatKeys.length - 1)) + 1]; + const hats = Object.values(HAT); + const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -607,6 +607,17 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { if (!hatCtx) { return; } + onClick(hatCanvas, () => { + switchHat(hatId); + hatCanvas.remove(); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + }); // Create hat animation const hatAnimation = createHatItemAnimation(hatId, HATS_SPRITE_SHEET); @@ -892,6 +903,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { * @param {string} hat */ function switchHat(hat) { + log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/src/fieldGuide.js b/src/fieldGuide.js new file mode 100644 index 0000000..e69de29 diff --git a/src/hats.js b/src/hats.js index c875e59..e106356 100644 --- a/src/hats.js +++ b/src/hats.js @@ -124,7 +124,7 @@ function buildHatItemLayer(spriteSheet, hatId) { if (hatId === HAT.NONE) { return new Layer([], TAG.DEFAULT); } - const hatIndex = Object.keys(HAT).indexOf(hatId) - 1; + const hatIndex = Object.values(HAT).indexOf(hatId) - 1; let hatPixels = getLayerPixels(spriteSheet, hatIndex, HAT_WIDTH); hatPixels = pad(hatPixels, 1, 1, 1, 1); hatPixels = drawOutline(hatPixels, true); diff --git a/src/stylesheet.css b/src/stylesheet.css index c02f3d3..4ea5aab 100644 --- a/src/stylesheet.css +++ b/src/stylesheet.css @@ -45,10 +45,16 @@ image-rendering: pixelated; position: absolute; bottom: 0; - transform-origin: bottom; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; + transition-duration: 0.2s; z-index: 2147483630 !important; + cursor: pointer; +} + +.birb-item:hover { + transform: scale(calc(var(--birb-scale) * 2)) !important; + transition-duration: 0.2s; } .birb-window { From 7b1df9bc4f90f2d94d37434a1a750cbf159bf928 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Wed, 21 Jan 2026 22:52:53 -0500 Subject: [PATCH 18/24] Store unlocked hats --- dist/extension.zip | Bin 154192 -> 154352 bytes dist/extension/birb.js | 62 ++++++++++++++++++++++++----------- dist/obsidian/main.js | 62 ++++++++++++++++++++++++----------- dist/userscript/birb.user.js | 62 ++++++++++++++++++++++++----------- dist/web/birb.embed.js | 62 ++++++++++++++++++++++++----------- dist/web/birb.js | 62 ++++++++++++++++++++++++----------- src/application.js | 52 ++++++++++++++++++++--------- src/stylesheet.css | 6 ++-- 8 files changed, 254 insertions(+), 114 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index 8d055b9bb164fcaaa450946d9b736e5753190c5a..72e789a786483892ebbadfa19918875aefbd7579 100644 GIT binary patch delta 31628 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 E0I2~d9{>OV delta 31418 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 settings * @property {SavedStickyNote[]} [stickyNotes] @@ -1676,14 +1677,14 @@ bottom: 0; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; - transition-duration: 0.2s; + transition-duration: 0.15s; z-index: 2147483630 !important; cursor: pointer; } .birb-item:hover { - transform: scale(calc(var(--birb-scale) * 2)) !important; - transition-duration: 0.2s; + transform: scale(calc(var(--birb-scale) * 1.9)) !important; + transition-duration: 0.15s; } .birb-window { @@ -2122,6 +2123,9 @@ for (let type in SPECIES) { unlockBird(type); } + for (let hat in HAT) { + unlockHat(HAT[hat]); + } }), new DebugMenuItem("Add Feather", () => { activateFeather(); @@ -2190,6 +2194,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let unlockedHats = [DEFAULT_HAT]; let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; @@ -2209,6 +2214,7 @@ userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + unlockedHats = saveData.unlockedHats ?? [DEFAULT_HAT]; currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; @@ -2230,6 +2236,7 @@ const saveData = { unlockedSpecies: unlockedSpecies, currentSpecies: currentSpecies, + unlockedHats: unlockedHats, currentHat: currentHat, settings: userSettings }; @@ -2532,9 +2539,13 @@ if (document.querySelector("#" + HAT_ID)) { return; } - // Select a random hat - const hats = Object.values(HAT); - const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; + // Select a random hat that hasn't been unlocked yet + const availableHats = Object.values(HAT) + .filter(hat => hat !== HAT.NONE && !unlockedHats.includes(hat)); + if (availableHats.length === 0) { + return; + } + const hatId = availableHats[Math.floor(Math.random() * availableHats.length)]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -2553,15 +2564,8 @@ return; } onClick(hatCanvas, () => { - switchHat(hatId); + unlockHat(hatId); hatCanvas.remove(); - const message = makeElement("birb-message-content"); - message.appendChild(document.createTextNode("You've unlocked the ")); - const bold = document.createElement("b"); - bold.textContent = HAT_METADATA[hatId].name; - message.appendChild(bold); - message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); - insertModal("New Hat Found!", message); }); // Create hat animation @@ -2583,6 +2587,7 @@ function unlockBird(birdType) { if (!unlockedSpecies.includes(birdType)) { unlockedSpecies.push(birdType); + save(); const message = makeElement("birb-message-content"); message.appendChild(document.createTextNode("You've found a ")); const bold = document.createElement("b"); @@ -2591,7 +2596,24 @@ message.appendChild(document.createTextNode(" feather! Use the Field Guide to switch your bird's species.")); insertModal("New Bird Unlocked!", message); } - save(); + } + + /** + * @param {string} hatId + */ + function unlockHat(hatId) { + if (!unlockedHats.includes(hatId)) { + unlockedHats.push(hatId); + save(); + switchHat(hatId); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + } } function updateFeather() { @@ -2761,6 +2783,7 @@ const generateDescription = (/** @type {string} */ hat) => { const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + const unlocked = unlockedHats.includes(hat); const boldName = document.createElement("b"); boldName.textContent = metadata.name; @@ -2768,7 +2791,7 @@ const spacer = document.createElement("div"); spacer.style.height = "0.3em"; - const descText = document.createTextNode(metadata.description); + const descText = document.createTextNode(!unlocked ? "Not yet unlocked" : metadata.description); const fragment = document.createDocumentFragment(); fragment.appendChild(boldName); @@ -2780,6 +2803,7 @@ description.appendChild(generateDescription(currentHat)); for (const hat of Object.values(HAT)) { + const unlocked = unlockedHats.includes(hat); const hatElement = makeElement("birb-grid-item"); if (hat === currentHat) { hatElement.classList.add("birb-grid-item-selected"); @@ -2791,7 +2815,6 @@ if (!hatCtx) { return; } - console.log(hat); birb.getFrames().base.draw( hatCtx, Directions.RIGHT, @@ -2801,7 +2824,7 @@ ); hatElement.appendChild(hatCanvas); content.appendChild(hatElement); - { + if (unlocked) { onClick(hatElement, () => { switchHat(hat); document.querySelectorAll(".birb-grid-item").forEach((element) => { @@ -2809,6 +2832,8 @@ }); hatElement.classList.add("birb-grid-item-selected"); }); + } else { + hatElement.classList.add("birb-grid-item-locked"); } hatElement.addEventListener("mouseover", () => { description.textContent = ""; @@ -2843,7 +2868,6 @@ * @param {string} hat */ function switchHat(hat) { - log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 536995d..716ca26 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -1647,6 +1647,7 @@ module.exports = class PocketBird extends Plugin { * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string[]} unlockedHats * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] @@ -1719,14 +1720,14 @@ module.exports = class PocketBird extends Plugin { bottom: 0; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; - transition-duration: 0.2s; + transition-duration: 0.15s; z-index: 2147483630 !important; cursor: pointer; } .birb-item:hover { - transform: scale(calc(var(--birb-scale) * 2)) !important; - transition-duration: 0.2s; + transform: scale(calc(var(--birb-scale) * 1.9)) !important; + transition-duration: 0.15s; } .birb-window { @@ -2165,6 +2166,9 @@ module.exports = class PocketBird extends Plugin { for (let type in SPECIES) { unlockBird(type); } + for (let hat in HAT) { + unlockHat(HAT[hat]); + } }), new DebugMenuItem("Add Feather", () => { activateFeather(); @@ -2233,6 +2237,7 @@ module.exports = class PocketBird extends Plugin { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let unlockedHats = [DEFAULT_HAT]; let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; @@ -2252,6 +2257,7 @@ module.exports = class PocketBird extends Plugin { userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + unlockedHats = saveData.unlockedHats ?? [DEFAULT_HAT]; currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; @@ -2273,6 +2279,7 @@ module.exports = class PocketBird extends Plugin { const saveData = { unlockedSpecies: unlockedSpecies, currentSpecies: currentSpecies, + unlockedHats: unlockedHats, currentHat: currentHat, settings: userSettings }; @@ -2575,9 +2582,13 @@ module.exports = class PocketBird extends Plugin { if (document.querySelector("#" + HAT_ID)) { return; } - // Select a random hat - const hats = Object.values(HAT); - const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; + // Select a random hat that hasn't been unlocked yet + const availableHats = Object.values(HAT) + .filter(hat => hat !== HAT.NONE && !unlockedHats.includes(hat)); + if (availableHats.length === 0) { + return; + } + const hatId = availableHats[Math.floor(Math.random() * availableHats.length)]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -2596,15 +2607,8 @@ module.exports = class PocketBird extends Plugin { return; } onClick(hatCanvas, () => { - switchHat(hatId); + unlockHat(hatId); hatCanvas.remove(); - const message = makeElement("birb-message-content"); - message.appendChild(document.createTextNode("You've unlocked the ")); - const bold = document.createElement("b"); - bold.textContent = HAT_METADATA[hatId].name; - message.appendChild(bold); - message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); - insertModal("New Hat Found!", message); }); // Create hat animation @@ -2626,6 +2630,7 @@ module.exports = class PocketBird extends Plugin { function unlockBird(birdType) { if (!unlockedSpecies.includes(birdType)) { unlockedSpecies.push(birdType); + save(); const message = makeElement("birb-message-content"); message.appendChild(document.createTextNode("You've found a ")); const bold = document.createElement("b"); @@ -2634,7 +2639,24 @@ module.exports = class PocketBird extends Plugin { message.appendChild(document.createTextNode(" feather! Use the Field Guide to switch your bird's species.")); insertModal("New Bird Unlocked!", message); } - save(); + } + + /** + * @param {string} hatId + */ + function unlockHat(hatId) { + if (!unlockedHats.includes(hatId)) { + unlockedHats.push(hatId); + save(); + switchHat(hatId); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + } } function updateFeather() { @@ -2804,6 +2826,7 @@ module.exports = class PocketBird extends Plugin { const generateDescription = (/** @type {string} */ hat) => { const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + const unlocked = unlockedHats.includes(hat); const boldName = document.createElement("b"); boldName.textContent = metadata.name; @@ -2811,7 +2834,7 @@ module.exports = class PocketBird extends Plugin { const spacer = document.createElement("div"); spacer.style.height = "0.3em"; - const descText = document.createTextNode(metadata.description); + const descText = document.createTextNode(!unlocked ? "Not yet unlocked" : metadata.description); const fragment = document.createDocumentFragment(); fragment.appendChild(boldName); @@ -2823,6 +2846,7 @@ module.exports = class PocketBird extends Plugin { description.appendChild(generateDescription(currentHat)); for (const hat of Object.values(HAT)) { + const unlocked = unlockedHats.includes(hat); const hatElement = makeElement("birb-grid-item"); if (hat === currentHat) { hatElement.classList.add("birb-grid-item-selected"); @@ -2834,7 +2858,6 @@ module.exports = class PocketBird extends Plugin { if (!hatCtx) { return; } - console.log(hat); birb.getFrames().base.draw( hatCtx, Directions.RIGHT, @@ -2844,7 +2867,7 @@ module.exports = class PocketBird extends Plugin { ); hatElement.appendChild(hatCanvas); content.appendChild(hatElement); - { + if (unlocked) { onClick(hatElement, () => { switchHat(hat); document.querySelectorAll(".birb-grid-item").forEach((element) => { @@ -2852,6 +2875,8 @@ module.exports = class PocketBird extends Plugin { }); hatElement.classList.add("birb-grid-item-selected"); }); + } else { + hatElement.classList.add("birb-grid-item-locked"); } hatElement.addEventListener("mouseover", () => { description.textContent = ""; @@ -2886,7 +2911,6 @@ module.exports = class PocketBird extends Plugin { * @param {string} hat */ function switchHat(hat) { - log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 21b9da3..83a501f 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -1609,6 +1609,7 @@ * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string[]} unlockedHats * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] @@ -1681,14 +1682,14 @@ bottom: 0; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; - transition-duration: 0.2s; + transition-duration: 0.15s; z-index: 2147483630 !important; cursor: pointer; } .birb-item:hover { - transform: scale(calc(var(--birb-scale) * 2)) !important; - transition-duration: 0.2s; + transform: scale(calc(var(--birb-scale) * 1.9)) !important; + transition-duration: 0.15s; } .birb-window { @@ -2127,6 +2128,9 @@ for (let type in SPECIES) { unlockBird(type); } + for (let hat in HAT) { + unlockHat(HAT[hat]); + } }), new DebugMenuItem("Add Feather", () => { activateFeather(); @@ -2195,6 +2199,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let unlockedHats = [DEFAULT_HAT]; let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; @@ -2214,6 +2219,7 @@ userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + unlockedHats = saveData.unlockedHats ?? [DEFAULT_HAT]; currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; @@ -2235,6 +2241,7 @@ const saveData = { unlockedSpecies: unlockedSpecies, currentSpecies: currentSpecies, + unlockedHats: unlockedHats, currentHat: currentHat, settings: userSettings }; @@ -2537,9 +2544,13 @@ if (document.querySelector("#" + HAT_ID)) { return; } - // Select a random hat - const hats = Object.values(HAT); - const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; + // Select a random hat that hasn't been unlocked yet + const availableHats = Object.values(HAT) + .filter(hat => hat !== HAT.NONE && !unlockedHats.includes(hat)); + if (availableHats.length === 0) { + return; + } + const hatId = availableHats[Math.floor(Math.random() * availableHats.length)]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -2558,15 +2569,8 @@ return; } onClick(hatCanvas, () => { - switchHat(hatId); + unlockHat(hatId); hatCanvas.remove(); - const message = makeElement("birb-message-content"); - message.appendChild(document.createTextNode("You've unlocked the ")); - const bold = document.createElement("b"); - bold.textContent = HAT_METADATA[hatId].name; - message.appendChild(bold); - message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); - insertModal("New Hat Found!", message); }); // Create hat animation @@ -2588,6 +2592,7 @@ function unlockBird(birdType) { if (!unlockedSpecies.includes(birdType)) { unlockedSpecies.push(birdType); + save(); const message = makeElement("birb-message-content"); message.appendChild(document.createTextNode("You've found a ")); const bold = document.createElement("b"); @@ -2596,7 +2601,24 @@ message.appendChild(document.createTextNode(" feather! Use the Field Guide to switch your bird's species.")); insertModal("New Bird Unlocked!", message); } - save(); + } + + /** + * @param {string} hatId + */ + function unlockHat(hatId) { + if (!unlockedHats.includes(hatId)) { + unlockedHats.push(hatId); + save(); + switchHat(hatId); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + } } function updateFeather() { @@ -2766,6 +2788,7 @@ const generateDescription = (/** @type {string} */ hat) => { const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + const unlocked = unlockedHats.includes(hat); const boldName = document.createElement("b"); boldName.textContent = metadata.name; @@ -2773,7 +2796,7 @@ const spacer = document.createElement("div"); spacer.style.height = "0.3em"; - const descText = document.createTextNode(metadata.description); + const descText = document.createTextNode(!unlocked ? "Not yet unlocked" : metadata.description); const fragment = document.createDocumentFragment(); fragment.appendChild(boldName); @@ -2785,6 +2808,7 @@ description.appendChild(generateDescription(currentHat)); for (const hat of Object.values(HAT)) { + const unlocked = unlockedHats.includes(hat); const hatElement = makeElement("birb-grid-item"); if (hat === currentHat) { hatElement.classList.add("birb-grid-item-selected"); @@ -2796,7 +2820,6 @@ if (!hatCtx) { return; } - console.log(hat); birb.getFrames().base.draw( hatCtx, Directions.RIGHT, @@ -2806,7 +2829,7 @@ ); hatElement.appendChild(hatCanvas); content.appendChild(hatElement); - { + if (unlocked) { onClick(hatElement, () => { switchHat(hat); document.querySelectorAll(".birb-grid-item").forEach((element) => { @@ -2814,6 +2837,8 @@ }); hatElement.classList.add("birb-grid-item-selected"); }); + } else { + hatElement.classList.add("birb-grid-item-locked"); } hatElement.addEventListener("mouseover", () => { description.textContent = ""; @@ -2848,7 +2873,6 @@ * @param {string} hat */ function switchHat(hat) { - log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 43eb0bb..9520421 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -1589,6 +1589,7 @@ * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string[]} unlockedHats * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] @@ -1661,14 +1662,14 @@ bottom: 0; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; - transition-duration: 0.2s; + transition-duration: 0.15s; z-index: 2147483630 !important; cursor: pointer; } .birb-item:hover { - transform: scale(calc(var(--birb-scale) * 2)) !important; - transition-duration: 0.2s; + transform: scale(calc(var(--birb-scale) * 1.9)) !important; + transition-duration: 0.15s; } .birb-window { @@ -2107,6 +2108,9 @@ for (let type in SPECIES) { unlockBird(type); } + for (let hat in HAT) { + unlockHat(HAT[hat]); + } }), new DebugMenuItem("Add Feather", () => { activateFeather(); @@ -2175,6 +2179,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let unlockedHats = [DEFAULT_HAT]; let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; @@ -2194,6 +2199,7 @@ userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + unlockedHats = saveData.unlockedHats ?? [DEFAULT_HAT]; currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; @@ -2215,6 +2221,7 @@ const saveData = { unlockedSpecies: unlockedSpecies, currentSpecies: currentSpecies, + unlockedHats: unlockedHats, currentHat: currentHat, settings: userSettings }; @@ -2517,9 +2524,13 @@ if (document.querySelector("#" + HAT_ID)) { return; } - // Select a random hat - const hats = Object.values(HAT); - const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; + // Select a random hat that hasn't been unlocked yet + const availableHats = Object.values(HAT) + .filter(hat => hat !== HAT.NONE && !unlockedHats.includes(hat)); + if (availableHats.length === 0) { + return; + } + const hatId = availableHats[Math.floor(Math.random() * availableHats.length)]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -2538,15 +2549,8 @@ return; } onClick(hatCanvas, () => { - switchHat(hatId); + unlockHat(hatId); hatCanvas.remove(); - const message = makeElement("birb-message-content"); - message.appendChild(document.createTextNode("You've unlocked the ")); - const bold = document.createElement("b"); - bold.textContent = HAT_METADATA[hatId].name; - message.appendChild(bold); - message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); - insertModal("New Hat Found!", message); }); // Create hat animation @@ -2568,6 +2572,7 @@ function unlockBird(birdType) { if (!unlockedSpecies.includes(birdType)) { unlockedSpecies.push(birdType); + save(); const message = makeElement("birb-message-content"); message.appendChild(document.createTextNode("You've found a ")); const bold = document.createElement("b"); @@ -2576,7 +2581,24 @@ message.appendChild(document.createTextNode(" feather! Use the Field Guide to switch your bird's species.")); insertModal("New Bird Unlocked!", message); } - save(); + } + + /** + * @param {string} hatId + */ + function unlockHat(hatId) { + if (!unlockedHats.includes(hatId)) { + unlockedHats.push(hatId); + save(); + switchHat(hatId); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + } } function updateFeather() { @@ -2746,6 +2768,7 @@ const generateDescription = (/** @type {string} */ hat) => { const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + const unlocked = unlockedHats.includes(hat); const boldName = document.createElement("b"); boldName.textContent = metadata.name; @@ -2753,7 +2776,7 @@ const spacer = document.createElement("div"); spacer.style.height = "0.3em"; - const descText = document.createTextNode(metadata.description); + const descText = document.createTextNode(!unlocked ? "Not yet unlocked" : metadata.description); const fragment = document.createDocumentFragment(); fragment.appendChild(boldName); @@ -2765,6 +2788,7 @@ description.appendChild(generateDescription(currentHat)); for (const hat of Object.values(HAT)) { + const unlocked = unlockedHats.includes(hat); const hatElement = makeElement("birb-grid-item"); if (hat === currentHat) { hatElement.classList.add("birb-grid-item-selected"); @@ -2776,7 +2800,6 @@ if (!hatCtx) { return; } - console.log(hat); birb.getFrames().base.draw( hatCtx, Directions.RIGHT, @@ -2786,7 +2809,7 @@ ); hatElement.appendChild(hatCanvas); content.appendChild(hatElement); - { + if (unlocked) { onClick(hatElement, () => { switchHat(hat); document.querySelectorAll(".birb-grid-item").forEach((element) => { @@ -2794,6 +2817,8 @@ }); hatElement.classList.add("birb-grid-item-selected"); }); + } else { + hatElement.classList.add("birb-grid-item-locked"); } hatElement.addEventListener("mouseover", () => { description.textContent = ""; @@ -2828,7 +2853,6 @@ * @param {string} hat */ function switchHat(hat) { - log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/dist/web/birb.js b/dist/web/birb.js index 43eb0bb..9520421 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -1589,6 +1589,7 @@ * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string[]} unlockedHats * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] @@ -1661,14 +1662,14 @@ bottom: 0; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; - transition-duration: 0.2s; + transition-duration: 0.15s; z-index: 2147483630 !important; cursor: pointer; } .birb-item:hover { - transform: scale(calc(var(--birb-scale) * 2)) !important; - transition-duration: 0.2s; + transform: scale(calc(var(--birb-scale) * 1.9)) !important; + transition-duration: 0.15s; } .birb-window { @@ -2107,6 +2108,9 @@ for (let type in SPECIES) { unlockBird(type); } + for (let hat in HAT) { + unlockHat(HAT[hat]); + } }), new DebugMenuItem("Add Feather", () => { activateFeather(); @@ -2175,6 +2179,7 @@ let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let unlockedHats = [DEFAULT_HAT]; let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; @@ -2194,6 +2199,7 @@ userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + unlockedHats = saveData.unlockedHats ?? [DEFAULT_HAT]; currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; @@ -2215,6 +2221,7 @@ const saveData = { unlockedSpecies: unlockedSpecies, currentSpecies: currentSpecies, + unlockedHats: unlockedHats, currentHat: currentHat, settings: userSettings }; @@ -2517,9 +2524,13 @@ if (document.querySelector("#" + HAT_ID)) { return; } - // Select a random hat - const hats = Object.values(HAT); - const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; + // Select a random hat that hasn't been unlocked yet + const availableHats = Object.values(HAT) + .filter(hat => hat !== HAT.NONE && !unlockedHats.includes(hat)); + if (availableHats.length === 0) { + return; + } + const hatId = availableHats[Math.floor(Math.random() * availableHats.length)]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -2538,15 +2549,8 @@ return; } onClick(hatCanvas, () => { - switchHat(hatId); + unlockHat(hatId); hatCanvas.remove(); - const message = makeElement("birb-message-content"); - message.appendChild(document.createTextNode("You've unlocked the ")); - const bold = document.createElement("b"); - bold.textContent = HAT_METADATA[hatId].name; - message.appendChild(bold); - message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); - insertModal("New Hat Found!", message); }); // Create hat animation @@ -2568,6 +2572,7 @@ function unlockBird(birdType) { if (!unlockedSpecies.includes(birdType)) { unlockedSpecies.push(birdType); + save(); const message = makeElement("birb-message-content"); message.appendChild(document.createTextNode("You've found a ")); const bold = document.createElement("b"); @@ -2576,7 +2581,24 @@ message.appendChild(document.createTextNode(" feather! Use the Field Guide to switch your bird's species.")); insertModal("New Bird Unlocked!", message); } - save(); + } + + /** + * @param {string} hatId + */ + function unlockHat(hatId) { + if (!unlockedHats.includes(hatId)) { + unlockedHats.push(hatId); + save(); + switchHat(hatId); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + } } function updateFeather() { @@ -2746,6 +2768,7 @@ const generateDescription = (/** @type {string} */ hat) => { const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; + const unlocked = unlockedHats.includes(hat); const boldName = document.createElement("b"); boldName.textContent = metadata.name; @@ -2753,7 +2776,7 @@ const spacer = document.createElement("div"); spacer.style.height = "0.3em"; - const descText = document.createTextNode(metadata.description); + const descText = document.createTextNode(!unlocked ? "Not yet unlocked" : metadata.description); const fragment = document.createDocumentFragment(); fragment.appendChild(boldName); @@ -2765,6 +2788,7 @@ description.appendChild(generateDescription(currentHat)); for (const hat of Object.values(HAT)) { + const unlocked = unlockedHats.includes(hat); const hatElement = makeElement("birb-grid-item"); if (hat === currentHat) { hatElement.classList.add("birb-grid-item-selected"); @@ -2776,7 +2800,6 @@ if (!hatCtx) { return; } - console.log(hat); birb.getFrames().base.draw( hatCtx, Directions.RIGHT, @@ -2786,7 +2809,7 @@ ); hatElement.appendChild(hatCanvas); content.appendChild(hatElement); - { + if (unlocked) { onClick(hatElement, () => { switchHat(hat); document.querySelectorAll(".birb-grid-item").forEach((element) => { @@ -2794,6 +2817,8 @@ }); hatElement.classList.add("birb-grid-item-selected"); }); + } else { + hatElement.classList.add("birb-grid-item-locked"); } hatElement.addEventListener("mouseover", () => { description.textContent = ""; @@ -2828,7 +2853,6 @@ * @param {string} hat */ function switchHat(hat) { - log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/src/application.js b/src/application.js index 6c3273e..d136947 100644 --- a/src/application.js +++ b/src/application.js @@ -54,6 +54,7 @@ import { HAT, HAT_METADATA, createHatItemAnimation } from './hats.js'; * @typedef {Object} BirbSaveData * @property {string[]} unlockedSpecies * @property {string} currentSpecies + * @property {string[]} unlockedHats * @property {string} currentHat * @property {Partial} settings * @property {SavedStickyNote[]} [stickyNotes] @@ -174,6 +175,9 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { for (let type in SPECIES) { unlockBird(type); } + for (let hat in HAT) { + unlockHat(HAT[hat]); + } }), new DebugMenuItem("Add Feather", () => { activateFeather(); @@ -242,6 +246,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { let petStack = []; let currentSpecies = DEFAULT_BIRD; let unlockedSpecies = [DEFAULT_BIRD]; + let unlockedHats = [DEFAULT_HAT]; let currentHat = DEFAULT_HAT; // let visible = true; let lastPetTimestamp = 0; @@ -261,6 +266,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { userSettings = saveData.settings ?? {}; unlockedSpecies = saveData.unlockedSpecies ?? [DEFAULT_BIRD]; currentSpecies = saveData.currentSpecies ?? DEFAULT_BIRD; + unlockedHats = saveData.unlockedHats ?? [DEFAULT_HAT]; currentHat = saveData.currentHat ?? DEFAULT_HAT; stickyNotes = []; @@ -282,6 +288,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { const saveData = { unlockedSpecies: unlockedSpecies, currentSpecies: currentSpecies, + unlockedHats: unlockedHats, currentHat: currentHat, settings: userSettings }; @@ -587,9 +594,13 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { if (document.querySelector("#" + HAT_ID)) { return; } - // Select a random hat - const hats = Object.values(HAT); - const hatId = hats[Math.floor(Math.random() * (hats.length - 1)) + 1]; + // Select a random hat that hasn't been unlocked yet + const availableHats = Object.values(HAT) + .filter(hat => hat !== HAT.NONE && !unlockedHats.includes(hat)); + if (availableHats.length === 0) { + return; + } + const hatId = availableHats[Math.floor(Math.random() * availableHats.length)]; // Find a random valid element to place the hat on const element = getRandomValidElement(); @@ -608,15 +619,8 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { return; } onClick(hatCanvas, () => { - switchHat(hatId); + unlockHat(hatId); hatCanvas.remove(); - const message = makeElement("birb-message-content"); - message.appendChild(document.createTextNode("You've unlocked the ")); - const bold = document.createElement("b"); - bold.textContent = HAT_METADATA[hatId].name; - message.appendChild(bold); - message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); - insertModal("New Hat Found!", message); }); // Create hat animation @@ -638,6 +642,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { function unlockBird(birdType) { if (!unlockedSpecies.includes(birdType)) { unlockedSpecies.push(birdType); + save(); const message = makeElement("birb-message-content"); message.appendChild(document.createTextNode("You've found a ")); const bold = document.createElement("b"); @@ -646,7 +651,24 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { message.appendChild(document.createTextNode(" feather! Use the Field Guide to switch your bird's species.")); insertModal("New Bird Unlocked!", message); } - save(); + } + + /** + * @param {string} hatId + */ + function unlockHat(hatId) { + if (!unlockedHats.includes(hatId)) { + unlockedHats.push(hatId); + save(); + switchHat(hatId); + const message = makeElement("birb-message-content"); + message.appendChild(document.createTextNode("You've unlocked the ")); + const bold = document.createElement("b"); + bold.textContent = HAT_METADATA[hatId].name; + message.appendChild(bold); + message.appendChild(document.createTextNode("! To see all of your unlocked accessories, click the Wardrobe from the menu.")); + insertModal("New Hat Found!", message); + } } function updateFeather() { @@ -817,7 +839,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { const generateDescription = (/** @type {string} */ hat) => { const metadata = HAT_METADATA[hat] ?? { name: "Unknown Hat", description: "todo" }; - const unlocked = true; + const unlocked = unlockedHats.includes(hat); const boldName = document.createElement("b"); boldName.textContent = metadata.name; @@ -837,7 +859,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { description.appendChild(generateDescription(currentHat)); for (const hat of Object.values(HAT)) { - const unlocked = true; + const unlocked = unlockedHats.includes(hat); const hatElement = makeElement("birb-grid-item"); if (hat === currentHat) { hatElement.classList.add("birb-grid-item-selected"); @@ -849,7 +871,6 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { if (!hatCtx) { return; } - console.log(hat); birb.getFrames().base.draw( hatCtx, Directions.RIGHT, @@ -903,7 +924,6 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { * @param {string} hat */ function switchHat(hat) { - log("Switching hat to: " + hat); currentHat = hat; save(); } diff --git a/src/stylesheet.css b/src/stylesheet.css index 4ea5aab..8fdc58c 100644 --- a/src/stylesheet.css +++ b/src/stylesheet.css @@ -47,14 +47,14 @@ bottom: 0; transform: scale(calc(var(--birb-scale) * 1.5)) !important; transform-origin: bottom; - transition-duration: 0.2s; + transition-duration: 0.15s; z-index: 2147483630 !important; cursor: pointer; } .birb-item:hover { - transform: scale(calc(var(--birb-scale) * 2)) !important; - transition-duration: 0.2s; + transform: scale(calc(var(--birb-scale) * 1.9)) !important; + transition-duration: 0.15s; } .birb-window { From 5e04727a1b019c677c7a40ae33c75b4c8b1e3906 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Wed, 21 Jan 2026 23:23:00 -0500 Subject: [PATCH 19/24] Use chance to determine hat unlocks and add heart to menu title --- dist/extension.zip | Bin 154352 -> 154531 bytes dist/extension/birb.js | 30 ++++++++++++++++++++++++------ dist/obsidian/main.js | 30 ++++++++++++++++++++++++------ dist/userscript/birb.user.js | 30 ++++++++++++++++++++++++------ dist/web/birb.embed.js | 30 ++++++++++++++++++++++++------ dist/web/birb.js | 30 ++++++++++++++++++++++++------ src/application.js | 30 ++++++++++++++++++++++++------ 7 files changed, 144 insertions(+), 36 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index 72e789a786483892ebbadfa19918875aefbd7579..70fc7357cdf908fa4499a71446505b702b222449 100644 GIT binary patch delta 31058 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 delta 30866 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 `2026.1.21 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), + new MenuItem(() => `2026.1.22 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), ]; const styleElement = document.createElement("style"); @@ -2348,24 +2349,12 @@ log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); - determineHatUnlock(); } }, URL_CHECK_INTERVAL); setInterval(update, UPDATE_INTERVAL); focusOnElement(true); - - determineHatUnlock(); - } - - function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { - insertHat(); - } else if (location.hostname === "127.0.0.1") { - log("Inserting hat for debug purposes"); - insertHat(); - } } function update() { @@ -2398,12 +2387,17 @@ } } - // Double the chance of a feather if recently pet - const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; - if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { - lastPetTimestamp = 0; - activateFeather(); + if (birb.isVisible() && Date.now() - lastActionTimestamp < SUPER_AFK_TIME) { + if (Math.random() < FEATHER_CHANCE * (isPetBoostActive() ? PET_FEATHER_BOOST : 1)) { + lastPetTimestamp = 0; + activateFeather(); + } + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + lastPetTimestamp = 0; + insertHat(); + } } + updateFeather(); } diff --git a/dist/extension/manifest.json b/dist/extension/manifest.json index 283d052..513ec61 100644 --- a/dist/extension/manifest.json +++ b/dist/extension/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Pocket Bird", "description": "It's a pet bird in your browser, what more could you want?", - "version": "2026.1.21", + "version": "2026.1.22", "homepage_url": "https://idreesinc.com", "icons": { "48": "images/icons/transparent/48x48x1.png", diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 27c4caf..21b0df1 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -1,7 +1,7 @@ const { Plugin, Notice } = require('obsidian'); module.exports = class PocketBird extends Plugin { onload() { - console.log("Loading Pocket Bird version 2026.1.21..."); + console.log("Loading Pocket Bird version 2026.1.22..."); const OBSIDIAN_PLUGIN = this; (function () { 'use strict'; @@ -2090,7 +2090,8 @@ module.exports = class PocketBird extends Plugin { // Timing constants (in milliseconds) const UPDATE_INTERVAL = 1000 / 60; // 60 FPS - const AFK_TIME = isDebug() ? 0 : 1000 * 5; + const AFK_TIME = isDebug() ? 0 : 1000 * 5; // 5 seconds + const SUPER_AFK_TIME = 1000 * 60 * 60; // 1 hour const PET_MENU_COOLDOWN = 1000; const URL_CHECK_INTERVAL = 150; const HOP_DELAY = 500; @@ -2099,7 +2100,7 @@ module.exports = class PocketBird extends Plugin { const HOP_CHANCE = 1 / (60 * 2.5); // Every 2.5 seconds const FOCUS_SWITCH_CHANCE = 1 / (60 * 20); // Every 20 seconds const FEATHER_CHANCE = 1 / (60 * 60 * 60 * 2); // Every 2 hours - const HAT_CHANCE = 1 / 50; // Every 50 webpages + const HAT_CHANCE = 1 / (60 * 60 * 10); // Every 10 minutes // Feathers const FEATHER_FALL_SPEED = 1; @@ -2204,7 +2205,7 @@ module.exports = class PocketBird extends Plugin { insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem(() => `2026.1.21 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), + new MenuItem(() => `2026.1.22 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), ]; const styleElement = document.createElement("style"); @@ -2391,24 +2392,12 @@ module.exports = class PocketBird extends Plugin { log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); - determineHatUnlock(); } }, URL_CHECK_INTERVAL); setInterval(update, UPDATE_INTERVAL); focusOnElement(true); - - determineHatUnlock(); - } - - function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { - insertHat(); - } else if (location.hostname === "127.0.0.1") { - log("Inserting hat for debug purposes"); - insertHat(); - } } function update() { @@ -2441,12 +2430,17 @@ module.exports = class PocketBird extends Plugin { } } - // Double the chance of a feather if recently pet - const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; - if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { - lastPetTimestamp = 0; - activateFeather(); + if (birb.isVisible() && Date.now() - lastActionTimestamp < SUPER_AFK_TIME) { + if (Math.random() < FEATHER_CHANCE * (isPetBoostActive() ? PET_FEATHER_BOOST : 1)) { + lastPetTimestamp = 0; + activateFeather(); + } + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + lastPetTimestamp = 0; + insertHat(); + } } + updateFeather(); } diff --git a/dist/obsidian/manifest.json b/dist/obsidian/manifest.json index 662f18c..ccb99fe 100644 --- a/dist/obsidian/manifest.json +++ b/dist/obsidian/manifest.json @@ -1,7 +1,7 @@ { "id": "pocket-bird", "name": "Pocket Bird", - "version": "2026.1.21", + "version": "2026.1.22", "minAppVersion": "0.15.0", "description": "Add a pet bird to fly around your notes and keep you company!", "author": "Idrees Hassan", diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 15c2968..5166bdf 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Pocket Bird // @namespace https://idreesinc.com -// @version 2026.1.21 +// @version 2026.1.22 // @description It's a pet bird in your browser, what more could you want? // @author Idrees // @downloadURL https://github.com/IdreesInc/Pocket-Bird/raw/refs/heads/main/dist/userscript/birb.user.js @@ -2052,7 +2052,8 @@ // Timing constants (in milliseconds) const UPDATE_INTERVAL = 1000 / 60; // 60 FPS - const AFK_TIME = isDebug() ? 0 : 1000 * 5; + const AFK_TIME = isDebug() ? 0 : 1000 * 5; // 5 seconds + const SUPER_AFK_TIME = 1000 * 60 * 60; // 1 hour const PET_MENU_COOLDOWN = 1000; const URL_CHECK_INTERVAL = 150; const HOP_DELAY = 500; @@ -2061,7 +2062,7 @@ const HOP_CHANCE = 1 / (60 * 2.5); // Every 2.5 seconds const FOCUS_SWITCH_CHANCE = 1 / (60 * 20); // Every 20 seconds const FEATHER_CHANCE = 1 / (60 * 60 * 60 * 2); // Every 2 hours - const HAT_CHANCE = 1 / 50; // Every 50 webpages + const HAT_CHANCE = 1 / (60 * 60 * 10); // Every 10 minutes // Feathers const FEATHER_FALL_SPEED = 1; @@ -2166,7 +2167,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem(() => `2026.1.21 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), + new MenuItem(() => `2026.1.22 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), ]; const styleElement = document.createElement("style"); @@ -2353,24 +2354,12 @@ log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); - determineHatUnlock(); } }, URL_CHECK_INTERVAL); setInterval(update, UPDATE_INTERVAL); focusOnElement(true); - - determineHatUnlock(); - } - - function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { - insertHat(); - } else if (location.hostname === "127.0.0.1") { - log("Inserting hat for debug purposes"); - insertHat(); - } } function update() { @@ -2403,12 +2392,17 @@ } } - // Double the chance of a feather if recently pet - const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; - if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { - lastPetTimestamp = 0; - activateFeather(); + if (birb.isVisible() && Date.now() - lastActionTimestamp < SUPER_AFK_TIME) { + if (Math.random() < FEATHER_CHANCE * (isPetBoostActive() ? PET_FEATHER_BOOST : 1)) { + lastPetTimestamp = 0; + activateFeather(); + } + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + lastPetTimestamp = 0; + insertHat(); + } } + updateFeather(); } diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 1ad390a..819856e 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -2032,7 +2032,8 @@ // Timing constants (in milliseconds) const UPDATE_INTERVAL = 1000 / 60; // 60 FPS - const AFK_TIME = isDebug() ? 0 : 1000 * 5; + const AFK_TIME = isDebug() ? 0 : 1000 * 5; // 5 seconds + const SUPER_AFK_TIME = 1000 * 60 * 60; // 1 hour const PET_MENU_COOLDOWN = 1000; const URL_CHECK_INTERVAL = 150; const HOP_DELAY = 500; @@ -2041,7 +2042,7 @@ const HOP_CHANCE = 1 / (60 * 2.5); // Every 2.5 seconds const FOCUS_SWITCH_CHANCE = 1 / (60 * 20); // Every 20 seconds const FEATHER_CHANCE = 1 / (60 * 60 * 60 * 2); // Every 2 hours - const HAT_CHANCE = 1 / 50; // Every 50 webpages + const HAT_CHANCE = 1 / (60 * 60 * 10); // Every 10 minutes // Feathers const FEATHER_FALL_SPEED = 1; @@ -2146,7 +2147,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem(() => `2026.1.21 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), + new MenuItem(() => `2026.1.22 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), ]; const styleElement = document.createElement("style"); @@ -2333,24 +2334,12 @@ log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); - determineHatUnlock(); } }, URL_CHECK_INTERVAL); setInterval(update, UPDATE_INTERVAL); focusOnElement(true); - - determineHatUnlock(); - } - - function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { - insertHat(); - } else if (location.hostname === "127.0.0.1") { - log("Inserting hat for debug purposes"); - insertHat(); - } } function update() { @@ -2383,12 +2372,17 @@ } } - // Double the chance of a feather if recently pet - const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; - if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { - lastPetTimestamp = 0; - activateFeather(); + if (birb.isVisible() && Date.now() - lastActionTimestamp < SUPER_AFK_TIME) { + if (Math.random() < FEATHER_CHANCE * (isPetBoostActive() ? PET_FEATHER_BOOST : 1)) { + lastPetTimestamp = 0; + activateFeather(); + } + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + lastPetTimestamp = 0; + insertHat(); + } } + updateFeather(); } diff --git a/dist/web/birb.js b/dist/web/birb.js index 1ad390a..819856e 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -2032,7 +2032,8 @@ // Timing constants (in milliseconds) const UPDATE_INTERVAL = 1000 / 60; // 60 FPS - const AFK_TIME = isDebug() ? 0 : 1000 * 5; + const AFK_TIME = isDebug() ? 0 : 1000 * 5; // 5 seconds + const SUPER_AFK_TIME = 1000 * 60 * 60; // 1 hour const PET_MENU_COOLDOWN = 1000; const URL_CHECK_INTERVAL = 150; const HOP_DELAY = 500; @@ -2041,7 +2042,7 @@ const HOP_CHANCE = 1 / (60 * 2.5); // Every 2.5 seconds const FOCUS_SWITCH_CHANCE = 1 / (60 * 20); // Every 20 seconds const FEATHER_CHANCE = 1 / (60 * 60 * 60 * 2); // Every 2 hours - const HAT_CHANCE = 1 / 50; // Every 50 webpages + const HAT_CHANCE = 1 / (60 * 60 * 10); // Every 10 minutes // Feathers const FEATHER_FALL_SPEED = 1; @@ -2146,7 +2147,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem(() => `2026.1.21 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), + new MenuItem(() => `2026.1.22 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), ]; const styleElement = document.createElement("style"); @@ -2333,24 +2334,12 @@ log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); - determineHatUnlock(); } }, URL_CHECK_INTERVAL); setInterval(update, UPDATE_INTERVAL); focusOnElement(true); - - determineHatUnlock(); - } - - function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { - insertHat(); - } else if (location.hostname === "127.0.0.1") { - log("Inserting hat for debug purposes"); - insertHat(); - } } function update() { @@ -2383,12 +2372,17 @@ } } - // Double the chance of a feather if recently pet - const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; - if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { - lastPetTimestamp = 0; - activateFeather(); + if (birb.isVisible() && Date.now() - lastActionTimestamp < SUPER_AFK_TIME) { + if (Math.random() < FEATHER_CHANCE * (isPetBoostActive() ? PET_FEATHER_BOOST : 1)) { + lastPetTimestamp = 0; + activateFeather(); + } + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + lastPetTimestamp = 0; + insertHat(); + } } + updateFeather(); } diff --git a/src/application.js b/src/application.js index 14ea0c6..c0ae3aa 100644 --- a/src/application.js +++ b/src/application.js @@ -99,7 +99,8 @@ const HOP_DISTANCE = 35; // Timing constants (in milliseconds) const UPDATE_INTERVAL = 1000 / 60; // 60 FPS -const AFK_TIME = isDebug() ? 0 : 1000 * 5; +const AFK_TIME = isDebug() ? 0 : 1000 * 5; // 5 seconds +const SUPER_AFK_TIME = 1000 * 60 * 60; // 1 hour const PET_MENU_COOLDOWN = 1000; const URL_CHECK_INTERVAL = 150; const HOP_DELAY = 500; @@ -108,7 +109,7 @@ const HOP_DELAY = 500; const HOP_CHANCE = 1 / (60 * 2.5); // Every 2.5 seconds const FOCUS_SWITCH_CHANCE = 1 / (60 * 20); // Every 20 seconds const FEATHER_CHANCE = 1 / (60 * 60 * 60 * 2); // Every 2 hours -const HAT_CHANCE = 1 / 50; // Every 50 webpages +const HAT_CHANCE = 1 / (60 * 60 * 10); // Every 10 minutes // Feathers const FEATHER_FALL_SPEED = 1; @@ -400,24 +401,12 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); - determineHatUnlock(); } }, URL_CHECK_INTERVAL); setInterval(update, UPDATE_INTERVAL); focusOnElement(true); - - determineHatUnlock(); - } - - function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { - insertHat(); - } else if (location.hostname === "127.0.0.1") { - log("Inserting hat for debug purposes"); - insertHat(); - } } function update() { @@ -450,12 +439,17 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { } } - // Double the chance of a feather if recently pet - const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; - if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { - lastPetTimestamp = 0; - activateFeather(); + if (birb.isVisible() && Date.now() - lastActionTimestamp < SUPER_AFK_TIME) { + if (Math.random() < FEATHER_CHANCE * (isPetBoostActive() ? PET_FEATHER_BOOST : 1)) { + lastPetTimestamp = 0; + activateFeather(); + } + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + lastPetTimestamp = 0; + insertHat(); + } } + updateFeather(); } From a3a09c68191ee8f1c6267655ec5484e8e3eede4a Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Thu, 22 Jan 2026 18:50:43 -0500 Subject: [PATCH 24/24] Add source code link to menu --- dist/extension.zip | Bin 154462 -> 154503 bytes dist/extension/birb.js | 3 ++- dist/obsidian/main.js | 3 ++- dist/userscript/birb.user.js | 3 ++- dist/web/birb.embed.js | 3 ++- dist/web/birb.js | 3 ++- src/application.js | 3 ++- 7 files changed, 12 insertions(+), 6 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index 771fd95a77d2ebbf4b7dc72829e7fe0c858aa555..f45fb5f976474f5302c76aad82b1079e8d29526e 100644 GIT binary patch delta 24449 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

U41w0*hbK!JR&O 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 delta 24468 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 diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 2494b44..8bd6fb6 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -2162,7 +2162,8 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem(() => `2026.1.22 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), + new MenuItem(() => `Source Code ${isPetBoostActive() ? " ❤" : ""}`, () => { window.open("https://github.com/IdreesInc/Pocket-Bird"); }), + new MenuItem("2026.1.22", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 21b0df1..d2eca2d 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -2205,7 +2205,8 @@ module.exports = class PocketBird extends Plugin { insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem(() => `2026.1.22 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), + new MenuItem(() => `Source Code ${isPetBoostActive() ? " ❤" : ""}`, () => { window.open("https://github.com/IdreesInc/Pocket-Bird"); }), + new MenuItem("2026.1.22", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 5166bdf..c8b7351 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -2167,7 +2167,8 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem(() => `2026.1.22 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), + new MenuItem(() => `Source Code ${isPetBoostActive() ? " ❤" : ""}`, () => { window.open("https://github.com/IdreesInc/Pocket-Bird"); }), + new MenuItem("2026.1.22", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 819856e..153c9a5 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -2147,7 +2147,8 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem(() => `2026.1.22 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), + new MenuItem(() => `Source Code ${isPetBoostActive() ? " ❤" : ""}`, () => { window.open("https://github.com/IdreesInc/Pocket-Bird"); }), + new MenuItem("2026.1.22", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/dist/web/birb.js b/dist/web/birb.js index 819856e..153c9a5 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -2147,7 +2147,8 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem(() => `2026.1.22 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), + new MenuItem(() => `Source Code ${isPetBoostActive() ? " ❤" : ""}`, () => { window.open("https://github.com/IdreesInc/Pocket-Bird"); }), + new MenuItem("2026.1.22", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.22"); }, false), ]; const styleElement = document.createElement("style"); diff --git a/src/application.js b/src/application.js index c0ae3aa..879b8d0 100644 --- a/src/application.js +++ b/src/application.js @@ -214,7 +214,8 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem(() => `__VERSION__ ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: __VERSION__") }, false), + new MenuItem(() => `Source Code ${isPetBoostActive() ? " ❤" : ""}`, () => { window.open("https://github.com/IdreesInc/Pocket-Bird"); }), + new MenuItem("__VERSION__", () => { alert("Thank you for using Pocket Bird! You are on version: __VERSION__") }, false), ]; const styleElement = document.createElement("style");

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 { @@ -2340,9 +2345,10 @@ setInterval(() => { const currentPath = getContext().getPath().split("?")[0]; if (currentPath !== lastPath) { - log("Path changed, updating sticky notes: " + currentPath); + log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); + determineHatUnlock(); } }, URL_CHECK_INTERVAL); @@ -2350,8 +2356,16 @@ focusOnElement(true); - // TODO: This is for testing - insertHat(); + determineHatUnlock(); + } + + function determineHatUnlock() { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + insertHat(); + } else if (location.hostname === "127.0.0.1") { + log("Inserting hat for debug purposes"); + insertHat(); + } } function update() { @@ -2385,7 +2399,7 @@ } // Double the chance of a feather if recently pet - const petMod = Date.now() - lastPetTimestamp < PET_BOOST_DURATION ? PET_FEATHER_BOOST : 1; + const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { lastPetTimestamp = 0; activateFeather(); @@ -3048,6 +3062,10 @@ } } + function isPetBoostActive() { + return Date.now() - lastPetTimestamp < PET_BOOST_DURATION; + } + /** * @param {number} x * @param {number} y diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 716ca26..75e4461 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -2091,7 +2091,6 @@ module.exports = class PocketBird extends Plugin { // Timing constants (in milliseconds) const UPDATE_INTERVAL = 1000 / 60; // 60 FPS const AFK_TIME = isDebug() ? 0 : 1000 * 5; - const PET_BOOST_DURATION = 1000 * 60 * 5; const PET_MENU_COOLDOWN = 1000; const URL_CHECK_INTERVAL = 150; const HOP_DELAY = 500; @@ -2100,10 +2099,15 @@ module.exports = class PocketBird extends Plugin { const HOP_CHANCE = 1 / (60 * 2.5); // Every 2.5 seconds const FOCUS_SWITCH_CHANCE = 1 / (60 * 20); // Every 20 seconds const FEATHER_CHANCE = 1 / (60 * 60 * 60 * 2); // Every 2 hours + const HAT_CHANCE = 1 / 50; // Every 50 webpages // Feathers const FEATHER_FALL_SPEED = 1; + + // Petting boosts + const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; + const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2354,7 +2358,8 @@ module.exports = class PocketBird extends Plugin { // Currently being pet, don't open menu return; } - insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); + + insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { @@ -2383,9 +2388,10 @@ module.exports = class PocketBird extends Plugin { setInterval(() => { const currentPath = getContext().getPath().split("?")[0]; if (currentPath !== lastPath) { - log("Path changed, updating sticky notes: " + currentPath); + log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); + determineHatUnlock(); } }, URL_CHECK_INTERVAL); @@ -2393,8 +2399,16 @@ module.exports = class PocketBird extends Plugin { focusOnElement(true); - // TODO: This is for testing - insertHat(); + determineHatUnlock(); + } + + function determineHatUnlock() { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + insertHat(); + } else if (location.hostname === "127.0.0.1") { + log("Inserting hat for debug purposes"); + insertHat(); + } } function update() { @@ -2428,7 +2442,7 @@ module.exports = class PocketBird extends Plugin { } // Double the chance of a feather if recently pet - const petMod = Date.now() - lastPetTimestamp < PET_BOOST_DURATION ? PET_FEATHER_BOOST : 1; + const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { lastPetTimestamp = 0; activateFeather(); @@ -3091,6 +3105,10 @@ module.exports = class PocketBird extends Plugin { } } + function isPetBoostActive() { + return Date.now() - lastPetTimestamp < PET_BOOST_DURATION; + } + /** * @param {number} x * @param {number} y diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 83a501f..c20e185 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -2053,7 +2053,6 @@ // Timing constants (in milliseconds) const UPDATE_INTERVAL = 1000 / 60; // 60 FPS const AFK_TIME = isDebug() ? 0 : 1000 * 5; - const PET_BOOST_DURATION = 1000 * 60 * 5; const PET_MENU_COOLDOWN = 1000; const URL_CHECK_INTERVAL = 150; const HOP_DELAY = 500; @@ -2062,10 +2061,15 @@ const HOP_CHANCE = 1 / (60 * 2.5); // Every 2.5 seconds const FOCUS_SWITCH_CHANCE = 1 / (60 * 20); // Every 20 seconds const FEATHER_CHANCE = 1 / (60 * 60 * 60 * 2); // Every 2 hours + const HAT_CHANCE = 1 / 50; // Every 50 webpages // Feathers const FEATHER_FALL_SPEED = 1; + + // Petting boosts + const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; + const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2316,7 +2320,8 @@ // Currently being pet, don't open menu return; } - insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); + + insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { @@ -2345,9 +2350,10 @@ setInterval(() => { const currentPath = getContext().getPath().split("?")[0]; if (currentPath !== lastPath) { - log("Path changed, updating sticky notes: " + currentPath); + log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); + determineHatUnlock(); } }, URL_CHECK_INTERVAL); @@ -2355,8 +2361,16 @@ focusOnElement(true); - // TODO: This is for testing - insertHat(); + determineHatUnlock(); + } + + function determineHatUnlock() { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + insertHat(); + } else if (location.hostname === "127.0.0.1") { + log("Inserting hat for debug purposes"); + insertHat(); + } } function update() { @@ -2390,7 +2404,7 @@ } // Double the chance of a feather if recently pet - const petMod = Date.now() - lastPetTimestamp < PET_BOOST_DURATION ? PET_FEATHER_BOOST : 1; + const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { lastPetTimestamp = 0; activateFeather(); @@ -3053,6 +3067,10 @@ } } + function isPetBoostActive() { + return Date.now() - lastPetTimestamp < PET_BOOST_DURATION; + } + /** * @param {number} x * @param {number} y diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 9520421..46f338b 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -2033,7 +2033,6 @@ // Timing constants (in milliseconds) const UPDATE_INTERVAL = 1000 / 60; // 60 FPS const AFK_TIME = isDebug() ? 0 : 1000 * 5; - const PET_BOOST_DURATION = 1000 * 60 * 5; const PET_MENU_COOLDOWN = 1000; const URL_CHECK_INTERVAL = 150; const HOP_DELAY = 500; @@ -2042,10 +2041,15 @@ const HOP_CHANCE = 1 / (60 * 2.5); // Every 2.5 seconds const FOCUS_SWITCH_CHANCE = 1 / (60 * 20); // Every 20 seconds const FEATHER_CHANCE = 1 / (60 * 60 * 60 * 2); // Every 2 hours + const HAT_CHANCE = 1 / 50; // Every 50 webpages // Feathers const FEATHER_FALL_SPEED = 1; + + // Petting boosts + const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; + const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2296,7 +2300,8 @@ // Currently being pet, don't open menu return; } - insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); + + insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { @@ -2325,9 +2330,10 @@ setInterval(() => { const currentPath = getContext().getPath().split("?")[0]; if (currentPath !== lastPath) { - log("Path changed, updating sticky notes: " + currentPath); + log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); + determineHatUnlock(); } }, URL_CHECK_INTERVAL); @@ -2335,8 +2341,16 @@ focusOnElement(true); - // TODO: This is for testing - insertHat(); + determineHatUnlock(); + } + + function determineHatUnlock() { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + insertHat(); + } else if (location.hostname === "127.0.0.1") { + log("Inserting hat for debug purposes"); + insertHat(); + } } function update() { @@ -2370,7 +2384,7 @@ } // Double the chance of a feather if recently pet - const petMod = Date.now() - lastPetTimestamp < PET_BOOST_DURATION ? PET_FEATHER_BOOST : 1; + const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { lastPetTimestamp = 0; activateFeather(); @@ -3033,6 +3047,10 @@ } } + function isPetBoostActive() { + return Date.now() - lastPetTimestamp < PET_BOOST_DURATION; + } + /** * @param {number} x * @param {number} y diff --git a/dist/web/birb.js b/dist/web/birb.js index 9520421..46f338b 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -2033,7 +2033,6 @@ // Timing constants (in milliseconds) const UPDATE_INTERVAL = 1000 / 60; // 60 FPS const AFK_TIME = isDebug() ? 0 : 1000 * 5; - const PET_BOOST_DURATION = 1000 * 60 * 5; const PET_MENU_COOLDOWN = 1000; const URL_CHECK_INTERVAL = 150; const HOP_DELAY = 500; @@ -2042,10 +2041,15 @@ const HOP_CHANCE = 1 / (60 * 2.5); // Every 2.5 seconds const FOCUS_SWITCH_CHANCE = 1 / (60 * 20); // Every 20 seconds const FEATHER_CHANCE = 1 / (60 * 60 * 60 * 2); // Every 2 hours + const HAT_CHANCE = 1 / 50; // Every 50 webpages // Feathers const FEATHER_FALL_SPEED = 1; + + // Petting boosts + const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; + const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2296,7 +2300,8 @@ // Currently being pet, don't open menu return; } - insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); + + insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { @@ -2325,9 +2330,10 @@ setInterval(() => { const currentPath = getContext().getPath().split("?")[0]; if (currentPath !== lastPath) { - log("Path changed, updating sticky notes: " + currentPath); + log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); + determineHatUnlock(); } }, URL_CHECK_INTERVAL); @@ -2335,8 +2341,16 @@ focusOnElement(true); - // TODO: This is for testing - insertHat(); + determineHatUnlock(); + } + + function determineHatUnlock() { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + insertHat(); + } else if (location.hostname === "127.0.0.1") { + log("Inserting hat for debug purposes"); + insertHat(); + } } function update() { @@ -2370,7 +2384,7 @@ } // Double the chance of a feather if recently pet - const petMod = Date.now() - lastPetTimestamp < PET_BOOST_DURATION ? PET_FEATHER_BOOST : 1; + const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { lastPetTimestamp = 0; activateFeather(); @@ -3033,6 +3047,10 @@ } } + function isPetBoostActive() { + return Date.now() - lastPetTimestamp < PET_BOOST_DURATION; + } + /** * @param {number} x * @param {number} y diff --git a/src/application.js b/src/application.js index d136947..85ee48c 100644 --- a/src/application.js +++ b/src/application.js @@ -100,7 +100,6 @@ const HOP_DISTANCE = 35; // Timing constants (in milliseconds) const UPDATE_INTERVAL = 1000 / 60; // 60 FPS const AFK_TIME = isDebug() ? 0 : 1000 * 5; -const PET_BOOST_DURATION = 1000 * 60 * 5; const PET_MENU_COOLDOWN = 1000; const URL_CHECK_INTERVAL = 150; const HOP_DELAY = 500; @@ -109,10 +108,15 @@ const HOP_DELAY = 500; const HOP_CHANCE = 1 / (60 * 2.5); // Every 2.5 seconds const FOCUS_SWITCH_CHANCE = 1 / (60 * 20); // Every 20 seconds const FEATHER_CHANCE = 1 / (60 * 60 * 60 * 2); // Every 2 hours +const HAT_CHANCE = 1 / 50; // Every 50 webpages // Feathers const FEATHER_FALL_SPEED = 1; + +// Petting boosts +const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; +const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -363,7 +367,8 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { // Currently being pet, don't open menu return; } - insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); + + insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { @@ -392,9 +397,10 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { setInterval(() => { const currentPath = getContext().getPath().split("?")[0]; if (currentPath !== lastPath) { - log("Path changed, updating sticky notes: " + currentPath); + log("Path changed from '" + lastPath + "' to '" + currentPath + "'"); lastPath = currentPath; drawStickyNotes(stickyNotes, save, deleteStickyNote); + determineHatUnlock(); } }, URL_CHECK_INTERVAL); @@ -402,8 +408,16 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { focusOnElement(true); - // TODO: This is for testing - insertHat(); + determineHatUnlock(); + } + + function determineHatUnlock() { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + insertHat(); + } else if (location.hostname === "127.0.0.1") { + log("Inserting hat for debug purposes"); + insertHat(); + } } function update() { @@ -437,7 +451,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { } // Double the chance of a feather if recently pet - const petMod = Date.now() - lastPetTimestamp < PET_BOOST_DURATION ? PET_FEATHER_BOOST : 1; + const petMod = isPetBoostActive() ? PET_FEATHER_BOOST : 1; if (birb.isVisible() && Math.random() < FEATHER_CHANCE * petMod) { lastPetTimestamp = 0; activateFeather(); @@ -1114,6 +1128,10 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { } } + function isPetBoostActive() { + return Date.now() - lastPetTimestamp < PET_BOOST_DURATION; + } + /** * @param {number} x * @param {number} y From 2ee6ea84a76a564d791e1199a20772389a2149ea Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Wed, 21 Jan 2026 23:27:33 -0500 Subject: [PATCH 20/24] Move pet boost indicator to settings menu --- dist/extension.zip | Bin 154531 -> 154512 bytes dist/extension/birb.js | 4 ++-- dist/obsidian/main.js | 4 ++-- dist/userscript/birb.user.js | 4 ++-- dist/web/birb.embed.js | 4 ++-- dist/web/birb.js | 4 ++-- src/application.js | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index 70fc7357cdf908fa4499a71446505b702b222449..bf4a180a42bfb16697ab7e7b41b26a4cc6880b5a 100644 GIT binary patch delta 31492 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 Kls*;}*#85Z-1uDp diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 446faa3..9222eba 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -2161,7 +2161,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), + new MenuItem(() => `2026.1.21 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), ]; const styleElement = document.createElement("style"); @@ -2316,7 +2316,7 @@ return; } - insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); + insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 75e4461..27c4caf 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -2204,7 +2204,7 @@ module.exports = class PocketBird extends Plugin { insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), + new MenuItem(() => `2026.1.21 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), ]; const styleElement = document.createElement("style"); @@ -2359,7 +2359,7 @@ module.exports = class PocketBird extends Plugin { return; } - insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); + insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index c20e185..15c2968 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -2166,7 +2166,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), + new MenuItem(() => `2026.1.21 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), ]; const styleElement = document.createElement("style"); @@ -2321,7 +2321,7 @@ return; } - insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); + insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 46f338b..1ad390a 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -2146,7 +2146,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), + new MenuItem(() => `2026.1.21 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), ]; const styleElement = document.createElement("style"); @@ -2301,7 +2301,7 @@ return; } - insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); + insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { diff --git a/dist/web/birb.js b/dist/web/birb.js index 46f338b..1ad390a 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -2146,7 +2146,7 @@ insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("2026.1.21", () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), + new MenuItem(() => `2026.1.21 ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: 2026.1.21"); }, false), ]; const styleElement = document.createElement("style"); @@ -2301,7 +2301,7 @@ return; } - insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); + insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { diff --git a/src/application.js b/src/application.js index 85ee48c..14ea0c6 100644 --- a/src/application.js +++ b/src/application.js @@ -213,7 +213,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { insertModal(`${birdBirb()} Mode`, message); }), new Separator(), - new MenuItem("__VERSION__", () => { alert("Thank you for using Pocket Bird! You are on version: __VERSION__") }, false), + new MenuItem(() => `__VERSION__ ${isPetBoostActive() ? "❤" : ""}`, () => { alert("Thank you for using Pocket Bird! You are on version: __VERSION__") }, false), ]; const styleElement = document.createElement("style"); @@ -368,7 +368,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { return; } - insertMenu(menuItems, `${isPetBoostActive() ? " " : ""}${birdBirb().toLowerCase()}OS${isPetBoostActive() ? " ❤" : ""}`, updateMenuLocation); + insertMenu(menuItems, `${birdBirb().toLowerCase()}OS`, updateMenuLocation); }); birbElement.addEventListener("mouseover", () => { From cb1f2f605f9b46a879fcbf1ac84d58996676e162 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Wed, 21 Jan 2026 23:36:31 -0500 Subject: [PATCH 21/24] Remove hat pet boost because it doesn't work on page load --- dist/extension.zip | Bin 154512 -> 154485 bytes dist/extension/birb.js | 3 +-- dist/obsidian/main.js | 3 +-- dist/userscript/birb.user.js | 3 +-- dist/web/birb.embed.js | 3 +-- dist/web/birb.js | 3 +-- src/application.js | 3 +-- 7 files changed, 6 insertions(+), 12 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index bf4a180a42bfb16697ab7e7b41b26a4cc6880b5a..d3a30321b50e1344d3739ec7c146ffa86c1cf4e6 100644 GIT binary patch delta 31892 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 I3@fnz2m9)gpa1{> delta 31953 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 diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 9222eba..7444feb 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -2064,7 +2064,6 @@ // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; - const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2360,7 +2359,7 @@ } function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + if (Math.random() < HAT_CHANCE) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index 27c4caf..fbc4388 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -2107,7 +2107,6 @@ module.exports = class PocketBird extends Plugin { // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; - const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2403,7 +2402,7 @@ module.exports = class PocketBird extends Plugin { } function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + if (Math.random() < HAT_CHANCE) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 15c2968..8bcd1d2 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -2069,7 +2069,6 @@ // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; - const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2365,7 +2364,7 @@ } function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + if (Math.random() < HAT_CHANCE) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 1ad390a..77a375d 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -2049,7 +2049,6 @@ // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; - const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2345,7 +2344,7 @@ } function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + if (Math.random() < HAT_CHANCE) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); diff --git a/dist/web/birb.js b/dist/web/birb.js index 1ad390a..77a375d 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -2049,7 +2049,6 @@ // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; - const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2345,7 +2344,7 @@ } function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + if (Math.random() < HAT_CHANCE) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); diff --git a/src/application.js b/src/application.js index 14ea0c6..a478858 100644 --- a/src/application.js +++ b/src/application.js @@ -116,7 +116,6 @@ const FEATHER_FALL_SPEED = 1; // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; -const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -412,7 +411,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { } function determineHatUnlock() { - if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { + if (Math.random() < HAT_CHANCE) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); From d54f208cc4df2233c94a547fc4cad229ec34588e Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Wed, 21 Jan 2026 23:36:54 -0500 Subject: [PATCH 22/24] Revert "Remove hat pet boost because it doesn't work on page load" This reverts commit cb1f2f605f9b46a879fcbf1ac84d58996676e162. --- dist/extension.zip | Bin 154485 -> 154512 bytes dist/extension/birb.js | 3 ++- dist/obsidian/main.js | 3 ++- dist/userscript/birb.user.js | 3 ++- dist/web/birb.embed.js | 3 ++- dist/web/birb.js | 3 ++- src/application.js | 3 ++- 7 files changed, 12 insertions(+), 6 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index d3a30321b50e1344d3739ec7c146ffa86c1cf4e6..bf4a180a42bfb16697ab7e7b41b26a4cc6880b5a 100644 GIT binary patch delta 31953 zcmV(b=V-<2Ga7W5$e#OnWkDj>F-=%e?iz{bk|JBnrG}e>@7C<2Qf%%U>3n z!$CCmcEeG?wIc5~sVDdzal{f7}g5GLYA&k;2Fe27aR#w5ZX_Ulz>N!f2P^kr^&XXEBHv{<}Tc zy+88%)=&?AZxSTCjDoTB$)$|C1$)x`S@mq-=mg`EOj3aow!O?RYTnYv!nivcK6-=T z(JPNe!%=2YweUv4*GUkKgO=9_+QU(Rf5Jh>10aiUF%agkf1szPdQ1+Fs(N_zuYSs~ zss-WRlqB#{8U_A1@ce;yP(Q4CK`-bBgR%D*j=LU6;YIgBGi--|j}aJ*gHa^ZQwSxl z8g#yU&7L1cN8p3h(i`FdhHWtZoL(brsRF|m1W{Q40vcT6_x-y-m1WG(?>uXmcV5^s zXaKkCsr}})e}>Ho%`)5M$?I+wTj7HsT~*C;$JHH560E}X5-J_xo?q1kG`_7qrLTfBt7mjlZiJqp;IWt#WNT84vH%`ndLVAC2L7 zJnYjT8i$5nf<_d5CwS8|sD;HpNTn0bMQPNbFZA#65UO}gcxjFNju#N`Mc#1WaHY}v zH(+K|_-qUSn)inf0jnS>Gd(|oU-)~o8}?dce;;TBkjCjc10=kM$>}$O(L0aOs{gVi z;HK&KdJVsM_t`6{UmldO$3y6uU;qNe?cPGdcMs5av@-ha5f(HW~ThfV(mp zHe__zHjUKUE=`9lUMzzO1<)j;N$}3oV1wsiav;#(yzlRL(6W$1$Vy`Hi<*Waw5Sv! ze=?Dljd~az4&ff`4j%{Tk0p!B$=(m!ZCIBpe9pO_uI*21g!=H1DE1o}3eeK~hekkF zJ}A(<_xd~e0xS<2M(II88i<|T2}h0h-idUnM)C&3G3W#d6LoEA0G^eqMoK%OrTR3} z7G|2%Hx3R6$u!@Ec>a)oC8^6Ae1SGAe|4&0FsljSM>o0l(wo$W_tb*q4FAlBnH2>T z;b{Cipp%M=+s7I!o|CJA(t%8wm)-0Kb6W_q_ahel-JtDHdRhqv*$Co!G8#fo*ohS7 zs8C_d^Bnq3?vschTN+bP>ohGTT8tcm0sHUfQc_g)Jm|?KTd>9ht&Pv>~?wu#U z!$F2-0JgG}g%Y>7Z@=F^{fkG_f1>X63vmGKFLZkycS}Mi-CkSW5?8*G`%)-32L(US zC8<+k7iMNIw$`{Z6S(>_XtBGpabYm5QIYDth`|&On3iyk*PwV3CcW7kM#0Vme$wEx zQziCU;4usz%Td$64;;sZzhgZ#jA$iiR#H;ay9=h&U()E8P@Qc)!2}B*e-952JRS&4 zLe@#t0};)tsC0&Q;H{E(9`(vvjc}tSFvUOux-|3X4g}}Y`^9w97`CQaFv=M2P2|9% zm00X_@N$-IzC9;&7i2NAL=Xf|i@GsEu6*Zox|-#pp^T0q(E1hjendVZLLok!uSVDl z;Fvyy&6%}7XyMot+{Ya_E7LzJ zW$ECL8;-IBPq734NW0fGKaSM&hB}l%Qip&@mcA^C z0|Z5z&1U^khZnBVOk)mGSm6f~8&PP~T}r+Aof3h_hcZx!8z#Nze@-0NYz|~P$g>YO z()W7)6l7?RhJE}I-H$?q9HMSOWuuYL0^$7=ZX!i!B%pBf`R4O?Rkg-7$**>r-iJ>? zFQo%<`gP;VpcOo^Q?43^^uZBn-Qba}4UHqeu<|WO$@hLU?$}m>%S^Z_=EtA zGBPet;+^V?fqEyye+X_@R=hn%5BQW&0u2vTb%&$ynMAASO#PjQA$Sd>5Q{Yn;gv%* zO#`o5!%Cgsyc=G!()uPt&OO8pZax0_yTE~;OG}DfxJmYY5_N6pZ>FEK5!U&E`Y5RV zRhnbzFB6roOJ4phVtkB92?CJx3igB@U<~c$C85151{+f+f6)yGh%9&w1kOl?A3?X_ zBNO2=?DY^Q<4O@l9{q?AvIlgxF1eZ*cgO?8zK{5%?nOdZ#{(}st|2}|aV~WA;E$$Q z>FX{P6v0!oH=#AWEH)=2Ue&-S9R*S3HT;nmh0lSPxgR0~G7h28re22wN+YyDK&?&i zs5!k&;gJNWf8T%~aKTZ~ME?X)BWU_i7X+(U*zjt8+aHCb%MgPbg;*aVYS;1}hl4j` z1P{Q~Bk6(1U5UmB$V|113xI8vEgU&S>9M-u zmaKQ-U!ZS1W54s6i!e>m9HU7SCMzSY5L-nY=Qjc}tH4vrV%!a*tW-j| z{D5#Hf5b%v(hC2jPs+Mz<8b0b5y2ERhdpQ|+C)&X=jG&XWMVe-v`IXyZF0193uLO+DFGVDj&e_lo89->NP$z0x&Rt zIX?mjJL)r{AHgUtyR01TqcVh{!*%KJFXi2R>XJS#2d$18w_H3Uu)6_=6fp7uefeT$ zf5-*P);y)Wb|6@h;t1MA&8u7l+Rwh!PNckz4F&AsEJydM2J@*V`JsQ0?;TPejxlEz zfNC3J0cSDAYxu!)7@~G^R;ic2)DFt!`j^si_4w?|Vev%q$Ku!`Ho{86JlT585JZW^ zzqZ@$TrRh0)o>Zh)Ivq8mY`4y(cbMsfAN(n&FB35w%ruGBSrb`+-fdw6@iVU#BXl} zo9k8yF`yJ}tZp|PP>9>4XnQ+YU$^H%j3-5{?e)!#RjWhdK`Cl)HS%kA5%Zmt1=$vQsyfz zS1gz4+*XQQZC$u8wHosm*HR3asO9h&*CQqb8z$*+=4^B zf4*os*>EbutTZkh4q93|bmhgS=AW3ht`0O{%&p-4;~#n|WaX?sX=a`Pf32Ma;!)yn z*G-r+A1#=_f45wL+DW-oDc2NJHn6?lfc#?H2fOaNL1wY+W6N?h@OD(WkYMo$acJ6a z8hS^=5n_(Tet>KVc=6<8KLl{cqhS+HKIEx8oOHU_gBh?t8uqbk>yKzR!n+TK_gJ@M zN&JoIVGu)lnyIcdI1@E4e}$^%Ql-S*Qr5d%tW>gF9IIZgqg1n7hg2+=D!n{g%ANvO zQTmyxe1A*-g`w~J z4S@xrB@_`0VXbI5fAD+Zc#5DT_#OLjh*?g({uB%8cJKz&_8$xmwWC&K96Zf&>y?L?I{IyAQZMpJAP zHeqjQeMAej&n!K`1e;t)Z8}3}agZcQSrvL*Izy31$_s*~f0Ak>Bv{VU@*kA?Ith_h z6-5$x@J7^q);paL>f0ma6tsGv(R4U@!=yum0^tZ*{`ZkwV>>7DgY4Yr5 zr3v0D8|D3BuLX8)c9Uc=R@>B2#36qbb^?|fp+Lm^e?lJ_3RA4ChmT6INMU*HAb`p8 zdmJ+)*%}2P5<*l&(ufO55BAVH@*<=pQRtCqI_|;!jwXXPI)s)K^$3qSP#^Oml5*E2#<$>sTF#ri99Z z1dNBN9`~VLs3;P<+rpOQ6Z7Cf02adv9+3Sf6UY|wAc(*5o${e@6uvzJJ-%B=T4SGO@9PV zPxa?&QZ~n(a~K`wUV8!Jyy^9%SuT|)$X}Y?k0-2GNZHJy*&uRloBo%Wi9sY59r$0O zG)82*xxVourfxOqe~B&(A`1=rUrK4btijp||4UR!)$}nm!u{Ilr=r{#eA|V-e?($v zz)6C>Z11pptn9oj6{!7f!CJxDr52m`jIyoAd?m= zPIBU=Yzy#D7cwzOA(oMeU~9WQ!*+(0+wHB~e3?jH9mb>#8k_#ApTKfLCQ|DdQm*m; zC3e;pP765EwYO$Kk8%RDNS&R@4W6+4YZDJ+l`LJ)06 zCRvnLb218%{mJT(Qr5A77dAm`vi2`X*2@u_pw--*v82ZTYHtQXkW_ERh&I=^{PmV+}hY!T@zcy6tZI9dq~E>9vtPSe_CI!?sPVM&U=;=*5+gb33?~D9;HYHt}QTX z!B}kzstBOuD^vUs;Xexap@zyDG6@gd8O1T2UKgklpYPz$v|lOdpV((aq*NE$+nyY3 zHQk~LbxJiApbIb%a9*Bde~T9Y$$(kti3yS?C`%A2>69VD$=fEAF#fK#Q;}{s=#0B> z-+4KKiBqSfH=ID=z13fE>dFRALXQ;VO`JH|3rDd3+}P{G>B4$bCD^}F!QVGD36)Y! zTeUQQXKyziSxAih$NLNogA{c9qmn};-Gh@EkR~NrKa}4nnQ-w2f1KJX=5ZcbWoNA6 z)ZCGsVlb)EYeSWt3=pAgk26H{B4y6loe+`~4zq16`!Xl9JAN8mnJ_XiO2a;)DS@II zgJ*~xf|~iic_F|OWT@`($t2H6QoF)cC{&`eaTb**A$GO`uy3ZwJj7K_IE%<|(G7aE z_Siuq;x^#-5ZPgHe~y2P@r5)?s|O7!PiSGmOv%avN~vun1ra}(R!DqV?`iRxV)_SN;dIOQ`HAI32rEtlqWia0o_#RwWQaQUKo@7AC&|% zTiKEV9y%RkC4cbXM`xVX1p88w^Oc2NoHHCFdC%T#)!BP31Z&iZwzOjG*Pus6X$^T> zZXYmf$UoKAf6SOQGHLAg)vySnlZ|%AnrPn{@rG_VjP#fRkl2mY0MUURXK=MSE4{)m zjZFus9~^~cr$x2GE)&R%tW|UjRFFHv7OqVO8pAGNFys`W5q6cwl#Y)7$KQC+ET`Z( zUnGA@EDCpk&6u&$#+u(<_LI7X+borF&)UfdeVjt5f07T`I;g%OtHLIxBTI`&NAnbj z@NE+TI{;`9%L&8rDdsGlUxs?Xn4%NtN3vgt#uJH$0)??hrlCgp{pj4H_YIBrnYS(R zL+KF0EY)XZKVj22%lxy>XBgo@=*blIAHHuH1E3FKUCR{Qu zb`>lcrQB?7W#Baa8bVVI_SAgXt%i2ST*bAoe-d)B%)t5u$J5w-#+D1F(C~5SjH1Xv z&%dXiW5CELH(7dGiBSnBE8A6(Xo^#?Sh*qd&ZvIO27a{K?YU=(alVQ&)HN~NQg|DN6oO! z(bqG>Bq|%N0u&g%aCvlhJ$5tbI5@=)gqh< zF~PN?% z#Ey|APrH76@&%=ol{vg$#x5ww7B4CvDO3EQTson7Me4V7+ZaCfkoT>7-Yb7Xf9>Fzd%3K9DxU4CnvdZ#ave;~ono!L zQ><3Ml!_;4Lhe!nTf56Re_6?G_o~O2W)#^_=e8)gQg@I(8Z37T7567VAZY%o|KGOBkgdiE5NN3s@_IhcM!^I0p)$xG%^g{ZfT7 zvZ8w7UBJmWSjIhKp+;PQ+$m1M!9FME`U`Ju6S{dMMXSVMb@0ZVe__ZB_5IPESPVYX zLWc}{ydj%)J9kK)7~+D-?;XVCPt2!=aQQn=xP-R9ks3)i#7r;;B!SU7mG~Iwr_~h9 zmoO3>=m`#6b*H$A1HLgD@QE$5W@L77xQFU?C`q*KBc3-L{KJJgX2Jx(C1%KZXt^Fv z$b8~})Gdw{nxnWxe`Xx8gw-K#j<^6jq+$Z^v4xKlihL{5m@+^T=!PZ4Zeg5R@(s%V4jHv%>Ci zoX?xw3xKia;{%b}(baw$E&JtkjU1hoO2!@g#w*hIa%$}6Gjt*{Tg;!(h3Y_!IRq^C zWI^>*Y16_v(JD4v^d=@I6_nCkAWi-rCl7doUk17Pe@vt$b4F&7529Mj$m7N>Vpwz* zJjy`hzD-$3nxT$px%QivY@!#E6wm}fQVagu8`9oyw9A2B#^FF+^TNwV=~oucxP*%% zsDM(LTlDmi4yb#8icAc3D-k3E4^JI6I6de-RO-Q*{_ zc!xu_e}u{fbS#+963XS^uKt#+L1Re`dsMDPh!8FzP^CxoPhJN{pJtA@%$(9rVaM;( zSEa?Lw5*tS5zf+lMyrg2KGoo84bidE(r2fcrPJ8XLL4<`@MrK}Y4J=2?c#Hy-3=j; zc97Un%@BpT`DgObn9d3UARF zfmkQC@Me0<*ERi?gNPBOjJ)$yW^ny7pArnrusk4AiKTPkDre)KBCcOfio3gTB2l(M z+$gx^`y;KQ{90T_?oHfi9Z@yaeOzVdxL!X#v}&1MQbf1&>kv=X1mwh+MXCwi|8 zf9oTjwS1W60>a`u5@vCtnJ4V__kN4GPMW{-EP&s6E@FzEWR<8DY=W%zoVnTf!_cth)f4eV) zv9K#t<-7`TmUJ1X2|yJw%uCWE=_9Q3Y2ig30;Tw192aXF3?SL}XV{~Qt(DXSGxXaZ zq$7|RU|_m_jeSKy*UK=-T#U;UZ^fBuW5R-ncn;PM98KKWwgq^Bv#^X!+N3nG4FTlCqMOy^FXq+r?>P3ZYf1FJBruE!JU zBn>^FYhG}_fVdQ#+dzDDgNvs<_)`4a`U!)-oL8Tziuoh{%`O@lA7?7cf9@oP6PCUq zHv;yD2jw5=EiYV1jFBefa|O&)eys$EL~?(z65>o2(l`=_meP4iFo+S(R*)0ZYTDKu zZd#O%F#Sxc%>*_~Wo32Y;9dcwCn&k-s0;fu6<#4fC_NV_hJGQfkx3sC#AujVYjHdksOCTD zKlJ~#JhC*Qx@}|YBW%RmG6y|^+-$nEi6bLy&RJQLeW!0I;FNhXSU(U=TimdhYsqd> z-W=yaCM{SX$wD$_zi*j6Dc5;nwoPe- zXO#2jj&|dWty`N!3*r;qG)uvkshD$09b_oyl33H&?f-swukt$=sDP)lw8Rvq3yHC( z#V{{WSm{naD;hifU=~om8Rr`<=2VZIO9M?I>6eN-oXY6hW)ePrk911!8)6ucHad-u zf6P)g`X2wLn$iiR|8yDSer3V*|lDVW>u?Ks#V06`CpEZ?;P*oZ~Rxq%dfE< z!-u^p{orqWodG`azX)>4Rgscnf*@Ig(dA=hE8Cj(mK0%66dQhs&x0RkR|KG%-I6HF z%O7eHM#Tn#tdntYf{PI83Jk=tteaAG+??1*;xN{P4I&6fe=4n5ZP}P2bY^}>S;hq~ zpg2-tCu(UA7SYH?DT;7PqcXZ04m{1#}Oi&I0i*pF^TsJSk}Vx^Cdx z%hZUUDn+oN!I~MoKOmCvR->8Kpek$0@m81=a&(#dn7tK6; zCys%Se=B}g_=X6zVsxkUN}@X3D>X^gl2`Z*^OR@ghZi&;~ucoKOXw=>rO>yuaJ0m ze_mPrzqw&dXpNl(gSf)FM&VEYLbtLP#Pf>fLp{?auCTt;moUw=RiBYAHs@t4si2Pb zSxvIIy9|%Ek(0a_yS`Fe4vwJMW*<_n^u7^0-BISP6*-?d2{F^5oI5cNxALu1+Qkza z)56mR7-N^@Fi>U@*JQQ-4R?@bA}dwCgBvL=bu`t#XP1Doe*4bJYVu&v0E&*HbM}yM zHqqjjB8ME*-$D_yrlZ9r!-f|IL{lS z^vIAq(|t7qF`3?w^LZ5fhKm!opYD;Br)!-R>_9tzf_jl4o{qc4X~MH8)&mRwSQ?Tr zXGW%HyGnc-K)>{1kE*_<4J+OLa9BQTM_G-fT1|zqlap8BpOkSqnlgWIf2EIq6*)@A zHPXqTu%Q(1pM*>F^b3Hg?q7loG*#HeUaIa&)_inoQ|lOk_r(YF6f;n(EbY1ik?!2J zuw5Y|Q38*O1c}2ia*R|7%T?yd77VgFvim{ta=b&T0gUINskP!Q7m$7+_5|J)mO4gz zf%oLQ(R#@fiySV+k;MW|e=si>)KPTX-X)(MqKz5Aqu;topZfI=rXH&}=!xsh)Sfy8 zcx88ormprqfkD1{fFVnZ?5ZAUb+5y{bgaWyAz(_+A0X&Y=i;zm!p{g$pH#otZ1P?N zZK7e19a>PmuFyrE^c}7jqLXuY1A*%cJOmfy@vDr;@|JuF%XaD5w`l=X8iTcqTx&kSoiW8WW15ek zzWJRl{`x=$ffK05e<|fy3LUM}Oo=RDts(gIj|HdM8`pJhIEyp;8W~;9hBr-20J^Tq ztVFwF`hylBo3q>pXxUF+*7cP)@9cJ^w;cua;#VfUIWaS&@cbTbYT(6uLVK6+mw_b0 zA}#MUvM8~Lo@O>;z)FONo~F3c#3j7h6Vk=8+Q}s@VWgTPf3ODUYG=qs`Gp*^$fzP4 z&FT{{t9~(JZA6F)ZG{o;Z6xicTl~XYT!h-iiwig*Gs{RMLR@to+(v{n;rUC&`Vy8xKtMZMLhd4~%Ssfca8a>!S1Q$7XW{YIP{Z-4Xe{JN|N z#LDlTl~2#hN9uy^n?fO{*2t^txg2a7r*|TQtu^dJ`~2!{=<)&*Y*Wfj`#frKx zmpMU(zc{X*Ye2Ke*u{oOE{m-U^&k3z>hZLOQ4^;&f9b_8pn;jmMvZzn`q)%bh>2Te znM_z(+v9)X?TmUCEQX7I(W7hpc@{pLK|*>vFELO*o)(T6 zrVlQ*h)z5*(o8~&m7C9$HrZv?$!@_gpIE~sH^dLf!3Rk&7^HxBgDo z>YKlGDg&!3vZXLoNSA3Mh`}aa)LKb`H%YA)*F|M(!GIq@jv9UmBaMa4d1_B3c6b?Z?abX0K`$-Im zf39Ne6;g&+sg~t&<39@#Em}BQ@b8?nF=slv0I4cCxrm!#5SOC$Yy?+|&a25qw{3(P z`Nc}@VaeHc6*t+_rE1leT+81qhJ8F#MCVOg!H|Ar8{nm7d9`dAGzu13e=}h~UG6Ym zLds=Vn$*g?ZgDbGf|QAAedo}ej{DsEe|YLah27{0bX45wyx zf+l)g817wppNqUDyby`?X5gKlRY{~3P->CV8!9P6T)I8$Y`7r`HBT2-8$M7%9ucR@ zCvn)4pL!#tA^s=tQn27Ew^l)3z5;-uqf1;i) zEnv*j3Q!aXy;j!&dgZ()l#)TK@&9yClv|e6EO7OSU=+7-A~wahZPHqjn&X8j_23~j zVKKBchjz;1C*|SBa^DEO!PS!UjG7TtmvohbbqPTjouKEUnL>uzD`B2Xdz`~X|FZN^ zMqiC`KBC);<}rk-E5tkkEiV;6e^H7W-WrDc8jdrI|5&7;I~!I24e3;!$F<|pl5L2p z2%uzlFu4dt!S3QPWc`O9z46blt zH;2l}nOJ;$e9Ypk;vB!LQkgQ+IS>tA;~nYe?mN+?1S!1 z%W;eVV1O-lEaN(Zja3g0$ktdOiG~rLM*;7*w8SZF#tp-Q*Dr zZb_L+usU`&BHT;JY@alpSlZz^NM4TpyG$oPJX=Lh8!h$7hVvgbEKo?i06UxGR)0OH5asOwuokAm691OeuZ^S=e4kfEKy^{a+SMqi}s2$7}jsPh|>~7$^ zJnZ6tLMrqC_%fele}kb&OAG(*O-4QLC3XrDJ0@Z(%}bcpAt^@#qaPukDC@5iWL?*g zy$qE6MuXVqLGHsNPWZ*D_ZFK{eA~Xd#8>@g)zE$X=i*y)UmDLD8*}_`ET#elU9^Y` zBxspO*M4#x-N|pR4&jH%bZ68Kc@l!T@5EK$aglA}4YTSne~TD7H259w=7POqjVzd@ zJ01{@p6XQl?_P*-6zR{|5^_Q2m0?a$&b-92o9Z}cocM3X(?xXJih5lE@Uk?DVPqv4 zhkO_XE~Emg{a`kBlL^qzKnzbKQKkS*6l-8^0O-6T0#wS#k7OdM3j#wrlTH2^Y%yGT zHH7*LJ>nN4e?ioqeko1D!3s`02wSWh_=D<({)s=v9jae(k@SxL#-G$U^bdXfo=D7B zNQ{w;6`V2CioAj|+9Wg{I4uX9QfO0Hu?IW}{~a3>#9S{F@4`{n%p@3x535AuELuWU9c&QcFp(U)4 z4NnVTfAMN#tcNFkcP8U8e5LtBS;qYz^zyH__#}-5m@F1h;0cwpqM+f+6ZuVqo;RO%Z$4vBkP(?!(-(?nc6=|mb5+0)@1vH)Eu;p-oz{w&B zu4y2wBU|cdl3&l=Ke;s!&~FBK4-iD7PA~c8e>uKAg;)?TYSHSLQY)~9F{PK#n5Xrr zEE1<*+z!RM;6#AY3>0J~4Ns7%pDsxhJ~X~<-nU67)Z$w6s;KT!2V>cl1QDY0u(@af zhi`h5akha{h;9q|sGAT1oXJ>y2o%H_NQLTjXc3c`bm0Z|rx@GCK7FDAK<09n=0nIpw z*3T>!!5m-~c%JIVBRvWRAFah&o5TK!6DVjHVCAh~K=@iIUlpr&>81ADnAmKH*jKTH zQz!X}odWbURn7N&{hOAu5G#Bim%k!Le??}aj_&~5SF)zSp^bWSqA7fjvtEA~Ivr`}874W>JI?q>U-MU{OvnD3Mk7!2-hrN?;*|!k~)1 zWCdEr0@Fs%g7qEU!(8YFHYg6OFiw$QDc#tMx)twuprR~rUn9BfTSXFP=PWg#e|N2s zFi`|nu*X?vC&rZ^ur#9VykFJFW{v7N#8%8mvJOyc2~u{*x3WkP{H0j4prf~16jksC zLsrFIa>rzunKLLSqNI+=CC-r4Pdug#rP48UhXgi%DCzHC5gnAvJouxGve=VwnZH2{ z_#71Y++5g^t%g32~YWZVEZT$#pL$E15)kgzk}Sf~5@yx<8^#EVUC$s9ltabYE0 zdc;}$A9V9QCO`@C@VV? zV2!J1X)RzB?hpN9HIbND!X!pd#~rIAE36NGyhivR=0Z90bQD;u_!>?mjN0VL!a=LW z3>=3b$p}h%Ij=BPXp;rie^8j0X4o54_t7H9PC^D^>4Xc^YRwrFf1Ds1>{K%_fL|ye z7z35jYe)FIwtGoDnP9H@%m}gJU69|P=3l*R`T<|4KC_|^m9GM2%)U~yhnIDcVTL2S z-U@Q|mi2atQu3xmt97?GvK-K>sx#aYI_&kJE3uJl^{#A4TK930f9^l#YRZK~=g^}O zF3ulkW=6*C7Gf){Hfnlv8c}IVt4J=;h`V9^WO;G6V&8{rf*Y)P%}8el_!@jlD1yz< z8*kDRD<`kA>u7qtC!~WjW(}nZ`8n0QO1<2!l7ZxRMwI4Ge{3nSST025n9B(o=m-iVz66e{Vmrjb zj+!!PELfc9&cW1ew!;6&#%@Qv)&@4KK}{=A>p^gi!7pb6nXkAXgcU`M)Xn#6rfB<@34K)P0X6m>vqgxv_Shp+A3MmG(i z8!MjIf120`fuan%*)cY@(|BF>dq+G`f3=#TBTd-EA;hJjDvSv3W9-*JNWWnuWfoqA zB+gJ$&zaf8`lkwwQP(fqfPaIgk8l-#v#W=SY;~W`UouZ29AoMyS>hLN1by=hk7c_X zmM5dNk82-fRHYwCRDq#vf)5=*S5-y5vN}{>G`C1rE@l0^muxGjYlPVFJQA#oe>6+P zOw`SJsvlhHip%kMuTFKT3zWq2$#eb9s;t;jNr0-X9K8Q`==^l{5tV@1I~;FPIO06? zINA_N9y)DqSXmvZX&#hXVWix2s`EnZeAnfo@uXb`)sh7=LN2_@2$SpZ2SN0F;7}qM=D;Mz~{n?lKe~ou4XFFez z)&8YcDpt#AP4|b(i02ij09t+62(c6L7AuZib{i{=xNfO6m(k-2B@vG+oqj18P%Pmtjo`>X&z`{uVx>~Lsl*=^ffBmx!k8Bx-E&0Yv^#`7u z!)vy04u^wbbL6+jZ!o!Nf7EFA|tDRqKw6+?nt?ghVx3;#vv4S&p=Of(%JjR7RRD<4E<*yuhjXy#&f4t|+^lyJzQ2S6S z`-67&-g||6I{vCk20>@pDQ)__roDw_6~0AKYnk8AP>ox|33j=Es(pdxVvYTpE)p;j z7NF@vFQtEPe?9jfPEm3g_VpD?c(?Gq_rJcm3{Kg5s)pWDq)N8jp$Z89S5hOS zPjFpECs>v!KeWVqxmyA2PD&xu=Tf0-a1|tdk>l6z`Epy{sU#jmb}YET+0fLxnZJmk zf!aZ1(_k4-GvP(`_wgb4XQZj%;RrBYer>o@kmFWLNh1OR5~?9OpvKAmaS@4J+vOmjE9q?zvp=(kg$p97-7vaDfg zEJyV(8tsh`e+i!38b?ix^hUD*2g?Ny{eyAVce;d4v$kMeOA`AXZz5C7Cy6SRTUaT@~hOX2{5g_ zfc~a`md))O?`b!4(jTB;M$=hCY9pUiaOSQlGMM+Utx&+ZEmFXic7_8Cu$FZ&`n?xm z8yR(De+OZiV+h}zR<=$rysAe@oWoelkF>uJCw~q3rhw%~icb3}3q+Koxe<&X zgMir0?}eQKZxlsfLM$xE*;-KVdTJq7`!3ip56IXL$fD~toY%b?TI@L!doXg58*+Q_KcbaQ7Ef>Vrxj-%W zbcw=vnZpdM@(h^$Nfb7h>CP;uK(%L)#GQ@%B%itnb?uqMcrHsOyZQgHnEe#98Q(|9 zACnQgV(chc9LAEyZr`%KcAg_}f2o$tv9oKA;b61ne$q_neihDE?5f3Daklz8Wqk!u z99`2cEDj0oP6+Pq5Zv88kl^ml65K6;#oZTo5AN>n?hsrrdEftjx4!%D*3?cv{dAu` zeR`_4W_S9`E8yO7f?QU&g4l=eL|GIbL2Qu3Hm(HRj;{Oegf&UgA9H`Op0hh#$54n? zN$zQAQf4A-CTh_h*P&yhT&d>layos#rGUB?VUtA2GwxJLsqOp5X>eO5`y@4D9g2_4 z{cAQ0n9d6hlR0O$Fi(UiqDVAw&<GoU$MvC@)++A7 z$fx^T(+U1~M(*D5Df2;HA|J-e2V;5fI=>h6kf4tCsf|gJItkI07=#&G*&a`k6nZZL zRD!MN~^@~ z1M|;XUT*`4a+ANRckUhtZGKCU-r&Grs;l0$!<%Q}l-v}c7(O;`wL+iFNIcc5nm?7B zpOYXiZ|vM8v>r7L3S(gNV?IL3jhX49=9KzcxCs_Sx<)*r=oM8ddEu+1k&=^0|lSEE@rWzT?oN-{!C6R#^Pnmjf^5) za|>L~fN72I8k${S2D#~ioU+n!rpPNb^k!l2-SWTw^7=;e{`Baz)vxwh%&e_=n3Spr z)w1UV&F{@*whrDfpMNWV33BUcu?2<^aj!#+PA{h-P`Y`k%CR1g z>Xtw>;}!N$t0RQu#05zYE|1+7&GFQ>yUFa4zrA=pjUg&+t@D*>f!|Q?wd9^Ztj^QF zF|{>3U1^>8G+}stbvFOeq{?9J>Do=si|yxoJc;)6kxB{6vUeI3Ya}z8ycHdC{|lyS|_@bk$u&va;|sLu&v{? zGWxC5bU#5&=q#CjH8&=4?D|~nr8PoyhsdXUhw~uwaD8zso^O!i-3nZ9THw>?jfoyF zXClsEysd|A%Ll(MHg3Ab&EKe{+#Wxb^}lx{_`J>}Bp>Z+E4h7YV9|DK-!^6IyFgNY zo(Xzx8Et!+n$$R~RwaR%MWF-B#>`H44$Uq(7w&-0Z)syz%T&C4Xo?JXm|W*e3JGxd zUL-sURa#rX24b2`F~I4Vn3m)HQ<(}iWFdiiOdZ4*{5FR z;8tDR;N|0G@WF{L^`^h30%v+_P5SWJ*1m0>js$C-7cP?%A2`3OP^T>Vi*rYHd?)z@C_K6hk89tUC_^ zrM9hHyP7;X0B!bJpBvkom-#%XH4tYuu5sKxi&S12 zIbK<)Ej(Xydk%n*IXRJe;d+k_?j2g1nqHYtOAUxL%KwlwD+4bodDj@C38ster`+`f z8hMHLfX}ZwK5qEdf#dnJAu%{jFA8<@URuS1ngLV2dxfLmt)uVN&PvEkf{`H4w$8;} z1G6&wDjmiTAcgRRE%l1ZI$eGPC`!k>7|G7l*>9JZt+y`K^^->*!M>M8f~E6JXN-yw z0mExwDd?>u8xlFkz(0RJMfujLzB+GJtgY&=0tL=(qXh}iGEenfGx}4f175f1q}jAy zJl9Jy^<4Xn@|`N%-E>cGy;^pk_B#u~HA{caZclFyYO66GQRr^!{%qZN>^s~Ux6U%1 z+S&#^j2*7_zjp6=^aCwz`H9ap&bZ$Htfs0bZLr=%o7nxc;y7Sw>U8P4NsmzDZk|h1 z0yx=St5qT1X<6ugXEd?a%1@*jkqTC%>%FmPC$gT69$F4rz5FA}mZs+mKfE2XuloBp z>mmV1GfHnwu1ZbI`Vp~9*R#T|{geUk(wYw=Y(98;_PL1lzENMh= z0uAu~e$#zIU*|H@EoNM?0!7j-|5@Q?8>pXsZDG^;=B)YDc;n(|NKbSUGP){pmesPH z&Mstqy3PSh&^fp|Ut_<0bnn@4eN%O5@8GyRypODK&MUjTn!7(eI5l`9gWNEsA&Bg) zW}wZ(+e$#BKs;73sj}-~<>}tw^<1Ug&iJ?-(y7|wr6O1q`Fyifgf3WSeeDRw0us8V z)>gRYMkU0IPWAchA6njQbnBF9>ub~LOUy1EJlHql?P(>K*OPz}zz!A4f}X7m85wmA&2<;5yC=>TPgmCmC*Bn* z&-Z%tr!zUmEQTjLPnCRzvia#oKp?Qr%d^?XTgzAHsn*N6(g5k)l0-vuDRYiQmSjwZ zWZaS}CezVuJOt#!EaCRH>5N#{u=<-<`||GjWf{e+u+YfN5!DriB*iO)WQ=L7!mC%* z+nskYvm7Si+2n2O+G>B}al`iNkduDh_C6@#==A=v$u}LTOEF5p!sX8eusBsnNGA%G zu541G=DJlyU_pEF#lD4z0V_D9tgrE=RhgvWj#v>TB?P5ELAV9z=}h2~vPy0~<_mst z$YuK&(mOcRx3f)sw13VB?lrx4P)UKFzUjQ#DOq4B{lwAuW|8Zt#sk!&t5D0BtIzCf z$bVITYSLN7*Q;2G(oGizUT$wss}{1hmdO3Sjp&bgzma@;L9JOzT!;7&aGbt<3I@M) z8(Uoz`w9p&dbhU*q4mGz|LKAZlr{5y)0SA+e?{qyqpp+49iw`U{~ov;k%Z>>V8ml6 zc+OdWA*Ey6im~SNY>yY*-8S`L&?v+M))?zjsC6^o1KY~Y<8LnkFLKzp+Ya1>5=bhX zW~ViZ@9HpJsPb(Ot;qNV(o4@m63lL|4aoHc8CfxGU3hT5TPPgZTqeqK#_vcElb)vPd>_cG6W6bNT#p`YP zD`s8S*ZUPM!{wEt8=;S~UUaYB-Rjv>>q~8?zEK)O>1B1m{q2>(snc#5ll@Cx^VxC9 zemH`{?Y8Z{p)7Z0^Yn~#z1?!R)Q7s${4zZ|PrddeV$JfUmQ}KNq$kPIt6g`n^s=jc#Vm7JVMxQJb|2$>pHgDRz=X&T+&j*9jp0sU`|y$UIe)NS%)w|CuXEL@VR`&v7bRGz^E$?58BeiNe%Yv>=Wn&Hz|^&x9TwSs zw0r`V);nA$5v0o_29%}Otb*ru-0S#X2GHX$MF=UhFJ}1`X0*`25l&8{*%?I)~O z`-lc%i6_tQ&6(iXATaj0Fh-cQnDz51nDHtR&igY~N_Mv-Qcp*G^f86WC|W7`(PEBP zW7RwA^3gef4g22i_Tav#6vb3Yg_j7uKLZ*VeJ}vn+qj2rF4QYPj_a+*(=9rxqmd${ zc>mFSn;9V^OPi~%ICWK~%z&SEQaN7z7qhVg5x!&5)-(%uy3mFF5Y#yvsWf3j!0%bV zw9FG@jz9U1YD}5>nBW8G;YY%9@Z!MBC{!4ylZu2%6G1msmxF=RuSj! zw(TjNkuC~sc{o4YdbpMFZ!WQ^78TJz^n7*`c<2v>C>0SQVNnpMbi7eNV%?_wO4u-m1NPHA*$3Ir9CO zVcpUpwcwyWQZ`bl=7ujFZZ--GV3IWCsH8+N3b(iU`>*d!Xp$ksL|^bLewZ)h<0M7$Jz#M$O>dH(>ki>@HAng>OiYiJ3kJeY+$&fLcJ37iI64CD!loiK z`naX2gl0TAJTk=hs9MR>^4Hw54!k8e;-*u*qqt%I#8`1dvF;qNQr@`(HKP5u zGvK2ZOhz)!-+nSKTB`4*+B>hcw#{jVbDcEkhVYpz4g3cM~m>s z{XX~Y{-C8eobb_DSE|n973W8GD|bNCN9h;Bl*||IhU^gQG%;!Ly+|BqzfhKUQ}f8@ za#3R(TA`MLZY_P3&4_Dwn$E?Jp$#dmuq;l;-ZV6`H4pX-2mCloy28W0_!6i__C#T5 zx>5MuAF)3B0hZZPER~KLtv6uV?IeBI(&o6j{wzL`PDLQ{>o7zY4CRi$z;r zprdoxM22IqKK-N%Pz+_DP$~bhIj6~K?c?q$Bc-_UQb+Pi2!*rkrxiWOpr>ln9aH6H z(`mCSUWDs0Mc>MkLvTQ7+4YU^h8$j!=bQB*Pay@azxYbrQtwN4LxB8gQvgBs+hzy- zHj{#S(zRh@gzhN()wfK$5Tv%Ei4n!fp{hIawCqCB3neN}AZXb(Y8eR^I0hky+s@&U zxFVr|_3Or{Fkrud-edRprrpc=%NvE3RAMnQLKaNOD?d~~HL@ibr_8j%M#dTn%*SC* z^ubJ&8w5z!RTUea-JBwVOd9!JzNx=l;}Oxq1n%zts@BDbR$CWB9?%#E%8(M{#K_R? zM&gh{&+69%ezKbs>0UmMcvI2DV3=?rrEy|6enNzw-NI31*g$}!n5jr!%(O9Mu6D<} zzIesTFeq3N8>xvM#`ys6ZMW#(+-H<~BZD;!j*_=%D8m^+(97R7u25ZtjA6zJ2 zw(CapQ60R5oj1rWcmNZ1TbH+3!mbyu5L~Uxu+6erIU9gQz8c!g_?o^XEG+0fdPuNUtnQbZEEC>dd-EMGcS$7y#qyuzGxpGw4C_txA~MH_By;GekT{HV zkQ6R(?xST$-x#MQ8%0Eg@Kv3rNgCM5doHs0fQ@uaca$z^XFIAZhH`qxzS%+tYZMU^ ztu;io&g@8-!cBc3+7&YSv6+1wTh#s^<78&Vmk}6Fj>PcvfAa2Xr3izeniq(jPNr?z z7@O$(e!6*>LyB1$_F)n#p`u)U+=fF2#iTSl@_f9}TBFO*tdf#6m(`TfGZH0Qn3XeY z1`>N?xJJ5A+|v|9bif!S5 z5-^oR2oqDz@~p%sI5d=kS&01*2ZbLW34{>t(Udn?GyiiHtS53ck{|tr!6+b?431}{ zOwjSqukvy7DW6xF>J2tYeG?H2vX6x`QLzWY17v3XvTNPsDb#PXde+c{NlPhcGd2=4 z=84~^Ut%~SHU*{ymHqcp64-T9Cb24#3p~wVZDYX6N+@)M=1bb%79R_7r#-v<@qoHo zQgZE|po%2zidaDwsdlaIdXTWo0WBwnMI&v>;-1jbahPtzy=_Bfi($GG>H%){8WZv5 z>Y744$Q&I}KlC7Ma(tD~vMw2Vs{a6ko-r${Lr!1!7WP(|{`f8`ckBCLHI}^Y!}`VW&m+cg z{I6yib^`;~I9=GgN-QV{)JQ$(M+8oA!ktwl&4H>|<_2-B_58tBJE`B(t|WnvgCxJ{ zIMK%(*bR>`=JMF}Jo)IX<=qQ&#XipQ<&?RW$iU zUAlu~+=S%GAVgY#DaQm>GJ}IPgC+Ttl$w;f_%&edW`w)<9+wZ3!etfLyJiDRW2QE? zsKaCT%xt9nVHq^R5i{=nXY@eE3*o%)uI7$8N-aO+3GZvZ%b3g_L*$V4PsMxg1mOxy zgO|PrN$XdtMv=67B#@#8HFD_h49fH2m(}|Hxu6WHRMSe+l61f?hk}b-t;?h3ipi%M4`GqB!qzSUjSmOGcT`@kp79xl9^b!SmU`{2d9cm@ZgX-Z88syI-~bL1xt&wT{zCWNU%nma zQ}z3Wmca5m=Va_M+Fu@sW_|ndvqyNBm_j>(kHKd3Rcf=EuAvLqA&4X6W#!yz#c;EN z6in!|N9OSmp7?T2n|Q|WF=*z!SlW(!OY;1TbDNbDd8V{ZCeu)TM9{8&0xcIvGabd>$H@QUcn$7QARl5BV5aF+?FrsM*0o{9Lu4N8Kz zF!!%YpmtB-{_1UmHr{j)<(04GCqF2EJkXq8zQM+~3c>;m84%~l!`t-%gjiz4z2#Fx zcz_}0usgSftF%@qeLa7!8%#jKc?61iTrQ~kBiWUNm4qqKA?*`nZ8X#mp&ezi7ZK*Q zjh4YnOJ~SOWRz8Ca(-bDnf8=oM8q?#Z`Pd9bn&R{O5%s~;IRq6C>k8qW&jVhchD_? z4${%kj?3@tuY|z5&TN3qAhw(fe>EAR|D!tL#eVG2wcTXu^ujvI##}}XPFb?VuT?(J zbl$kKZ1*mpL}@4oZHqQV31x^#G@K5dqn36kubumRfE<`Y5S2#3*BHf&Nk`PPJPhi$j|_A;Wgq@EV_1r!7;xXsC_VEh!14NGx$8! z`%~@{JB2(gQ4Se5TE#|D;rthoaCflB9crZnkWBGy9h$|BoR$vOz+wom4@%QKE384R zHCAbd%ig(OI-El^vRhkCf+?14GlTWnaF;byYoOx<+n=_@TbMZ_C$CspX<(j*@N<5y zUwJ*`z&@QZvgtW@I|8L}8*xotrJyuS zZd1JhBD0HkM?tb?Mfc_Ql*QOjE|iAg#YX5ryUN4@Y?|>m>hG`OE@_~-mwT)oHE`>N z(R_pL#n#9FVtZunJ^EO-*uxmUprjo@D_>kfpM17S-Jg4* zs}oTg-Z+*{E`HY84ovrg(B%nwp!pO!ZdNk<4~OVP!5{jltey@?c-Oy`<5oA7;6dg8gI8(48=lQHojE5QufK>t?uR zS?kmBEN?|QiOtwU!H*tH!I<{J)IQ(?a$HFS*WsX-Qhb*-Ka8TH>TS_QpB~){-+I&m zw)S!!ZLVupH>s^SE>vmfPI5Crcw`68YiUUmZrLgUh=)vj@EUb+G|-*(=jIRh0li;B zvUbmo=ZM=~HHbtO(o`ye96R2*n6v7Lx)6-05KHEV<(E zE>XNJdzdzi4!2EZU#<1Sz7*K zhzJq!#L%<*W{L1Rz)b}VR<2?&pi1$>$K}c##86=IIxyFknDxS80 zq}Fm{<+8T2AH^Wva$emr{Hc!h#f~E7bA-$3`4OZ$XZfpqiHbhf2Bmdx8e>oz=FQfO z%FYgapPjQJAa^__f)b|6YM&&sPb&*`_g;Z+qJJ~LnG=CkAK zSxUG)&atj*)$E6J$J5?Xni_7TN!93SS@@o9R%=vn7*n+#CiWPWk}_H4DQ0R`TzaRJ z_Q?%L{JIl4Fynn<*<+@!z{@KAs!kPzR30s6`Lp1R)=>i5T`}q8YVH+wo+2j zQya2=ml{*7rQ5EcyF5}*FfdR$uDA zjWt9myAYf##3;?C-ZMNT)r(d4W2nMtk~jA^dKq#=ajkoY8uu!?O5WM#Q8kSEjz(6Gf2Aq8I~(o$_8aOKolK10vm zAMQtm-U7YRFHyf~+8*`3ln(V~e`B=_rxM)}QMN?rs{`P(5lUfy{HeBX@s<(b7Rs`z zZ$RD7_KPmK5U)~Mr7vSDZ-QM^|I6b=KRS$CzxE~=>mF~Iz18x2dwagkZ!aAyVdO2x zOVS>ySi!@F)d1s8igb1I&C26OAr7~+>K@&&9SWe8i#*Jun`_?|KCUsH34Qmm{vtaP zq1D?17;rj;PXKl)H4s`+%(0y+>W@PylbM->M*Z#@RW@`jo+5+Ry0;?k?F-mPS|g?H z8*dc>r{rRM`m?}KI%{K}X5U8ODOCc}aN$0doYaMRF4{h6kgDc4ZYX4BQK___^2a1sD+DwL5Mq>*d>ZF*~XgQBs@``f#3pO#T zO85qtTs6Q=oOmq0a-;O#%QayRh-3A#H4E$%g!~lEts3OcQWKk;u-;?x(ftaQ&JEFp zG$e(pWV}|!0GbEn{CEbV0maZJ5MDTL# zR0m}R%h5O+h!am4F6aY7Pv$~eI;mXktM7!g^KRupl26&jl*X)KdEsGzDf6^BP7yEl z#lugV87ehhw4m)66$!>5qR_d#3L>-*?7eTs%S@CxTO%6qvE0jI%jaTwlk{-<`Dc8YE~#6u!SfH$E?R zNEGQ;B~Q4Hkhpx5!pGv^7=-<)sR~z`B}jdr=vaM0GKth2qewkw$xVm^C2vhzR9F zIAj*n=bAjc($C|(6d@3@VdEl(zfdnht&3C{Rg!&FshCTFgA+c&?da+mq@l$l#qxw2 z?u6#ypMAWIHV3;6iky3y!E(`dV#GQqTftR~t{U4%!}bQ+`%7}|dCjDYwT8tGzPa_IYMHyDd?5D&> zs|LX;6-SqmzPxl`xtSgH3pM2FT@!geii&-Od0~eBtrc`)c1vP^YCd z3EUj*(>&HGe>a^xWd^1H<0#|$VSE$VKuSMU{qh5NF z!@0m*vR^Ei)qSYxc1G@IO`=f~#1BLR-b3&$Qq9@udE^csiRxz=2nA=|u_StD$*1~? z$)|mbgEPvv=;0sSSw-;kkK{4SNC#44*`yFjQa(^Fo~T?(31-3r>tR(_E=+m0wlW9B zHCdEK(w-e_atmi0*eBs(jjqS>us_@wtEEsIFoG*D^*(-s*;&X^;zsGz;2O%!hGe?z z%RJ&p#olC#u_`LW9bFV}{FMhFyzpf_C<<`{@YGVdX>>ApdLzOG(+T(`nOp6A;Ybwa z`=i^UI9Z&SS2GRFj(VaW;d?OUDf{(!x3u-M7gt-{P%X*JNV zEi?JBgdv0HNdO-uCGZylvw1=+^zu|o2P-)RPZIYcQpmABqY~C2s?{F*bIx{wEfSY| z`19wTZuS{H)}S zVE*vAQ~@hheF~EVzK}WJ>``Wd@*8iB@$~Wf2W^qmCZ+1GkPdE~c$=Ta98h#3x0u4xp(h4{pV&MJ8bVZF+U~4cOyBxS4rq=-@!-kmT>bEv6n( zssiounNK3PNDICx(2IZ(CVC|f-+2o-{)eBf=KSo*WJSV8jV?Ue?YG(cYae3`-3)_! zELUB%$D?Eei~OoAwE6P%M#w15Z^AP4M0UPf%tgtSFLfj%Da5su&lc^PKxncWljTW< zP^A+Em?KUiswefzcYmT4iS#1=Vx9ckz<_U*2g(8=X~SgM@8S1$!;eok1_b7*EQ`t6 z!m%35TVHBoz7i_Lk`q3R-`z(s;`^L)2!MB$Gi|{*nD(3STr)en7>O=vUlW|68eoRS zpgL$$oYi%64HAUMU)0faH#Mhi!X55&+)S9X%7$jjPlUfZ_NF9&DbX~V@3NM`zp`PZ4>lA z@yGq|J2MXo{Ml~Mo~D`Hnzyo)O1e!nR__{wgsESS@F^AV3Xk493~>gs9j67ZS^y&^ z(c_NM$hIDht{adVKZ$}mDDesB5|}Ohy`iSJ`}+`=nYl)F4wb+hEVi-ZXt8E0!OxNM zMRqk~F-F&)i&Bn88zT|w?9T46cK4JHcA4c1v5D*CPM^thf^((|$)D|f0{8A+?6^%B zFxAN2{OWC2oAk`H3oV?VyH*#*&VWnxTSQB)G;jW1mGVB}`~<0nMP}p*@xvLy3ZDj@ zRo2LVms5s7V-FNr56AOnBT9#qedX~NSbaHwv{G1pDoI)I*!-~ev!57-+2ejQ01DNj zmczWB0v6Bqfu;G|)n39*s%OP-Yq_4-wrnrm4!lLB(NyG#Kd0XagUfaT2(f@``H0L~ zqCwCb2P|K)oG#YXnB;qLvSNbxk;-=ZKnwJ4&-}z~sGmqg9b$*DQ;j>bI0pnL^H#I6 zMjeX1N219SxnMt6oV6c`P0*XfkSXb)d#?R(9==uR*-_=~AQmR;a zUCNOB{p7%c0!7!=Q~R`IpnVB+t(1noRW-s;31#8$FtlRt0A%rJ%2(Vm6;^)G`bpOUI|2Z*a(7Jd8go3m zDAZ7D3T(EZ#_9v-rt53SbQ7qL%5uG+VgxBQJ<_(}^$1>{1Rx>0tcnqT4cA z=~|MU%LNAkopN@y2_*zf;lTGe!9e$IG#a_U_nl%k9XdzNwBB@4w-27db9R-@7;Y(; z+lAX0!6j7DdRr7LoHrE-XgVE1u=sWv|+T0)naiJmzrG@a3$8MuTV=rANB7AP3t|Nr8`=GH1Bwc3k zhHuc91o*GA=k!0q^7`epB29W>kR;)mag+oFjczxo_-ix@ishI()wC~romq>^)gd+M zU)oH$%=YPFKifkwmH0s8wK5F5FS7V(qU*!;s0P|*=qL;^MTUkFK4y+IlJarWJXgsE zGamMkz^iXXh}M1t@@)hM8Ch#HISSL~zsUv|Xocybrs(TY`D^Lm{#fS3?pV!Sqv+~p zQF(b$I#v_|g{o?G%e50SU7FgoHM6Yq zVZs42e(qNT`h^x5i^toGm5xti@+d+1W0;Ll6AXp%gT-hka9ezfWZT7G$OKwALOrl} zXBq-?wada!;MEEBz#V!9=evU)GOFQkd&0l6~S8aLT&5F#$1d{cpn_{jI(^|&GvH}|5ZFoktgyq;@`#5lM#4N4nk?)1t zU|YXkNRFxP0Zpx4<9sbq_z@wCjfHs&9iq5w_1iy`OANc4uVrJLxorPw6U3>{T~v7( zv4@9tTe}fC_!zI|NFnMsj+&=OcIZS5K+=mB8jB(Uudn>lO$sBuSS|-lqV_{B8>d~E z&`|=9AG-o9T>tdnmSK64FMlA5Kuy%hnJepm(1i2M0w&;cyHgyyV}i%UVzV^Z?{phq z{9s@fzowy9BEz;}87x)Sdq<0f5Z(TYx5epT-lq^}nQ7^^VEp1;#7q^=^-+6J1djm^ z8~QEMx@%(O%+FcT`&yseUfipvBkJ}NeQUY@7!~~nz6YX$m=0_CHD%H=6vRlQ{0l>* zhqB}*7|3nSd|lY)9%CUv2X(nOOp&@6E+oj)-QHd!_012|Hb^qtFzeIbyfj2=h^*u7 zbYEI}PyXPr`ndgo_JS|EzIde9tIcvzw-$pDM2_ZKOsN=Y z8_0{u1Z`XfLlupB`ks3ehdJQBUlhRlp$~{Jww$rz#uMKqUe~ffy1RkplDDwXAAwBg zu}a&8;PVn5t*!fqFG(DjPTc^HvHLsnXOgamL~7#YD0Yiz<~~ztzAlL@Ay^8VCL9%x zuJ)V@q3H-xEsmKVT->e*2w-N8vDjE7l0g>QP`S}+u@fd9>wB6iBp5QIzy1~@vc z59-gx@`J-H`lc1kTfa<>?VBmg0O)lDQo4*>v7)g45Y#qbn0Q%9gs6>X8vXz+loOG# zOApJt?$dP2oC&i|+eBO+Y{-MC3aJX2?6I9Ow+85fr1%UuKHf9a5=#kk5kS~$1lm`T zBQx#|Ui|2TkMwH^ird>G_vqMh5mJ9i4U;@ zScguOeao%hI|+NA8J)2l2*vIkQJt{)`i0MJFWh*`#30h39$!5Pvp{)QI~Q?tt>{X; zL}cX)OzTh83;wH0ck~hv@p@ZM}m@n3W zPc6H+-|fA;u1|Poe{S;t?R@gr*ZOnrdp8Q^vRnVX#=|ZAq}oXib2B3G!+pC9=wT2B_1Q;s1N^=P zo@C4nlui)}O7aKRA=$_`^e-eFZE9X$qpPIgcpo`dL+U>gxi?|)!4OI^(0QYphviNf z#Ug+G-FF`s$5Dv+Tr_0)35~ZR@z+eT$UUxg(k}cb?FS@Nzd&6tx9T-NEBS+giBUV^ zIjL_zSS49F_yt%~2uxd72nacINC+iaC}_lg_Tkkf|HIRSAf=%H>fhn@e@-SBAtwNT ziSH*Y4Kpi{Mo|A_M%Q4x0a^Q(^w$X;C`ldgu|a7UQtKbT%4hHNb8S^(ZZHh&laFC>2_ex(2q z0DSzrP4eIM`e(U7{K^1o&i{YsWZ3`gqKpc0DlFg)0by!q>+Hm&Bnt^(fWm};e}BJc zIz<^k2x$arPzHQ~yaU}U1K1%6K@2JY0mvqhl?s3tatBnP0-*T2D5EOx)G!c>Du9sg zzrAqknfco=RKq|(Fc3gMQ2%FSQi!}C9e)kD{@Po<8v+J~KrCtiLQtM60PipO`!8rU z@fRe2FB`PK7?S$?KyM&sH2??c-)Y?hVKG^YWH6-`5h$rJEq_Bg}6Et1ccK2 z@!w-MfhN=eZ2tt7Y=0wA_fDw%U!<>RfBlhx#54eC|4`GbRtZ7xwD|u;HM{zE=r|1k z_TPAlHQwV(_0FaT^JAL7Qz{|hPkFfuO?`4nkPjvAew8#4Ik!k&}=sqC+rLz7fQ7s?;HGQx7 zf7b6%>)oF`#(zL~5UuvVt0(^b delta 31892 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 I3@fnz2m9)gpa1{> diff --git a/dist/extension/birb.js b/dist/extension/birb.js index 7444feb..9222eba 100644 --- a/dist/extension/birb.js +++ b/dist/extension/birb.js @@ -2064,6 +2064,7 @@ // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; + const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2359,7 +2360,7 @@ } function determineHatUnlock() { - if (Math.random() < HAT_CHANCE) { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); diff --git a/dist/obsidian/main.js b/dist/obsidian/main.js index fbc4388..27c4caf 100644 --- a/dist/obsidian/main.js +++ b/dist/obsidian/main.js @@ -2107,6 +2107,7 @@ module.exports = class PocketBird extends Plugin { // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; + const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2402,7 +2403,7 @@ module.exports = class PocketBird extends Plugin { } function determineHatUnlock() { - if (Math.random() < HAT_CHANCE) { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); diff --git a/dist/userscript/birb.user.js b/dist/userscript/birb.user.js index 8bcd1d2..15c2968 100644 --- a/dist/userscript/birb.user.js +++ b/dist/userscript/birb.user.js @@ -2069,6 +2069,7 @@ // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; + const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2364,7 +2365,7 @@ } function determineHatUnlock() { - if (Math.random() < HAT_CHANCE) { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); diff --git a/dist/web/birb.embed.js b/dist/web/birb.embed.js index 77a375d..1ad390a 100644 --- a/dist/web/birb.embed.js +++ b/dist/web/birb.embed.js @@ -2049,6 +2049,7 @@ // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; + const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2344,7 +2345,7 @@ } function determineHatUnlock() { - if (Math.random() < HAT_CHANCE) { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); diff --git a/dist/web/birb.js b/dist/web/birb.js index 77a375d..1ad390a 100644 --- a/dist/web/birb.js +++ b/dist/web/birb.js @@ -2049,6 +2049,7 @@ // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; + const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -2344,7 +2345,7 @@ } function determineHatUnlock() { - if (Math.random() < HAT_CHANCE) { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); diff --git a/src/application.js b/src/application.js index a478858..14ea0c6 100644 --- a/src/application.js +++ b/src/application.js @@ -116,6 +116,7 @@ const FEATHER_FALL_SPEED = 1; // Petting boosts const PET_BOOST_DURATION = 1000 * 60 * 5; // 5 minutes const PET_FEATHER_BOOST = 2; +const PET_HAT_BOOST = 1.5; // Focus element constraints const MIN_FOCUS_ELEMENT_WIDTH = 100; @@ -411,7 +412,7 @@ function startApplication(birbPixels, featherPixels, hatsPixels) { } function determineHatUnlock() { - if (Math.random() < HAT_CHANCE) { + if (Math.random() < (HAT_CHANCE * (isPetBoostActive() ? PET_HAT_BOOST : 1))) { insertHat(); } else if (location.hostname === "127.0.0.1") { log("Inserting hat for debug purposes"); From 912327a34883f3db458bb763494e1fd9d05b94e7 Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Thu, 22 Jan 2026 00:01:46 -0500 Subject: [PATCH 23/24] Spawn hats based on time again --- dist/extension.zip | Bin 154512 -> 154462 bytes dist/extension/birb.js | 34 ++++++++++++++------------------- dist/extension/manifest.json | 2 +- dist/obsidian/main.js | 36 +++++++++++++++-------------------- dist/obsidian/manifest.json | 2 +- dist/userscript/birb.user.js | 36 +++++++++++++++-------------------- dist/web/birb.embed.js | 34 ++++++++++++++------------------- dist/web/birb.js | 34 ++++++++++++++------------------- src/application.js | 32 +++++++++++++------------------ 9 files changed, 87 insertions(+), 123 deletions(-) diff --git a/dist/extension.zip b/dist/extension.zip index bf4a180a42bfb16697ab7e7b41b26a4cc6880b5a..771fd95a77d2ebbf4b7dc72829e7fe0c858aa555 100644 GIT binary patch delta 32357 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 E4{f}S`~Uy| delta 32369 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