You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

67 lines
2.0 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Air : ActiveBlock
{
public float fallingAnimationTime = 1.0f;
public float fallingDistance = 10.0f;
public bool burnAfterReading = true;
int DeleteCount = 2;
public override int GetInitative()
{
return -1;
}
public override IEnumerator OnWalkedOnByPlayer(Character player, Vector3 moveDirection)
{
player.stuck = true;
player.respawnNeeded = true;
//Very hacky, but it solved a weird bug where falling off the left-hand-side of the track didn't kill you, it just got you stuck down there forever
//You have to leave the camera's sight in order to die from falling
yield return StartCoroutine(player.AnimateToPosition(transform.position + Vector3.down * fallingDistance,Character.Animation.Hit, fallingAnimationTime));
//yield return StartCoroutine(LerpScale(player.transform, Vector3.zero, fallingAnimationTime));
yield return StartCoroutine(player.AnimateToPosition(transform.position + Vector3.down * 100, Character.Animation.Hit, 0.01f));
//player.gameObject.SetActive(false);
Debug.Log("Set player scale to one");
player.transform.localScale = Vector3.one;
}
public override IEnumerator OnRoundEnd(PlayerData[] allPlayers)
{
isFinished = true;
if (burnAfterReading)
{
DeleteCount--;
if (DeleteCount == 0)
Destroy(gameObject);
}
yield break;
}
private IEnumerator LerpScale(Transform target, Vector3 endScale, float time)
{
Vector3 startScale = target.localScale;
float elapsedTime = 0;
while(elapsedTime < time)
{
target.localScale = Vector3.Slerp(startScale, endScale, (elapsedTime / time));
yield return new WaitForEndOfFrame();
elapsedTime += Time.deltaTime;
}
target.localScale = endScale;
}
}