mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Updated changelog
This commit is contained in:
parent
e626f6255f
commit
d1cdb6ea55
@ -60,6 +60,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Connection screen fails after 4 minutes if it can't connect to the server instead of 80 minutes
|
- Connection screen fails after 4 minutes if it can't connect to the server instead of 80 minutes
|
||||||
- Rebuilt quadruped_medium animation and assets
|
- Rebuilt quadruped_medium animation and assets
|
||||||
- Disabled destruction of most blocks by explosions
|
- Disabled destruction of most blocks by explosions
|
||||||
|
- Disable damage to pets
|
||||||
|
- Made pets healable
|
||||||
|
- Rebalanced fire staff
|
||||||
|
- Animals are more effective in combat
|
||||||
|
- Pathfinding is much smoother and pets are cleverer
|
||||||
|
- Animals run/turn at different speeds
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
label_break_value,
|
label_break_value,
|
||||||
trait_alias,
|
trait_alias,
|
||||||
type_alias_impl_trait,
|
type_alias_impl_trait,
|
||||||
option_zip,
|
option_zip
|
||||||
)]
|
)]
|
||||||
|
|
||||||
#[macro_use] extern crate serde_derive;
|
#[macro_use] extern crate serde_derive;
|
||||||
|
@ -242,14 +242,12 @@ impl<'a> System<'a> for Sys {
|
|||||||
if let (Some(tgt_pos), Some(tgt_stats), tgt_alignment) = (
|
if let (Some(tgt_pos), Some(tgt_stats), tgt_alignment) = (
|
||||||
positions.get(*target),
|
positions.get(*target),
|
||||||
stats.get(*target),
|
stats.get(*target),
|
||||||
alignments
|
alignments.get(*target).copied().unwrap_or(
|
||||||
.get(*target)
|
uids.get(*target)
|
||||||
.copied()
|
|
||||||
.unwrap_or(uids
|
|
||||||
.get(*target)
|
|
||||||
.copied()
|
.copied()
|
||||||
.map(Alignment::Owned)
|
.map(Alignment::Owned)
|
||||||
.unwrap_or(Alignment::Wild)),
|
.unwrap_or(Alignment::Wild),
|
||||||
|
),
|
||||||
) {
|
) {
|
||||||
if let Some(dir) = Dir::from_unnormalized(tgt_pos.0 - pos.0) {
|
if let Some(dir) = Dir::from_unnormalized(tgt_pos.0 - pos.0) {
|
||||||
inputs.look_dir = dir;
|
inputs.look_dir = dir;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
comp::{
|
comp::{
|
||||||
projectile, Energy, EnergySource, HealthSource, Ori, PhysicsState, Pos, Projectile, Vel,
|
projectile, Alignment, Energy, EnergySource, HealthSource, Ori, PhysicsState, Pos,
|
||||||
Alignment,
|
Projectile, Vel,
|
||||||
},
|
},
|
||||||
event::{EventBus, LocalEvent, ServerEvent},
|
event::{EventBus, LocalEvent, ServerEvent},
|
||||||
state::DeltaTime,
|
state::DeltaTime,
|
||||||
@ -89,11 +89,11 @@ impl<'a> System<'a> for Sys {
|
|||||||
// Hacky: remove this when groups get implemented
|
// Hacky: remove this when groups get implemented
|
||||||
let passive = uid_allocator
|
let passive = uid_allocator
|
||||||
.retrieve_entity_internal(other.into())
|
.retrieve_entity_internal(other.into())
|
||||||
.and_then(|other|
|
.and_then(|other| {
|
||||||
alignments
|
alignments
|
||||||
.get(other)
|
.get(other)
|
||||||
.map(|a| Alignment::Owned(owner_uid)
|
.map(|a| Alignment::Owned(owner_uid).passive_towards(*a))
|
||||||
.passive_towards(*a)))
|
})
|
||||||
.unwrap_or(false);
|
.unwrap_or(false);
|
||||||
if other != projectile.owner.unwrap() && !passive {
|
if other != projectile.owner.unwrap() && !passive {
|
||||||
server_emitter.emit(ServerEvent::Damage { uid: other, change });
|
server_emitter.emit(ServerEvent::Damage { uid: other, change });
|
||||||
|
@ -507,7 +507,10 @@ fn handle_spawn(
|
|||||||
String
|
String
|
||||||
) {
|
) {
|
||||||
(Some(opt_align), Some(npc::NpcBody(id, mut body)), opt_amount, opt_ai) => {
|
(Some(opt_align), Some(npc::NpcBody(id, mut body)), opt_amount, opt_ai) => {
|
||||||
let uid = server.state.read_component_cloned(target).expect("Expected player to have a UID");
|
let uid = server
|
||||||
|
.state
|
||||||
|
.read_component_cloned(target)
|
||||||
|
.expect("Expected player to have a UID");
|
||||||
if let Some(alignment) = parse_alignment(uid, &opt_align) {
|
if let Some(alignment) = parse_alignment(uid, &opt_align) {
|
||||||
let amount = opt_amount
|
let amount = opt_amount
|
||||||
.and_then(|a| a.parse().ok())
|
.and_then(|a| a.parse().ok())
|
||||||
|
@ -188,7 +188,8 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv
|
|||||||
let reinsert = if let Some(pos) =
|
let reinsert = if let Some(pos) =
|
||||||
state.read_storage::<comp::Pos>().get(entity)
|
state.read_storage::<comp::Pos>().get(entity)
|
||||||
{
|
{
|
||||||
let uid = state.read_component_cloned(entity)
|
let uid = state
|
||||||
|
.read_component_cloned(entity)
|
||||||
.expect("Expected player to have a UID");
|
.expect("Expected player to have a UID");
|
||||||
if (
|
if (
|
||||||
&state.read_storage::<comp::Alignment>(),
|
&state.read_storage::<comp::Alignment>(),
|
||||||
@ -222,10 +223,10 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv
|
|||||||
.map(|(entity, _, _)| entity);
|
.map(|(entity, _, _)| entity);
|
||||||
nearest_tameable
|
nearest_tameable
|
||||||
} {
|
} {
|
||||||
let _ = state.ecs().write_storage().insert(
|
let _ = state
|
||||||
tameable_entity,
|
.ecs()
|
||||||
comp::Alignment::Owned(uid),
|
.write_storage()
|
||||||
);
|
.insert(tameable_entity, comp::Alignment::Owned(uid));
|
||||||
let _ = state
|
let _ = state
|
||||||
.ecs()
|
.ecs()
|
||||||
.write_storage()
|
.write_storage()
|
||||||
|
@ -171,7 +171,10 @@ impl StateExt for State {
|
|||||||
});
|
});
|
||||||
self.write_component(entity, comp::Gravity(1.0));
|
self.write_component(entity, comp::Gravity(1.0));
|
||||||
self.write_component(entity, comp::CharacterState::default());
|
self.write_component(entity, comp::CharacterState::default());
|
||||||
self.write_component(entity, comp::Alignment::Owned(self.read_component_cloned(entity).unwrap()));
|
self.write_component(
|
||||||
|
entity,
|
||||||
|
comp::Alignment::Owned(self.read_component_cloned(entity).unwrap()),
|
||||||
|
);
|
||||||
|
|
||||||
// Set the character id for the player
|
// Set the character id for the player
|
||||||
// TODO this results in a warning in the console: "Error modifying synced
|
// TODO this results in a warning in the console: "Error modifying synced
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use super::SysTimer;
|
use super::SysTimer;
|
||||||
use common::{
|
use common::{
|
||||||
comp::{
|
comp::{
|
||||||
Body, CanBuild, CharacterState, Collider, Energy, Gravity, Item, LightEmitter, Loadout,
|
Alignment, Body, CanBuild, CharacterState, Collider, Energy, Gravity, Item, LightEmitter,
|
||||||
Mass, MountState, Mounting, Ori, Player, Pos, Scale, Stats, Sticky, Vel, Alignment,
|
Loadout, Mass, MountState, Mounting, Ori, Player, Pos, Scale, Stats, Sticky, Vel,
|
||||||
},
|
},
|
||||||
msg::EcsCompPacket,
|
msg::EcsCompPacket,
|
||||||
sync::{CompSyncPackage, EntityPackage, EntitySyncPackage, Uid, UpdateTracker, WorldSyncExt},
|
sync::{CompSyncPackage, EntityPackage, EntitySyncPackage, Uid, UpdateTracker, WorldSyncExt},
|
||||||
|
@ -59,10 +59,7 @@ impl SessionState {
|
|||||||
{
|
{
|
||||||
let mut client = client.borrow_mut();
|
let mut client = client.borrow_mut();
|
||||||
let my_entity = client.entity();
|
let my_entity = client.entity();
|
||||||
client
|
client.state_mut().ecs_mut().insert(MyEntity(my_entity));
|
||||||
.state_mut()
|
|
||||||
.ecs_mut()
|
|
||||||
.insert(MyEntity(my_entity));
|
|
||||||
}
|
}
|
||||||
let voxygen_i18n = load_expect::<VoxygenLocalization>(&i18n_asset_key(
|
let voxygen_i18n = load_expect::<VoxygenLocalization>(&i18n_asset_key(
|
||||||
&global_state.settings.language.selected_language,
|
&global_state.settings.language.selected_language,
|
||||||
|
Loading…
Reference in New Issue
Block a user