tengu_api/state/
barracks.rs1use super::{shogun::BARRACKS_SLOT_EMPTY, DojosAccount};
2use steel::*;
3
4#[repr(C)]
5#[derive(Clone, Copy, Debug, PartialEq, bytemuck::Pod, bytemuck::Zeroable)]
6pub struct Barracks {
7 pub dojo: Pubkey,
8 pub level: u64, pub slots: [u64; 12], pub buffer1: u64,
11 pub buffer2: u64,
12 pub buffer3: u64,
13 pub buffer4: u64,
14}
15
16account!(DojosAccount, Barracks);
17
18impl Barracks {
19 pub fn max_slots(&self) -> u64 {
20 self.level * crate::consts::SLOTS_PER_LEVEL
21 }
22
23 pub fn is_slot_valid(&self, slot: u64) -> bool {
24 slot < self.max_slots()
25 }
26
27 pub fn is_slot_empty(&self, i: usize) -> bool {
28 self.slots[i] == BARRACKS_SLOT_EMPTY
29 }
30}