public static TrickData EntryEffect(string iname, int grid_x, int grid_y, string tag, Unit creator = null, int create_clock = 0, int rank = 1, int rankcap = 1) { if (string.IsNullOrEmpty(iname)) { return((TrickData)null); } TrickData trickData = new TrickData(); trickData.setup(iname, grid_x, grid_y, tag, creator, create_clock, rank, rankcap); if (trickData.mTrickParam == null) { return((TrickData)null); } TrickData trick_data = TrickData.SearchEffect(grid_x, grid_y); if (trick_data != null) { if ((bool)trick_data.mTrickParam.IsNoOverWrite) { return((TrickData)null); } TrickData.RemoveEffect(trick_data); } TrickData.mTrickDataLists.Add(trickData); return(trickData); }
public static void MomentBuff(Unit target, int grid_x, int grid_y, EffectCheckTimings chk_timing = EffectCheckTimings.Moment) { if (target == null) { return; } TrickData trickData = TrickData.SearchEffect(grid_x, grid_y); if (trickData == null || !trickData.checkTarget(target, false) || !trickData.checkTiming(chk_timing)) { return; } trickData.actionBuff(target, chk_timing, (RandXorshift)null); }
public static void ActionEffect(eTrickActionTiming action_timing, Unit target, int grid_x, int grid_y, RandXorshift rand, LogMapTrick log_mt = null) { if (target == null) { return; } TrickData trick_data = TrickData.SearchEffect(grid_x, grid_y); if (trick_data == null || !trick_data.checkTarget(target, false) || target.IsJump) { return; } if (log_mt != null) { log_mt.TrickData = trick_data; log_mt.TargetInfoLists.Clear(); } List <Unit> target_lists = new List <Unit>(); if (trick_data.checkTarget(target, true)) { target_lists.Add(target); } TrickData.addTargetAreaEff(grid_x, grid_y, trick_data, target_lists); switch (action_timing) { case eTrickActionTiming.TURN_START: trick_data.actionEffectTurnStart(target_lists, rand); break; case eTrickActionTiming.TURN_END: trick_data.actionEffectTurnEnd(target_lists, rand, log_mt); trick_data.decActionCount(); break; } }