diff options
| author | historia <[not public]> | 2026-06-28 02:40:30 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-28 02:40:30 -0400 |
| commit | a1b6613c6c6a2f8d6e1ecd47e766bd40f92ac295 (patch) | |
| tree | 4ff8fefb029c93f2aa3db7361658b0b4e9805b66 /internal/world/mob.go | |
| parent | 87dacfbb3dd16e7f55a82361eace98f9a39d75c8 (diff) | |
| download | thehouseoficarus-a1b6613c6c6a2f8d6e1ecd47e766bd40f92ac295.tar.gz | |
feat: admin accounts, god mode, OLC commands like dig/room, 'inline' objects changed to 'local' objects
Diffstat (limited to 'internal/world/mob.go')
| -rw-r--r-- | internal/world/mob.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/internal/world/mob.go b/internal/world/mob.go index d3ea05b..e02da53 100644 --- a/internal/world/mob.go +++ b/internal/world/mob.go @@ -289,6 +289,13 @@ func (s *MobStore) AllDefIDs() map[string]bool { return ids } +func (s *MobStore) ReloadDefs(dataDir string) { + s.mu.Lock() + defer s.mu.Unlock() + s.defs = make(map[string]*MobDef) + s.pathIndex = behavior.BuildPathIndex(filepath.Join(dataDir, "mobs")) +} + func (s *MobStore) GetInstance(id string) *MobInstance { s.mu.Lock() defer s.mu.Unlock() @@ -371,6 +378,16 @@ func (s *MobStore) RemoveInstance(instanceID string) { delete(s.instances, instanceID) } +func (s *MobStore) RemoveMobsInRoom(roomID int) { + s.mu.Lock() + defer s.mu.Unlock() + for id, inst := range s.instances { + if inst.RoomID == roomID { + delete(s.instances, id) + } + } +} + func (s *MobStore) SeedMobs(roomID int, entries []RoomMob) { type defWrapper struct { def *MobDef |
