public void buildFacility(Facilities_Class i, bool cost, Player_Class fact)
    {
        print("Building(2) " + i.getTypeString());

        i.faction = fact.playerFaction;
        i.self    = new Color(fact.PlayerColor.r, fact.PlayerColor.g, fact.PlayerColor.b, .5f);

        if (facilities[i.getType()] == null)
        {
            facilities[i.getType()] = i;
        }
        else
        {
            int temp;
            temp = facilities[i.getType()].getTier();
            temp++;
            if (temp < 6)
            {
                facilities[i.getType()].setTier(temp);
            }
            else
            {
                print("Max tier structure");
                cost = false;
            }
        }

        if (cost)
        {
            gm.calcResources(i.getTier() - 1, i.getType(), fact);
        }
    }
    public void buildFacility(Facilities_Class i, bool cost)
    {
        print("Building " + i.getTypeString());

        if (this.owner != null)
        {
            i.faction = this.owner.playerFaction;
            print("Owner");

            i.self = new Color(this.owner.PlayerColor.r, this.owner.PlayerColor.g, this.owner.PlayerColor.b, .5f);

            if (facilities[i.getType()] == null)
            {
                facilities[i.getType()] = i;
            }
            else
            {
                int temp;
                temp = facilities[i.getType()].getTier();
                temp++;
                if (temp < 6)
                {
                    facilities[i.getType()].setTier(temp);
                }
                else
                {
                    print("Max tier structure");
                }
            }

            if (cost)
            {
                gm.calcResources(i.getTier(), i.getType(), owner);
            }
        }
        else
        {
            buildFacility(i, cost, gm.currentPlayer);
            cost = false;
        }
    }