diff --git a/aseprite/hats.aseprite b/aseprite/hats.aseprite index 04118e0..cc136e9 100644 Binary files a/aseprite/hats.aseprite and b/aseprite/hats.aseprite differ diff --git a/dist/extension.zip b/dist/extension.zip index a779a17..3aae971 100644 Binary files a/dist/extension.zip and b/dist/extension.zip differ 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 25e2889..61e2103 100644 Binary files a/sprites/hats.png and b/sprites/hats.png differ 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 {