diff options
author | ana <ana@ana.st> | 2021-08-09 15:24:32 +0200 |
---|---|---|
committer | ana <ana@ana.st> | 2021-08-09 15:24:32 +0200 |
commit | 231f854a1a7fe3ac99aecb97121727997cf8f23f (patch) | |
tree | a1fd219f02dc4b87279f8667b80b95776fb01d46 /src | |
parent | 0bc1d415c477e0f73f22de4245ac29b9fb5500ce (diff) | |
download | eureka-marks-231f854a1a7fe3ac99aecb97121727997cf8f23f.tar.gz |
feat: display sprite spawn times
Diffstat (limited to 'src')
-rw-r--r-- | src/App.svelte | 37 | ||||
-rw-r--r-- | src/bestiary.js | 25 |
2 files changed, 54 insertions, 8 deletions
diff --git a/src/App.svelte b/src/App.svelte index b16929b..cd6102b 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -136,9 +136,16 @@ <ul> {#each upMatches as m (m.name + m.level)} <li> - <em>(Lv{formatLevel(m)})</em> <strong>{m.name}</strong> - ({#if m.mutating}mutates{/if}{#if m.augmenting}augments{/if} - {formatUptimeUntil(m.uptime.futureUptime)}) + <span class={!m.spawning && "strikethrough"}> + <em>(Lv{formatLevel(m)})</em> <strong>{m.name}</strong> + ({#if m.mutating}mutates{/if}{#if m.augmenting}augments{/if} + {formatUptimeUntil(m.uptime.futureUptime)}) + </span> + {#if !m.spawning} + (next spawns {m.nextSpawn + ? day(m.nextSpawn.date).fromNow() + : "in a long time"} + {/if} </li> {/each} </ul> @@ -146,7 +153,16 @@ <h5>regular enemies</h5> <ul> {#each normalMatches as m (m.name + m.level)} - <li><em>(Lv{formatLevel(m)})</em> <strong>{m.name}</strong></li> + <li> + <span class={!m.spawning && "strikethrough"}> + <em>(Lv{formatLevel(m)})</em> <strong>{m.name}</strong> + </span> + {#if !m.spawning} + (next spawns {m.nextSpawn + ? day(m.nextSpawn.date).fromNow() + : "in a long time"}) + {/if} + </li> {/each} </ul> @@ -154,9 +170,16 @@ <ul> {#each otherMatches as m (m.name + m.level)} <li> - <em>(Lv{formatLevel(m)})</em> <strong>{m.name}</strong> - ({#if m.mutating}mutates{/if}{#if m.augmenting}augments{/if} - {formatNextUptime(m.uptime.futureUptime)}) + <span class={!m.spawning && "strikethrough"}> + <em>(Lv{formatLevel(m)})</em> <strong>{m.name}</strong> + ({#if m.mutating}mutates{/if}{#if m.augmenting}augments{/if} + {formatNextUptime(m.uptime.futureUptime)}) + </span> + {#if !m.spawning} + (next spawns {m.nextSpawn + ? day(m.nextSpawn.date).fromNow() + : "in a long time"}) + {/if} </li> {/each} </ul> diff --git a/src/bestiary.js b/src/bestiary.js index e38fc90..9a2728c 100644 --- a/src/bestiary.js +++ b/src/bestiary.js @@ -13,6 +13,18 @@ const bestiaries = { hydatos: hydatosB, }; +export const logograms = { + CONCEPTUAL: 0, + FUNDAMENTAL: 1, + OFFENSIVE: 2, + PROTECTIVE: 3, + CURATIVE: 4, + TACTICAL: 5, + INMICAL: 6, + MITIGATIVE: 7, + OBSCURE: 8, +}; + export function getMatches(forecast, level) { let res = []; bestiaries[forecast[0].zone].forEach((b) => { @@ -21,13 +33,18 @@ export function getMatches(forecast, level) { (b.levelRange && b.levelRange[0] - 2 <= level && b.levelRange[1] >= level) ) { res.push({ - name: b.name, + name: b.name.trim(), level: b.level, levelRange: b.levelRange, elem: b.elem, special: b.type > 0, mutating: b.type === 1, augmenting: b.type === 2, + spawning: + !b.spawnConditions || + b.spawnConditions.includes(forecast[0].currWeather), + nextSpawn: + !b.spawnConditions || findNextSpawn(forecast, b.spawnConditions), uptime: findForecastMatch(forecast, b.conditions), }); } @@ -51,6 +68,12 @@ function findForecastMatch(forecast, conditions) { }; } +function findNextSpawn(forecast, spawnConditions) { + return forecast.find((f) => { + return spawnConditions.includes(forecast.currWeather); + }); +} + function forecastMatches(forecast, condition, index) { const currWeather = forecast[index].currWeather; return condition.some((c) => c === currWeather); |