public PlayerFaction(string factionName) : base() { this.name = factionName; relationships = new Dictionary<Faction, Relationship>(); _resources = new ResourceContainer(); resources.Add(ResourceType.Gold, 100d); resources.Add(ResourceType.Food, 50d); }
public ResourceContainer ReceiveLootStrike(BaseUnit attacker) { var takenLoot = new ResourceContainer(); Log.Steb("Getting a lootstrike " + _buildInstructions.unitName); foreach (ResourceType lootType in Enum.GetValues(typeof(ResourceType))) { var takenAmount = resourceContainer.Subtract(lootType, 30d); Log.Steb("Took " + takenAmount + " of type " + lootType.ToString()); takenLoot.Add(lootType, takenAmount); } return takenLoot; }
public void AttackUnit(BaseUnit target) { if (target.IsAlive()) target.ReceiveAttack(this); else resourceContainer += target.ReceiveLootStrike(this); _timeSincePreviousAttack = 0f; }
public static ResourceContainer operator -(ResourceContainer a) { var newContainer = new ResourceContainer(); for (var i = 0; i < a.resourceList.Count; i++) { newContainer.Subtract(a.resourceList[i].type, a.resourceList[i].amount); } return newContainer; }
public static ResourceContainer operator +(ResourceContainer a, ResourceContainer b) { var newContainer = new ResourceContainer(); for (var i = 0; i < a.resourceList.Count; i++) { newContainer.Add(a.resourceList[i].type, a.resourceList[i].amount); } for (var i = 0; i < b.resourceList.Count; i++) { newContainer.Add(b.resourceList[i].type, b.resourceList[i].amount); } return newContainer; }
protected Faction() { this.name = "Default Name"; relationships = new Dictionary<Faction, Relationship>(); _resources = new ResourceContainer(); }
public Faction(string factionName) { this.name = factionName; relationships = new Dictionary<Faction, Relationship>(); _resources = new ResourceContainer(); }