Skip to content

Commit be5717e

Browse files
committed
fix egg duping enemys
1 parent cf8ce59 commit be5717e

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

ewext/src/modules/entity_sync/diff_model.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use shared::{
2323
},
2424
GameEffectData, NoitaOutbound, PeerId, SpawnOnce, WorldPos,
2525
};
26+
use std::borrow::Cow;
2627
use std::mem;
2728
use std::num::NonZero;
2829
pub(crate) static DES_TAG: &str = "ew_des";
@@ -907,6 +908,7 @@ impl RemoteDiffModel {
907908
EntityUpdate::Init(entity_entry, gid) => {
908909
if let Some(ent) = self.waiting_for_lid.remove(&gid) {
909910
self.tracked.insert(current_lid, ent);
911+
let _ = init_remote_entity(ent, Some(current_lid), Some(gid), false);
910912
}
911913
self.lid_to_gid.insert(current_lid, gid);
912914
self.entity_infos.insert(current_lid, *entity_entry);
@@ -1510,7 +1512,7 @@ pub fn init_remote_entity(
15101512
}
15111513

15121514
for pb2 in entity.iter_all_components_of_type::<PhysicsBody2Component>(None)? {
1513-
pb2.set_destroy_body_if_entity_destroyed(true)?; //TODO why??
1515+
pb2.set_destroy_body_if_entity_destroyed(true)?;
15141516
}
15151517

15161518
for expl in entity.iter_all_components_of_type::<ExplodeOnDamageComponent>(None)? {
@@ -1556,6 +1558,18 @@ pub fn init_remote_entity(
15561558
ghost.set_die_if_no_home(false)?;
15571559
}
15581560

1561+
if entity.has_tag("egg_item") {
1562+
if let Some(explosion) =
1563+
entity.try_get_first_component_including_disabled::<ExplodeOnDamageComponent>(None)?
1564+
{
1565+
explosion.object_set_value::<Cow<'_, str>>(
1566+
"config_explosion",
1567+
"load_this_entity",
1568+
"".into(),
1569+
)?
1570+
}
1571+
}
1572+
15591573
entity
15601574
.iter_all_components_of_type_including_disabled::<VariableStorageComponent>(None)?
15611575
.for_each(|var| {

quant.ew/init.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ function OnProjectileFired(
270270
or n == "data/entities/projectiles/deck/black_hole_giga.xml"
271271
or n == "data/entities/projectiles/deck/white_hole.xml"
272272
or n == "data/entities/projectiles/deck/white_hole_giga.xml"
273+
or string.sub(n, 31) == "data/entities/items/pickup/egg_"
273274
or EntityHasTag(projectile_id, "ew_projectile_position_sync")
274275
then
275276
local body = EntityGetFirstComponentIncludingDisabled(projectile_id, "PhysicsBody2Component")

0 commit comments

Comments
 (0)