int createFamilyFeud(Family family1, Family family2)
        {
            int victimDisputesCreated = 0;
            for (int x = 0; x < family1.family_members.Count; x++) {
                for (int y = 0; y < family2.family_members.Count; y++) {

                    int a = npcs.IndexOf(family1.family_members[x]);
                    int b = npcs.IndexOf(family2.family_members[y]);

                    FamilyFeud feudHistory = new FamilyFeud(0, npcs[a], npcs[b]);
                    //Make them hate eachother if they don't already love eachother (romeo juliet situation)
                    if (relationships[a,b] != 3) {
                        relationships[a, b] = randomRelationshipValue(-3, -2, -3);
                        npcs[a].addHistory(feudHistory);
                    }

                    if (relationships[b, a] != 3) {
                        if (npcs[a] == victim) victimDisputesCreated++;
                        npcs[b].addHistory(feudHistory);
                        relationships[b, a] = randomRelationshipValue(-3, -2, -3);
                    }

                    if (feud == null) { feud = feudHistory; }
                }
            }
            return victimDisputesCreated;
        }
        void createFamilies()
        {
            foreach (Npc npc in npcs) {
                /* Family logic
                If less families than the max, randomly attempt to create a family
                If random attempt failed or families at max, then randomly choose existing family and attempt to join
                If unsuccesful, just take a surname and remove it from the list
                If at the end of the NPC loop there are families with only one member, randomly choose a non family member to join. If none available, remove from that family and make the family name just a surname
                */

                //If there is room for a new family, attempt to make one
                if (families.Count < max_families) {
                    //If attempt is succesful add the NPC to it and change their surname
                    int r = Random.Range(0, 100);
                    if (r > 60) {
                        r = Random.Range(0, surnames.Count);
                        string surname = surnames[r];
                        surnames.RemoveAt(r);

                        Family family = new Family(surname);

                        npc.family = family;
                        families.Add(family);
                        family.family_members.Add(npc);
                        npc.surname = surname;

                        if (npc.gender == Npc.Gender.Male) family.husband = npc;
                        else family.wife = npc;
                    }
                }

                //If there is room in an existing family, try to join it
                if (npc.surname == "") {
                    foreach (Family family in families) {
                        //If the family has room for children, or is missing a husband or wife and this NPC is the right gender, add to family
                        if (family.family_members.Count < max_family_size && ((family.husband != null && family.wife != null) || (npc.gender == Npc.Gender.Male && family.husband == null) || (npc.gender == Npc.Gender.Female && family.wife == null))) {
                            int r = Random.Range(0, 100);
                            if (r > 30) {
                                npc.family = family;
                                family.family_members.Add(npc);
                                npc.surname = family.family_name;

                                if (family.husband != null && family.wife != null) {
                                    family.children.Add(npc);
                                }
                                else if (family.husband == null) {
                                    family.husband = npc;
                                }
                                else if (family.wife == null) {
                                    family.wife = npc;
                                }
                                break;
                            }
                        }
                    }
                }

                //If not joined a family by this point, take a random surname
                if (npc.surname == "") {
                    int i = Random.Range(0, surnames.Count);
                    string randomSurname = surnames[i];
                    surnames.RemoveAt(i);
                    npc.surname = randomSurname;
                    npc.family = null;
                }
            }

            //IF there are any families with 1 member, add the first non-family npc to it. If none available, remove the family.

            for (int f = families.Count - 1; f >= 0; f--) {
                if (families[f].family_members.Count == 1) {
                    Npc.Gender searchingFor;
                    if (families[f].wife == null) searchingFor = Npc.Gender.Female;
                    else searchingFor = Npc.Gender.Male;

                    bool stillSearching = true;
                    int i = 0;

                    while (stillSearching == true && i < npcs.Count - 1) {
                        if (npcs[i].family == null && npcs[i].gender == searchingFor) {
                            npcs[i].family = families[f];
                            families[f].family_members.Add(npcs[i]);
                            npcs[i].surname = families[f].family_name;

                            if (searchingFor == Npc.Gender.Male) families[f].husband = npcs[i];
                            else families[f].wife = npcs[i];

                            Debug.Log("added " + npcs[i].firstname + "to the " + families[f].family_name + "family");

                            stillSearching = false;
                        }
                        i++;
                    }

                    if (stillSearching) {
                        Debug.Log("No suitable npcs found, removing " + families[f].family_name + " family");
                        families[f].family_members[0].family = null;
                        families.Remove(families[f]);
                    }
                }
            }
        }