コード例 #1
0
    //Order: 0 gender, 1 age, 2 location, 3 occupation, 4 family, 5 financial, 6 searched

    void Awake()
    {
        profiles = new List <ProfileBase>();

        for (int i = 0; i < 120; i++)
        {
            VarRef.Tag gender   = RandTag(TagCategory.Gender);
            VarRef.Tag age      = RandTag(TagCategory.Age);
            VarRef.Tag location = RandTag(TagCategory.Location);

            VarRef.Tag occupation = RandTag(TagCategory.Occupation);
            if (age == VarRef.Tag.AgeChild && occupation == VarRef.Tag.OccEmployed)
            {
                occupation = VarRef.Tag.OccStudent;
            }
            VarRef.Tag family = RandTag(TagCategory.Family);
            if (age == VarRef.Tag.AgeChild)
            {
                family = VarRef.Tag.FamSingle;
            }
            VarRef.Tag financial = RandTag(TagCategory.Financial);
            VarRef.Tag search    = RandTag(TagCategory.Searched);
            if (age == VarRef.Tag.AgeChild && search == VarRef.Tag.SearchBusiness)
            {
                search = VarRef.Tag.SearchIndoor;
            }

            NewProfile = new ProfileBase(gender, age, location, occupation, family, financial, search);
            profiles.Add(NewProfile);
        }
    }
コード例 #2
0
    VarRef.Tag RandTag(TagCategory category)
    {
        int min = 0;
        int max = 0;

        switch (category)
        {
        case TagCategory.Gender:
            min = 0; max = 2;
            break;

        case TagCategory.Age:
            min = 2; max = 5;
            break;

        case TagCategory.Location:
            min = 5; max = 7;
            break;

        case TagCategory.Occupation:
            min = 7; max = 10;
            break;

        case TagCategory.Family:
            min = 10; max = 13;
            break;

        case TagCategory.Financial:
            min = 13; max = 16;
            break;

        case TagCategory.Searched:
            min = 16; max = 24;
            break;

        default:
            break;
        }
        int rand = Random.Range(min, max);

        VarRef.Tag ret = (VarRef.Tag)rand;

        return(ret);
    }
コード例 #3
0
    Sprite RandBlankImg(Sprite actual_image, VarRef.Tag age, VarRef.Tag location)
    {
        int chance = 100;

        if (age == VarRef.Tag.AgeChild)
        {
            chance -= 20;
        }
        else if (age == VarRef.Tag.AgeElderly)
        {
            chance -= 30;
        }
        else
        {
            chance -= 10;
        }

        if (location == VarRef.Tag.LiveCountry)
        {
            chance -= 20;
        }
        else
        {
            chance -= 10;
        }

        int rand = Random.Range(0, 100);

        if (rand <= chance)
        {
            return(actual_image);
        }
        else
        {
            return(image_assets[6]);
        }
    }
コード例 #4
0
    public ProfileBase(VarRef.Tag p_gen, VarRef.Tag p_age, VarRef.Tag p_loc,
                       VarRef.Tag p_occ, VarRef.Tag p_fam, VarRef.Tag p_fin, VarRef.Tag p_srch)
    {
        tag_array = new VarRef.Tag[nr_of_tags];

        tag_array[0] = p_gen; tag_array[1] = p_age;
        tag_array[2] = p_loc; tag_array[3] = p_occ;
        tag_array[4] = p_fam; tag_array[5] = p_fin;
        tag_array[6] = p_srch;

        points_ref = new Dictionary <VarRef.Topic, int>();
        tag_bases  = new TagBase[nr_of_tags];
        tags       = new TagList();

        points_ref.Add(VarRef.Topic.TravelCruise, 0);
        points_ref.Add(VarRef.Topic.TravelCharter, 0);
        points_ref.Add(VarRef.Topic.TravelBudget, 0);

        points_ref.Add(VarRef.Topic.ElecPhone, 0);
        points_ref.Add(VarRef.Topic.ElecHouse, 0);
        points_ref.Add(VarRef.Topic.ElecGames, 0);

        points_ref.Add(VarRef.Topic.SportsFootball, 0);
        points_ref.Add(VarRef.Topic.SportsGolf, 0);
        points_ref.Add(VarRef.Topic.SportsGymnastics, 0);

        points_ref.Add(VarRef.Topic.FoodQuick, 0);
        points_ref.Add(VarRef.Topic.FoodGourmet, 0);
        points_ref.Add(VarRef.Topic.FoodCafe, 0);

        points_ref.Add(VarRef.Topic.CarsBudget, 0);
        points_ref.Add(VarRef.Topic.CarsHighend, 0);
        points_ref.Add(VarRef.Topic.CarsParts, 0);

        points_ref.Add(VarRef.Topic.ClothesWomen, 0);
        points_ref.Add(VarRef.Topic.ClothesMen, 0);
        points_ref.Add(VarRef.Topic.ClothesCostume, 0);

        for (int i = 0; i < (int)VarRef.Tag.blank; i++)
        {
            for (int j = 0; j < nr_of_tags; j++)
            {
                //If the tag currently investigated exists on this profile
                if (i == (int)tag_array[j])
                {
                    //Grab a reference to that base tag for easy access
                    tag_bases[j] = tags.tag_list[i];
                }
            }
        }

        for (int i = 0; i < nr_of_tags; i++)
        {
            //Check what topics are in this tag's tier 1 list
            for (int j = 0; j < tag_bases[i].tier1.Count; j++)
            {
                points_ref[tag_bases[i].tier1[j]] += 3;
            }
            //Check what topics are in this tag's tier 2 list
            for (int k = 0; k < tag_bases[i].tier2.Count; k++)
            {
                points_ref[tag_bases[i].tier2[k]] += 2;
            }
            //Check what topics are in this tag's tier 3 list
            for (int l = 0; l < tag_bases[i].tier3.Count; l++)
            {
                points_ref[tag_bases[i].tier3[l]] += 1;
            }
        }
    }