Smart Contract

ArenaBoyzGlobals

A.6e7cad7066b272e9.ArenaBoyzGlobals

Valid From

86,673,255

Deployed

3d ago
Feb 24, 2026, 11:44:40 PM UTC

Dependents

1 imports
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