-
-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathschema.gql
160 lines (134 loc) · 3.39 KB
/
schema.gql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
type MinersJson implements Node {
weapons: [WeaponsJson!]! @link(by: "name")
"""
The color used to represent the miner in the UI.
"""
color: String!
"""
The color used when content needs to be displayed on top of the miner's color.
"""
contrastColor: String!
name: String!
"""
In the save file, there is a section called "CharacterSaves" which contains
a list of unlocks for each miner. The "SavegameID" field of each item in that
section corresponds to the "saveId" field of a miner.
"""
saveId: String!
"""
Common weapon paint jobs share an icon and colorway across all miners and
weapons (but are still unlocked on a per-miner basis).
"""
commonWeaponPaintJobs: [MinersJsonCommonWeaponPaintJobs!]!
"""
Unique weapon paint jobs have a unique icon and colorway for each miner.
"""
uniqueWeaponPaintJobs: [MinersJsonUniqueWeaponPaintJobs!]!
"""
Armor paint jobs are collected and unique at the miner level.
"""
armorPaintJobs: [MinersJsonArmorPaintJobs!]!
}
type WeaponsJson implements Node {
name: String!
"""
In the save file, there is a map section called "UnlockedItemSkins", which
contains a list of unlocks for each weapon. The "key" of that map corresponds
to the "saveId" field of a weapon.
"""
saveId: String!
"""
Each weapon has a unique set of overclocks with unique icons and properties.
"""
overclocks: [WeaponsJsonOverclocks!]!
"""
Unlike weapon paint jobs, weapon frameworks are collected at the weapon level,
despite being the same for each weapon.
"""
frameworks: [WeaponsJsonFrameworksJson!]!
}
type WeaponsJsonOverclocks {
name: String!
saveId: String!
type: OverclockType!
}
enum OverclockType {
CLEAN
BALANCED
UNSTABLE
}
type WeaponsJsonFrameworksJson {
saveId: String!
framework: WeaponFrameworksJson! @link(by: "name")
}
type MinersJsonCommonWeaponPaintJobs {
weaponPaintJob: CommonWeaponPaintJobsJson! @link(by: "name")
saveId: String
}
"""
Weapon paint jobs, unlike their framework counterparts, are collected at the
miner level, not the weapon level.
There are two types of weapon paint jobs:
* common ones which share an icon and colorway across all miners and
weapons
* unique ones which have a unique icon and colorway for each miner
"""
interface WeaponPaintJob {
name: String!
saveId: String!
icon: File!
source: CollectableSource!
}
type CommonWeaponPaintJobsJson implements Node & WeaponPaintJob {
name: String!
saveId: String!
icon: File! @fileByRelativePath
source: CollectableSource!
}
type MinersJsonUniqueWeaponPaintJobs implements WeaponPaintJob {
name: String!
saveId: String!
icon: File! @fileByRelativePath
source: CollectableSource!
}
type MinersJsonArmorPaintJobs {
name: String!
saveId: String!
icon: File! @fileByRelativePath
}
type WeaponFrameworksJson implements Node {
name: String!
source: CollectableSource!
}
type PickaxePartSetsJsonSaveIds {
blades: String!
handle: String!
head: String!
pommel: String!
shaft: String!
}
type PickaxePartSetsJson implements Node {
name: String!
saveIds: PickaxePartSetsJsonSaveIds!
}
type PickaxePartsJson implements Node {
name: String!
saveId: String!
}
type PickaxePaintJobsJson implements Node {
name: String!
saveId: String!
}
enum PickaxeComponent {
BLADES
HEAD
SHAFT
HANDLE
POMMEL
PAINT_JOB
}
enum CollectableSource {
CARGO_CRATE
PERFORMANCE_PASS
MATRIX_CORE
}