Reorder character search because seems like minions also have entries in npc dicts

This commit is contained in:
RisaDev
2024-10-26 00:01:18 +03:00
parent c3cc0bf80a
commit 803962c63e

View File

@@ -97,21 +97,22 @@ public partial class ProfileManager : IDisposable
var nameWordsCnt = characterName.Split(' ').Length; var nameWordsCnt = characterName.Split(' ').Length;
if (_reverseNameDicts.TryGetID(ObjectKind.EventNpc, characterName, out var id)) //companions come first because they seem to have duplicate entries in NPC dicts
profile.Characters.Add(_actorManager.CreateNpc(ObjectKind.EventNpc, new NpcId(id))); if (_reverseNameDicts.TryGetID(ObjectKind.Companion, characterName, out var id))
else if (_reverseNameDicts.TryGetID(ObjectKind.BattleNpc, characterName, out id)) {
profile.Characters.Add(_actorManager.CreateNpc(ObjectKind.BattleNpc, new NpcId(id))); var currentPlayer = _actorManager.GetCurrentPlayer();
profile.Characters.Add(_actorManager.CreateOwned(currentPlayer.PlayerName, currentPlayer.HomeWorld, ObjectKind.Companion, new NpcId(id)));
}
else if (_reverseNameDicts.TryGetID(ObjectKind.MountType, characterName, out id)) else if (_reverseNameDicts.TryGetID(ObjectKind.MountType, characterName, out id))
{ {
var currentPlayer = _actorManager.GetCurrentPlayer(); var currentPlayer = _actorManager.GetCurrentPlayer();
profile.Characters.Add(_actorManager.CreateOwned(currentPlayer.PlayerName, currentPlayer.HomeWorld, ObjectKind.MountType, new NpcId(id))); profile.Characters.Add(_actorManager.CreateOwned(currentPlayer.PlayerName, currentPlayer.HomeWorld, ObjectKind.MountType, new NpcId(id)));
} }
else if (_reverseNameDicts.TryGetID(ObjectKind.Companion, characterName, out id)) else if (_reverseNameDicts.TryGetID(ObjectKind.EventNpc, characterName, out id))
{ profile.Characters.Add(_actorManager.CreateNpc(ObjectKind.EventNpc, new NpcId(id)));
var currentPlayer = _actorManager.GetCurrentPlayer(); else if (_reverseNameDicts.TryGetID(ObjectKind.BattleNpc, characterName, out id))
profile.Characters.Add(_actorManager.CreateOwned(currentPlayer.PlayerName, currentPlayer.HomeWorld, ObjectKind.Companion, new NpcId(id))); profile.Characters.Add(_actorManager.CreateNpc(ObjectKind.BattleNpc, new NpcId(id)));
} else if (nameWordsCnt == 2) //players come last
else if (nameWordsCnt == 2)
profile.Characters.Add(_actorManager.CreatePlayer(ByteString.FromStringUnsafe(characterName, false), WorldId.AnyWorld)); profile.Characters.Add(_actorManager.CreatePlayer(ByteString.FromStringUnsafe(characterName, false), WorldId.AnyWorld));
else else
{ {