protected override void TileDestroy(bool useEffect) { spawnResult = CheckForSpawnPatterns(); cachedTransform.localPosition += Vector3.forward * -2f; if (spawnTimeBomb && !spawnResult) { spawnedTimeBomb = SpawnTimeBomb(); } if (useDestroyEffect && useEffect) { // Check if this bomb is a bomb resulted from a Bomb+Bomb combination if (prefabDestroyEffect == prefabDoubleDestroyEffect) { if (OnBombBombCombine != null) { OnBombBombCombine(this); } } TileBombDestroyEffect bombDestroyEffect = SpawnDestroyEffect(new Vector3(0f, 0f, -19f)).gameObject.GetComponent<TileBombDestroyEffect>(); bombDestroyEffect.explosionSpreadTime = animation.clip.length - bombDestroyEffect.delayAfterExplosionSpread; bombDestroyEffect.InitBombDestroyEffect(this, WorldPosition); bombDestroyEffect.triggerListener.OnTileEntered = OnTileEnteredDestroyTrigger; bombDestroyEffect.triggerListener.OnBoardPieceEntered = OnBoardPieceEnteredFreezeTrigger; bombDestroyEffect.OnEffectFinished = OnBombDestroyEffectFinished; //TODO:Remove redundant chunks of code if u will ever have the time / decency to do so //TODO: MIO: Revise this .. it was way too late when you wrote this. Transform effectInstance = (Instantiate(PrefabEffectBreakFragments) as GameObject).transform; effectInstance.position = WorldPosition; Destroy(effectInstance.gameObject, destroyEffect.lifeTime); effectBreakFragmentsInstance = effectInstance.GetComponent<TileDestroyEffect>(); if (freezeEffect) { Destroy(freezeEffect); effectBreakFragmentsInstance.GetComponent<TileDestroyEffect>().UpdateMaterial(PrefabFreezeDestroyMaterialArray[(int)TileColor - 1]); } else { effectBreakFragmentsInstance.GetComponent<TileDestroyEffect>().UpdateMaterial(TileColor); } tileModelRenderer.enabled = false; //-------------------------------------------------------------------------------------- animation.Play(); if(tileModelAdditionalRenderer != null) { tileModelAdditionalRenderer.transform.parent.animation.Play("tile_iceberg_destroy"); } if (OnTriggerBombTileFreeze != null) { OnTriggerBombTileFreeze(this); } } else { base.TileDestroy(false); } }
protected override void TileDestroy(bool useEffect) { CheckForSpawnPatterns(); tilesDestroyEffect = prefabTilesDestroyEffect.GetComponent<WinterchillEffect>(); tilesToDestroy.Clear(); // StartCoroutine(DestroyRow()); // StartCoroutine(DestroyColumn()); if (useEffect) { if (prefabDestroyEffect != null) { SpawnDestroyEffect(new Vector3(0f, 0f, -10f)); } else { destroyEffect = tilesDestroyEffect; } TriggerTileAbility(); // to see the tile destroy animation if (useDestroyEffect) { tileModelTransform.gameObject.SetActive(true); //TODO:Remove redundant chunks of code if u will ever have the time / decency to do so //TODO: MIO: Revise this .. it was way too late when you wrote this. if(PrefabEffectBreakFragments) { Transform effectInstance = (Instantiate(PrefabEffectBreakFragments) as GameObject).transform; effectInstance.position = WorldPosition; Destroy(effectInstance.gameObject, destroyEffect.lifeTime); effectBreakFragmentsInstance = effectInstance.GetComponent<TileDestroyEffect>(); if (freezeEffect) { Destroy(freezeEffect); effectBreakFragmentsInstance.GetComponent<TileDestroyEffect>().UpdateMaterial(PrefabFreezeDestroyMaterialArray[(int)TileColor - 1]); } else { effectBreakFragmentsInstance.GetComponent<TileDestroyEffect>().UpdateMaterial(TileColor); } tileModelRenderer.enabled = false; } //-------------------------------------------------------------------------------------- animation.Play(parentDestroyAnimationName, PlayMode.StopAll); additionalChildAnimationComponent.Play(childDestroyAnimationName, PlayMode.StopAll); } if(freezeEffect) { Destroy(freezeEffect); } } else { if (tilesDestroyEffect.waitBetweenTiles) { tileModelTransform.gameObject.SetActive(false); if (this == BoardPiece.Tile) { BoardPiece.Tile = null; } } else { base.TileDestroy(false); } } }
protected override void TileDestroy(bool useEffect) { spawnResult = CheckForSpawnPatterns(); cachedTransform.localPosition += Vector3.forward * -2f; if (spawnTimeBomb && !spawnResult) { spawnedTimeBomb = SpawnTimeBomb(); } if (useDestroyEffect && useEffect) { // Check if this bomb is a bomb resulted from a Bomb+Bomb combination if (prefabDestroyEffect == prefabDoubleDestroyEffect) { if (OnBombBombCombine != null) { OnBombBombCombine(this); } } TileBombDestroyEffect bombDestroyEffect = SpawnDestroyEffect(new Vector3(0f, 0f, -19f)).gameObject.GetComponent <TileBombDestroyEffect>(); bombDestroyEffect.explosionSpreadTime = animation.clip.length - bombDestroyEffect.delayAfterExplosionSpread; bombDestroyEffect.InitBombDestroyEffect(this, WorldPosition); bombDestroyEffect.triggerListener.OnTileEntered = OnTileEnteredDestroyTrigger; bombDestroyEffect.triggerListener.OnBoardPieceEntered = OnBoardPieceEnteredFreezeTrigger; bombDestroyEffect.OnEffectFinished = OnBombDestroyEffectFinished; //TODO:Remove redundant chunks of code if u will ever have the time / decency to do so //TODO: MIO: Revise this .. it was way too late when you wrote this. Transform effectInstance = (Instantiate(PrefabEffectBreakFragments) as GameObject).transform; effectInstance.position = WorldPosition; Destroy(effectInstance.gameObject, destroyEffect.lifeTime); effectBreakFragmentsInstance = effectInstance.GetComponent <TileDestroyEffect>(); if (freezeEffect) { Destroy(freezeEffect); effectBreakFragmentsInstance.GetComponent <TileDestroyEffect>().UpdateMaterial(PrefabFreezeDestroyMaterialArray[(int)TileColor - 1]); } else { effectBreakFragmentsInstance.GetComponent <TileDestroyEffect>().UpdateMaterial(TileColor); } tileModelRenderer.enabled = false; //-------------------------------------------------------------------------------------- animation.Play(); if (tileModelAdditionalRenderer != null) { tileModelAdditionalRenderer.transform.parent.animation.Play("tile_iceberg_destroy"); } if (OnTriggerBombTileFreeze != null) { OnTriggerBombTileFreeze(this); } } else { base.TileDestroy(false); } }
protected override void TileDestroy(bool useEffect) { CheckForSpawnPatterns(); tilesDestroyEffect = prefabTilesDestroyEffect.GetComponent <WinterchillEffect>(); tilesToDestroy.Clear(); // StartCoroutine(DestroyRow()); // StartCoroutine(DestroyColumn()); if (useEffect) { if (prefabDestroyEffect != null) { SpawnDestroyEffect(new Vector3(0f, 0f, -10f)); } else { destroyEffect = tilesDestroyEffect; } TriggerTileAbility(); // to see the tile destroy animation if (useDestroyEffect) { tileModelTransform.gameObject.SetActive(true); //TODO:Remove redundant chunks of code if u will ever have the time / decency to do so //TODO: MIO: Revise this .. it was way too late when you wrote this. if (PrefabEffectBreakFragments) { Transform effectInstance = (Instantiate(PrefabEffectBreakFragments) as GameObject).transform; effectInstance.position = WorldPosition; Destroy(effectInstance.gameObject, destroyEffect.lifeTime); effectBreakFragmentsInstance = effectInstance.GetComponent <TileDestroyEffect>(); if (freezeEffect) { Destroy(freezeEffect); effectBreakFragmentsInstance.GetComponent <TileDestroyEffect>().UpdateMaterial(PrefabFreezeDestroyMaterialArray[(int)TileColor - 1]); } else { effectBreakFragmentsInstance.GetComponent <TileDestroyEffect>().UpdateMaterial(TileColor); } tileModelRenderer.enabled = false; } //-------------------------------------------------------------------------------------- animation.Play(parentDestroyAnimationName, PlayMode.StopAll); additionalChildAnimationComponent.Play(childDestroyAnimationName, PlayMode.StopAll); } if (freezeEffect) { Destroy(freezeEffect); } } else { if (tilesDestroyEffect.waitBetweenTiles) { tileModelTransform.gameObject.SetActive(false); if (this == BoardPiece.Tile) { BoardPiece.Tile = null; } } else { base.TileDestroy(false); } } }