Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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;
            }
        }