예제 #1
0
    public void ImportClicked()
    {
        GameDBCSV data = (GameDBCSV)target;

        ImportDescriptionData(data.descriptionData, data.descriptions);
        ImportTypesData(data.nameData, data.names);
        ImportListData(data.themeData, data.types, data.themes);
        ImportTextTranslationData(data.textTranslationData, data.translations);
        ImportLabelData(data.textTranslationData, data.labels);
    }
예제 #2
0
    public static void CreateGameDBCSV()
    {
        GameDBCSV db = ScriptableObject.CreateInstance <GameDBCSV>();

        AssetDatabase.CreateAsset(db, "Assets/NewGameDBCSV.asset");
        AssetDatabase.SaveAssets();

        EditorUtility.FocusProjectWindow();
        Selection.activeObject = db;
    }
예제 #3
0
    private void Awake()
    {
        GameDBCSV db   = GlobalSettings.instance.db;
        Text      text = GetComponent <Text>();

        if (GlobalSettings.instance.win)
        {
            text.text = db.GetTranslation("Good Report");
        }
        else
        {
            text.text = db.GetTranslation("Bad Report");
        }
    }
예제 #4
0
    public override void OnInspectorGUI()
    {
        GameDBCSV data = (GameDBCSV)target;

        EditorGUILayout.BeginVertical("box");
        EditorGUILayout.LabelField("Info", EditorStyles.boldLabel);
        EditorGUILayout.Space();

        EditorGUILayout.LabelField(string.Format("Description: {0}", data.descriptions.Count));
        EditorGUILayout.LabelField(string.Format("Names: {0}", data.names.Count));
        EditorGUILayout.LabelField(string.Format("Types: {0}", data.types.Count));
        EditorGUILayout.LabelField(string.Format("Themes: {0}", data.themes.Count));
        EditorGUILayout.LabelField(string.Format("Translations: {0}", data.translations.Count));
        EditorGUILayout.LabelField(string.Format("Labels: {0}", data.labels.Count));
        EditorGUILayout.EndVertical();

        EditorGUILayout.BeginVertical("box");
        EditorGUILayout.LabelField("CSV Data", EditorStyles.boldLabel);
        EditorGUILayout.Space();
        data.descriptionData     = (TextAsset)EditorGUILayout.ObjectField("Description", data.descriptionData, typeof(TextAsset), false);
        data.nameData            = (TextAsset)EditorGUILayout.ObjectField("Names", data.nameData, typeof(TextAsset), false);
        data.themeData           = (TextAsset)EditorGUILayout.ObjectField("Themes", data.themeData, typeof(TextAsset), false);
        data.textTranslationData = (TextAsset)EditorGUILayout.ObjectField("Translations", data.textTranslationData, typeof(TextAsset), false);
        EditorGUILayout.Space();
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Import"))
        {
            ImportClicked();
        }

        if (GUILayout.Button("Clear"))
        {
            data.descriptions.Clear();
            data.names.Clear();
            data.types.Clear();
            data.themes.Clear();
            data.translations.Clear();
            data.labels.Clear();
        }
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.EndVertical();

        EditorUtility.SetDirty(data);
    }
예제 #5
0
    public void Awake()
    {
        db = GlobalSettings.instance.db;

        GameObject[] itemObjects = GameObject.FindGameObjectsWithTag("Item");
        List <Item>  items       = new List <Item>();

        for (int i = 0; i < itemObjects.Length; ++i)
        {
            Item item = itemObjects[i].GetComponent <Item>();
            if (item != null)
            {
                items.Add(item);
                item.type = db.types[item.index];
            }
        }

        // Set mimic
        bool rightChoise = false;

        while (!rightChoise)
        {
            int mimicNumber = Random.Range(0, items.Count);
            rightChoise = true;
            for (int i = 1; i <= 7; i++)
            {
                if (items[mimicNumber].type == ("Note" + i))
                {
                    rightChoise = false;
                    break;
                }
            }
            if (rightChoise)
            {
                mimic = items[mimicNumber];
                items[mimicNumber].mimic = true;
            }
        }

        theme = db.themes[Random.Range(0, db.themes.Count)];
        foreach (var item in items)
        {
            // Set name and price
            List <NameData> names    = (from name in db.names where name.type == item.type select name).ToList();
            int             numNames = Random.Range(0, names.Count);
            item.label = names[numNames].name;
            item.price = names[numNames].price;

            // Set descriptions
            List <DescriptionData> descriptions = new List <DescriptionData>();
            foreach (var d in db.descriptions)
            {
                if (item.type != d.type)
                {
                    continue;
                }
                if (d.mimic && item != mimic)
                {
                    continue;
                }
                if (d.theme != "" && d.theme != theme)
                {
                    continue;
                }

                descriptions.Add(d);
            }

            if (descriptions.Count == 0)
            {
                continue;
            }

            List <DescriptionData> chosenDescriptions = new List <DescriptionData>();
            int groupsNumber = descriptions.Max(d => d.group);
            for (int i = 0; i <= groupsNumber; i++)
            {
                List <DescriptionData> descriptionsInGroup = new List <DescriptionData>();
                foreach (var d in descriptions)
                {
                    if (d.group == i)
                    {
                        descriptionsInGroup.Add(d);
                    }
                }
                if (descriptionsInGroup.Count > 0)
                {
                    chosenDescriptions.Add(descriptionsInGroup[Random.Range(0, descriptionsInGroup.Count)]);
                }
            }

            item.description = "";
            for (int i = 0; i < chosenDescriptions.Count; i++)
            {
                if (chosenDescriptions[i].probability >= Random.Range(0.0f, 1.0f))
                {
                    item.description += "• " + chosenDescriptions[i].text + "\n";
                }
            }
            if (string.IsNullOrEmpty(item.description))
            {
                item.description += "• " + chosenDescriptions[Random.Range(0, chosenDescriptions.Count)].text + "\n";
            }
        }
    }
예제 #6
0
    public void OnEnable()
    {
        GameDBCSV db = AssetDatabase.LoadAssetAtPath <GameDBCSV>("Assets/DataBase/English/ItemsCSV.asset");

        types = db.types.ToArray();
    }
예제 #7
0
 private void Awake()
 {
     db = GlobalSettings.instance.db;
 }