1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-07-10 16:07:45 +00:00
Commit graph

24 commits

Author SHA1 Message Date
The Dax
1fe3e3e81d Address "warning: using clone on type [u32; 10] which implements the Copy trait" 2025-06-30 21:55:11 -04:00
99a165e405 When changing equip display flags, store that for new spawns
See #50
2025-06-28 11:13:11 -04:00
9a3652fb42 When equipping items, network that to other players
See #50
2025-06-28 11:13:11 -04:00
58e4e89765 Support toggling displaying your weapon and other flags
This is now networked and shown both to you and other players. This
still needs to be persisted for other player spawns.
2025-06-25 21:30:14 -04:00
ddb67383af Fix more easy Clippy warnings 2025-06-23 21:14:38 -04:00
The Dax
86310c7c22 Address warnings:
warning: usage of `contains_key` followed by `insert` on a `HashMap`
warning: you seem to want to iterate on the values of a map
2025-06-23 15:28:24 -04:00
The Dax
ab3bcfc365 Address warning: "name NPC contains a capitalized acronym" 2025-06-23 15:28:24 -04:00
b41cb478e7 Display unsheathed weapon to other players
It doesn't play the animation correctly, yet.
2025-06-22 10:08:29 -04:00
e1b01299c9 Show emotes from other players
If you move it doesn't cancel them yet, but still cool to see them play.
2025-06-22 09:45:24 -04:00
b593d87ef7 Only execute actions at the end of their cast timer, if any
This makes actions like teleport not turn you into a zombie, because now
the action *somewhat* matches up with your client's animation. Note that
teleporting specifically still looks wrong, because I think on retail
the client is informed to preload the zone you're going to and we don't
do that.

Fixes #36
2025-06-21 11:20:21 -04:00
39beefbef3 Send action requests to global server state
This is to lay the groundwork for keeping track of cast spell timings,
and eventually networking actions to other players.

See #36
2025-06-21 10:36:44 -04:00
c1dc138e3c Make !spawnclone debug command networked 2025-06-18 20:57:20 -04:00
eb6b6409da Generate new actor IDs for debug NPCs, unify actor network paths
I don't know why I created a new message kind just for spawning NPCs
when ActorSpawn does this just fine. But what this actually means is
that the debug NPCs can now be spawned more than once.
2025-06-18 20:49:05 -04:00
97cdc66ec7 Make !spawnnpc debug command networked
Next step is allocating actor IDs properly, instead of using a fixed
value.
2025-06-18 20:38:55 -04:00
3757f4e0db Make !spawnmonster put the NPC at your location again
Also included some refactoring that will help networking these better.
2025-06-18 20:28:03 -04:00
a88b9037d4 Begin adding disconnection handling
This doesn't work 100% reliably yet, but the world server should now try
to commit your player back to the database if it detects you disconnect.

I also fixed a mistake where the global server state never removed
clients when they errored out. There's now code to remove your actor
from the instance when disconnecting, but this doesn't work reliably yet
either.
2025-05-12 01:17:15 -04:00
94ed036431 Add script for the Teleport action
This makes the Teleport action functional now, although it looks pretty
rough as it warps you instantly instead of waiting for the action to
actually finish.
2025-05-11 10:12:02 -04:00
477380c8b9 When using the !spawnmonster command, send it to all players
You can't attack it and see it on other clients yet, that will take some
more plumbing.
2025-05-09 20:09:22 -04:00
95fb6a149f Remove ToServer::ActorSpawn
This should be handled in the global server state instead.
2025-05-09 19:42:23 -04:00
0139fbc8c6 Remove the now unused ToServer::ActorDespawned
This is handled in the much-better-named LeftZone message.
2025-05-09 19:30:37 -04:00
cbeaa83307 Implement basic zone isolation for multiplayer
Now you don't see every player from every zone, like some kind of
madman. The code still sucks, but it works.
2025-05-09 19:27:18 -04:00
88e02452c4 Propagate pose changes to other players
Building off of the previous propagation work, your current pose is sent
to other players now too.
2025-05-08 23:03:51 -04:00
fd1fbe7188 Start adding support for propagating actor control state
This begins figuring out how we are going to be propagating actor
control state: e.g. targets, poses, and other misc effects. I ended up
sending client triggers to the global server state, who then creates the
needed actor control packet for the other players.

Now players can see what other players are targeting!
2025-05-08 22:53:36 -04:00
7e0b0d1bfc Move global world server logic to it's own module 2025-05-02 23:51:34 -04:00