TouchyTickets/TouchyTickets/Upgrades/NeighborModifierUpgrade.cs
2023-02-11 10:16:42 +01:00

26 lines
1,012 B
C#

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;
}
}