internal void TryApplyEachEffOfMain(int idx, SkEntity tar, SkRuntimeInfo skrt) { SkEffect eff = idx < _effMainEachTime.Length ? _effMainEachTime [idx] : _effMainEachTime [_effMainEachTime.Length - 1]; if (eff != null) { eff.Apply(tar, skrt); } }
internal static SkEffect[] ToSkEffectArray(string desc) { string[] strNums = desc.Split(new char[] { ';' }); int n = strNums.Length; SkEffect[] effs = new SkEffect[n]; for (int i = 0; i < n; i++) { effs[i] = null; int id = Convert.ToInt32(strNums[i]); SkEffect.s_SkEffectTbl.TryGetValue(id, out effs[i]); } return(effs); }
public static void LoadData() { if (s_SkEffectTbl != null) { return; } SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("skEffect"); //reader.Read(); // skip title if needed s_SkEffectTbl = new Dictionary <int, SkEffect>(); while (reader.Read()) { SkEffect skEffect = new SkEffect(); skEffect._id = Convert.ToInt32(reader.GetString(reader.GetOrdinal("_id"))); skEffect._anms = reader.GetString(reader.GetOrdinal("_anms")).Split(','); skEffect._seId = Convert.ToInt32(reader.GetString(reader.GetOrdinal("_seId"))); skEffect._emitId = Convert.ToInt32(reader.GetString(reader.GetOrdinal("_emitId"))); skEffect._repelEff = Convert.ToBoolean(reader.GetString(reader.GetOrdinal("_spEff"))); skEffect._camEffId = Convert.ToInt32(reader.GetString(reader.GetOrdinal("_camEffId"))); try{ skEffect._procEffId = Convert.ToInt32(reader.GetString(reader.GetOrdinal("_procEff"))); }catch { } { // EffId s string[] strEffIds = reader.GetString(reader.GetOrdinal("_effId")).Split(','); skEffect._effId = new int[strEffIds.Length]; for (int i = 0; i < strEffIds.Length; i++) { skEffect._effId[i] = Convert.ToInt32(strEffIds[i]); } } s_SkEffectTbl.Add(skEffect._id, skEffect); } }
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(); }