gotchi-battler-game-logic 2.0.6 → 2.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/.vscode/settings.json +4 -4
  2. package/Dockerfile +9 -9
  3. package/README.md +49 -49
  4. package/cloudbuild.yaml +27 -27
  5. package/constants/tournamentManagerAbi.json +208 -208
  6. package/game-logic/index.js +6 -6
  7. package/game-logic/v1.4/constants.js +114 -114
  8. package/game-logic/v1.4/index.js +1366 -1366
  9. package/game-logic/v1.6/constants.js +123 -123
  10. package/game-logic/v1.6/index.js +1406 -1406
  11. package/game-logic/v1.7/constants.js +142 -140
  12. package/game-logic/v1.7/helpers.js +595 -593
  13. package/game-logic/v1.7/index.js +802 -795
  14. package/index.js +12 -12
  15. package/package.json +26 -26
  16. package/schemas/team.json +349 -343
  17. package/scripts/balancing/createCSV.js +126 -126
  18. package/scripts/balancing/fixTrainingGotchis.js +155 -259
  19. package/scripts/balancing/processSims.js +229 -229
  20. package/scripts/balancing/sims.js +278 -278
  21. package/scripts/balancing/v1.7/class_combos.js +43 -43
  22. package/scripts/balancing/v1.7/setTeamPositions.js +105 -105
  23. package/scripts/balancing/v1.7/training_gotchis.json +20161 -20161
  24. package/scripts/balancing/v1.7/trait_combos.json +9 -9
  25. package/scripts/balancing/v1.7.1/class_combos.js +43 -43
  26. package/scripts/balancing/v1.7.1/setTeamPositions.js +122 -122
  27. package/scripts/balancing/v1.7.1/training_gotchis.json +22401 -22401
  28. package/scripts/balancing/v1.7.1/trait_combos.json +9 -9
  29. package/scripts/balancing/v1.7.2/class_combos.js +44 -0
  30. package/scripts/balancing/v1.7.2/setTeamPositions.js +122 -0
  31. package/scripts/balancing/v1.7.2/training_gotchis.json +22402 -0
  32. package/scripts/balancing/v1.7.2/trait_combos.json +10 -0
  33. package/scripts/data/team1.json +213 -213
  34. package/scripts/data/team2.json +200 -200
  35. package/scripts/data/tournaments.json +66 -66
  36. package/scripts/{runBattle.js → runLocalBattle.js} +18 -18
  37. package/scripts/runRealBattle.js +52 -0
  38. package/scripts/simRealBattle.js +121 -0
  39. package/scripts/validateBattle.js +74 -70
  40. package/scripts/validateTournament.js +101 -101
  41. package/utils/contracts.js +12 -12
  42. package/utils/errors.js +29 -29
  43. package/utils/mapGotchi.js +119 -0
  44. package/utils/transforms.js +89 -88
  45. package/utils/validations.js +39 -39
