Add source files
This commit is contained in:
223
Projects/BanquetForFools/Source/Assembly-CSharp/Gore.cs
Normal file
223
Projects/BanquetForFools/Source/Assembly-CSharp/Gore.cs
Normal file
@@ -0,0 +1,223 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using DarkTonic.MasterAudio;
|
||||
using UnityEngine;
|
||||
|
||||
// Token: 0x02000033 RID: 51
|
||||
public class Gore : MonoBehaviour
|
||||
{
|
||||
// Token: 0x060007CF RID: 1999 RVA: 0x000AD748 File Offset: 0x000AB948
|
||||
private void Start()
|
||||
{
|
||||
if (!this.skipRenderers)
|
||||
{
|
||||
this.meshRenderers = base.gameObject.GetComponentsInChildren<MeshRenderer>(true);
|
||||
foreach (MeshRenderer meshRenderer in this.meshRenderers)
|
||||
{
|
||||
this.mat = meshRenderer.sharedMaterials;
|
||||
foreach (Material material in this.mat)
|
||||
{
|
||||
if (material.shader != Links.x.characterGame && !material.shader.name.Contains("Single") && !Links.x.rallyStage.playing)
|
||||
{
|
||||
material.shader = Links.x.characterGame;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.skinnedMeshRenderers = base.gameObject.GetComponentsInChildren<SkinnedMeshRenderer>(true);
|
||||
foreach (SkinnedMeshRenderer skinnedMeshRenderer in this.skinnedMeshRenderers)
|
||||
{
|
||||
this.mat = skinnedMeshRenderer.sharedMaterials;
|
||||
foreach (Material material2 in this.mat)
|
||||
{
|
||||
if (material2.shader != Links.x.characterGame && !material2.shader.name.Contains("Single") && !Links.x.rallyStage.playing)
|
||||
{
|
||||
material2.shader = Links.x.characterGame;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!this.addedListens)
|
||||
{
|
||||
Collider[] componentsInChildren = base.gameObject.GetComponentsInChildren<Collider>(true);
|
||||
for (int i = 0; i < componentsInChildren.Length; i++)
|
||||
{
|
||||
componentsInChildren[i].gameObject.AddComponent<GoreListen>().gore = this;
|
||||
}
|
||||
this.addedListens = true;
|
||||
}
|
||||
if (!Links.x.rallyStage.playing)
|
||||
{
|
||||
this.skipRenderers = true;
|
||||
}
|
||||
}
|
||||
if (this.breakOnStart)
|
||||
{
|
||||
if (this.rigidbodies.Length == 0)
|
||||
{
|
||||
this.Setup();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.DoReset();
|
||||
}
|
||||
this.Break(base.gameObject.transform.position);
|
||||
if (this.returnAfterTimer)
|
||||
{
|
||||
base.StartCoroutine(this.Wait());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060007D0 RID: 2000 RVA: 0x000AD964 File Offset: 0x000ABB64
|
||||
public void SetKinematic()
|
||||
{
|
||||
for (int i = 0; i < this.rigidbodies.Length; i++)
|
||||
{
|
||||
this.rigidbodies[i].isKinematic = true;
|
||||
}
|
||||
this.setKinematic = true;
|
||||
}
|
||||
|
||||
// Token: 0x060007D1 RID: 2001 RVA: 0x000AD99C File Offset: 0x000ABB9C
|
||||
public void Setup()
|
||||
{
|
||||
this.setKinematic = false;
|
||||
this.rigidbodies = base.gameObject.GetComponentsInChildren<Rigidbody>(true);
|
||||
for (int i = 0; i < this.rigidbodies.Length; i++)
|
||||
{
|
||||
this.positions.Add(this.rigidbodies[i].gameObject.transform.localPosition);
|
||||
this.rotations.Add(this.rigidbodies[i].gameObject.transform.localRotation);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060007D2 RID: 2002 RVA: 0x000ADA1C File Offset: 0x000ABC1C
|
||||
public void DoReset()
|
||||
{
|
||||
this.setKinematic = false;
|
||||
for (int i = 0; i < this.rigidbodies.Length; i++)
|
||||
{
|
||||
this.rigidbodies[i].isKinematic = true;
|
||||
this.rigidbodies[i].gameObject.transform.localPosition = this.positions[i];
|
||||
this.rigidbodies[i].gameObject.transform.localRotation = this.rotations[i];
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060007D3 RID: 2003 RVA: 0x000ADA98 File Offset: 0x000ABC98
|
||||
public void Break(Vector3 position)
|
||||
{
|
||||
if (this.rigidbodies.Length == 0)
|
||||
{
|
||||
this.Setup();
|
||||
}
|
||||
base.gameObject.transform.position = position;
|
||||
base.gameObject.SetActive(true);
|
||||
this.DoReset();
|
||||
for (int i = 0; i < this.rigidbodies.Length; i++)
|
||||
{
|
||||
this.rigidbodies[i].gameObject.SetActive(true);
|
||||
this.rigidbodies[i].isKinematic = false;
|
||||
this.rigidbodies[i].gameObject.layer = 20;
|
||||
Vector3 vector = position;
|
||||
vector.y += this.up;
|
||||
Vector3 vector2 = position;
|
||||
vector2.x += Random.Range(-3f, 3f);
|
||||
vector2.z += Random.Range(-3f, 3f);
|
||||
Quaternion quaternion = Quaternion.LookRotation(vector - vector2);
|
||||
this.rigidbodies[i].AddForce(quaternion * Vector3.forward * this.force * 0.08f, ForceMode.Force);
|
||||
}
|
||||
if (this.playSound)
|
||||
{
|
||||
MasterAudio.PlaySound3DAtVector3AndForget("Interactives", base.gameObject.transform.position, 1f, new float?(1f), 0f, "Chest Break", null);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060007D4 RID: 2004 RVA: 0x000ADBEF File Offset: 0x000ABDEF
|
||||
private IEnumerator Wait()
|
||||
{
|
||||
float startSeconds = Links.x.gameplay.seconds;
|
||||
yield return new WaitForSeconds(1f);
|
||||
while (Links.x.gameplay.seconds < startSeconds + (float)this.timeToHoldFor)
|
||||
{
|
||||
for (int i = 0; i < this.rigidbodies.Length; i++)
|
||||
{
|
||||
if (this.rigidbodies[i].gameObject.activeSelf && this.rigidbodies[i].linearVelocity.sqrMagnitude < 0.2f)
|
||||
{
|
||||
this.rigidbodies[i].gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
yield return null;
|
||||
}
|
||||
Links.x.cellar.ReturnPooledGameObject(this.cellarID, base.gameObject);
|
||||
base.gameObject.SetActive(false);
|
||||
yield break;
|
||||
}
|
||||
|
||||
// Token: 0x04000C25 RID: 3109
|
||||
public List<Vector3> positions = new List<Vector3>();
|
||||
|
||||
// Token: 0x04000C26 RID: 3110
|
||||
public List<Quaternion> rotations = new List<Quaternion>();
|
||||
|
||||
// Token: 0x04000C27 RID: 3111
|
||||
public Rigidbody[] rigidbodies = new Rigidbody[0];
|
||||
|
||||
// Token: 0x04000C28 RID: 3112
|
||||
private MeshRenderer[] meshRenderers;
|
||||
|
||||
// Token: 0x04000C29 RID: 3113
|
||||
private SkinnedMeshRenderer[] skinnedMeshRenderers;
|
||||
|
||||
// Token: 0x04000C2A RID: 3114
|
||||
public bool breakOnStart;
|
||||
|
||||
// Token: 0x04000C2B RID: 3115
|
||||
private Material[] mat;
|
||||
|
||||
// Token: 0x04000C2C RID: 3116
|
||||
private Vector3 originalScale = new Vector3(1f, 1f, 1f);
|
||||
|
||||
// Token: 0x04000C2D RID: 3117
|
||||
public bool skipRenderers;
|
||||
|
||||
// Token: 0x04000C2E RID: 3118
|
||||
public int cellarID;
|
||||
|
||||
// Token: 0x04000C2F RID: 3119
|
||||
public bool returnAfterTimer;
|
||||
|
||||
// Token: 0x04000C30 RID: 3120
|
||||
public int timeToHoldFor;
|
||||
|
||||
// Token: 0x04000C31 RID: 3121
|
||||
public float force = 4000f;
|
||||
|
||||
// Token: 0x04000C32 RID: 3122
|
||||
public float up = 2f;
|
||||
|
||||
// Token: 0x04000C33 RID: 3123
|
||||
public bool playSound = true;
|
||||
|
||||
// Token: 0x04000C34 RID: 3124
|
||||
public bool addBoneListeners;
|
||||
|
||||
// Token: 0x04000C35 RID: 3125
|
||||
public Character character;
|
||||
|
||||
// Token: 0x04000C36 RID: 3126
|
||||
private bool addedListens;
|
||||
|
||||
// Token: 0x04000C37 RID: 3127
|
||||
public float startTime;
|
||||
|
||||
// Token: 0x04000C38 RID: 3128
|
||||
public bool damageEveryone;
|
||||
|
||||
// Token: 0x04000C39 RID: 3129
|
||||
public bool damageOthers = true;
|
||||
|
||||
// Token: 0x04000C3A RID: 3130
|
||||
public bool damageNone;
|
||||
|
||||
// Token: 0x04000C3B RID: 3131
|
||||
public bool setKinematic;
|
||||
}
|
||||
Reference in New Issue
Block a user