Load ori_rate for BasicBeam from assets

+ make fire turret ori_rate slower
This commit is contained in:
juliancoffee 2021-06-18 20:30:12 +03:00
parent 36fa8bf4f7
commit 384409a1ed
17 changed files with 38 additions and 24 deletions

View File

@ -15,5 +15,6 @@ BasicBeam(
energy_regen: 0,
energy_drain: 0,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: Cultist,
)
)

View File

@ -10,5 +10,6 @@ BasicBeam(
energy_regen: 0,
energy_drain: 0,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: Flamethrower,
)
)

View File

@ -10,5 +10,6 @@ BasicBeam(
energy_regen: 0,
energy_drain: 0,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: Flamethrower,
)
)

View File

@ -10,5 +10,6 @@ BasicBeam(
energy_regen: 50,
energy_drain: 0,
orientation_behavior: FromOri,
ori_rate: 0.1,
specifier: ClayGolem,
)
)

View File

@ -1,11 +1,11 @@
BasicRanged(
energy_cost: 0,
buildup_duration: 0.5,
recover_duration: 0.8,
buildup_duration: 0.8,
recover_duration: 0.5,
projectile: ClayRocket(
damage: 500.0,
knockback: 25.0,
radius: 10.0,
radius: 5.0,
),
projectile_body: Object(ClayRocket),
projectile_light: None,

View File

@ -9,9 +9,9 @@ Shockwave(
shockwave_angle: 180.0,
shockwave_vertical_angle: 90.0,
shockwave_speed: 15.0,
shockwave_duration: 2.5,
shockwave_duration: 3.5,
requires_ground: true,
move_efficiency: 0.0,
damage_kind: Crushing,
specifier: Ground,
)
)

View File

@ -15,5 +15,6 @@ BasicBeam(
energy_regen: 0,
energy_drain: 0,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: Cultist,
)
)

View File

@ -10,5 +10,6 @@ BasicBeam(
energy_regen: 25,
energy_drain: 0,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: HealingBeam,
)
)

View File

@ -10,5 +10,6 @@ BasicBeam(
energy_regen: 0,
energy_drain: 0,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: Flamethrower,
)
)

View File

@ -15,5 +15,6 @@ BasicBeam(
energy_regen: 0,
energy_drain: 0,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: Bubbles,
)

View File

@ -15,5 +15,6 @@ BasicBeam(
energy_regen: 0,
energy_drain: 0,
orientation_behavior: Normal,
ori_rate: 0.3,
specifier: Flamethrower,
)
)

View File

@ -15,5 +15,6 @@ BasicBeam(
energy_regen: 0,
energy_drain: 0,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: Frost,
)
)

View File

@ -10,5 +10,6 @@ BasicBeam(
energy_regen: 50,
energy_drain: 0,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: LifestealBeam
)
)

View File

@ -15,5 +15,6 @@ BasicBeam(
energy_regen: 0,
energy_drain: 350,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: Flamethrower,
)
)

View File

@ -10,5 +10,6 @@ BasicBeam(
energy_regen: 0,
energy_drain: 350,
orientation_behavior: Normal,
ori_rate: 0.6,
specifier: Flamethrower,
)

View File

@ -247,6 +247,7 @@ pub enum CharacterAbility {
energy_regen: f32,
energy_drain: f32,
orientation_behavior: basic_beam::OrientationBehavior,
ori_rate: f32,
specifier: beam::FrontendSpecifier,
},
BasicAura {
@ -1651,6 +1652,7 @@ impl From<(&CharacterAbility, AbilityInfo)> for CharacterState {
energy_regen,
energy_drain,
orientation_behavior,
ori_rate,
specifier,
} => CharacterState::BasicBeam(basic_beam::Data {
static_data: basic_beam::StaticData {
@ -1666,6 +1668,7 @@ impl From<(&CharacterAbility, AbilityInfo)> for CharacterState {
energy_drain: *energy_drain,
ability_info,
orientation_behavior: *orientation_behavior,
ori_rate: *ori_rate,
specifier: *specifier,
},
timer: Duration::default(),

View File

@ -40,6 +40,8 @@ pub struct StaticData {
pub energy_drain: f32,
/// Used to dictate how orientation functions in this state
pub orientation_behavior: OrientationBehavior,
/// How fast enemy can rotate with beam
pub ori_rate: f32,
/// What key is used to press ability
pub ability_info: AbilityInfo,
/// Used to specify the beam to the frontend
@ -61,14 +63,10 @@ impl CharacterBehavior for Data {
fn behavior(&self, data: &JoinData) -> StateUpdate {
let mut update = StateUpdate::from(data);
let ori_rate = match self.static_data.orientation_behavior {
OrientationBehavior::Normal => 0.6,
OrientationBehavior::Turret => {
update.ori = Ori::from(data.inputs.look_dir);
0.6
},
OrientationBehavior::FromOri => 0.1,
};
let ori_rate = self.static_data.ori_rate;
if self.static_data.orientation_behavior == OrientationBehavior::Turret {
update.ori = Ori::from(data.inputs.look_dir);
}
handle_orientation(data, &mut update, ori_rate);
handle_move(data, &mut update, 0.4);