Smart Contract
ArenaBoyzGlobals
A.6e7cad7066b272e9.ArenaBoyzGlobals
1access(all) contract ArenaBoyzGlobals {
2
3 access(all) var targetables_start: UInt8
4 access(all) var hp_base: UInt16
5 access(all) var damage_base: UInt16
6 access(all) var defense_base: UInt16
7 access(all) var accuracy_base: UInt16
8 access(all) var speed_base: UInt16
9 access(all) var counter_base: UInt16
10 access(all) var turns_per_circle: UInt32
11 access(all) var ar_start: UInt8
12 access(all) var sniper_start: UInt8
13 access(all) var smg_start: UInt8
14 access(all) var shotgun_start: UInt8
15 access(all) var throwable_start: UInt8
16 access(all) var healing_start: UInt8
17 access(all) var shield_start: UInt8
18 access(all) var stim_start: UInt8
19 access(all) var medal_start: UInt8
20 access(all) var damage_start: UInt8
21 access(all) var defense_start: UInt8
22 access(all) var accuracy_start: UInt8
23 access(all) var speed_start: UInt8
24 access(all) var counter_start: UInt8
25 access(all) var items_end: UInt8
26 access(all) var effective_item_max: Int
27 access(all) var heal_per_level: UInt16
28 access(all) var throwable_damage_per_level: UInt16
29 access(all) var shield_per_level: UInt16
30 access(all) var stim_per_level: UFix64
31 access(all) var medal_max_hp_per_level: UInt16
32 access(all) var free_max_hp_per_level: UInt16
33 access(all) var targetable_bonus_per_level: UInt16
34 access(all) var equipment_bonus_per_level: UInt16
35 access(all) var primary_bonus_per_thresh: UInt16
36 access(all) var threshhold_amount: UInt16
37 access(all) var minimum_damage_divisor: UInt16
38 access(all) var heroes_per_pod: UInt32
39 access(all) var scavenge_pool_0: [UInt8; 32]
40 access(all) var scavenge_pool_1: [UInt8; 32]
41 access(all) var scavenge_pool_2: [UInt8; 32]
42 access(all) var scavenge_pool_3: [UInt8; 32]
43 access(all) var scavenge_pool_4: [UInt8; 32]
44 access(all) var scavenge_pool_5: [UInt8; 32]
45 access(all) var scavenge_pool_6: [UInt8; 32]
46 access(all) var starting_primary_pool: [UInt8; 4]
47 access(all) var seconds_per_turn: Int
48 //the parser for this needs semicolons, so, leave them in
49 init() {
50 self.heroes_per_pod = 4;
51 self.effective_item_max = 12;
52 self.targetables_start = 33;
53 self.hp_base = 875;
54 self.damage_base = 375;
55 self.defense_base = 200;
56 self.accuracy_base = 200;
57 self.speed_base = 200;
58 self.counter_base = 200;
59 self.turns_per_circle = 3;
60 self.ar_start = 1;
61 self.sniper_start = 9;
62 self.smg_start = 17;
63 self.shotgun_start = 25;
64 self.throwable_start = 33;
65 self.healing_start = 41;
66 self.shield_start = 49;
67 self.stim_start = 57;
68 self.medal_start = 65;
69 self.damage_start = 73;
70 self.defense_start = 81;
71 self.accuracy_start = 89;
72 self.speed_start = 97;
73 self.counter_start = 105;
74 self.items_end = 113;
75 self.heal_per_level = 100;
76 self.throwable_damage_per_level = 200;
77 self.shield_per_level = 100;
78 self.stim_per_level = 0.5;
79 self.medal_max_hp_per_level = 65;
80 self.free_max_hp_per_level = 65;
81 self.targetable_bonus_per_level = 10;
82 self.equipment_bonus_per_level = 20;
83 self.primary_bonus_per_thresh = 3;
84 self.threshhold_amount = 25;
85 self.minimum_damage_divisor = 5;
86 self.seconds_per_turn = 70;
87 self.scavenge_pool_0 = [2, 10, 18, 26, 34, 42, 50, 66, 74, 82, 90, 98, 106, 1, 9, 17, 25, 33, 41, 49, 65, 73, 81, 89, 97, 105, 0, 0, 0, 0, 0, 0];
88 self.scavenge_pool_1 = [3, 11, 19, 27, 35, 43, 51, 67, 75, 83, 91, 99, 107, 2, 10, 18, 26, 34, 42, 50, 66, 74, 82, 90, 98, 106, 0, 0, 0, 0, 0, 0];
89 self.scavenge_pool_2 = [4, 12, 20, 28, 36, 44, 52, 68, 76, 84, 92, 100, 108, 3, 11, 19, 27, 35, 43, 51, 67, 75, 83, 91, 99, 107, 0, 0, 0, 0, 0, 0];
90 self.scavenge_pool_3 = [5, 13, 21, 29, 37, 45, 53, 69, 77, 85, 93, 101, 109, 4, 12, 20, 28, 36, 44, 52, 68, 76, 84, 92, 100, 108, 0, 0, 0, 0, 0, 0];
91 self.scavenge_pool_4 = [6, 14, 22, 30, 38, 46, 54, 70, 78, 86, 94, 102, 110, 5, 13, 21, 29, 37, 45, 53, 69, 77, 85, 93, 101, 109, 0, 0, 0, 0, 0, 0];
92 self.scavenge_pool_5 = [7, 15, 23, 31, 39, 47, 55, 71, 79, 87, 95, 103, 111, 6, 14, 22, 30, 38, 46, 54, 70, 78, 86, 94, 102, 110, 0, 0, 0, 0, 0, 0];
93 self.scavenge_pool_6 = [8, 16, 24, 32, 40, 48, 56, 72, 80, 88, 96, 104, 112, 7, 15, 23, 31, 39, 47, 55, 71, 79, 87, 95, 103, 111, 0, 0, 0, 0, 0, 0];
94 self.starting_primary_pool = [1, 9, 17, 25];
95 }
96
97 access(self) fun isOwner(): Bool {
98 return true
99 }
100
101 access(all) fun getScavengePool0(): [UInt8; 32] {
102 return self.scavenge_pool_0
103 }
104
105 access(all) fun getScavengePool1(): [UInt8; 32] {
106 return self.scavenge_pool_1
107 }
108
109 access(all) fun getScavengePool2(): [UInt8; 32] {
110 return self.scavenge_pool_2
111 }
112
113 access(all) fun getScavengePool3(): [UInt8; 32] {
114 return self.scavenge_pool_3
115 }
116
117 access(all) fun getScavengePool4(): [UInt8; 32] {
118 return self.scavenge_pool_4
119 }
120
121 access(all) fun getScavengePool5(): [UInt8; 32] {
122 return self.scavenge_pool_5
123 }
124
125 access(all) fun getScavengePool6(): [UInt8; 32] {
126 return self.scavenge_pool_6
127 }
128
129 access(all) fun getScavengePool7(): [UInt8; 32] {
130 return [8, 16, 24, 32, 40, 39, 56, 72, 80, 88, 96, 104, 112, 7, 15, 23, 31, 39, 38, 55, 71, 79, 87, 95, 103, 111, 0, 0, 0, 0, 0, 0]
131 }
132
133 access(all) fun setDamageBase(newDamageBase: UInt16) {
134 assert(self.isOwner(), message: "Only the contract owner can update this value")
135 self.damage_base = newDamageBase
136 }
137
138
139 access(all) fun setDefenseBase(newDefenseBase: UInt16) {
140 assert(self.isOwner(), message: "Only the contract owner can update this value")
141 self.defense_base = newDefenseBase
142 }
143
144 access(all) fun setSecondsPerTurn(newTurnLength: Int) {
145 assert(self.isOwner(), message: "Only the contract owner can update this value")
146 self.seconds_per_turn = newTurnLength
147 }
148
149 access(all) fun setTurnsPerCircle(newTurnsPerCircle: UInt32) {
150 assert(self.isOwner(), message: "Only the contract owner can update this value")
151 self.turns_per_circle = newTurnsPerCircle
152 }
153
154 access(all) fun setEquipmentBonusPerLevel(newEquipmentBonus: UInt16) {
155 assert(self.isOwner(), message: "Only the contract owner can update this value")
156 self.equipment_bonus_per_level = newEquipmentBonus
157 }
158
159 access(all) fun setShieldPerLevel(newShieldPerLevel: UInt16) {
160 assert(self.isOwner(), message: "Only the contract owner can update this value")
161 self.shield_per_level = newShieldPerLevel
162 }
163
164 access(all) fun setHealPerLevel(newHealPerLevel: UInt16) {
165 assert(self.isOwner(), message: "Only the contract owner can update this value")
166 self.heal_per_level = newHealPerLevel
167 }
168
169 access(all) fun setMedalMaxPerLevel(newMedalMaxPerLevel: UInt16) {
170 assert(self.isOwner(), message: "Only the contract owner can update this value")
171 self.medal_max_hp_per_level = newMedalMaxPerLevel
172 }
173
174 access(all) fun setFreeMaxHpPerLevel(newFreeMaxHpPerLevel: UInt16) {
175 assert(self.isOwner(), message: "Only the contract owner can update this value")
176 self.free_max_hp_per_level = newFreeMaxHpPerLevel
177 }
178
179 access(all) fun setThreshholdAmount(newThreshholdAmount: UInt16) {
180 assert(self.isOwner(), message: "Only the contract owner can update this value")
181 self.threshhold_amount = newThreshholdAmount
182 }
183
184 access(all) fun setPrimaryBonusPerThresh(newPrimaryBonus: UInt16) {
185 assert(self.isOwner(), message: "Only the contract owner can update this value")
186 self.primary_bonus_per_thresh = newPrimaryBonus
187 }
188
189 access(all) fun setHeroesPerPod(newHeroesPerPod: UInt32) {
190 assert(self.isOwner(), message: "Only the contract owner can update this value")
191 self.heroes_per_pod = newHeroesPerPod
192 }
193
194 access(all) fun setScavengePool(index: Int, pool: [UInt8; 32]) {
195 assert(self.isOwner(), message: "Only the contract owner can update this value")
196
197 if index == 0 {
198 self.scavenge_pool_0 = pool
199 } else if index == 1 {
200 self.scavenge_pool_1 = pool
201 } else if index == 2 {
202 self.scavenge_pool_2 = pool
203 } else if index == 3 {
204 self.scavenge_pool_3 = pool
205 } else if index == 4 {
206 self.scavenge_pool_4 = pool
207 } else if index == 5 {
208 self.scavenge_pool_5 = pool
209 } else if index == 6 {
210 self.scavenge_pool_6 = pool
211 } else {
212 panic("Invalid scavenge pool index")
213 }
214 }
215}
216