/// <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(); }
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); }
/// <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(); }