예제 #1
0
        public void Clean()
        {
            mCore        = default;
            mGridOperate = default;

            mAllowLineGrids?.Clear();
            mLinedGridList?.Clear();
            mLinedGridStack?.Clear();
            mSkillTriggers?.Clear();
            mSecondarySkillListDels?.Clear();
            mSkillGridRanges?.Clear();

            AfterInit           = default;
            AfterHasInput       = default;
            InputEnabledChanged = default;
            OnGridChoosen       = default;
            OnGridLinedCancel   = default;

            InputEventData   = default;
            mHeaderGrid      = default;
            mLastGridTrans   = default;
            mPointerUpTrans  = default;
            mTransTemp       = default;
            mPrevAddGrid     = default;
            mLining          = default;
            mHeaderGridTrans = default;
        }
예제 #2
0
 public void CreateOperater(EliminateResult eliminateResult, bool isInclined, int shouldLineMin, int shouldComboLineMax)
 {
     GridOperater = new GridOperater(eliminateResult)
     {
         LinedRules         = new ComboRule[] { },
         IsInclined         = isInclined,
         ShouldLineMin      = shouldLineMin,
         ShouldComboLineMax = shouldComboLineMax,
     };
 }
예제 #3
0
        public void Update()
        {
            GridEffects?.UpdateEffects();
            LineInputer?.Update();
            GridOperater?.Update();
            OnUpdate?.Invoke();

            if (mKeepsDeactived)
            {
                LineInputer.SetInputEnable(false);
            }
            else
            {
                UpdateAutoActiveTimes();
            }
        }
예제 #4
0
        public GridElimlnateExecuter(GridOperater operater, BoardGrids boardGrids, ref List <ElimlnateGrid> list)
        {
            GridOperater = operater;
            BoardGrids   = boardGrids;

            ElimlnateGrid grid;

            mGrids = new List <ElimlnateGrid>();
            int max = list.Count;

            for (int i = 0; i < max; i++)
            {
                grid = list[i];
                grid.AddDestroyCallback(CountNeedDestroyGrid);
                mGrids.Add(grid);
            }
            GridNeedDestroyCount = mGrids.Count;
        }
예제 #5
0
        public virtual void Commit()
        {
            IsCommited = true;
            GridOperater.SetGridElimlnateCounts(this);
            GridOperater.EliminateResult.SetEliminateCount(ref mGrids);

            Queue <ElimlnateGrid> hasDestroyeds = new Queue <ElimlnateGrid>();

            ElimlnateGrid grid;
            int           max = mGrids.Count;

            for (int i = 0; i < max; i++)
            {
                grid = mGrids[i];
                if ((grid == default) || grid.IsDestroyed)
                {
                    hasDestroyeds.Enqueue(grid);
                }
예제 #6
0
        public void Clean()
        {
            IsClear = true;

            BoardGrids?.Clean();
            GridCreater?.Clean();
            GridOperater?.Clean();
            LineInputer?.Clean();
            GridTypes?.Clean();
            GridEffects?.Clean();
            mAutoActiveTimes?.Clear();
            mActiveTimeRemains?.Clear();

            OnUpdate        = default;
            GridsContainer  = default;
            DestroyGrid     = default;
            ElimlnateCamera = default;
            Inputer         = default;
        }