public void CheckIfMonsterSeesPlayer(MapCharacter2D monster, bool visible) { if (Map.IsWorldMap) { game.MonsterSeesPlayer = false; return; } monster.CheckedIfSeesPlayer = true; monster.SeesPlayer = false; if (!game.MonsterSeesPlayer && visible) { monster.SeesPlayer = MonsterSeesPlayer(monster.Position, null, null); if (monster.SeesPlayer) { game.MonsterSeesPlayer = true; } } else if (game.MonsterSeesPlayer) { CheckIfMonstersSeePlayer(); } }
bool TestCharacterInteraction(MapCharacter2D mapCharacter, bool cursor, Position position) { if (!mapCharacter.Visible || !mapCharacter.Active) { return(false); } if (position == mapCharacter.Position) { return(true); } return(cursor && mapCharacter.IsRealCharacter && position == new Position(mapCharacter.Position.X, mapCharacter.Position.Y - 1)); }
internal void AddCharacters(Map map) { for (uint characterIndex = 0; characterIndex < map.CharacterReferences.Length; ++characterIndex) { var characterReference = map.CharacterReferences[characterIndex]; if (characterReference == null) { break; } var mapCharacter = MapCharacter2D.Create(game, renderView, mapManager, this, characterIndex, characterReference); mapCharacter.Active = !game.CurrentSavegame.GetCharacterBit(map.Index, characterIndex); mapCharacters.Add(characterIndex, mapCharacter); } }