Ejemplo n.º 1
0
        /// <summary>
        /// Adds a partyMember to the list of partyMembers using saved data
        /// </summary>
        /// <param name="className"> Class of the partyMember to be added </param>
        public void AddPartyMember(PartyMemberData pmData)
        {
            if (GetNumPartyMembers() < maxPartyMembers)
            {
                GameObject  newMember   = Instantiate(partyMember, new Vector3(0f, 0f, 0f), Quaternion.identity);
                PartyMember pmComponent = newMember.GetComponent <PartyMember>();
                pmComponent.Init(pmData);
                newMember.transform.SetParent(gameObject.transform, false);
                pmComponent.ID = (ID++);
                pmComponent.GenerateName(GetNumPartyMembers());
                if (pmComponent.CHP == 0)
                {
                    partyMembersDead.Add(pmComponent);
                }
                else
                {
                    partyMembersAlive.Add(pmComponent);
                }
                partyMembersAll.Add(pmComponent);
            }

            if (partyMembersAlive.Count == 0)   // in the event on loading, first partyMember is dead
            {
                activePartyMember = partyMembersAll[0];
            }
            else
            {
                activePartyMember = GetFirstPartyMemberAlive();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Initializes a partyMember game object
        /// </summary>
        /// <param name="className"> Class of the partyMember </param>
        /// <param name="pm"> PartyMember game object to be initialized with fetched values</param>
        public void GetPartyMemberByClass(string className, PartyMember pm)
        {
            using (dbConnection = base.GetConnection()) {
                dbConnection.Open();

                using (IDbCommand dbcmd = dbConnection.CreateCommand()) { // using will call dispose when done, which calls close
                    dbcmd.CommandText = "SELECT * FROM PartyMembers WHERE Class = '" + className + "'";

                    using (IDataReader reader = dbcmd.ExecuteReader()) {
                        string[] personalInfo = new string[4];
                        int      LVL          = 0;
                        int      EXP          = 0;
                        int      CHP          = 0; // storing these for the future; the player leaving mid dungeon will need these values saved
                        int      CMP          = 0;
                        int[]    stats        = {};
                        Attack[] attacks      = new Attack[4];
                        Skill[]  skills       = new Skill[16];

                        if (reader.Read())
                        {
                            personalInfo[0] = reader.GetString(1);
                            personalInfo[1] = reader.GetString(2);
                            personalInfo[2] = reader.GetString(3);
                            personalInfo[3] = reader.GetString(4);

                            LVL   = reader.GetInt32(5);
                            EXP   = reader.GetInt32(6);
                            CHP   = reader.GetInt32(7);
                            CMP   = reader.GetInt32(8);
                            stats = new int[] { reader.GetInt32(9), reader.GetInt32(10), reader.GetInt32(11), reader.GetInt32(12) };

                            for (int i = 0; i < maxAttacks; i++)
                            {
                                string attackName = reader.GetString(13 + i);
                                attacks[i] = GetAttack(attackName, false, dbConnection);
                            }

                            skills = GetSkills(className, dbConnection);
                        }
                        else
                        {
                            Debug.LogError("PartyMember with className " + className + " does not exist in the DB");
                        }
                        pm.Init(personalInfo, LVL, EXP, CHP, CMP, stats, attacks, skills);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Initializes a party member game object
        /// </summary>
        /// <param name="className"> Class of the party member </param>
        /// <param name="pm"> PartyMember game object to be initialized with fetched values</param>
        public void GetPartyMemberByClass(string className, PartyMember pm)
        {
            using (dbConnection = base.GetConnection()) {
                dbConnection.Open();

                using (IDbCommand dbcmd = dbConnection.CreateCommand()) { // using will call dispose when done, which calls close
                    dbcmd.CommandText = "SELECT * FROM PartyMembers WHERE Class = '" + className + "'";

                    using (IDataReader reader = dbcmd.ExecuteReader()) {
                        string[] personalInfo = new string[4];
                        int      LVL          = 0;
                        int      HP           = 0;
                        int      MP           = 0;
                        int[]    stats        = {};
                        Attack[] attacks      = new Attack[4];

                        if (reader.Read())
                        {
                            personalInfo[0] = reader.GetString(1);
                            personalInfo[1] = reader.GetString(2);
                            personalInfo[2] = reader.GetString(3);
                            personalInfo[3] = reader.GetString(4);

                            LVL   = reader.GetInt32(5);
                            HP    = reader.GetInt32(6);
                            MP    = reader.GetInt32(7);
                            stats = new int[] { reader.GetInt32(8), reader.GetInt32(9), reader.GetInt32(10), reader.GetInt32(11) };

                            for (int i = 0; i < maxAttacks; i++)
                            {
                                string attackName = reader.GetString(12 + i);
                                attacks[i] = GetAttack(attackName, false, dbConnection);
                            }
                        }
                        // need to figure out how to attach this information to a monster gameObject, can't use new
                        pm.Init(personalInfo, LVL, HP, MP, stats, attacks);
                    }
                }
            }
        }