using System.Linq; using Microsoft.Xna.Framework; using TouchyTickets.Attractions; namespace TouchyTickets.Upgrades; public class NeighborModifierUpgrade : Upgrade { private readonly AttractionType requiredNeighbor; private readonly AttractionFlags requiredFlag; private readonly float modifier; public NeighborModifierUpgrade(string name, int price, Point texture, AttractionType requiredNeighbor, float modifier, AttractionFlags requiredFlag = AttractionFlags.None, params Upgrade[] dependencies) : base(name, price, texture, dependencies) { this.requiredNeighbor = requiredNeighbor; this.requiredFlag = requiredFlag; this.modifier = modifier; } public float GetCurrentMultiplier(Attraction attraction, ParkMap map, Point position) { if (this.IsActive() && attraction.Type.Flags.HasFlag(this.requiredFlag) && attraction.GetSurrounding(map, position, this.requiredNeighbor).Any()) return this.modifier; return 1; } }