Пример #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();
        }
Пример #2
0
 internal void SetDynamicBlockerObject(DynamicBlockerData mObjectData)
 {
     if (mObjectData == null || IsDisabled || Blocked)
     {
         return;
     }
     // Debug.Log("set dynamic blocker: " + mObjectData.ID);
     if (DynamicObject)
     {
         GameObject old = DynamicObject;
         DestroyImmediate(old);
     }
     if (StaticBlocker)
     {
         GameObject old = StaticBlocker.gameObject;
         DestroyImmediate(old);
     }
     DynamicBlockerObject.Create(this, mObjectData, false, true, MBoard.TargetCollectEventHandler);
     DynamicBlocker.SetToFront(false);
 }
Пример #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();
        }