mirror of
https://github.com/JogmansonReal/Radicade.git
synced 2026-10-25 15:09:26 -07:00
Radicade Public Code
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
# Weekly challenges and RadAdmin
|
||||
|
||||
|
||||
|
||||
The player routes are GET `api/challenge/v2/getCurrent` and POST
|
||||
|
||||
`api/challenge/v2/updateProgress`, also under `econ/`. Both require player auth.
|
||||
|
||||
The server stores progress in `WeeklyChallenges`, keyed by player and map ID.
|
||||
|
||||
The new `20261008120000_AddWeeklyChallenges` migration is applied by the existing
|
||||
|
||||
server startup migration step. This work has not been deployed or game-tested.
|
||||
|
||||
|
||||
|
||||
## Add-A-Challenge
|
||||
|
||||
|
||||
|
||||
RadAdmin's Challenges page saves library entries through the existing
|
||||
|
||||
`/admin/panel/challenges` CRUD API. A gameplay preset generates the client config;
|
||||
|
||||
names, descriptions and tooltips are editable. The initial supported presets are
|
||||
|
||||
single-event goals: finish an activity, tag a player, defeat an AI enemy, capture
|
||||
|
||||
a flag, and block with a shield. Count/streak and arbitrary legacy configs are
|
||||
|
||||
not yet supported by the weekly validator.
|
||||
|
||||
|
||||
|
||||
## Publishing a weekly
|
||||
|
||||
|
||||
|
||||
Open **Challenges**, choose the current week or one of the next three weeks, and:
|
||||
|
||||
|
||||
|
||||
1. Enter the display title and duplicate-item token amount (1–10,000).
|
||||
|
||||
2. Search Equipment skins or Avatar items and select the exact catalog item.
|
||||
|
||||
3. Select three to five library challenges. Create any missing goals with New challenge.
|
||||
|
||||
4. Leave Published checked and click Publish weekly. Uncheck it and save to disable the week.
|
||||
|
||||
|
||||
|
||||
An unscheduled week has no challenges or reward. There is no built-in lineup or reward
|
||||
|
||||
rotation. Existing saved schedules remain supported. Publish the current week after
|
||||
|
||||
upgrading if it previously used the old automatic rotation.
|
||||
|
||||
|
||||
|
||||
GET `/admin/panel/weekly-challenges` returns four `weeks`, with map IDs, dates,
|
||||
|
||||
content and `Revision`. GET `/admin/panel/weekly-challenges/rewards` returns searchable
|
||||
|
||||
catalog choices with `key`, `kind`, `name`, and `detail`. POST the schedule:
|
||||
|
||||
|
||||
|
||||
```json
|
||||
|
||||
{
|
||||
|
||||
"ChallengeMapId": 100000,
|
||||
|
||||
"Revision": "revision from GET, or empty for a new schedule",
|
||||
|
||||
"Title": "Weekly Challenges",
|
||||
|
||||
"Enabled": true,
|
||||
|
||||
"ChallengeIds": [1, 2, 3],
|
||||
|
||||
"RewardKey": "exact key returned by the reward catalog endpoint",
|
||||
|
||||
"FallbackTokens": 300
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
All admin routes use existing admin-key validation and RadAdmin's same-origin proxy.
|
||||
|
||||
The server resolves the reward against its loaded catalog; arbitrary gift payloads
|
||||
|
||||
Reference in New Issue
Block a user