- _sea_overlay.html: DEAL btn replaced by two .sea-deck-stack--levity/gravity piles; .sea-pos-cover + .sea-pos-cross overlaid on center sig slot; LOCK HAND (disabled) + DEL (.btn-danger) in .sea-form-actions; data-sea-deck-url attr - sea overlay inline JS: _fetchDeck() loads shuffled piles from sea_deck endpoint; stack click → _showOk(); click elsewhere → _hideOk(); OK click → _fillPos() in next spread-order position; DEL → _reset(); LOCK HAND enables at 6 fills - SPREAD_ORDER constants for waite-smith + escape-velocity spread types - sea_deck view: shuffles full equipped deck minus all seated Significators, splits into levity (first half) + gravity (second half) JSON arrays - epic:sea_deck URL registered - sea_partial view: ctx['room'] = room added (fixes NoReverseMatch for sea_deck URL) - _card-deck.scss: .sea-card-slot--filled; .sea-pos-cover/cross absolute overlay; .sea-deck-stack + .sea-stack-face; .sea-form-actions layout; removed old DEAL rule - 9 Sprint B FTs green; 3 Sprint A FTs green; 730 ITs green Code architected by Disco DeDisco <discodedisco@outlook.com> Git commit message Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
33 lines
2.0 KiB
Python
33 lines
2.0 KiB
Python
from django.urls import path
|
|
from . import views
|
|
|
|
|
|
app_name = 'epic'
|
|
|
|
urlpatterns = [
|
|
path('rooms/create_room', views.create_room, name='create_room'),
|
|
path('room/<uuid:room_id>/', views.room_view, name='room'),
|
|
path('room/<uuid:room_id>/gate/', views.gatekeeper, name='gatekeeper'),
|
|
path('room/<uuid:room_id>/gate/drop_token', views.drop_token, name='drop_token'),
|
|
path('room/<uuid:room_id>/gate/confirm_token', views.confirm_token, name='confirm_token'),
|
|
path('room/<uuid:room_id>/gate/return_token', views.return_token, name='return_token'),
|
|
path('room/<uuid:room_id>/gate/release_slot', views.release_slot, name='release_slot'),
|
|
path('room/<uuid:room_id>/pick-roles', views.pick_roles, name='pick_roles'),
|
|
path('room/<uuid:room_id>/pick-sigs', views.pick_sigs, name='pick_sigs'),
|
|
path('room/<uuid:room_id>/select-role', views.select_role, name='select_role'),
|
|
path('room/<uuid:room_id>/select-sig', views.select_sig, name='select_sig'),
|
|
path('room/<uuid:room_id>/sig-reserve', views.sig_reserve, name='sig_reserve'),
|
|
path('room/<uuid:room_id>/sig-ready', views.sig_ready, name='sig_ready'),
|
|
path('room/<uuid:room_id>/sig-confirm', views.sig_confirm, name='sig_confirm'),
|
|
path('room/<uuid:room_id>/gate/invite', views.invite_gamer, name='invite_gamer'),
|
|
path('room/<uuid:room_id>/gate/status', views.gate_status, name='gate_status'),
|
|
path('room/<uuid:room_id>/delete', views.delete_room, name='delete_room'),
|
|
path('room/<uuid:room_id>/abandon', views.abandon_room, name='abandon_room'),
|
|
path('room/<uuid:room_id>/tarot/', views.tarot_deck, name='tarot_deck'),
|
|
path('room/<uuid:room_id>/tarot/deal', views.tarot_deal, name='tarot_deal'),
|
|
path('room/<uuid:room_id>/natus/preview', views.natus_preview, name='natus_preview'),
|
|
path('room/<uuid:room_id>/natus/save', views.natus_save, name='natus_save'),
|
|
path('room/<uuid:room_id>/sea/partial', views.sea_partial, name='sea_partial'),
|
|
path('room/<uuid:room_id>/sea/deck', views.sea_deck, name='sea_deck'),
|
|
]
|