コード例 #1
0
        public static void LoadData()
        {
            if (s_SkTriggerEventTbl != null)
            {
                return;
            }

            SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("skTriggerEvent");

            //reader.Read(); // skip title if needed
            s_SkTriggerEventTbl = new Dictionary <int, SkTriggerEvent>();
            while (reader.Read())
            {
                SkTriggerEvent skEvent = new SkTriggerEvent();
                skEvent._id = Convert.ToInt32(reader.GetString(reader.GetOrdinal("_id")));

                skEvent._cond       = SkCond.Create(reader.GetString(reader.GetOrdinal("_cond")));
                skEvent._force      = Convert.ToSingle(reader.GetString(reader.GetOrdinal("_force")));
                skEvent._modsCaster = SkAttribsModifier.Create(reader.GetString(reader.GetOrdinal("_modsCaster")));
                skEvent._modsTarget = SkAttribsModifier.Create(reader.GetString(reader.GetOrdinal("_modsTarget")));
                SkEffect.s_SkEffectTbl.TryGetValue(Convert.ToInt32(reader.GetString(reader.GetOrdinal("_effOnHitCaster"))), out skEvent._effOnHitCaster);
                SkEffect.s_SkEffectTbl.TryGetValue(Convert.ToInt32(reader.GetString(reader.GetOrdinal("_effOnHitTarget"))), out skEvent._effOnHitTarget);

                try{
                    s_SkTriggerEventTbl.Add(skEvent._id, skEvent);
                }catch (Exception e)     {
                    Debug.LogError("Exception on skTriggerEvent " + skEvent._id + " " + e);
                }
            }
        }
コード例 #2
0
ファイル: SkTest.cs プロジェクト: shrubba/planetexplorers
        void Awake()
        {
            SkData skDigTerrain = new SkData();

            skDigTerrain._condToLoop    = SkCond.Create("lasthit");
            skDigTerrain._pretimeOfMain = new float[] { 0.5f };
            skDigTerrain._postimeOfMain = new float[] { 0.5f };
            skDigTerrain._events        = new List <List <SkTriggerEvent> >();
            skDigTerrain._events.Add(new List <SkTriggerEvent>());
            SkTriggerEvent skDigEvent = new SkTriggerEvent();

            skDigEvent._cond       = SkCond.Create("CondToDig");
            skDigEvent._modsTarget = SkAttribsModifier.Create("mad,0,1,-1");
            skDigTerrain._events[0].Add(skDigEvent);
            SkData.s_SkillTbl = new Dictionary <int, SkData>();
            SkData.s_SkillTbl.Add(0, skDigTerrain);
        }
コード例 #3
0
        public static void LoadData()
        {
            if (s_SkillTbl != null)
            {
                return;
            }
#if DBG_COL_ATK
            SkDebug.LoadIds();
#endif
            SkEffect.LoadData();
            SkBuff.LoadData();
            SkTriggerEvent.LoadData();

            SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("skMain");
            //reader.Read(); // skip title if needed
            s_SkillTbl = new Dictionary <int, SkData>();
            while (reader.Read())
            {
                SkData skill = new SkData();
                skill._id                = Convert.ToInt32(reader.GetString(reader.GetOrdinal("_id")));
                skill._desc              = Convert.ToInt32(reader.GetString(reader.GetOrdinal("_desc")));
                skill._icon              = reader.GetString(reader.GetOrdinal("_icon"));
                skill._name              = reader.GetString(reader.GetOrdinal("_name"));
                skill._interruptable     = reader.GetString(reader.GetOrdinal("_interruptable")).Equals("1");
                skill._coolingTime       = Convert.ToSingle(reader.GetString(reader.GetOrdinal("_coolingTime")));
                skill._coolingTimeType   = Convert.ToInt32(reader.GetString(reader.GetOrdinal("_coolingTimeType")));
                skill._coolingTimeShared = Convert.ToSingle(reader.GetString(reader.GetOrdinal("_coolingTimeShared")));

                skill._pretimeOfPrepare = Convert.ToSingle(reader.GetString(reader.GetOrdinal("_pretimeOfPrepare")));
                skill._postimeOfPrepare = Convert.ToSingle(reader.GetString(reader.GetOrdinal("_postimeOfPrepare")));
                SkEffect.s_SkEffectTbl.TryGetValue(Convert.ToInt32(reader.GetString(reader.GetOrdinal("_effPrepare"))), out skill._effPrepare);

                skill._condToLoop      = SkCond.Create(reader.GetString(reader.GetOrdinal("_cond")));
                skill._pretimeOfMain   = ToSingleArray(reader.GetString(reader.GetOrdinal("_pretimeOfMain")));
                skill._timeOfMain      = ToSingleArray(reader.GetString(reader.GetOrdinal("_timeOfMain")));
                skill._postimeOfMain   = ToSingleArray(reader.GetString(reader.GetOrdinal("_postimeOfMain")));
                skill._effMainEachTime = ToSkEffectArray(reader.GetString(reader.GetOrdinal("_effMainEachTime")));
                SkEffect.s_SkEffectTbl.TryGetValue(Convert.ToInt32(reader.GetString(reader.GetOrdinal("_effMainOneTime"))), out skill._effMainOneTime);

                string[] strEventsList = reader.GetString(reader.GetOrdinal("_triggerEvents")).Split(';');
                foreach (string strEvents in strEventsList)
                {
                    List <SkTriggerEvent> curEvents = new List <SkTriggerEvent>();
                    string[] strCurEvents           = strEvents.Split(',');
                    foreach (string strEvent in strCurEvents)
                    {
                        int            eventId = Convert.ToInt32(strEvent);
                        SkTriggerEvent curEvent;
                        SkTriggerEvent.s_SkTriggerEventTbl.TryGetValue(eventId, out curEvent);
                        if (curEvent != null)
                        {
                            curEvents.Add(curEvent);
                        }
                    }
                    skill._events.Add(curEvents);
                }

                skill._pretimeOfEnding = Convert.ToSingle(reader.GetString(reader.GetOrdinal("_pretimeOfEnding")));
                skill._postimeOfEnding = Convert.ToSingle(reader.GetString(reader.GetOrdinal("_postimeOfEnding")));
                SkEffect.s_SkEffectTbl.TryGetValue(Convert.ToInt32(reader.GetString(reader.GetOrdinal("_effEnding"))), out skill._effEnding);

                try{
                    s_SkillTbl.Add(skill._id, skill);
                }catch (Exception e)     {
                    Debug.LogError("Exception on skMain " + skill._id + " " + e);
                }
            }

            new Thread(new ThreadStart(SkInst.s_ExpCompiler.Compile)).Start();
            //SkInst.s_ExpCompiler.Compile();
        }