@@ -0,0 +1,10 @@
1
+ [
2
+ ["avg-magic", "avg-physical"],
3
+ ["avg-magic", "avg-physical"],
4
+ ["avg-magic", "avg-physical"],
5
+ ["avg-magic", "avg-physical"],
6
+ ["avg-magic", "avg-physical"],
7
+ ["avg-magic", "avg-physical"],
8
+ ["avg-magic", "avg-magic"],
9
+ ["avg-physical", "avg-physical"]
10
+ ]
@@ -1,214 +1,214 @@
1
- {
2
- "formation": {
3
- "front": [
4
- {
5
- "id": 533,
6
- "snapshotBlock": 59673035,
7
- "onchainId": 23795,
8
- "name": "Slide",
9
- "brs": 1005,
10
- "nrg": -29,
11
- "agg": 3,
12
- "spk": -3,
13
- "brn": -29,
14
- "eyc": 99,
15
- "eys": 88,
16
- "kinship": 1732,
17
- "xp": 182430,
18
- "speed": 100,
19
- "health": 1702,
20
- "crit": 0,
21
- "armor": 94,
22
- "evade": 0,
23
- "resist": 53,
24
- "magic": 251,
25
- "physical": 646,
26
- "accuracy": 94.5,
27
- "attack": "physical",
28
- "svgFront": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/74f07327e89d0ea20c704549f98adee094d78ad7f95a27948d88e2b69766b191.png",
29
- "svgBack": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/3b5139773724c184ae73afa033a1abc8b2222e6f1feba86fce33fc743a054800.png",
30
- "svgLeft": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/93f829f50da50b168de50c4679e1a7b0bfbb922f3bdd44900a7307578e7c9ce2.png",
31
- "svgRight": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/944e70e7a094e891d4b89df5ee15d2d3cc65e73734257605e6d9110fe3eb4be8.png",
32
- "specialId": 2,
33
- "special": {
34
- "id": 2,
35
- "class": "Enlightened",
36
- "name": "Meditate",
37
- "cooldown": 0,
38
- "leaderPassive": "Cloud of Zen"
39
- },
40
- "itemId": 1,
41
- "item": {
42
- "id": 1,
43
- "name": "Speed +",
44
- "description": "Increase speed by 1",
45
- "image": "https://gotchibattler.com/apple-touch-icon.png",
46
- "rarity": "common",
47
- "cost": 0.2,
48
- "stat": "speed",
49
- "statValue": 1,
50
- "createdAt": "2022-02-22T22:22:22Z",
51
- "updatedAt": "2022-02-22T22:22:22Z"
52
- }
53
- },
54
- null,
55
- {
56
- "id": 534,
57
- "snapshotBlock": 59673035,
58
- "onchainId": 16291,
59
- "name": "Aavenomics",
60
- "brs": 786,
61
- "nrg": 2,
62
- "agg": -18,
63
- "spk": 117,
64
- "brn": 3,
65
- "eyc": 95,
66
- "eys": 83,
67
- "kinship": 1804,
68
- "xp": 3445,
69
- "speed": 100,
70
- "health": 1166,
71
- "crit": 0,
72
- "armor": 136,
73
- "evade": 20,
74
- "resist": 0,
75
- "magic": 197,
76
- "physical": 432,
77
- "accuracy": 90,
78
- "attack": "physical",
79
- "svgFront": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/545e7f3a61833374bb2c27b53b549a560580397494866fc5599088112199d992.png",
80
- "svgBack": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/7329e0c0e57637ca99d58dcf571730259c64f1aed63526d31fe31bb8323fa83b.png",
81
- "svgLeft": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/96625cba302f81dcf441331274f5b7cc5ae646da2d47fa07988fcd4bc17c342b.png",
82
- "svgRight": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/7dbc392da25ccc50ec08705703b50c363ba5cb7f4b35d971324fe4ad84308fec.png",
83
- "specialId": 5,
84
- "special": {
85
- "id": 5,
86
- "class": "Cursed",
87
- "name": "Curse",
88
- "cooldown": 0,
89
- "leaderPassive": "Spread the fear"
90
- }
91
- },
92
- null,
93
- {
94
- "id": 535,
95
- "snapshotBlock": 59673035,
96
- "onchainId": 2057,
97
- "name": "Blue Moon",
98
- "brs": 775,
99
- "nrg": -2,
100
- "agg": 98,
101
- "spk": 91,
102
- "brn": 120,
103
- "eyc": 95,
104
- "eys": 5,
105
- "kinship": 1786,
106
- "xp": 3755,
107
- "speed": 100,
108
- "health": 1205,
109
- "crit": 25,
110
- "armor": 0,
111
- "evade": 13,
112
- "resist": 0,
113
- "magic": 549,
114
- "physical": 194,
115
- "accuracy": 95.5,
116
- "attack": "magic",
117
- "svgFront": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/135a500abe09364fa61c0e129c78cd5efd3fe15998cb784c60c94a7261e3f22e.png",
118
- "svgBack": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/69824fede30868d1b9ba84af5044357b262ff64fe8b94079be667f35c2b62979.png",
119
- "svgLeft": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/dae02ef55bfa696e737fdff901c8a6321a37cf234e4dbb0b52beab80563e67f4.png",
120
- "svgRight": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/4909819acbcfa03247b8319776e7f031c666fca51aeaa3fac7400415d6055ed6.png",
121
- "specialId": 7,
122
- "special": {
123
- "id": 7,
124
- "class": "Mage",
125
- "name": "Thunder",
126
- "cooldown": 2,
127
- "leaderPassive": "Channel the coven"
128
- }
129
- }
130
- ],
131
- "back": [
132
- null,
133
- {
134
- "id": 531,
135
- "snapshotBlock": 59673035,
136
- "onchainId": 13700,
137
- "name": "Maxicrouton",
138
- "brs": 813,
139
- "nrg": 114,
140
- "agg": 102,
141
- "spk": -21,
142
- "brn": 102,
143
- "eyc": 93,
144
- "eys": 76,
145
- "kinship": 2146,
146
- "xp": 23515,
147
- "speed": 165,
148
- "health": 610,
149
- "crit": 27,
150
- "armor": 0,
151
- "evade": 0,
152
- "resist": 71,
153
- "magic": 468,
154
- "physical": 203,
155
- "accuracy": 85.5,
156
- "attack": "magic",
157
- "svgFront": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/3e19380df6b59a735bc1e545c355b09438c14164cc1d8a78ddcbae6c6e8e6e19.png",
158
- "svgBack": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/cc1f62ade1657feaaf68bdd320cc34c3d8f80e775e07a9efb4d8a0a16c0cae70.png",
159
- "svgLeft": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/c507028197648c575d94dcdb0e7142cf7568e873cb0ba524719e9fb9ac62959f.png",
160
- "svgRight": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/88a3d7debfa56845d536da1fc5725446a2d70db2d1a2683ef478d971273936a4.png",
161
- "specialId": 6,
162
- "special": {
163
- "id": 6,
164
- "class": "Healer",
165
- "name": "Blessing",
166
- "cooldown": 0,
167
- "leaderPassive": "Cleansing Aura"
168
- }
169
- },
170
- null,
171
- {
172
- "id": 532,
173
- "snapshotBlock": 59673035,
174
- "onchainId": 13996,
175
- "name": "Scavenger",
176
- "brs": 821,
177
- "nrg": 108,
178
- "agg": 108,
179
- "spk": 108,
180
- "brn": 96,
181
- "eyc": 97,
182
- "eys": 98,
183
- "kinship": 1941,
184
- "xp": 14345,
185
- "speed": 159,
186
- "health": 616,
187
- "crit": 30,
188
- "armor": 0,
189
- "evade": 18,
190
- "resist": 0,
191
- "magic": 440,
192
- "physical": 205,
193
- "accuracy": 98.5,
194
- "attack": "magic",
195
- "svgFront": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/ed88a02c8d88fea501dbc0b265ada9d1217ff309b882237424b608533674ddd3.png",
196
- "svgBack": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/afa1e56b2e27546f528792f6cad24ea9031be838b0c552a84166d0f8d6a02422.png",
197
- "svgLeft": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/803c6ce2e90c81ae8c9107341d4262c0d4ed88e049473ba625d622d524c334fb.png",
198
- "svgRight": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/9572e2555f4a22b6a9dff0a4ecff0175d235916acd13cb890789079f0aca6e13.png",
199
- "specialId": 5,
200
- "special": {
201
- "id": 5,
202
- "class": "Cursed",
203
- "name": "Curse",
204
- "cooldown": 0,
205
- "leaderPassive": "Spread the fear"
206
- }
207
- },
208
- null
209
- ]
210
- },
211
- "leader": 533,
212
- "name": "Ogi Maxi",
213
- "owner": "0xa532f169cee0e551d4da641031ac78fd85461035"
1
+ {
2
+ "formation": {
3
+ "front": [
4
+ {
5
+ "id": 533,
6
+ "snapshotBlock": 59673035,
7
+ "onchainId": 23795,
8
+ "name": "Slide",
9
+ "brs": 1005,
10
+ "nrg": -29,
11
+ "agg": 3,
12
+ "spk": -3,
13
+ "brn": -29,
14
+ "eyc": 99,
15
+ "eys": 88,
16
+ "kinship": 1732,
17
+ "xp": 182430,
18
+ "speed": 100,
19
+ "health": 1702,
20
+ "crit": 0,
21
+ "armor": 94,
22
+ "evade": 0,
23
+ "resist": 53,
24
+ "magic": 251,
25
+ "physical": 646,
26
+ "accuracy": 94.5,
27
+ "attack": "physical",
28
+ "svgFront": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/74f07327e89d0ea20c704549f98adee094d78ad7f95a27948d88e2b69766b191.png",
29
+ "svgBack": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/3b5139773724c184ae73afa033a1abc8b2222e6f1feba86fce33fc743a054800.png",
30
+ "svgLeft": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/93f829f50da50b168de50c4679e1a7b0bfbb922f3bdd44900a7307578e7c9ce2.png",
31
+ "svgRight": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/944e70e7a094e891d4b89df5ee15d2d3cc65e73734257605e6d9110fe3eb4be8.png",
32
+ "specialId": 2,
33
+ "special": {
34
+ "id": 2,
35
+ "class": "Enlightened",
36
+ "name": "Meditate",
37
+ "cooldown": 0,
38
+ "leaderPassive": "Cloud of Zen"
39
+ },
40
+ "itemId": 1,
41
+ "item": {
42
+ "id": 1,
43
+ "name": "Speed +",
44
+ "description": "Increase speed by 1",
45
+ "image": "https://gotchibattler.com/apple-touch-icon.png",
46
+ "rarity": "common",
47
+ "cost": 0.2,
48
+ "stat": "speed",
49
+ "statValue": 1,
50
+ "createdAt": "2022-02-22T22:22:22Z",
51
+ "updatedAt": "2022-02-22T22:22:22Z"
52
+ }
53
+ },
54
+ null,
55
+ {
56
+ "id": 534,
57
+ "snapshotBlock": 59673035,
58
+ "onchainId": 16291,
59
+ "name": "Aavenomics",
60
+ "brs": 786,
61
+ "nrg": 2,
62
+ "agg": -18,
63
+ "spk": 117,
64
+ "brn": 3,
65
+ "eyc": 95,
66
+ "eys": 83,
67
+ "kinship": 1804,
68
+ "xp": 3445,
69
+ "speed": 100,
70
+ "health": 1166,
71
+ "crit": 0,
72
+ "armor": 136,
73
+ "evade": 20,
74
+ "resist": 0,
75
+ "magic": 197,
76
+ "physical": 432,
77
+ "accuracy": 90,
78
+ "attack": "physical",
79
+ "svgFront": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/545e7f3a61833374bb2c27b53b549a560580397494866fc5599088112199d992.png",
80
+ "svgBack": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/7329e0c0e57637ca99d58dcf571730259c64f1aed63526d31fe31bb8323fa83b.png",
81
+ "svgLeft": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/96625cba302f81dcf441331274f5b7cc5ae646da2d47fa07988fcd4bc17c342b.png",
82
+ "svgRight": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/7dbc392da25ccc50ec08705703b50c363ba5cb7f4b35d971324fe4ad84308fec.png",
83
+ "specialId": 5,
84
+ "special": {
85
+ "id": 5,
86
+ "class": "Cursed",
87
+ "name": "Curse",
88
+ "cooldown": 0,
89
+ "leaderPassive": "Spread the fear"
90
+ }
91
+ },
92
+ null,
93
+ {
94
+ "id": 535,
95
+ "snapshotBlock": 59673035,
96
+ "onchainId": 2057,
97
+ "name": "Blue Moon",
98
+ "brs": 775,
99
+ "nrg": -2,
100
+ "agg": 98,
101
+ "spk": 91,
102
+ "brn": 120,
103
+ "eyc": 95,
104
+ "eys": 5,
105
+ "kinship": 1786,
106
+ "xp": 3755,
107
+ "speed": 100,
108
+ "health": 1205,
109
+ "crit": 25,
110
+ "armor": 0,
111
+ "evade": 13,
112
+ "resist": 0,
113
+ "magic": 549,
114
+ "physical": 194,
115
+ "accuracy": 95.5,
116
+ "attack": "magic",
117
+ "svgFront": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/135a500abe09364fa61c0e129c78cd5efd3fe15998cb784c60c94a7261e3f22e.png",
118
+ "svgBack": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/69824fede30868d1b9ba84af5044357b262ff64fe8b94079be667f35c2b62979.png",
119
+ "svgLeft": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/dae02ef55bfa696e737fdff901c8a6321a37cf234e4dbb0b52beab80563e67f4.png",
120
+ "svgRight": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/4909819acbcfa03247b8319776e7f031c666fca51aeaa3fac7400415d6055ed6.png",
121
+ "specialId": 7,
122
+ "special": {
123
+ "id": 7,
124
+ "class": "Mage",
125
+ "name": "Thunder",
126
+ "cooldown": 2,
127
+ "leaderPassive": "Channel the coven"
128
+ }
129
+ }
130
+ ],
131
+ "back": [
132
+ null,
133
+ {
134
+ "id": 531,
135
+ "snapshotBlock": 59673035,
136
+ "onchainId": 13700,
137
+ "name": "Maxicrouton",
138
+ "brs": 813,
139
+ "nrg": 114,
140
+ "agg": 102,
141
+ "spk": -21,
142
+ "brn": 102,
143
+ "eyc": 93,
144
+ "eys": 76,
145
+ "kinship": 2146,
146
+ "xp": 23515,
147
+ "speed": 165,
148
+ "health": 610,
149
+ "crit": 27,
150
+ "armor": 0,
151
+ "evade": 0,
152
+ "resist": 71,
153
+ "magic": 468,
154
+ "physical": 203,
155
+ "accuracy": 85.5,
156
+ "attack": "magic",
157
+ "svgFront": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/3e19380df6b59a735bc1e545c355b09438c14164cc1d8a78ddcbae6c6e8e6e19.png",
158
+ "svgBack": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/cc1f62ade1657feaaf68bdd320cc34c3d8f80e775e07a9efb4d8a0a16c0cae70.png",
159
+ "svgLeft": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/c507028197648c575d94dcdb0e7142cf7568e873cb0ba524719e9fb9ac62959f.png",
160
+ "svgRight": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/88a3d7debfa56845d536da1fc5725446a2d70db2d1a2683ef478d971273936a4.png",
161
+ "specialId": 6,
162
+ "special": {
163
+ "id": 6,
164
+ "class": "Healer",
165
+ "name": "Blessing",
166
+ "cooldown": 0,
167
+ "leaderPassive": "Cleansing Aura"
168
+ }
169
+ },
170
+ null,
171
+ {
172
+ "id": 532,
173
+ "snapshotBlock": 59673035,
174
+ "onchainId": 13996,
175
+ "name": "Scavenger",
176
+ "brs": 821,
177
+ "nrg": 108,
178
+ "agg": 108,
179
+ "spk": 108,
180
+ "brn": 96,
181
+ "eyc": 97,
182
+ "eys": 98,
183
+ "kinship": 1941,
184
+ "xp": 14345,
185
+ "speed": 159,
186
+ "health": 616,
187
+ "crit": 30,
188
+ "armor": 0,
189
+ "evade": 18,
190
+ "resist": 0,
191
+ "magic": 440,
192
+ "physical": 205,
193
+ "accuracy": 98.5,
194
+ "attack": "magic",
195
+ "svgFront": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/ed88a02c8d88fea501dbc0b265ada9d1217ff309b882237424b608533674ddd3.png",
196
+ "svgBack": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/afa1e56b2e27546f528792f6cad24ea9031be838b0c552a84166d0f8d6a02422.png",
197
+ "svgLeft": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/803c6ce2e90c81ae8c9107341d4262c0d4ed88e049473ba625d622d524c334fb.png",
198
+ "svgRight": "https://storage.googleapis.com/gotchi-battler-live_gotchis/onchain/9572e2555f4a22b6a9dff0a4ecff0175d235916acd13cb890789079f0aca6e13.png",
199
+ "specialId": 5,
200
+ "special": {
201
+ "id": 5,
202
+ "class": "Cursed",
203
+ "name": "Curse",
204
+ "cooldown": 0,
205
+ "leaderPassive": "Spread the fear"
206
+ }
207
+ },
208
+ null
209
+ ]
210
+ },
211
+ "leader": 533,
212
+ "name": "Ogi Maxi",
213
+ "owner": "0xa532f169cee0e551d4da641031ac78fd85461035"
214
214
  }