183 lines
3.4 KiB
Rust
183 lines
3.4 KiB
Rust
|
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,
|
||
|
}
|
||
|
);
|