public static MonsterDataList Create()
    {
        MonsterDataList asset = ScriptableObject.CreateInstance <MonsterDataList>();

        AssetDatabase.CreateAsset(asset, "Assets/MonsterDataList.asset");
        AssetDatabase.SaveAssets();
        return(asset);
    }
Beispiel #2
0
 void OnEnable()
 {
     if (EditorPrefs.HasKey("ObjectPath"))
     {
         string objectPath = EditorPrefs.GetString("ObjectPath");
         monsterDataList = AssetDatabase.LoadAssetAtPath(objectPath, typeof(MonsterDataList)) as MonsterDataList;
     }
 }
Beispiel #3
0
        public int CheckCondition()
        {
            // 取得怪物資料
            MonsterDataList monsterDataList = DataSystem.GetSystem <MonsterDataList>();
            MonsterData     monsterData     = monsterDataList.GetData(monsterID);

            //
            float v = 0;

            // 檢查類型
            switch (valueType)
            {
            case GlobalEnum.ValueType.HP:
                v = monsterData.hp;

                if (percentage)
                {
                    v = (float)v / monsterData.MaxHP;
                }
                break;

            case GlobalEnum.ValueType.MP:
                v = monsterData.mp;

                if (percentage)
                {
                    v = (float)v / monsterData.MaxMP;
                }
                break;
            }

            // 判斷條件
            switch (valueConditionType)
            {
            case ValueConditionType.Less:
                if (v < value1)
                {
                    return(nextID);
                }
                break;

            case ValueConditionType.Greater:
                if (v > value1)
                {
                    return(nextID);
                }
                break;

            case ValueConditionType.Between:
                if (value1 < v && v < value2)
                {
                    return(nextID);
                }
                break;
            }

            return(-1);
        }
Beispiel #4
0
    // Use this for initialization
    void Start()
    {
        MonsterDataList dataList = DataSystem.GetSystem <MonsterDataList>();

        MonsterData monsterData = new MonsterData();

        monsterData.hp    = 120;
        monsterData.mp    = 120;
        monsterData.MaxHP = 120;
        monsterData.MaxMP = 120;

        dataList.SetData(monsterAI.monsterID, monsterData);

        monsterAI.StartAI();
    }
Beispiel #5
0
    private Promise loadMonsterConfig()
    {
        return(new Promise((Action resolve, Action <Exception> reject) => {
            TextAsset monsterConfig = AppContext.instance.assetsManager.getAssetByUrlSync <TextAsset> (ConfigPath.monsterConfig);
            string context = monsterConfig.text;

            MonsterDataList monsterDataList = JsonMapper.ToObject <MonsterDataList> (context);
            foreach (MonsterData monsterData in monsterDataList.monsterList)
            {
                AppContext.instance.customDataManager.monsterDataDic.Add(monsterData.id, monsterData);
            }

            resolve?.Invoke();
        }));
    }
Beispiel #6
0
    public void SetMonsterData()
    {
        MonsterDataList monsterDataList = BattleManager.Instance.monsterDataList;

        race                    = MONSTER_RACE.ANIMAL;
        title                   = BattleManager.Instance.monsterDataList.monsterList[0].title;
        attackSpeed             = monsterDataList.monsterList[0].speed;
        attackTimer             = 0.0f;
        oriProp.weaponSpeed     = monsterDataList.monsterList[0].speed;
        oriProp.physicMinDamage = Mathf.RoundToInt(monsterDataList.monsterList[0].atk + (lv - 1) * monsterDataList.monsterList[0].atkRate);
        oriProp.physicMaxDamage = Mathf.RoundToInt(monsterDataList.monsterList[0].atk + (lv - 1) * monsterDataList.monsterList[0].atkRate);
        oriProp.weaponCrit      = 5f;
        _hp   = Mathf.RoundToInt(monsterDataList.monsterList[0].hp + (lv - 1) * monsterDataList.monsterList[0].hpRate);
        maxHp = _hp;

        //_prop = prop.clone();
        ReCalcProperty();
    }
Beispiel #7
0
    void OpenMonsterList()
    {
        string absPath = EditorUtility.OpenFilePanel("Select Monster Data List", "", "");

        if (absPath.StartsWith(Application.dataPath))
        {
            string relPath = absPath.Substring(Application.dataPath.Length - "Assets".Length);
            monsterDataList = AssetDatabase.LoadAssetAtPath(relPath, typeof(MonsterDataList)) as MonsterDataList;
            if (monsterDataList.monsterList == null)
            {
                monsterDataList.monsterList = new List <MonsterData>();
            }
            if (monsterDataList)
            {
                EditorPrefs.SetString("ObjectPath", relPath);
            }
        }
    }