feat: added property damage boost

This commit is contained in:
TotallyNot 2025-11-04 16:35:40 +01:00
parent 6c3c50689a
commit 1c66dbf499
Signed by: pyrite
GPG key ID: 7F1BA9170CD35D15
3 changed files with 21 additions and 4 deletions

View file

@ -178,6 +178,12 @@ pub struct FactionUpgrades {
pub side_effects: u16,
}
#[derive(Component, Default)]
#[cfg_attr(feature = "json", derive(serde::Deserialize))]
pub struct Property {
pub damage: bool,
}
#[derive(Component)]
#[cfg_attr(feature = "json", derive(serde::Deserialize))]
pub enum DrugCooldown {
@ -204,4 +210,5 @@ pub(crate) struct PassiveBundle {
pub merits: Merits,
pub education: Education,
pub faction: FactionUpgrades,
pub property: Property,
}

View file

@ -3,7 +3,7 @@ use bevy_ecs::prelude::*;
use crate::{
bundle::{
armour::PlayerArmour,
passive::{DrugCooldown, Education, FactionUpgrades, Merits, PassiveBundle},
passive::{DrugCooldown, Education, FactionUpgrades, Merits, PassiveBundle, Property},
player::{PlayerBundle, PlayerStrategy, Weapons},
stat::{Defence, Dexterity, Speed, StatBundle, Strength},
},
@ -43,6 +43,7 @@ pub struct PlayerDto {
pub stats: Stats,
pub merits: Option<Merits>,
pub education: Option<Education>,
pub property: Option<Property>,
pub weapons: EquippedWeapons,
pub armour: EquippedArmour,
pub faction: Option<FactionUpgrades>,
@ -65,11 +66,13 @@ impl PlayerDto {
let education = self.education.unwrap_or_default();
let merits = self.merits.unwrap_or_default();
let faction = self.faction.unwrap_or_default();
let property = self.property.unwrap_or_default();
commands.insert(PassiveBundle {
education,
merits,
faction,
property,
});
let mut weapons = None;

View file

@ -1,6 +1,6 @@
use bevy_ecs::prelude::*;
use proxisim_models::bundle::{
passive::{Education, EducationPartDamageBonus, FactionUpgrades, Merits},
passive::{Education, EducationPartDamageBonus, FactionUpgrades, Merits, Property},
player::{Current, PartDamageBonus},
stat::{
AdditiveBonus, AmmoControl, ClipSize, Clips, CritRate, DamageBonus, Dexterity,
@ -169,7 +169,7 @@ fn apply_passives(
Has<Japanese>,
&ChildOf,
)>,
player_q: Query<(&Merits, &Education, &FactionUpgrades)>,
player_q: Query<(&Merits, &Education, &FactionUpgrades, &Property)>,
mut effects: Effects,
mut commands: Commands,
) {
@ -354,7 +354,7 @@ fn apply_passives(
}
}
let (merits, education, faction) = player_q.get(player.parent()).unwrap();
let (merits, education, faction, property) = player_q.get(player.parent()).unwrap();
let (mastery, edu_acc) = match cat {
WeaponCategory::HeavyArtillery => (
@ -458,6 +458,13 @@ fn apply_passives(
weapon,
);
}
if property.damage {
effects.spawn(
SimpleStatBonus::<DamageBonus>::new("property", 0.02),
weapon,
);
}
}
}