146 lines
3.9 KiB
C#
146 lines
3.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using DarkTonic.MasterAudio;
|
|
using UnityEngine;
|
|
|
|
// Token: 0x02000013 RID: 19
|
|
public class Armor : MonoBehaviour
|
|
{
|
|
// Token: 0x06000192 RID: 402 RVA: 0x0001F8EC File Offset: 0x0001DAEC
|
|
private void Awake()
|
|
{
|
|
if (!this.tr)
|
|
{
|
|
this.tr = base.transform;
|
|
}
|
|
if (!this.camTr)
|
|
{
|
|
this.camTr = Links.x.worldCamera.gameObject.transform;
|
|
}
|
|
this.forw = Vector3.forward;
|
|
this.up = Vector3.up;
|
|
}
|
|
|
|
// Token: 0x06000193 RID: 403 RVA: 0x0001F950 File Offset: 0x0001DB50
|
|
public void UpdateArmor(int curr)
|
|
{
|
|
SpriteRenderer spriteRenderer = null;
|
|
this.currentArmor = curr;
|
|
float num = (float)this.pieces.Count;
|
|
float num2 = (float)this.maxArmor / num;
|
|
float num3 = (float)curr;
|
|
this.segments = num3;
|
|
for (int i = 0; i < this.pieces.Count; i++)
|
|
{
|
|
float num4 = (float)i * num2;
|
|
if (num3 > num4)
|
|
{
|
|
this.pieces[i].color = this.normal;
|
|
}
|
|
else
|
|
{
|
|
if (this.pieces[i].color == this.normal)
|
|
{
|
|
spriteRenderer = this.pieces[i];
|
|
}
|
|
this.pieces[i].color = this.broken;
|
|
}
|
|
}
|
|
if (spriteRenderer)
|
|
{
|
|
MasterAudio.PlaySound3DAtVector3AndForget("Armor Break", this.character.torsoPosition, 1f, new float?(1f), 0.5f, "", null);
|
|
RectTransform hannahAnimator = Links.x.cellar.GetHannahAnimator(1);
|
|
hannahAnimator.gameObject.SetActive(true);
|
|
hannahAnimator.gameObject.GetComponent<HannahAnimator>().Play("Idle");
|
|
Vector3 vector = Links.x.worldCamera.WorldToScreenPoint(spriteRenderer.transform.position);
|
|
vector.z = 0f;
|
|
vector.x = vector.x * (1920f / (float)Screen.width) - 960f;
|
|
vector.y = vector.y * (Links.x.canvasRT.sizeDelta.y / (float)Screen.height) - Links.x.canvasRT.sizeDelta.y / 2f;
|
|
hannahAnimator.localPosition = vector;
|
|
if (this.type == "Armor")
|
|
{
|
|
GameObject pooledGameObject = Links.x.cellar.GetPooledGameObject(119);
|
|
pooledGameObject.transform.position = this.character.torsoPosition;
|
|
pooledGameObject.SetActive(true);
|
|
this.str.Clear();
|
|
this.str.Append(this.character.stats.GetName());
|
|
this.str.Append("'s armor is damaged");
|
|
Links.x.gameFeed.AddFeed(this.str.ToString());
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000194 RID: 404 RVA: 0x0001FBAB File Offset: 0x0001DDAB
|
|
public void End()
|
|
{
|
|
Object.Destroy(base.gameObject);
|
|
}
|
|
|
|
// Token: 0x06000195 RID: 405 RVA: 0x0001FBB8 File Offset: 0x0001DDB8
|
|
public void Setup(Character c, int max, int curr, string counterType)
|
|
{
|
|
this.character = c;
|
|
this.type = counterType;
|
|
this.currentArmor = curr;
|
|
this.maxArmor = max;
|
|
this.UpdateArmor(curr);
|
|
this.LateUpdate();
|
|
}
|
|
|
|
// Token: 0x06000196 RID: 406 RVA: 0x0001FBE4 File Offset: 0x0001DDE4
|
|
private void LateUpdate()
|
|
{
|
|
this.tr.LookAt(this.tr.position + this.camTr.rotation * this.forw, this.camTr.rotation * this.up);
|
|
if (this.type == "Armor")
|
|
{
|
|
this.tr.position = this.character.body.GetHead().position + new Vector3(0f, 1f, 0f);
|
|
return;
|
|
}
|
|
if (this.character.party)
|
|
{
|
|
this.tr.position = this.character.body.GetHead().position + new Vector3(0f, 1.1f, 0f);
|
|
return;
|
|
}
|
|
this.tr.position = this.character.body.GetHead().position + new Vector3(0f, 1.85f, 0f);
|
|
}
|
|
|
|
// Token: 0x04000342 RID: 834
|
|
public List<SpriteRenderer> pieces = new List<SpriteRenderer>();
|
|
|
|
// Token: 0x04000343 RID: 835
|
|
public Character character;
|
|
|
|
// Token: 0x04000344 RID: 836
|
|
public int maxArmor;
|
|
|
|
// Token: 0x04000345 RID: 837
|
|
public int currentArmor;
|
|
|
|
// Token: 0x04000346 RID: 838
|
|
public float segments;
|
|
|
|
// Token: 0x04000347 RID: 839
|
|
private Transform tr;
|
|
|
|
// Token: 0x04000348 RID: 840
|
|
private Transform camTr;
|
|
|
|
// Token: 0x04000349 RID: 841
|
|
private Vector3 forw;
|
|
|
|
// Token: 0x0400034A RID: 842
|
|
private Vector3 up;
|
|
|
|
// Token: 0x0400034B RID: 843
|
|
public Color normal;
|
|
|
|
// Token: 0x0400034C RID: 844
|
|
public Color broken;
|
|
|
|
// Token: 0x0400034D RID: 845
|
|
private StringFast str = new StringFast(32);
|
|
|
|
// Token: 0x0400034E RID: 846
|
|
public string type;
|
|
}
|