private void ShowIfApplicable(OverwatchTilesAvailable tiles) { if (!GameWorld.FriendlyPerception[GameWorld.CurrentCharacter.CurrentTile.Position]) { return; } tiles.OverwatchedTiles.ForEach(x => { int percentage = new HitChanceCalculation(GameWorld.CurrentCharacter.Accuracy, x.Value.BlockChance).Get(); int index = percentage >= 90 ? 4 : (percentage >= 65 ? 3 : (percentage >= 30 ? 2 : 1)); _visuals.Add(new UiImage { Image = "Effects/D_Cover_Overwatched" + index, Transform = GameWorld.Map[x.Key].Transform, Tint = new Color(Color.Wheat, .5f * percentage / 100f), }); }); }
private void UpdateOverwatch(OverwatchTilesAvailable e) => GameWorld.CurrentCharacter.Notify(e);
internal void Notify(OverwatchTilesAvailable e) => State.OverwatchedTiles = e.OverwatchedTiles;