public Faction_Controller(string name, GameController game, float startingBalance)
        {
            FactionModel       = new FactionModel(name);
            CurrencyController = new Currency_Controller(startingBalance);

            game.TimeController.DayPassed += OnDayPassed;
        }
        // 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);
        }
        // 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);
        }
 // Checks if the given faction is hostile to this faction
 public bool IsHostileTo(FactionModel faction) => FactionModel.FactionRelationships[faction] == Faction_Relations.hostile;