Skip to main content

tengu_api/state/
tasks.rs

1//! Tasks account: per-category claimed-up-to state. One per Dojo.
2
3use super::DojosAccount;
4use steel::*;
5
6#[repr(C)]
7#[derive(Clone, Copy, Debug, PartialEq, bytemuck::Pod, bytemuck::Zeroable)]
8pub struct Tasks {
9    pub dojo: Pubkey,
10    /// Highest recruit threshold claimed. 0 = none.
11    pub recruit_claimed_up_to: u64,
12    /// Highest forge level tier claimed. 0 = none.
13    pub forge_claimed_up_to: u64,
14    /// Highest dine threshold claimed. 0 = none.
15    pub dine_claimed_up_to: u64,
16    /// Last slot when daily reward was claimed. 0 = never.
17    pub last_daily_claim_slot: u64,
18    /// Collection: 1 = claimed, index = element×5+rarity (25 combos).
19    pub collection_claimed: [u8; 25],
20    pub _pad: [u8; 7], // explicit: align reserved to 8 bytes (25 % 8 = 1)
21    /// Cached counts per collection (element×5+rarity). Updated on recruit, merge, prestige.
22    pub collection_counts: [u8; 25],
23    pub _pad2: [u8; 7], // align to 8 bytes (25 % 8 = 1)
24    /// Reserved for future task categories and metadata.
25    pub reserved: [u64; 20],
26}
27
28account!(DojosAccount, Tasks);