public void ChangeRelationshipOfFaction(Faction_Relations relation, Faction_Relations ChangedRelation, bool ExpectedResult) { // [Review] wtf? Why loop through relationships when you can access them like FactionRelationships[Key]? Unit.AddRelationship(Friend.FactionModel, relation); var result = false; var result2 = false; Unit.ChangeRelationship(Friend.FactionModel, ChangedRelation); foreach (KeyValuePair <FactionModel, Faction_Relations> relationship in Unit.FactionModel.FactionRelationships) { if (relationship.Key.Name == Friend.FactionModel.Name && relationship.Value != relation) { result = true; } } foreach (KeyValuePair <FactionModel, Faction_Relations> relationship in Friend.FactionModel.FactionRelationships) { if (relationship.Key.Name == Unit.FactionModel.Name && relationship.Value != relation) { result2 = true; } } Assert.IsTrue(result == ExpectedResult); Assert.IsTrue(result2 == ExpectedResult); }
// Adds a relationship to the faction if it doesnt exist yet public void AddRelationship(FactionModel faction, Faction_Relations relation) { if (FactionModel.FactionRelationships.ContainsKey(faction)) { return; } FactionModel.FactionRelationships.Add(faction, relation); faction.FactionRelationships.Add(FactionModel, relation); }
public void IsHostileToFaction(Faction_Relations relation, bool ExpectedResult) { Unit.AddRelationship(Enemy.FactionModel, relation); var result = Unit.IsHostileTo(Enemy.FactionModel); var result2 = Enemy.IsHostileTo(Unit.FactionModel); Assert.IsTrue(result == ExpectedResult); Assert.IsTrue(result2 == ExpectedResult); }
// Checks if there is a relation with the given faction and changes it to the given relation if not the same public void ChangeRelationship(FactionModel faction, Faction_Relations relation) { if (FactionModel.FactionRelationships[faction] == relation) { return; } FactionModel.FactionRelationships.Remove(faction); FactionModel.FactionRelationships.Add(faction, relation); faction.FactionRelationships.Remove(FactionModel); faction.FactionRelationships.Add(FactionModel, relation); }