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