//disables overlays then if unit occupies the tile, calculates move overlays for it public void OnNewTile(Tile tile) { CurrentUnit = null; _overlaysManager.DisableTemporaryOverlays(); if (tile.IsOccupied()) { CurrentUnit = tile.Occupier; if (_battleTurnManager.IsInActiveGroup(CurrentUnit)) { UnitMoveTiles = BattleMovementUtils.FindViableMoves(CurrentUnit); AttackedTiles = BattleMovementUtils.FindAttackedTiles(UnitMoveTiles, CurrentUnit.GetWeaponsRanges()); _overlaysManager.EnablePlayerMoveOverlays(UnitMoveTiles); _overlaysManager.EnableAttackedOverlays(AttackedTiles); } else { EnemyTiles = BattleMovementUtils.FindViableMoves(CurrentUnit); EnemyTiles.UnionWith(BattleMovementUtils.FindAttackedTiles(EnemyTiles, CurrentUnit.GetWeaponsRanges())); _overlaysManager.EnableEnemyOverlays(EnemyTiles); } } }
public EnemyViewResolver(IEventSystem eventSystem, IEntityDatabase entityDatabase, IUnityInstantiator instantiator, EnemyTiles enemyTiles) : base(eventSystem, entityDatabase, instantiator) { _enemyTiles = enemyTiles; }
public EnemyViewResolver(IEventSystem eventSystem, IEntityCollectionManager collectionManager, IUnityInstantiator instantiator, EnemyTiles enemyTiles) : base(eventSystem, collectionManager, instantiator) { _enemyTiles = enemyTiles; }
public EnemyViewResolver(IViewHandler viewHandler, EnemyTiles enemyTiles) : base(viewHandler) { _enemyTiles = enemyTiles; }