From 8023941cb42b562ed715bb99b600b460bea92ba9 Mon Sep 17 00:00:00 2001 From: AnSq Date: Fri, 19 Jun 2026 12:43:56 -0700 Subject: [PATCH] Update to U43, etc. * added weekly Hunhow Kuva * added week 9 incarnons * added Clan Weekly Initiatives (closes #46) * added weekly Kaya vendor (closes #55) * improved the documentation for icons * added a script to invert icons that come as white * adapted some changes from/for #53 * improved the placement and wrapping of site-controls * future-proofed the CSS for site-controls button spacing * `moreInfo.js` `_factionIcon()` is now `functions.js` `factionIcon()` * bump version to 5.1 * bump game version to 43.0.2 --- package.json | 2 +- sources/css/critical.css | 10 ++++-- sources/img/icons/README.md | 30 ++++++++++++++++++ sources/img/icons/invert.sh | 2 ++ sources/img/icons/{tasks => }/resize.sh | 0 sources/img/icons/tasks/Friends.png | Bin 0 -> 1878 bytes .../img/icons/tasks/MarkedForDeathStalker.png | Bin 0 -> 3415 bytes sources/img/icons/tasks/README.md | 14 -------- sources/js/app.js | 4 +-- sources/js/cycles.json | 5 +-- sources/js/functions.js | 5 +++ sources/js/moreInfo.js | 26 ++++++++------- sources/js/tasks.json | 26 ++++++++++++++- 13 files changed, 89 insertions(+), 35 deletions(-) create mode 100644 sources/img/icons/README.md create mode 100644 sources/img/icons/invert.sh rename sources/img/icons/{tasks => }/resize.sh (100%) create mode 100644 sources/img/icons/tasks/Friends.png create mode 100644 sources/img/icons/tasks/MarkedForDeathStalker.png delete mode 100644 sources/img/icons/tasks/README.md diff --git a/package.json b/package.json index c42d8d2..5265afa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "task-checklist", - "version": "5.0.1", + "version": "5.1", "description": "A Warframe Task Checklist to track daily, weekly, and other tasks. Built with HTML, CSS, and vanilla JavaScript, processed with Vite.", "type": "module", "scripts": { diff --git a/sources/css/critical.css b/sources/css/critical.css index 17b9ff1..1671e44 100644 --- a/sources/css/critical.css +++ b/sources/css/critical.css @@ -180,9 +180,13 @@ body.light-mode::before { display: flex; flex-wrap: wrap; justify-content: space-between; - align-items: center; + align-items: flex-start; + gap: 0.5rem; margin-bottom: 1rem; } +#site-header hgroup { + flex: 1 1 0%; +} h1 { color: var(--text-header); font-size: 1.875rem; @@ -280,8 +284,8 @@ h2 .reset-time-local { cursor: pointer; line-height: 1.5; } -#site-header button:not(:last-of-type) { margin-right: 0.5rem; } -#site-header button:not(:first-of-type) { margin-left: 0.5rem; } +#site-controls > :not(:last-child) { margin-right: 0.5rem; } +#site-controls > :not(:first-child) { margin-left: 0.5rem; } #site-header button svg { width: 1.25rem; height: 1.25rem; diff --git a/sources/img/icons/README.md b/sources/img/icons/README.md new file mode 100644 index 0000000..d4be2aa --- /dev/null +++ b/sources/img/icons/README.md @@ -0,0 +1,30 @@ +# Task Icons + +Icons are sourced from the [wiki](https://wiki.warframe.com/) and +[browse.wf](https://browse.wf/). The search function doesn't find everything +though, so digging through [Icons](https://browse.wf/Lotus/Interface/Icons/) +is essential. + +Icons should be monochromatic, square, and cropped to fill the entire canvas. +A script, [`resize.sh`](./resize.sh)\*, is included that handles cropping, +squaring, and resizing. Most images come as white and should be inverted so +they're possible to see in Windows Explorer light mode +([`invert.sh`](./invert.sh)\* can do this for you). CSS converts it to all white +or all black as appropriate for the theme. If a monochrome icon is not +available, you can add `"noIconFilter": true` to the task and the icon will be +shown in color as-is. For cycle icons, the default is reversed: color icons are +preferred, and you can add `"iconFilter": true` to a cycle's `order` entry for +monochrome icons. + +\* `resize.sh` and `invert.sh` both require [ImageMagick](https://imagemagick.org/). + +Icons should retain their original filenames as a hint to where they came from. +If any modifications are done to the image (besides inverting/cropping/resizing), +add an underscore at the end of the filename and note the modifications here: + +| Icon | Changes | Original | +|------|---------|----------| +| cycles/RetroSeasonal*Icon_.png | Added a gray 'glow' around them so they're easier to see in dark mode. | [Autumn](https://browse.wf/Lotus/Interface/Graphics/Retro/Calendar/RetroSeasonalAutumnIcon.png)
[Spring](https://browse.wf/Lotus/Interface/Graphics/Retro/Calendar/RetroSeasonalSpringIcon.png)
[Summer](https://browse.wf/Lotus/Interface/Graphics/Retro/Calendar/RetroSeasonalSummerIcon.png)
[Winter](https://browse.wf/Lotus/Interface/Graphics/Retro/Calendar/RetroSeasonalWinterIcon.png)
| +| tasks/HelpClem_.png | Cut Clem's head out of the Nightwave Act image. | [link](https://browse.wf/Lotus/Interface/Icons/Episodes/Weekly/HelpClem.png) | +| tasks/Kaya_.png | Made the non-transparent parts fully opaque, instead of a transparency gradient. | [link](https://browse.wf/Lotus/Interface/Icons/QuickAccess/1999Mall/Kaya.png) | +| tasks/MiniMapCaviaVendor_.png | Removed drop shadow. | [link](https://browse.wf/Lotus/Interface/Icons/Markers/MiniMapCaviaVendor.png) | diff --git a/sources/img/icons/invert.sh b/sources/img/icons/invert.sh new file mode 100644 index 0000000..699443e --- /dev/null +++ b/sources/img/icons/invert.sh @@ -0,0 +1,2 @@ +#!/bin/sh +magick mogrify -channel RGB -negate "$1" diff --git a/sources/img/icons/tasks/resize.sh b/sources/img/icons/resize.sh similarity index 100% rename from sources/img/icons/tasks/resize.sh rename to sources/img/icons/resize.sh diff --git a/sources/img/icons/tasks/Friends.png b/sources/img/icons/tasks/Friends.png new file mode 100644 index 0000000000000000000000000000000000000000..017c8cccb5236f9e59e822f17fa2460c2b426c7e GIT binary patch literal 1878 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%0D}~&#=frx!O_rm%Z~vhPxtOZpH~I zGF!}SbL=8V<(u`i&ND5YJh?8)QZGM=BWAmA3;9Ox+NHQLJxlR;Hg1&ZBqZ-_t>5S6 z#vxghe}@zLEm2!TZ;f*!ZfugJUfvfsnskhNfg$F4-VQguuwKiXkrmws`4&UyC3f!A z!{ScMiTx#RoQ)uCBN=*)xd#g$W>~J}^PF#8chl>P zL-;o?>}eV0S-9{BpRqZ8fFm4dLZdCp|3`Lq)IN6~;8Mql#QUkrW1W7=rSuub@fam! z=kAni`9rcZlt&m!A7YwQ899$V6TazjV;&?sN3%P93n%5{Qk3U9Dfc-_DJ2`zQj}+t tjWWvUm#oKLiOQ20z-*e(NgGFA`7dbNL3E`j=-~hW002ovPDHLkV1lV~U?u`; +} diff --git a/sources/js/moreInfo.js b/sources/js/moreInfo.js index 1fedfe1..e213152 100644 --- a/sources/js/moreInfo.js +++ b/sources/js/moreInfo.js @@ -3,19 +3,15 @@ */ import * as C from "./constants.js"; -import { iconURL } from "./functions.js"; +import { factionIcon } from "./functions.js"; -function _factionIcon(name) { - const src = iconURL(`tasks/syndicates/${name}`); - return ``; -} const factions = `

The Faction Syndicates are - ${_factionIcon("FactionSigilRebels.png")}Steel Meridian, - ${_factionIcon("FactionSigilJudge.png")}Arbiters of Hexis, - ${_factionIcon("FactionSigilOracle.png")}Cephalon Suda, - ${_factionIcon("FactionSigilBusiness.png")}The Perrin Sequence, - ${_factionIcon("FactionSigilAssassins.png")}Red Veil, - and ${_factionIcon("FactionSigilChurch.png")}New Loka.

+ ${factionIcon("FactionSigilRebels.png")}Steel Meridian, + ${factionIcon("FactionSigilJudge.png")}Arbiters of Hexis, + ${factionIcon("FactionSigilOracle.png")}Cephalon Suda, + ${factionIcon("FactionSigilBusiness.png")}The Perrin Sequence, + ${factionIcon("FactionSigilAssassins.png")}Red Veil, + and ${factionIcon("FactionSigilChurch.png")}New Loka.

Pledge your loyalty to a faction syndicate at the Syndicates console in your ${C.BASE_OF_OPERATIONS_TOOLTIP}.

` export default { @@ -68,5 +64,11 @@ export default {

(There's currently a visual bug where the bonus credits don't appear on the mission completion screen. They are still added to your account though.)

`, daily_syndicate_gain: factions, - daily_syndicate_spend: factions + daily_syndicate_spend: factions, + + weekly_clan_initiative: `

Play in a squad with other members of your Clan to earn bonus resources for your Clan Vault. The bonus resources also contribute to your personal rewards track for the week. Progress is based on the amount of resources collected in missions with your clan members.

+

Each week, a random planet will reward double bonus Vault resources (and double reward track progress) for missions played there.

+

Check the current boosted planet and track your reward progress in the Clan menu.

+

Note: You can use the "Clan Only" matchmaking option to join squads with your Clan or Alliance members, but playing with Alliance members does not give bonus Vault resources or reward progress.

+

* Descendia missions do not contribute to Clan Weekly Initiatives.

` } diff --git a/sources/js/tasks.json b/sources/js/tasks.json index 266ba66..4eaa765 100644 --- a/sources/js/tasks.json +++ b/sources/js/tasks.json @@ -376,7 +376,7 @@ "text": "Elite Temporal Archimedea: Attempt weekly Elite Temporal Archimedea for high Archon Shard chances (very endgame).", "icon": "Kaya_.png", "location": "Höllvania Central Mall", - "npc": "Kaya", + "npc": "Kaya Velasco", "prereq": "Rank 5 The Hex", "info": "Costs 2 Search Pulses to unlock for the week" } @@ -412,6 +412,14 @@ "location": "Dark Refractory (Base of Operations)", "terminal": "Navigation" }, + { + "id": "weekly_clan_initiative", + "text": "Clan Weekly Initiatives: Earn rewards by playing with clan members.", + "icon": "Friends.png", + "location": "Any Mission*", + "terminal": "Menu 🞂 Communication 🞂 Clan", + "prereq": "Membership in a Clan" + }, { "id": "weekly_vendors", "text": "Vendors", @@ -457,6 +465,14 @@ "npc": "Bird 3", "prereq": "Rank 5 Cavia" }, + { + "id": "weekly_kaya", + "text": "Kaya: Trade Pix Chips for Arcanes.", + "icon": "Kaya_.png", + "location": "Höllvania Central Mall", + "npc": "Kaya Velasco", + "prereq": "Elite Temporal Archimedea" + }, { "id": "weekly_nightcap", "text": "Nightcap: Trade Fergolyte for Kuva and Ayatan Sculpture.", @@ -472,6 +488,14 @@ "location": "Any Relay", "npc": "Aspirant Zorba", "prereq": "The Chains of Harrow" + }, + { + "id": "weekly_hunhow", + "text": "Hunhow: Trade Emerald & Crimson Talents for Kuva.", + "icon": "MarkedForDeathStalker.png", + "location": "Pontis Tower, Uranus", + "npc": "Hunhow", + "prereq": "Jade Shadows: Constellations" } ] }