package com.galvarez.ttw.model.components; import java.util.ArrayList; import java.util.EnumMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import com.artemis.Component; import com.artemis.Entity; import com.galvarez.ttw.model.InfluenceSystem; import com.galvarez.ttw.model.map.MapPosition; import com.galvarez.ttw.model.map.Terrain; public final class InfluenceSource extends Component { private float power = InfluenceSystem.INITIAL_POWER; /** In per mille. */ public int growth; /** Usually compared to power. */ public int health = InfluenceSystem.INITIAL_POWER; public final Set<MapPosition> influencedTiles = new HashSet<>(); public final List<Entity> secondarySources = new ArrayList<>(); public final Modifiers modifiers = new Modifiers(); public static final class Modifiers { public final Map<Terrain, Integer> terrainBonus = new EnumMap<Terrain, Integer>(Terrain.class); public Modifiers() { for (Terrain t : Terrain.values()) terrainBonus.put(t, Integer.valueOf(0)); } } public int power() { return (int) power; } public void addToPower(float f) { power += f; } public void setPower(int power) { this.power = power; } }