Esempio n. 1
0
        /// <summary>
        /// Direct explode hit
        /// </summary>
        private void DirectHitBlocker(Action completeCallBack)
        {
            if (DynamicBlocker && DynamicBlocker.OData.directHit)
            {
                DynamicBlocker.Hit(this, completeCallBack);
                return;
            }

            if (StaticBlocker && StaticBlocker.OData.directHit)
            {
                StaticBlocker.Hit(this, completeCallBack);
                return;
            }
            completeCallBack?.Invoke();
        }
Esempio n. 2
0
        internal void SetStaticBlockerObject(StaticBlockerData mObjectData)
        {
            if (mObjectData == null || IsDisabled || Blocked)
            {
                return;
            }
            // Debug.Log("set static blocker: " + mObjectData.ID);
            if (DynamicObject)
            {
                GameObject old = DynamicObject;
                DestroyImmediate(old);
            }
            if (StaticBlocker)
            {
                GameObject old = StaticBlocker.gameObject;
                DestroyImmediate(old);
            }

            StaticBlockerObject.Create(this, mObjectData, false, true, MBoard.TargetCollectEventHandler);
            StaticBlocker.SetToFront(false);
        }
Esempio n. 3
0
        /// <summary>
        /// Side hit neighbourn from collected
        /// </summary>
        internal void SideHit(Action completeCallBack)
        {
            if (Overlay && Overlay.BlockMatch)
            {
                Overlay.Hit(this, completeCallBack);
                return;
            }

            if (DynamicBlocker && DynamicBlocker.OData.sideHit)
            {
                DynamicBlocker.Hit(this, completeCallBack);
                return;
            }

            if (StaticBlocker && StaticBlocker.OData.sideHit)
            {
                StaticBlocker.Hit(this, completeCallBack);
                return;
            }

            completeCallBack?.Invoke();
        }