Release Healer Man 0.1.6
This commit is contained in:
1 parent
55cfd43d66
commit
b12fb84859
96 files changed
+10874
-609
No files matched your search
@@ -73,6 +73,7 @@ import {
|
||||
resolveMobAnimationInterval,
|
||||
} from "./mobAnimationCadence";
|
||||
import { useGameGLTF } from "./useGameGLTF";
|
||||
import { onlineSynchronizedMobTransform, requestOnlineInteraction } from "../game/onlineSessionRuntime";
|
||||
|
||||
const MOVEMENT_LOCKING_MOB_STATUSES: ReadonlySet<string> = new Set([
|
||||
"stun", "root", "sleep", "knockdown", "freeze", "charm", "confuse",
|
||||
@@ -916,7 +917,9 @@ function ProxyMob({
|
||||
if (event.button !== PRIMARY_MOUSE_BUTTON) return;
|
||||
event.stopPropagation();
|
||||
if (dead) {
|
||||
useCombatStore.getState().lootMob(instanceId);
|
||||
if (!requestOnlineInteraction("loot", instanceId)) {
|
||||
useCombatStore.getState().lootMob(instanceId);
|
||||
}
|
||||
return;
|
||||
}
|
||||
usePartyStore.getState().clearSelection();
|
||||
@@ -1188,6 +1191,25 @@ function RoamingPack({
|
||||
const forward = scratchForwards[index];
|
||||
const member = definition.members[index];
|
||||
const instanceId = `${definition.id}:${member.id}`;
|
||||
const synchronizedTransform = onlineSynchronizedMobTransform(instanceId);
|
||||
if (synchronizedTransform) {
|
||||
const object = memberRefs.current[index];
|
||||
if (object) {
|
||||
object.position.set(...synchronizedTransform.position);
|
||||
object.rotation.y = synchronizedTransform.yaw;
|
||||
}
|
||||
chasePositions[index][0] = synchronizedTransform.position[0];
|
||||
chasePositions[index][1] = synchronizedTransform.position[1];
|
||||
chasePositions[index][2] = synchronizedTransform.position[2];
|
||||
updateMobRuntimePosition(
|
||||
instanceId,
|
||||
synchronizedTransform.position[0],
|
||||
synchronizedTransform.position[1],
|
||||
synchronizedTransform.position[2],
|
||||
synchronizedTransform.yaw,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
const mob = combat.mobs[instanceId];
|
||||
const chasePosition = chasePositions[index];
|
||||
const engaged = Boolean(mob?.engaged && !mob.dead);
|
||||
@@ -1303,6 +1325,24 @@ function StaticPopulationMember({ spawn, entities, active, showLabels, useOrigin
|
||||
const positionRef = useRef<MutableMobVector3>([...spawn.position]);
|
||||
useEffect(() => registerMobRuntime(spawn.id, spawn.position, spawn.yaw ?? 0), [spawn.id, spawn.position, spawn.yaw]);
|
||||
useFrame((_, delta) => {
|
||||
const synchronizedTransform = onlineSynchronizedMobTransform(spawn.id);
|
||||
if (synchronizedTransform) {
|
||||
positionRef.current[0] = synchronizedTransform.position[0];
|
||||
positionRef.current[1] = synchronizedTransform.position[1];
|
||||
positionRef.current[2] = synchronizedTransform.position[2];
|
||||
if (groupRef.current) {
|
||||
groupRef.current.position.set(...synchronizedTransform.position);
|
||||
groupRef.current.rotation.y = synchronizedTransform.yaw;
|
||||
}
|
||||
updateMobRuntimePosition(
|
||||
spawn.id,
|
||||
synchronizedTransform.position[0],
|
||||
synchronizedTransform.position[1],
|
||||
synchronizedTransform.position[2],
|
||||
synchronizedTransform.yaw,
|
||||
);
|
||||
return;
|
||||
}
|
||||
const mob = useCombatStore.getState().mobs[spawn.id];
|
||||
const position = positionRef.current;
|
||||
const player = useGameStore.getState().playerPosition;
|
||||
|
||||
Reference in new issue
Block a user