-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtypes.go
182 lines (171 loc) · 9.12 KB
/
types.go
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
package forgefs
import "time"
// CardNumber represents the number of a card within an expansion.
type CardNumber struct {
CardNumber string `json:"cardNumber,omitempty"`
Expansion string `json:"expansion,omitempty"`
}
// ExpansionWins represents the record of a card within a particular
// expansion.
type ExpansionWins struct {
Losses int `json:"losses,omitempty"`
Wins int `json:"wins,omitempty"`
}
// Trait represents the traits of a card.
type Trait struct {
CardName string `json:"cardName,omitempty"`
CardTraits []string `json:"cardTraits,omitempty"`
CardTraitsString string `json:"cardTraitsString,omitempty"`
CardTypes []string `json:"cardTypes,omitempty"`
CardTypesString string `json:"cardTypesString,omitempty"`
House string `json:"house,omitempty"`
ID string `json:"id,omitempty"`
NotCardTraits bool `json:"notCardTraits,omitempty"`
Player string `json:"player,omitempty"`
PowersString string `json:"powersString,omitempty"`
PrimaryGroup bool `json:"primaryGroup,omitempty"`
Rating int `json:"rating,omitempty"`
SynergyGroup string `json:"synergyGroup,omitempty"`
SynergyGroupMax int `json:"synergyGroupMax,omitempty"`
Trait string `json:"trait,omitempty"`
}
// ExtraCardInfo represents detailed information and ratings about a
// card.
type ExtraCardInfo struct {
Active bool `json:"active,omitempty"`
AdaptiveScore int `json:"adaptiveScore,omitempty"`
AmberControl float64 `json:"amberControl,omitempty"`
AmberControlMax float64 `json:"amberControlMax,omitempty"`
ArtifactControl float64 `json:"artifactControl,omitempty"`
ArtifactControlMax float64 `json:"artifactControlMax,omitempty"`
BaseSynPercent float64 `json:"baseSynPercent,omitempty"`
CardName string `json:"cardName,omitempty"`
Created string `json:"created,omitempty"`
CreatureControl float64 `json:"creatureControl,omitempty"`
CreatureControlMax float64 `json:"creatureControlMax,omitempty"`
CreatureProtection float64 `json:"creatureProtection,omitempty"`
CreatureProtectionMax float64 `json:"creatureProtectionMax,omitempty"`
Disruption float64 `json:"disruption,omitempty"`
DisruptionMax float64 `json:"disruptionMax,omitempty"`
EffectivePower float64 `json:"effectivePower,omitempty"`
EffectivePowerMax float64 `json:"effectivePowerMax,omitempty"`
Efficiency float64 `json:"efficiency,omitempty"`
EfficiencyMax float64 `json:"efficiencyMax,omitempty"`
EnhancementAmber int `json:"enhancementAmber,omitempty"`
EnhancementCapture int `json:"enhancementCapture,omitempty"`
EnhancementDamage int `json:"enhancementDamage,omitempty"`
EnhancementDraw int `json:"enhancementDraw,omitempty"`
ExpectedAmber float64 `json:"expectedAmber,omitempty"`
ExpectedAmberMax float64 `json:"expectedAmberMax,omitempty"`
ID string `json:"id,omitempty"`
Other float64 `json:"other,omitempty"`
OtherMax float64 `json:"otherMax,omitempty"`
Published string `json:"published,omitempty"`
PublishedDate string `json:"publishedDate,omitempty"`
Recursion float64 `json:"recursion,omitempty"`
RecursionMax float64 `json:"recursionMax,omitempty"`
Synergies []Trait `json:"synergies,omitempty"`
Traits []Trait `json:"traits,omitempty"`
Updated string `json:"updated,omitempty"`
Version int `json:"version,omitempty"`
}
// Card represents all the data about a particular card.
type Card struct {
AERCScore float64 `json:"aercScore,omitempty"`
AERCScoreAverage float64 `json:"aercScoreAverage,omitempty"`
AERCScoreMax float64 `json:"aercScoreMax,omitempty"`
Amber int `json:"amber,omitempty"`
Anomaly bool `json:"anomaly,omitempty"`
Armor int `json:"armor,omitempty"`
ArmorString string `json:"armorString,omitempty"`
Big bool `json:"big,omitempty"`
CardNumber string `json:"cardNumber,omitempty"`
CardNumbers []CardNumber `json:"cardNumbers,omitempty"`
CardText string `json:"cardTest,omitempty"`
CardTitle string `json:"cardTitle,omitempty"`
CardType string `json:"cardType,omitempty"`
Created string `json:"created,omitempty"`
EffectivePower int `json:"effectivePower,omitempty"`
Enhanced bool `json:"enhanced,omitempty"`
EvilTwin bool `json:"evilTwin,omitempty"`
Expansion int `json:"expansion,omitempty"`
ExpansionEnum string `json:"expansionEnum,omitempty"`
ExpansionWins map[string]ExpansionWins `json:"expansionWins,omitempty"`
ExtraCardInfo ExtraCardInfo `json:"extraCardInfo,omitempty"`
FlavorText string `json:"flavorText,omitempty"`
FrontImage string `json:"frontImage,omitempty"`
House string `json:"house,omitempty"`
Houses []string `json:",omitempty"`
ID string `json:"id,omitempty"`
Losses int `json:"losses,omitempty"`
Maverick bool `json:"maverick,omitempty"`
Power int `json:"power,omitempty"`
PowerString string `json:"powerString,omitempty"`
Rarity string `json:"rarity,omitempty"`
Traits []string `json:"traits,omitempty"`
Wins int `json:"wins,omitempty"`
}
// CardInDeck represents data about a specific card in a specific
// deck.
type CardInDeck struct {
CardTitle string `json:"cardTitle,omitempty"`
Rarity string `json:"rarity,omitempty"`
Legacy bool `json:"legacy,omitempty"`
Maverick bool `json:"maverick,omitempty"`
Anomaly bool `json:"anomaly,omitempty"`
}
// HouseInDeck represents a house and all its cards in a specific
// deck.
type HouseInDeck struct {
House string `json:"house,omitempty"`
Cards []CardInDeck `json:"cards,omitempty"`
}
// DeckInfo represents detailed info and ratings about a specific
// deck.
type DeckInfo struct {
ActionCount int `json:"actionCount,omitempty"`
AercScore int `json:"aercScore,omitempty"`
AercVersion int `json:"aercVersion,omitempty"`
AmberControl float64 `json:"amberControl,omitempty"`
AntisynergyRating int `json:"antisynergyRating,omitempty"`
ArtifactControl float64 `json:"artifactControl,omitempty"`
CreatureControl float64 `json:"creatureControl,omitempty"`
CreatureCount int `json:"creatureCount,omitempty"`
CreatureProtection float64 `json:"creatureProtection,omitempty"`
DateAdded string `json:"dateAdded,omitempty"`
Disruption float64 `json:"disruption,omitempty"`
EffectivePower int `json:"effectivePower,omitempty"`
Efficiency float64 `json:"efficiency,omitempty"`
EfficiencyBonus float64 `json:"efficiencyBonus,omitempty"`
Expansion string `json:"expansion,omitempty"`
ExpectedAmber float64 `json:"expectedAmber,omitempty"`
Houses []HouseInDeck `json:"housesAndCards,omitempty"`
ID int `json:"id,omitempty"`
KeyforgeID string `json:"keyforgeId,omitempty"`
LastSasUpdate string `json:"lastSasUpdate,omitempty"`
Name string `json:"name,omitempty"`
PreviousMajorSasRating int `json:"previousMajorSasRating,omitempty"`
PreviousSasRating int `json:"previosSasRating,omitempty"`
RawAmber int `json:"rawAmber,omitempty"`
SasPercentile float64 `json:"sasPercentile,omitempty"`
SasRating int `json:"sasRating,omitempty"`
SynergyRating int `json:"synergyRating,omitempty"`
TotalArmor int `json:"totalArmor,omitempty"`
TotalPower int `json:"totalPower,omitempty"`
}
// Deck represents all the data about a specific deck.
type Deck struct {
DeckInfo DeckInfo `json:"deck,omitempty"`
Funny bool `json:"funny,omitempty"`
Notes string `json:"notes,omitempty"`
OwnedByMe bool `json:"ownedByMe,omitempty"`
Wishlist bool `json:"wishlist,omitempty"`
SASVersion int `json:"sasVersion,omitempty"`
}
// DeckMetadata exposes enough data about a deck to construct
// fliesystem metadata for it.
type DeckMetadata struct {
ID string
Name string
DateAdded time.Time
}