feat: implement basic fairy tracker
This commit is contained in:
parent
1e46ad269e
commit
8109bacb0d
27 changed files with 290 additions and 7 deletions
83
app/views/instance/_fairies.html.erb
Normal file
83
app/views/instance/_fairies.html.erb
Normal file
|
@ -0,0 +1,83 @@
|
|||
<div class="fairies" id="fairies">
|
||||
<div class="map">
|
||||
<img src="/maps/<%= instance.zone %>.jpg" style="width: 100%;" />
|
||||
<% APP_DATA[instance.zone.to_sym][:fairies].each do |fairy| %>
|
||||
<div
|
||||
class="<%= class_names(unclaimed: !has_fairy?(instance, fairy)) %> fairy-dot"
|
||||
style="left: <%= fairy[:x].to_f / get_map_x(instance.zone) * 100 %>%; top: <%= fairy[:y].to_f / get_map_y(instance.zone) * 100 %>%; ">
|
||||
<% if has_fairy?(instance, fairy) %>
|
||||
<% idx = instance.fairies.index { |f| f.location == "#{fairy[:x]},#{fairy[:y]}" } %>
|
||||
<% if idx == 0 %>
|
||||
<span class="fairy-a fairy-marker">A</span>
|
||||
<% elsif idx == 1 %>
|
||||
<span class="fairy-b fairy-marker">B</span>
|
||||
<% elsif idx == 2 %>
|
||||
<span class="fairy-c fairy-marker">C</span>
|
||||
<% else %>
|
||||
<span class="other-fairy fairy-marker"><%= idx + 1 %></span>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<div
|
||||
class="action button"
|
||||
hx-post="/fairy/mark?instance=<%= instance.public_id %>&location=<%= fairy[:x] %>,<%= fairy[:y] %>"
|
||||
hx-swap="outerHTML"
|
||||
hx-target="#fairies"
|
||||
hx-select="#fairies"
|
||||
>
|
||||
•
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<% if instance.fairies.empty? %>
|
||||
<div class="fairy-list">
|
||||
<div class="note">No elementals found yet! Click on any dot to mark that position.</div>
|
||||
</div>
|
||||
<% else %>
|
||||
<div class="fairy-list">
|
||||
<% instance.fairies.to_a.each_index do |idx| %>
|
||||
<div>
|
||||
<% if idx == 0 %>
|
||||
<div>
|
||||
Elemental <span class="fairy-a">A</span>
|
||||
</div>
|
||||
<% elsif idx == 1 %>
|
||||
<div>
|
||||
Elemental <span class="fairy-b">B</span>
|
||||
</div>
|
||||
<% elsif idx == 2 %>
|
||||
<div>
|
||||
Elemental <span class="fairy-c">C</span>
|
||||
</div>
|
||||
<% elsif idx > 2 %>
|
||||
<div>
|
||||
Elemental <span><%= idx + 1 %></span>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div>
|
||||
<div
|
||||
class="copyable action needs_pwd"
|
||||
hx-post="/fairy/unmark?instance=<%= instance.public_id %>&location=<%= instance.fairies[idx].location %>"
|
||||
hx-swap="outerHTML"
|
||||
hx-target="#fairies"
|
||||
hx-select="#fairies"
|
||||
>
|
||||
remove</div>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="note">Click on a black dot to mark another Elemental.</div>
|
||||
<div class="note">
|
||||
<div
|
||||
class="copyable"
|
||||
data-copy-content="Elementals: <%= instance.fairies[0..-1].map { |f| f.location }.join(", ") %>"
|
||||
>
|
||||
copy elemental positions for chat
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
Loading…
Add table
Add a link
Reference in a new issue