edit: attempted polish but failed

This commit is contained in:
Iced-lemon 2023-01-31 00:21:55 +08:00
parent d59a00fdd3
commit 0001809418
58 changed files with 11705 additions and 140 deletions

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: eb26112da6fce9c4ca2610cb953c66e6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,45 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Lemon.GenericLib.VFX;
public class BoardVisuals : MonoBehaviour
{
[Header("Runtime")]
[Space]
[Header("Refereces")]
[SerializeField] private float shakeDuration = 0.1f;
private GameBoard gameBoard;
private CameraController cameraController;
private bool initialized = false;
private void CheckInit()
{
if (!initialized)
{
//initialization code here
gameBoard = GetComponent<GameBoard>();
cameraController = CameraController.instanceCC;
gameBoard.onDrop += shakeOnDrop;
initialized = true;
}
}
private void Start()
{
CheckInit();
}
private void OnDestroy()
{
CheckInit();
gameBoard.onDrop -= shakeOnDrop;
}
private void shakeOnDrop() {
CheckInit();
if (gameBoard.controlledByPlayer) cameraController?.ApplyScreenShake(shakeDuration, true);
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 638bc47cbd1ff1d4ca0da9eb2373d01d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,84 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Lemon.GenericLib.VFX;
public class TileVisuals : MonoBehaviour
{
[Header("Runtime")]
[Space]
[Header("Refereces")]
private TileDrawer tileDrawer;
[SerializeField] private HitFlash frontFlash;
[SerializeField] private HitFlash backFlash;
[SerializeField] private float flashDuration;
[SerializeField] private float shakeDuration = 0.2f;
private float entireDuration = 1.5f;
private VFX_Manager vfxManager;
private CameraController cameraController;
private bool isPlayer;
private bool initialized = false;
private void CheckInit()
{
if (!initialized)
{
//initialization code here
tileDrawer = GetComponent<TileDrawer>();
entireDuration = tileDrawer.board.CollapseCycleTime;
isPlayer = tileDrawer.board.controlledByPlayer;
tileDrawer.onStateChange += updateVisuals;
vfxManager = VFX_Manager.insatnceVFXM;
cameraController = CameraController.instanceCC;
initialized = true;
}
}
private void Start()
{
CheckInit();
}
private void updateVisuals(TileDrawer.TileState tileState){
CheckInit();
switch (tileState)
{
case TileDrawer.TileState.idle:
break;
case TileDrawer.TileState.pending:
StopCoroutine(FlashingCoroutine());
StartCoroutine(FlashingCoroutine());
break;
case TileDrawer.TileState.poof:
vfxManager?.spawnVFX("Explosion", transform.position);
vfxManager?.spawnVFX("ParticlePuff", transform.position);
if (isPlayer) {
Debug.Log("bro!!!'");
cameraController?.ApplyScreenShake(shakeDuration,10, true); //why does this not work!!!
}
break;
case TileDrawer.TileState.dropped:
vfxManager?.spawnVFX("ParticlePound", transform.position + (Vector3.down * 0.5f));
break;
case TileDrawer.TileState.none:
break;
default:
break;
}
}
IEnumerator FlashingCoroutine() {
frontFlash.Flash(flashDuration);
//backFlash.Flash(flashDuration);
yield return new WaitForSeconds(entireDuration - (flashDuration * 3));
frontFlash.Flash(flashDuration);
// backFlash.Flash(flashDuration);
yield return new WaitForSeconds(flashDuration * 2);
frontFlash.Flash(flashDuration);
//backFlash.Flash(flashDuration);
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ba56949b19f58e34da285c0974ae5092
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7bdec22f29afa8245899160b77f09c8f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -207,6 +207,7 @@ namespace Lemon.GenericLib.VFX {
public void ApplyScreenShake(float duration, float newShakePower, bool isSmall = false)
{
//cb.enabled = false;
Debug.Log("shake man!!!'");
StopCoroutine("Screenshake");
StartCoroutine(Screenshake(duration, newShakePower, isSmall));

View file

@ -0,0 +1,57 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Lemon.GenericLib.VFX {
public class HitFlash : MonoBehaviour
{
public float flashDuration = 0.1f;
public SpriteRenderer sr;
public Material flashMaterial;
private Material defaultMaterial;
public bool getSR = false;
private void Start()
{
if (getSR) sr = GetComponent<SpriteRenderer>();
defaultMaterial = sr.material;
}
public void SetFlash(bool isFlashing = true)
{
if (isFlashing) sr.material = flashMaterial;
else sr.material = defaultMaterial;
}
public void Flash()
{
StartCoroutine(FlashRoutine());
}
public void Flash(float duration)
{
StartCoroutine(FlashRoutine(duration));
}
IEnumerator FlashRoutine()
{
sr.material = flashMaterial;
yield return new WaitForSeconds(flashDuration);
sr.material = defaultMaterial;
}
IEnumerator FlashRoutine(float duration)
{
sr.material = flashMaterial;
yield return new WaitForSeconds(duration);
sr.material = defaultMaterial;
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 48efeb9de946548478eb2727ae3f55eb
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e8e3cbd1de7025044a7a92113d6e88f0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -20,7 +20,6 @@ public class BoardUIScript : MonoBehaviour
[SerializeField] private TextMeshPro warningTMP;
[SerializeField] private GameObject warningOBJ;
[SerializeField] private GameObject comboOBJ;
[SerializeField] private int playerIndex;
[SerializeField] private float scoreJumpDistance = 0.25f;
[SerializeField] private float scoreJumpTime = 0.5f;
[SerializeField] private float comboUITimer = 3f;
@ -33,7 +32,7 @@ public class BoardUIScript : MonoBehaviour
if (!initialized)
{
//initialization code here
titleTMP.text = "Player " + playerIndex;
titleTMP.text = "Player";
scoreTMP.text = "0";
comboTMP.text = "x0";
warningTMP.text = "x0";
@ -101,6 +100,11 @@ public class BoardUIScript : MonoBehaviour
warningTMP.transform.LeanMoveLocalY(warningTextOriginY + scoreJumpDistance, scoreJumpTime).setLoopPingPong(1).setEase(LeanTweenType.easeOutQuad).setOnComplete(() => warningTMP.transform.LeanMoveLocalY(warningTextOriginY, 0));
}
public void SetPlayerName(string value)
{
titleTMP.text = value;
}
}