Add source files
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Pathfinding;
|
||||
using UnityEngine;
|
||||
|
||||
// Token: 0x02000055 RID: 85
|
||||
public class TimedBreakable : MonoBehaviour
|
||||
{
|
||||
// Token: 0x06000AF9 RID: 2809 RVA: 0x000DAC80 File Offset: 0x000D8E80
|
||||
private void Update()
|
||||
{
|
||||
if (this.breakable.destroyed && !this.falling)
|
||||
{
|
||||
if (!this.destroying)
|
||||
{
|
||||
this.destroying = true;
|
||||
bool kicked = this.breakable.kicked;
|
||||
base.StartCoroutine(this.DestroyWait(kicked));
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (!this.finishing && this.startSeconds > 0f && !this.falling && Links.x.gameplay.seconds > this.startSeconds + this.gameSecondsBeforeBreak && base.gameObject.name.Contains("Egg"))
|
||||
{
|
||||
this.finishing = true;
|
||||
this.breakable.ClickToBreak(null, true, false);
|
||||
this.breakable.HoverOut();
|
||||
base.StartCoroutine(this.Egg());
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000AFA RID: 2810 RVA: 0x000DAD4E File Offset: 0x000D8F4E
|
||||
public void Fall()
|
||||
{
|
||||
this.falling = true;
|
||||
base.StartCoroutine(this.Falling());
|
||||
}
|
||||
|
||||
// Token: 0x06000AFB RID: 2811 RVA: 0x000DAD64 File Offset: 0x000D8F64
|
||||
private IEnumerator Falling()
|
||||
{
|
||||
float timeToLerp = 0.5f;
|
||||
float percentage = 0f;
|
||||
float startTime = Time.time;
|
||||
Transform tr = base.gameObject.transform;
|
||||
Vector3 startPoint = tr.position;
|
||||
while (percentage < 1f)
|
||||
{
|
||||
percentage = (Time.time - startTime) / timeToLerp;
|
||||
tr.position = Vector3.Lerp(startPoint, (Vector3)this.node.position, percentage);
|
||||
tr.localScale = Vector3.Lerp(Vector3.one * 0.25f, Vector3.one, percentage);
|
||||
yield return null;
|
||||
}
|
||||
this.falling = false;
|
||||
this.startSeconds = Links.x.gameplay.seconds;
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x06000AFC RID: 2812 RVA: 0x000DAD73 File Offset: 0x000D8F73
|
||||
private IEnumerator Egg()
|
||||
{
|
||||
this.animator.Play("HatchOpen");
|
||||
float timeToLerp = 0.5f;
|
||||
float percentage = 0f;
|
||||
float startTime = Time.time;
|
||||
while (percentage < 1f)
|
||||
{
|
||||
percentage = (Time.time - startTime) / timeToLerp;
|
||||
yield return null;
|
||||
}
|
||||
while (Records.x.paused || Records.x.removeControls)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
Quaternion quaternion = Quaternion.Euler(new Vector3(0f, Random.Range(-360f, 360f), 0f));
|
||||
this.node.Walkable = true;
|
||||
bool flag = true;
|
||||
if (this.source.npc)
|
||||
{
|
||||
flag = false;
|
||||
}
|
||||
CreatureActions creatureActions = Links.x.gaia.CreateCreature(base.gameObject.transform.position, quaternion, "ShroomerFlyer", flag, 0f, 1);
|
||||
Character summon = creatureActions.GetFirstCharacter();
|
||||
summon.FirstPosition(this.node);
|
||||
summon.downed = true;
|
||||
summon.PlayAnimation("HitDown", 0f);
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
summon.downed = false;
|
||||
summon.PlayAnimation("GetUp", 0f);
|
||||
Links.x.cellar.RemoveCombatBreakable(this);
|
||||
Object.Destroy(base.gameObject);
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x06000AFD RID: 2813 RVA: 0x000DAD82 File Offset: 0x000D8F82
|
||||
private IEnumerator DestroyWait(bool kicked)
|
||||
{
|
||||
if (kicked)
|
||||
{
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
}
|
||||
this.animator.Play("BreakOpen");
|
||||
Links.x.cellar.RemoveCombatBreakable(this);
|
||||
float timeToLerp = 1.15f;
|
||||
float percentage = 0f;
|
||||
float startTime = Time.time;
|
||||
while (percentage < 1f)
|
||||
{
|
||||
percentage = (Time.time - startTime) / timeToLerp;
|
||||
yield return null;
|
||||
}
|
||||
Object.Destroy(base.gameObject);
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x06000AFE RID: 2814 RVA: 0x000DAD98 File Offset: 0x000D8F98
|
||||
private void OnDisable()
|
||||
{
|
||||
if (Links.x && Links.x.cellar)
|
||||
{
|
||||
Links.x.cellar.RemoveCombatBreakable(this);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04000FC9 RID: 4041
|
||||
public float gameSecondsBeforeBreak;
|
||||
|
||||
// Token: 0x04000FCA RID: 4042
|
||||
private float startSeconds;
|
||||
|
||||
// Token: 0x04000FCB RID: 4043
|
||||
public BreakableActions breakable;
|
||||
|
||||
// Token: 0x04000FCC RID: 4044
|
||||
public Animator animator;
|
||||
|
||||
// Token: 0x04000FCD RID: 4045
|
||||
private bool destroying;
|
||||
|
||||
// Token: 0x04000FCE RID: 4046
|
||||
private bool finishing;
|
||||
|
||||
// Token: 0x04000FCF RID: 4047
|
||||
public GraphNode node;
|
||||
|
||||
// Token: 0x04000FD0 RID: 4048
|
||||
private bool falling;
|
||||
|
||||
// Token: 0x04000FD1 RID: 4049
|
||||
public Character source;
|
||||
}
|
||||
Reference in New Issue
Block a user