63 lines
2.1 KiB
Text
63 lines
2.1 KiB
Text
<h3>Challenge log</h3>
|
|
|
|
<div class="sprite-list">
|
|
<% Bestiary.get_sprites_for_zone(instance.zone).each do |sprite| %>
|
|
<% is_spawning = forecast[0][:curr_weather].in?(sprite[:weather]) %>
|
|
<div class="sprite">
|
|
<div class="sprite-name">
|
|
<img src="/<%= sprite[:element] %>.png" width="15" style="margin-top: -3px;" />
|
|
<%= sprite[:name] %>
|
|
</div>
|
|
<% if is_spawning %>
|
|
<div class="spawning">is spawning!</div>
|
|
<% else %>
|
|
<% next_pattern = forecast.find { |f| f[:curr_weather].in?(sprite[:weather]) } %>
|
|
<div class="not-spawning">spawns in
|
|
<% if next_pattern.nil? %>
|
|
>300m
|
|
<% else %>
|
|
<%= ((next_pattern[:time] - Time.now.utc) / 1.minutes).ceil %>m
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<% if is_spawning %>
|
|
<div class="sprite-levels">
|
|
<% sprite[:sprite_levels].each do |lvl| %>
|
|
<div>
|
|
<div style="display: flex; gap: 3px;">
|
|
<div>lv<%= lvl[:lv] %></div>
|
|
<div>
|
|
<% if lvl[:mutates] %>
|
|
<img src="/mutation.png" width="13" />
|
|
<% elsif lvl[:adapts] %>
|
|
<img src="/adaptation.png" width="13" />
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
~<%= lvl[:mx] %>/<%= lvl[:my] %>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<details class="sprite-map">
|
|
<summary>
|
|
show map
|
|
</summary>
|
|
|
|
<div style="position: relative;">
|
|
<img src="/maps/<%= sprite[:zone] %>_fw.jpg" style="width: 100%; position: relative;" />
|
|
<% sprite[:sprite_levels].each do |lvl| %>
|
|
<div
|
|
title="LV<%= lvl[:lv] %>"
|
|
style="line-height: 10px; position: absolute; left: <%= (lvl[:mx] / 42) * 100.0 - 2.0 %>%; top: <%= (lvl[:my] / 42) * 100.0 - 2.5 %>%"
|
|
>
|
|
•
|
|
<br/>
|
|
<small>LV<%= lvl[:lv] %></small>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
</details>
|
|
<% end %>
|
|
<% end %>
|
|
</div>
|