mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Admin armor now provides immunity to debuffs.
This commit is contained in:
9
Cargo.lock
generated
9
Cargo.lock
generated
@ -2037,15 +2037,6 @@ dependencies = [
|
|||||||
"lazy_static",
|
"lazy_static",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "inline_tweak"
|
|
||||||
version = "1.0.8"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7033e97b20277cc0d043226d1940fa7719ff08d2305d1fc7421e53066d00eb4b"
|
|
||||||
dependencies = [
|
|
||||||
"lazy_static",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "inotify"
|
name = "inotify"
|
||||||
version = "0.8.3"
|
version = "0.8.3"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
comp::{
|
comp::{
|
||||||
BuffCategory, BuffChange, BuffEffect, BuffId, BuffSource, Buffs, HealthChange,
|
BuffCategory, BuffChange, BuffEffect, BuffId, BuffSource, Buffs, HealthChange,
|
||||||
HealthSource, ModifierKind, Stats,
|
HealthSource, Loadout, ModifierKind, Stats,
|
||||||
},
|
},
|
||||||
event::{EventBus, ServerEvent},
|
event::{EventBus, ServerEvent},
|
||||||
state::DeltaTime,
|
state::DeltaTime,
|
||||||
@ -18,11 +18,15 @@ impl<'a> System<'a> for Sys {
|
|||||||
Read<'a, DeltaTime>,
|
Read<'a, DeltaTime>,
|
||||||
Read<'a, EventBus<ServerEvent>>,
|
Read<'a, EventBus<ServerEvent>>,
|
||||||
ReadStorage<'a, Uid>,
|
ReadStorage<'a, Uid>,
|
||||||
|
ReadStorage<'a, Loadout>,
|
||||||
WriteStorage<'a, Stats>,
|
WriteStorage<'a, Stats>,
|
||||||
WriteStorage<'a, Buffs>,
|
WriteStorage<'a, Buffs>,
|
||||||
);
|
);
|
||||||
|
|
||||||
fn run(&mut self, (entities, dt, server_bus, uids, mut stats, mut buffs): Self::SystemData) {
|
fn run(
|
||||||
|
&mut self,
|
||||||
|
(entities, dt, server_bus, uids, loadouts, mut stats, mut buffs): Self::SystemData,
|
||||||
|
) {
|
||||||
let mut server_emitter = server_bus.emitter();
|
let mut server_emitter = server_bus.emitter();
|
||||||
// Set to false to avoid spamming server
|
// Set to false to avoid spamming server
|
||||||
buffs.set_event_emission(false);
|
buffs.set_event_emission(false);
|
||||||
@ -47,6 +51,17 @@ impl<'a> System<'a> for Sys {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let Some(loadout) = loadouts.get(entity) {
|
||||||
|
let damage_reduction = loadout.get_damage_reduction();
|
||||||
|
if (damage_reduction - 1.0).abs() < f32::EPSILON {
|
||||||
|
for (id, buff) in buff_comp.buffs.iter() {
|
||||||
|
if !buff.kind.is_buff() {
|
||||||
|
expired_buffs.push(*id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Call to reset stats to base values
|
// Call to reset stats to base values
|
||||||
stat.health.reset_max();
|
stat.health.reset_max();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user