mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00

FFMQR by @wildham0 Uses an API created by wildham for Map Shuffle, Crest Shuffle and Battlefield Reward Shuffle, using a similar method of obtaining data from an external website to Super Metroid's Varia Preset option. Generates a .apmq file which the user must bring to the FFMQR website https://www.ffmqrando.net/Archipelago to patch their rom. It is not an actual patch file but contains item placement and options data for the FFMQR website to generate a patched rom with for AP. Some of the AP options may seem unusual, using Choice instead of Range where it may seem more appropriate, but these are options that are passed to FFMQR and I can only be as flexible as it is. @wildham0 deserves the bulk of the credit for not only creating FFMQR in the first place but all the ASM work on the rom needed to make this possible, work on FFMQR to allow patching with the .apmq files, and creating the API that meant I did not have to recreate his map shuffle from scratch.
70 lines
3.9 KiB
HTML
70 lines
3.9 KiB
HTML
{% macro list_rooms(rooms) -%}
|
|
<ul>
|
|
{% for room in rooms %}
|
|
<li><a href="{{ url_for("host_room", room=room.id) }}">Room #{{ room.id|suuid }}</a></li>
|
|
{% endfor %}
|
|
{{ caller() }}
|
|
</ul>
|
|
{%- endmacro %}
|
|
{% macro list_patches_room(room) %}
|
|
{% if room.seed.slots %}
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Id</th>
|
|
<th>Name</th>
|
|
<th>Game</th>
|
|
<th>Download Link</th>
|
|
<th>Tracker Page</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for patch in room.seed.slots|list|sort(attribute="player_id") %}
|
|
<tr>
|
|
<td>{{ patch.player_id }}</td>
|
|
<td data-tooltip="Connect via TextClient"><a href="archipelago://{{ patch.player_name | e}}:@{{ config['HOST_ADDRESS'] }}:{{ room.last_port }}">{{ patch.player_name }}</a></td>
|
|
<td>{{ patch.game }}</td>
|
|
<td>
|
|
{% if patch.data %}
|
|
{% if patch.game == "Minecraft" %}
|
|
<a href="{{ url_for("download_slot_file", room_id=room.id, player_id=patch.player_id) }}" download>
|
|
Download APMC File...</a>
|
|
{% elif patch.game == "Factorio" %}
|
|
<a href="{{ url_for("download_slot_file", room_id=room.id, player_id=patch.player_id) }}" download>
|
|
Download Factorio Mod...</a>
|
|
{% elif patch.game == "Kingdom Hearts 2" %}
|
|
<a href="{{ url_for("download_slot_file", room_id=room.id, player_id=patch.player_id) }}" download>
|
|
Download Kingdom Hearts 2 Mod...</a>
|
|
{% elif patch.game == "Ocarina of Time" %}
|
|
<a href="{{ url_for("download_slot_file", room_id=room.id, player_id=patch.player_id) }}" download>
|
|
Download APZ5 File...</a>
|
|
{% elif patch.game == "VVVVVV" and room.seed.slots|length == 1 %}
|
|
<a href="{{ url_for("download_slot_file", room_id=room.id, player_id=patch.player_id) }}" download>
|
|
Download APV6 File...</a>
|
|
{% elif patch.game == "Super Mario 64" and room.seed.slots|length == 1 %}
|
|
<a href="{{ url_for("download_slot_file", room_id=room.id, player_id=patch.player_id) }}" download>
|
|
Download APSM64EX File...</a>
|
|
{% elif patch.game | supports_apdeltapatch %}
|
|
<a href="{{ url_for("download_patch", patch_id=patch.id, room_id=room.id) }}" download>
|
|
Download Patch File...</a>
|
|
{% elif patch.game == "Dark Souls III" %}
|
|
<a href="{{ url_for("download_slot_file", room_id=room.id, player_id=patch.player_id) }}" download>
|
|
Download JSON File...</a>
|
|
{% elif patch.game == "Final Fantasy Mystic Quest" %}
|
|
<a href="{{ url_for("download_slot_file", room_id=room.id, player_id=patch.player_id) }}" download>
|
|
Download APMQ File...</a>
|
|
{% else %}
|
|
No file to download for this game.
|
|
{% endif %}
|
|
{% else %}
|
|
No file to download for this game.
|
|
{% endif %}
|
|
</td>
|
|
<td><a href="{{ url_for("get_player_tracker", tracker=room.tracker, tracked_team=0, tracked_player=patch.player_id) }}">Tracker</a></td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
{%- endmacro -%}
|