use assetpath::AssetPath; use engine::prelude::*; create_settings_section!( AbilityIcons, "Icons", { // ability book book: AssetPath, // ability add ons damage: AssetPath, projectile_speed: AssetPath, bounce: AssetPath, explosion: AssetPath, size: AssetPath, additional_projectiles: AssetPath, cool_down: AssetPath, distance: AssetPath, addon_background: AssetPath, } ); create_settings_section!( AbilityLevel, "AbilityLevel", { starting_cost: u32, cost_per_level: u32, }, Serialize, Deserialize, ); create_settings_section!( AbilitySlotCount, "RarityAddOnSlots", { common: u32, uncommon: u32, magical: u32, rare: u32, epic: u32, legendary: u32, } ); impl_from_rarity!(AbilitySlotCount, u32); create_settings_section!( IntelligencePageRequirements, "IntelligencePerAbilityPage", { first: u32, second: u32, third: u32, fourth: u32, } ); create_settings_section!( ProjectileSpeedSettings, "ProjectileSpeed", { common: f32, uncommon: f32, magical: f32, rare: f32, epic: f32, legendary: f32, } ); impl_from_rarity!(ProjectileSpeedSettings, f32); create_settings_section!( DamageSettings, "Damage", { common: u32, uncommon: u32, magical: u32, rare: u32, epic: u32, legendary: u32, } ); impl_from_rarity!(DamageSettings, u32); create_settings_section!( ExplosionSettings, "Explosion", { common: f32, uncommon: f32, magical: f32, rare: f32, epic: f32, legendary: f32, } ); impl_from_rarity!(ExplosionSettings, f32); create_settings_section!( SizeSettings, "Size", { common: f32, uncommon: f32, magical: f32, rare: f32, epic: f32, legendary: f32, } ); impl_from_rarity!(SizeSettings, f32); create_settings_section!( AdditionalProjectilesSettings, "AdditionalProjectiles", { common: u32, uncommon: u32, magical: u32, rare: u32, epic: u32, legendary: u32, } ); impl_from_rarity!(AdditionalProjectilesSettings, u32); create_settings_section!( CoolDownReductionSettings, "CoolDownReduction", { common: f32, uncommon: f32, magical: f32, rare: f32, epic: f32, legendary: f32, } ); impl_from_rarity!(CoolDownReductionSettings, f32); create_settings_section!( DistanceSettings, "Distance", { common: f32, uncommon: f32, magical: f32, rare: f32, epic: f32, legendary: f32, } ); impl_from_rarity!(DistanceSettings, f32); create_settings_container!( AbilitySettings, { icons: AbilityIcons, level: AbilityLevel, slot_count: AbilitySlotCount, page_requirements: IntelligencePageRequirements, projectile_speed: ProjectileSpeedSettings, damage: DamageSettings, explosion: ExplosionSettings, size: SizeSettings, additional_projectiles: AdditionalProjectilesSettings, cool_down: CoolDownReductionSettings, distance: DistanceSettings, } );