696 lines
17 KiB
C#
696 lines
17 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
// Token: 0x020000AE RID: 174
|
|
public class HannahAnimator : MonoBehaviour
|
|
{
|
|
// Token: 0x06000FD7 RID: 4055 RVA: 0x001310EC File Offset: 0x0012F2EC
|
|
private void Awake()
|
|
{
|
|
if (!this.looping && this.currentAnimation == "")
|
|
{
|
|
base.enabled = false;
|
|
}
|
|
if (!this.looping)
|
|
{
|
|
this.currentIndex = -1;
|
|
this.updateTime = 0f;
|
|
}
|
|
if (this.randomStart)
|
|
{
|
|
this.delay = Random.Range(0f, 1f);
|
|
this.startTime = Time.timeSinceLevelLoad;
|
|
this.currentIndex = Random.Range(0, this.sprites.Count - 1);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000FD8 RID: 4056 RVA: 0x00131178 File Offset: 0x0012F378
|
|
private void OnEnable()
|
|
{
|
|
if (!this.looping && this.currentAnimation != "")
|
|
{
|
|
this.currentIndex = -1;
|
|
this.updateTime = 0f;
|
|
}
|
|
if (this.animationType == HannahAnimator.type.meshes)
|
|
{
|
|
for (int i = 0; i < this.meshes.Count; i++)
|
|
{
|
|
this.meshes[i].enabled = false;
|
|
}
|
|
for (int j = 0; j < this.meshes2.Count; j++)
|
|
{
|
|
this.meshes2[j].enabled = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000FD9 RID: 4057 RVA: 0x0013120C File Offset: 0x0012F40C
|
|
public void Play(string animationName)
|
|
{
|
|
base.enabled = true;
|
|
this.currentAnimation = animationName;
|
|
this.updateTime = 0f;
|
|
this.currentIndex = 0;
|
|
if (this.animationType == HannahAnimator.type.sheen)
|
|
{
|
|
this.start = 0f;
|
|
this.target = 1f;
|
|
this.imageRenderer.fillOrigin = 1;
|
|
}
|
|
if (this.animationType == HannahAnimator.type.book && animationName.Contains("Close"))
|
|
{
|
|
this.currentIndex = -1;
|
|
}
|
|
if (animationName == "End" && this.animationType == HannahAnimator.type.meshes)
|
|
{
|
|
if (this.meshes2.Count > 0)
|
|
{
|
|
for (int i = 0; i < this.meshes.Count; i++)
|
|
{
|
|
this.meshes[i].enabled = false;
|
|
}
|
|
this.currentIndex = 0;
|
|
}
|
|
else
|
|
{
|
|
this.currentIndex = this.meshes.Count;
|
|
}
|
|
}
|
|
if (animationName.Contains("2") && this.animationType == HannahAnimator.type.meshes)
|
|
{
|
|
this.currentIndex = 0;
|
|
}
|
|
this.Update();
|
|
}
|
|
|
|
// Token: 0x06000FDA RID: 4058 RVA: 0x0013130D File Offset: 0x0012F50D
|
|
public void SetAtBeginning()
|
|
{
|
|
if (this.animationType == HannahAnimator.type.image || this.animationType == HannahAnimator.type.book)
|
|
{
|
|
this.currentIndex = 0;
|
|
this.imageRenderer.sprite = this.sprites[this.currentIndex];
|
|
this.End();
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000FDB RID: 4059 RVA: 0x0013134B File Offset: 0x0012F54B
|
|
public void Stop()
|
|
{
|
|
if (this.animationType == HannahAnimator.type.sheen)
|
|
{
|
|
this.imageRenderer.enabled = false;
|
|
}
|
|
this.End();
|
|
}
|
|
|
|
// Token: 0x06000FDC RID: 4060 RVA: 0x00131368 File Offset: 0x0012F568
|
|
public void End()
|
|
{
|
|
if (this.deactivateOnEnd)
|
|
{
|
|
if (this.returnToCellar)
|
|
{
|
|
base.gameObject.transform.parent = Links.x.cellar.tr;
|
|
}
|
|
base.gameObject.SetActive(false);
|
|
return;
|
|
}
|
|
base.enabled = false;
|
|
}
|
|
|
|
// Token: 0x06000FDD RID: 4061 RVA: 0x001313B8 File Offset: 0x0012F5B8
|
|
private void Update()
|
|
{
|
|
if (this.stopDuringPocketPause && Records.x.pocketPause)
|
|
{
|
|
return;
|
|
}
|
|
float num = 0f;
|
|
if (Records.x.filming)
|
|
{
|
|
num = 0.2f;
|
|
}
|
|
if (this.speed > 0f)
|
|
{
|
|
if (this.animationType == HannahAnimator.type.sprite)
|
|
{
|
|
if (!this.useRealTime)
|
|
{
|
|
if (Time.timeSinceLevelLoad > this.updateTime + this.updateInterval)
|
|
{
|
|
this.updateTime = Time.timeSinceLevelLoad;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.sprites.Count - 1)
|
|
{
|
|
this.currentIndex = 0;
|
|
}
|
|
this.spriteRenderer.sprite = this.sprites[this.currentIndex];
|
|
}
|
|
}
|
|
else if (Time.realtimeSinceStartup > this.updateTime + this.updateInterval + num)
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.sprites.Count - 1)
|
|
{
|
|
this.currentIndex = 0;
|
|
}
|
|
this.spriteRenderer.sprite = this.sprites[this.currentIndex];
|
|
}
|
|
}
|
|
if (this.animationType == HannahAnimator.type.meshes)
|
|
{
|
|
if (this.looping)
|
|
{
|
|
if (Time.timeSinceLevelLoad > this.updateTime + this.updateInterval)
|
|
{
|
|
this.updateTime = Time.timeSinceLevelLoad;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.meshes.Count - 1)
|
|
{
|
|
this.currentIndex = 0;
|
|
}
|
|
for (int i = 0; i < this.meshes.Count; i++)
|
|
{
|
|
if (i != this.currentIndex)
|
|
{
|
|
this.meshes[i].enabled = false;
|
|
}
|
|
else
|
|
{
|
|
this.meshes[i].enabled = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if (Time.timeSinceLevelLoad > this.updateTime + this.updateInterval)
|
|
{
|
|
if (this.currentAnimation.Contains("Start"))
|
|
{
|
|
this.updateTime = Time.timeSinceLevelLoad;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.meshes.Count - 1)
|
|
{
|
|
if (this.currentAnimation.Contains("StartEnd"))
|
|
{
|
|
for (int j = 0; j < this.meshes.Count; j++)
|
|
{
|
|
this.meshes[j].enabled = false;
|
|
}
|
|
}
|
|
this.Stop();
|
|
return;
|
|
}
|
|
if (this.currentAnimation.Contains("Summon") && this.currentIndex == 5 && this.currentTileEffect)
|
|
{
|
|
this.currentTileEffect.Flag();
|
|
}
|
|
for (int k = 0; k < this.meshes.Count; k++)
|
|
{
|
|
if (k != this.currentIndex)
|
|
{
|
|
this.meshes[k].enabled = false;
|
|
}
|
|
else
|
|
{
|
|
this.meshes[k].enabled = true;
|
|
}
|
|
}
|
|
}
|
|
if (this.currentAnimation == "End")
|
|
{
|
|
if (this.meshes2.Count > 0)
|
|
{
|
|
this.updateTime = Time.timeSinceLevelLoad;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.meshes2.Count - 1)
|
|
{
|
|
Flag component = base.gameObject.GetComponent<Flag>();
|
|
if (component)
|
|
{
|
|
component.FXDone();
|
|
}
|
|
this.Stop();
|
|
return;
|
|
}
|
|
for (int l = 0; l < this.meshes2.Count; l++)
|
|
{
|
|
if (l != this.currentIndex)
|
|
{
|
|
this.meshes2[l].enabled = false;
|
|
}
|
|
else
|
|
{
|
|
this.meshes2[l].enabled = true;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.updateTime = Time.timeSinceLevelLoad;
|
|
this.currentIndex--;
|
|
if (this.currentIndex < 0)
|
|
{
|
|
Flag component2 = base.gameObject.GetComponent<Flag>();
|
|
if (component2)
|
|
{
|
|
component2.FXDone();
|
|
}
|
|
this.Stop();
|
|
return;
|
|
}
|
|
for (int m = 0; m < this.meshes.Count; m++)
|
|
{
|
|
if (m != this.currentIndex)
|
|
{
|
|
this.meshes[m].enabled = false;
|
|
}
|
|
else
|
|
{
|
|
this.meshes[m].enabled = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.currentAnimation.Contains("2"))
|
|
{
|
|
this.updateTime = Time.timeSinceLevelLoad;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.meshes2.Count - 1)
|
|
{
|
|
if (this.currentAnimation.Contains("StartEnd"))
|
|
{
|
|
for (int n = 0; n < this.meshes2.Count; n++)
|
|
{
|
|
this.meshes2[n].enabled = false;
|
|
}
|
|
}
|
|
this.Stop();
|
|
return;
|
|
}
|
|
for (int num2 = 0; num2 < this.meshes2.Count; num2++)
|
|
{
|
|
if (num2 != this.currentIndex)
|
|
{
|
|
this.meshes2[num2].enabled = false;
|
|
}
|
|
else
|
|
{
|
|
this.meshes2[num2].enabled = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.animationType == HannahAnimator.type.image)
|
|
{
|
|
if (this.currentAnimation == "2")
|
|
{
|
|
if (!this.useRealTime)
|
|
{
|
|
if (Time.timeSinceLevelLoad > this.updateTime + this.updateInterval)
|
|
{
|
|
this.updateTime = Time.timeSinceLevelLoad;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.sprites2.Count - 1)
|
|
{
|
|
this.currentIndex = 0;
|
|
if (!this.looping && this.currentIndex == 0)
|
|
{
|
|
this.End();
|
|
}
|
|
}
|
|
if (base.enabled)
|
|
{
|
|
this.imageRenderer.sprite = this.sprites2[this.currentIndex];
|
|
}
|
|
}
|
|
}
|
|
else if (Time.realtimeSinceStartup > this.updateTime + this.updateInterval + num)
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.sprites2.Count - 1)
|
|
{
|
|
this.currentIndex = 0;
|
|
if (!this.looping)
|
|
{
|
|
this.End();
|
|
}
|
|
}
|
|
if (base.enabled)
|
|
{
|
|
this.imageRenderer.sprite = this.sprites2[this.currentIndex];
|
|
}
|
|
}
|
|
}
|
|
else if (!this.useRealTime)
|
|
{
|
|
if (Time.timeSinceLevelLoad > this.updateTime + this.updateInterval)
|
|
{
|
|
this.updateTime = Time.timeSinceLevelLoad;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.sprites.Count - 1)
|
|
{
|
|
this.currentIndex = 0;
|
|
if (!this.looping && this.currentIndex == 0)
|
|
{
|
|
this.End();
|
|
}
|
|
}
|
|
if (base.enabled)
|
|
{
|
|
this.imageRenderer.sprite = this.sprites[this.currentIndex];
|
|
}
|
|
}
|
|
}
|
|
else if (Time.realtimeSinceStartup > this.updateTime + this.updateInterval + num)
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.sprites.Count - 1)
|
|
{
|
|
this.currentIndex = 0;
|
|
if (!this.looping)
|
|
{
|
|
this.End();
|
|
}
|
|
}
|
|
if (base.enabled)
|
|
{
|
|
this.imageRenderer.sprite = this.sprites[this.currentIndex];
|
|
}
|
|
}
|
|
}
|
|
HannahAnimator.type type = this.animationType;
|
|
if (this.animationType == HannahAnimator.type.positionX && Time.realtimeSinceStartup > this.updateTime + this.updateInterval + num)
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
Vector3 anchoredPosition3D = this.rt.anchoredPosition3D;
|
|
this.currentIndex++;
|
|
if (this.currentIndex > this.positionsIn.Count - 1)
|
|
{
|
|
this.End();
|
|
}
|
|
else
|
|
{
|
|
anchoredPosition3D.x = this.positionsIn[this.currentIndex];
|
|
this.rt.anchoredPosition3D = anchoredPosition3D;
|
|
}
|
|
}
|
|
if (this.animationType == HannahAnimator.type.book && Time.realtimeSinceStartup > this.updateTime + this.updateInterval + num)
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
if (this.currentAnimation.Contains("Open"))
|
|
{
|
|
if (this.currentIndex + 1 > this.sprites.Count - 1)
|
|
{
|
|
this.End();
|
|
}
|
|
else
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
this.currentIndex++;
|
|
this.imageRenderer.sprite = this.sprites[this.currentIndex];
|
|
}
|
|
}
|
|
else if (this.currentAnimation.Contains("Close"))
|
|
{
|
|
if (this.currentIndex + 1 > this.sprites2.Count - 1)
|
|
{
|
|
this.End();
|
|
}
|
|
else
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
this.currentIndex++;
|
|
this.imageRenderer.sprite = this.sprites2[this.currentIndex];
|
|
}
|
|
}
|
|
else if (this.currentIndex + 1 > this.sprites3.Count - 1)
|
|
{
|
|
this.End();
|
|
}
|
|
else
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
this.currentIndex++;
|
|
this.imageRenderer.sprite = this.sprites3[this.currentIndex];
|
|
}
|
|
}
|
|
if ((this.animationType == HannahAnimator.type.skillBag || this.animationType == HannahAnimator.type.skillBagWarrior) && Time.realtimeSinceStartup > this.updateTime + this.updateInterval + num)
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
Vector3 anchoredPosition3D2 = this.rt.anchoredPosition3D;
|
|
this.currentIndex++;
|
|
if (this.currentAnimation.Contains("out"))
|
|
{
|
|
if (this.currentIndex > this.positionsOut.Count - 1 || (this.animationType != HannahAnimator.type.skillBagWarrior && this.currentIndex > 1))
|
|
{
|
|
this.End();
|
|
}
|
|
else
|
|
{
|
|
anchoredPosition3D2.x = this.positionsOut[this.currentIndex];
|
|
this.rt.anchoredPosition3D = anchoredPosition3D2;
|
|
}
|
|
}
|
|
else if (this.currentAnimation.Contains("full"))
|
|
{
|
|
if (this.currentIndex > this.positionsOut2.Count - 1)
|
|
{
|
|
this.End();
|
|
}
|
|
else
|
|
{
|
|
anchoredPosition3D2.x = this.positionsOut2[this.currentIndex];
|
|
this.rt.anchoredPosition3D = anchoredPosition3D2;
|
|
}
|
|
}
|
|
else if (this.currentIndex > this.positionsIn.Count - 1 || (this.animationType == HannahAnimator.type.skillBagWarrior && this.currentIndex > 2))
|
|
{
|
|
this.End();
|
|
}
|
|
else
|
|
{
|
|
anchoredPosition3D2.x = this.positionsIn[this.currentIndex];
|
|
this.rt.anchoredPosition3D = anchoredPosition3D2;
|
|
}
|
|
}
|
|
}
|
|
if (this.animationType == HannahAnimator.type.closeButton && Time.realtimeSinceStartup > this.updateTime + this.updateInterval + num)
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
if (this.currentAnimation.Contains("Up"))
|
|
{
|
|
if (this.currentIndex + 1 > this.sprites.Count - 1)
|
|
{
|
|
this.End();
|
|
}
|
|
else
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
this.currentIndex++;
|
|
this.imageRenderer.sprite = this.sprites[this.currentIndex];
|
|
}
|
|
}
|
|
else if (this.currentAnimation.Contains("Clicked"))
|
|
{
|
|
if (this.currentIndex + 1 > this.sprites2.Count - 1)
|
|
{
|
|
this.End();
|
|
}
|
|
else
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
this.currentIndex++;
|
|
this.imageRenderer.sprite = this.sprites2[this.currentIndex];
|
|
}
|
|
}
|
|
else if (this.currentIndex + 1 > this.sprites3.Count - 1)
|
|
{
|
|
this.End();
|
|
}
|
|
else
|
|
{
|
|
this.updateTime = Time.realtimeSinceStartup;
|
|
this.currentIndex++;
|
|
this.imageRenderer.sprite = this.sprites3[this.currentIndex];
|
|
}
|
|
}
|
|
if (this.animationType == HannahAnimator.type.sheen)
|
|
{
|
|
if (Records.x.paused)
|
|
{
|
|
if (Records.x.filming)
|
|
{
|
|
this.t += Time.deltaTime * this.speed;
|
|
}
|
|
else
|
|
{
|
|
this.t += Time.deltaTime * Records.x.filmingAnimatorSpeed * this.speed;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.t += Time.deltaTime * this.speed;
|
|
}
|
|
if (this.target == 0f || this.target == 1f)
|
|
{
|
|
this.imageRenderer.fillAmount = Mathf.Lerp(this.start, this.target, this.t);
|
|
Color color = this.imageRenderer.color;
|
|
color.a = Mathf.Lerp(this.start, this.target, this.t);
|
|
this.imageRenderer.color = color;
|
|
}
|
|
if (this.t >= 1f)
|
|
{
|
|
if (this.target == 1f)
|
|
{
|
|
this.start = 0f;
|
|
this.target = 0.5f;
|
|
this.imageRenderer.fillOrigin = 0;
|
|
this.t = 0f;
|
|
}
|
|
else if (this.target == 0.5f)
|
|
{
|
|
this.start = 1f;
|
|
this.target = 0f;
|
|
this.t = 0f;
|
|
}
|
|
else
|
|
{
|
|
this.start = 0f;
|
|
this.target = 1f;
|
|
this.imageRenderer.fillOrigin = 1;
|
|
this.t = 0f;
|
|
}
|
|
}
|
|
if (!this.imageRenderer.enabled)
|
|
{
|
|
this.imageRenderer.enabled = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x04001A35 RID: 6709
|
|
[Header("ANIMATION INFO")]
|
|
private float updateTime;
|
|
|
|
// Token: 0x04001A36 RID: 6710
|
|
public float speed = 1f;
|
|
|
|
// Token: 0x04001A37 RID: 6711
|
|
public float updateInterval = 0.2f;
|
|
|
|
// Token: 0x04001A38 RID: 6712
|
|
public HannahAnimator.type animationType;
|
|
|
|
// Token: 0x04001A39 RID: 6713
|
|
public bool useRealTime = true;
|
|
|
|
// Token: 0x04001A3A RID: 6714
|
|
private int currentIndex;
|
|
|
|
// Token: 0x04001A3B RID: 6715
|
|
[Header("OBJECTS")]
|
|
public Image imageRenderer;
|
|
|
|
// Token: 0x04001A3C RID: 6716
|
|
public SpriteRenderer spriteRenderer;
|
|
|
|
// Token: 0x04001A3D RID: 6717
|
|
public RectTransform rt;
|
|
|
|
// Token: 0x04001A3E RID: 6718
|
|
public List<Sprite> sprites = new List<Sprite>();
|
|
|
|
// Token: 0x04001A3F RID: 6719
|
|
public List<Sprite> sprites2 = new List<Sprite>();
|
|
|
|
// Token: 0x04001A40 RID: 6720
|
|
public List<Sprite> sprites3 = new List<Sprite>();
|
|
|
|
// Token: 0x04001A41 RID: 6721
|
|
public List<float> positionsIn = new List<float>();
|
|
|
|
// Token: 0x04001A42 RID: 6722
|
|
public List<float> positionsOut = new List<float>();
|
|
|
|
// Token: 0x04001A43 RID: 6723
|
|
public List<float> positionsOut2 = new List<float>();
|
|
|
|
// Token: 0x04001A44 RID: 6724
|
|
public List<MeshRenderer> meshes = new List<MeshRenderer>();
|
|
|
|
// Token: 0x04001A45 RID: 6725
|
|
public List<MeshRenderer> meshes2 = new List<MeshRenderer>();
|
|
|
|
// Token: 0x04001A46 RID: 6726
|
|
public TileEffects currentTileEffect;
|
|
|
|
// Token: 0x04001A47 RID: 6727
|
|
[Header("LOOPING OR NAMES")]
|
|
public bool looping;
|
|
|
|
// Token: 0x04001A48 RID: 6728
|
|
public bool randomStart;
|
|
|
|
// Token: 0x04001A49 RID: 6729
|
|
public bool deactivateOnEnd;
|
|
|
|
// Token: 0x04001A4A RID: 6730
|
|
public bool returnToCellar;
|
|
|
|
// Token: 0x04001A4B RID: 6731
|
|
public string currentAnimation;
|
|
|
|
// Token: 0x04001A4C RID: 6732
|
|
public bool stopDuringPocketPause;
|
|
|
|
// Token: 0x04001A4D RID: 6733
|
|
private float t;
|
|
|
|
// Token: 0x04001A4E RID: 6734
|
|
private float start;
|
|
|
|
// Token: 0x04001A4F RID: 6735
|
|
private float target;
|
|
|
|
// Token: 0x04001A50 RID: 6736
|
|
private float delay;
|
|
|
|
// Token: 0x04001A51 RID: 6737
|
|
private float startTime;
|
|
|
|
// Token: 0x02000221 RID: 545
|
|
public enum type
|
|
{
|
|
// Token: 0x04003365 RID: 13157
|
|
sprite,
|
|
// Token: 0x04003366 RID: 13158
|
|
image,
|
|
// Token: 0x04003367 RID: 13159
|
|
menu,
|
|
// Token: 0x04003368 RID: 13160
|
|
positionX,
|
|
// Token: 0x04003369 RID: 13161
|
|
positionY,
|
|
// Token: 0x0400336A RID: 13162
|
|
skillBag,
|
|
// Token: 0x0400336B RID: 13163
|
|
skillBagWarrior,
|
|
// Token: 0x0400336C RID: 13164
|
|
closeButton,
|
|
// Token: 0x0400336D RID: 13165
|
|
sheen,
|
|
// Token: 0x0400336E RID: 13166
|
|
book,
|
|
// Token: 0x0400336F RID: 13167
|
|
meshes
|
|
}
|
|
}
|