Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: First version of story progression #287

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions v2/characters/story.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// GET /v2/characters/Hello
// Authorization: Bearer token123
// Scopes: account, progression

// story.selected is the currently selected story mission
// story.storylines indicates the maximum progress in any of the storylines
// story.flags indicates the choices made at various times
{
"name": "Hello",
"race": "Human",
"gender": "Female",
"profession": "Thief",
"level": 80,
"story": {
"selected": 310001,
"storylines": [181101, 230001, 310001],
"flags": ["Human", "Commoner", "Vigil"]
}
}

42 changes: 42 additions & 0 deletions v2/story/chapters.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// GET /v2/story/chapters

[ 1111, 1112, 1211, 3100, 3200 ]

// GET /v2/story/chapters/111
// GET /v2/story/chapters?id=111

{
"id": 1111,
"name": "Experiments Gone Wrong",
"missions": [111101, 111102]
}

// GET /v2/story/chapters?ids=1111,1112,1211,3100,3200

[
{
"id": 1111,
"name": "Experiments Gone Wrong",
"missions": [111101, 111102]
},
{
"id": 1112,
"name": "Experiments Gone Wrong",
"missions": [111101, 111202]
},
{
"id": 1121,
"name": "Getting the Band Back Together",
"missions": [112101, 112102]
},
{
"id": 3100,
"name": "Gates of Maguuma",
"missions": [310001, 310002]
},
{
"id": 3200,
"name": "Entanglement",
"missions": [320001, 320002]
}
]
74 changes: 74 additions & 0 deletions v2/story/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
// GET /v2/story

[ 111101, 111102 ]

// GET /v2/story/111102
// GET /v2/story?id=111102

// "maps" should contain the IDs for /v2/maps
// Instead of "locations" one could specify the starting location similar to /v1/event_details
{
"id": 111102,
"name": "Snaff Would Be Proud",
"level": 10,
"locations": ["The Hinterlabs", "Jeztar Falls"],
"maps": ["Metrica Province"],
"flags": ["Asura", "Statics"],
"achievements": [],
"followed_by": [111103]
}

// GET /v2/story?ids=111101,111102,111202,112102,310001

// "achievements" should contain the IDs for /v2/achievements
[
{
"id": 111101,
"name": "Explosive Intellect",
"level": 1,
"locations": ["The Hinterlabs"],
"maps": ["Metrica Province"],
"flags": ["Asura"],
"achievements": [],
"followed_by": [111102, 111202, 111302]
},
{
"id": 111102,
"name": "Snaff Would Be Proud",
"level": 10,
"locations": ["The Hinterlabs", "Jeztar Falls"],
"map": ["Metrica Province"],
"flags": ["Asura", "Statics"],
"achievements": [],
"followed_by": [111103]
},
{
"id": 111202,
"name": "In Snaff's Footsteps",
"level": 10,
"locations": [],
"flags": ["Asura", "Dynamics"],
"achievements": [],
"followed_by": [111203]
},
{
"id": 112102,
"name": "Chain of Command",
"level": 10,
"locations": ["Hero's Canton", "Tela Range"],
"maps": ["Black Citadel", "Plains of Ashford"],
"flags": ["Charr", "Blood Legion"],
"achievements": [],
"followed_by": [112103]
},
{
"id": 310001,
"name": "Disturbance in Brisban Wildlands",
"level": 80,
"locations": ["Tangle Root"],
"maps": ["Brisbane Wildlands"],
"flags": [],
"achievements": ["No One Left Behind", "No Shocks Here", "A Shocking Development"],
"followed_by": [310002]
}
]
26 changes: 26 additions & 0 deletions v2/story/storylines.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// GET /v2/story/storylines

[ 1, 2, 3, 4 ]

// GET /v2/story/storylines/1
// GET /v2/story/storylines?id=1

{
"id": 1,
"name": "Personal Story"
}

// GET /v2/story/storylines?ids=1,3

[
{
"id": 1,
"name": "Personal Story",
"chapters": [1111, 1112, 1121]
},
{
"id" 3,
"name": "Living World season 2"
"chapters": [3100, 3200]
}
]