示例#1
0
    public Skill(int id, string name, string description, Profession.ProfessionType profType, DamageType dmgType, int reach, float damage, float baseCritChance, TargetType target, int hpCost, int mpCost, int spCost, int level, Element element, Effects fX, int aoe, bool unlocked = true)
    {
        SkillID             = id;
        this.name           = name;
        this.Description    = description;
        this.profType       = profType;
        this.dmgType        = dmgType;
        this.reach          = reach;
        this.damage         = damage;
        this.baseCritChance = baseCritChance;
        this.targets        = target;
        this.hpCost         = hpCost;
        this.mpCost         = mpCost;
        this.spCost         = spCost;
        this.level          = level;
        this.element        = element;
        this.FX             = fX;
        areaOfEffectRange   = aoe;

        this.Unlocked = unlocked;
        ID            = GameManager.GenerateID(this);
    }
示例#2
0
    public static Skill[] GetSkillsByProfession(Profession.ProfessionType profession)
    {
        List <Skill>  skills = new List <Skill>();
        string        conn   = "URI=file:" + Application.dataPath + "/Databases/Skills.db"; //Path to database.
        IDbConnection dbconn;

        dbconn = (IDbConnection) new SqliteConnection(conn);
        dbconn.Open(); //Open connection to the database.
        IDbCommand dbcmd    = dbconn.CreateCommand();
        string     sqlQuery = "SELECT * " + "FROM Skills " + "WHERE ProfessionType = " + (int)profession;

        Debug.Log("Profession DB : Class " + profession + " has being loaded! ");
        dbcmd.CommandText = sqlQuery;
        IDataReader  reader = dbcmd.ExecuteReader();
        LanguageCode lang   = (LanguageCode)Enum.Parse(typeof(LanguageCode), GameManager.language);

        while (reader.Read())
        {
            //       for (int i = 0; i < 12; i++)
            // {
            //      Debug.Log(reader.GetDataTypeName(i));
            //
            //  }
            string[] total = reader.GetString((int)lang + 1).Split(':');
            string   name  = "Null";
            string   desc  = "Null";
            if (total.Length > 1)
            {
                name = total[0];
                desc = total[1];
            }



            Skill newSkill = new Skill(
                reader.GetInt32(0),
                name,                                 //name
                desc,                                 //description
                profession,                           //profession
                (DamageType)reader.GetInt32(5),       //damage type
                reader.GetInt32(6),                   //reach
                reader.GetFloat(7),                   //damage amount
                reader.GetFloat(8),                   //base crit chance
                (Skill.TargetType)reader.GetInt32(9), // target
                reader.GetInt32(10),                  //hpCost
                reader.GetInt32(11),                  //mpCost
                reader.GetInt32(12),                  //spCost
                reader.GetInt32(13),                  //level
                reader.GetInt32(14),                  //element
                reader.GetInt32(15),                  //effects
                reader.GetInt32(16));                 //area of effect range
            skills.Add(newSkill);
        }
        reader.Close();
        reader = null;
        dbcmd.Dispose();
        dbcmd = null;
        dbconn.Close();
        dbconn = null;
        ;

        return(skills.ToArray());
    }