using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x0200018B RID: 395
[Token(Token = "0x200018B")]
public class DamageObject : AttackableObject
{
	// Token: 0x0600126A RID: 4714 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600126A")]
	[Address(RVA = "0x13C62D0", Offset = "0x13C50D0", VA = "0x1813C62D0", Slot = "4")]
	public override void Init()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600126B RID: 4715 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600126B")]
	[Address(RVA = "0x13C7280", Offset = "0x13C6080", VA = "0x1813C7280", Slot = "6")]
	protected override void Update()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600126C RID: 4716 RVA: 0x0002A3F0 File Offset: 0x000285F0
	[Token(Token = "0x600126C")]
	[Address(RVA = "0x13C66D0", Offset = "0x13C54D0", VA = "0x1813C66D0", Slot = "8")]
	protected override void LateUpdate()
	{
		if (!this.g_bDamage)
		{
			base.LateUpdate();
			return;
		}
	}

	// Token: 0x0600126D RID: 4717 RVA: 0x0002A410 File Offset: 0x00028610
	[Token(Token = "0x600126D")]
	[Address(RVA = "0x13C66F0", Offset = "0x13C54F0", VA = "0x1813C66F0", Slot = "12")]
	protected virtual void SetDamageColor()
	{
		float num = this.g_fDisTimeVal;
		int num2 = 0;
		if (num <= (float)num2)
		{
			float num3 = this.g_fAlpha;
			if (num3 <= (float)num2)
			{
				GameObject gameObject = base.gameObject;
				int num4 = 0;
				gameObject.SetActive(num4 != 0);
			}
			this.g_fAlpha = num3;
			GameObject damage = this.Damage;
			int num5 = 0;
			int childCount = damage.transform.childCount;
			if (num5 >= childCount)
			{
				return;
			}
			Material material = this.Damage.transform.GetChild(num5).GetComponent<MeshRenderer>().GetMaterial();
			float num6 = this.g_fAlpha;
			material.SetFloat("_Alpha", num6);
			GameObject damage2 = this.Damage;
			num5++;
		}
		if (this.Damage.GetComponent<BoxCollider>().enabled)
		{
			BoxCollider component = this.Damage.GetComponent<BoxCollider>();
			int num7 = 0;
			component.enabled = num7 != 0;
		}
		float num8 = this.g_fDisTimeVal;
		this.g_fDisTimeVal = num8;
	}

	// Token: 0x0600126E RID: 4718 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600126E")]
	[Address(RVA = "0x13C61E0", Offset = "0x13C4FE0", VA = "0x1813C61E0", Slot = "9")]
	public override void HitPhysical(AttackData AD)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600126F RID: 4719 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600126F")]
	[Address(RVA = "0x13C6010", Offset = "0x13C4E10", VA = "0x1813C6010", Slot = "13")]
	public virtual void HitPhysical(float fStrength)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001270 RID: 4720 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001270")]
	[Address(RVA = "0x13C5EA0", Offset = "0x13C4CA0", VA = "0x1813C5EA0", Slot = "10")]
	public override void HitMagic(AttackData AD)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001271 RID: 4721 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001271")]
	[Address(RVA = "0x13C68E0", Offset = "0x13C56E0", VA = "0x1813C68E0", Slot = "14")]
	public virtual void SetDamage()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001272 RID: 4722 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001272")]
	[Address(RVA = "0x13C6E50", Offset = "0x13C5C50", VA = "0x1813C6E50", Slot = "15")]
	public virtual void SetRecovery()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001273 RID: 4723 RVA: 0x0002A4F8 File Offset: 0x000286F8
	[Token(Token = "0x6001273")]
	[Address(RVA = "0x13C7130", Offset = "0x13C5F30", VA = "0x1813C7130", Slot = "11")]
	public override void SetTimeScale(float fTimeScale)
	{
		/*
An exception occurred when decompiling this method (06001273)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void DamageObject::SetTimeScale(System.Single)

 ---> System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'length')
   at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
   at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length)
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 51
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 401
   at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstBuilder.cs:line 276
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 112
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
	}

	// Token: 0x06001274 RID: 4724 RVA: 0x0002A57C File Offset: 0x0002877C
	[Token(Token = "0x6001274")]
	[Address(RVA = "0x13C5E90", Offset = "0x13C4C90", VA = "0x1813C5E90")]
	public bool GetIsDamage()
	{
		return this.g_bDamage;
	}

	// Token: 0x06001275 RID: 4725 RVA: 0x0002A590 File Offset: 0x00028790
	[Token(Token = "0x6001275")]
	[Address(RVA = "0x13C3AE0", Offset = "0x13C28E0", VA = "0x1813C3AE0")]
	public DamageObject()
	{
	}

	// Token: 0x04001C95 RID: 7317
	[FieldOffset(Offset = "0x68")]
	[Token(Token = "0x4001C95")]
	public GameObject Original;

	// Token: 0x04001C96 RID: 7318
	[FieldOffset(Offset = "0x70")]
	[Token(Token = "0x4001C96")]
	public GameObject Damage;

	// Token: 0x04001C97 RID: 7319
	[FieldOffset(Offset = "0x78")]
	[Token(Token = "0x4001C97")]
	public int DamageMoney;

	// Token: 0x04001C98 RID: 7320
	[FieldOffset(Offset = "0x7C")]
	[Token(Token = "0x4001C98")]
	public int DamageHP;

	// Token: 0x04001C99 RID: 7321
	[FieldOffset(Offset = "0x80")]
	[Token(Token = "0x4001C99")]
	public int DamageMP;

	// Token: 0x04001C9A RID: 7322
	[FieldOffset(Offset = "0x84")]
	[Token(Token = "0x4001C9A")]
	public ItemSystem.ItemType ItemType;

	// Token: 0x04001C9B RID: 7323
	[FieldOffset(Offset = "0x88")]
	[Token(Token = "0x4001C9B")]
	public int PropertyID = (int)((ulong)4294967295L);

	// Token: 0x04001C9C RID: 7324
	[FieldOffset(Offset = "0x90")]
	[Token(Token = "0x4001C9C")]
	public GameObject DamageEffectObject;

	// Token: 0x04001C9D RID: 7325
	[FieldOffset(Offset = "0x98")]
	[Token(Token = "0x4001C9D")]
	public GameObject HitEffectObject;

	// Token: 0x04001C9E RID: 7326
	[FieldOffset(Offset = "0xA0")]
	[Token(Token = "0x4001C9E")]
	public SceneEvent[] OpenEvent;

	// Token: 0x04001C9F RID: 7327
	[FieldOffset(Offset = "0xA8")]
	[Token(Token = "0x4001C9F")]
	protected Vector3 g_v3Center;

	// Token: 0x04001CA0 RID: 7328
	[FieldOffset(Offset = "0xB4")]
	[Token(Token = "0x4001CA0")]
	private float g_fOriginalMass = 1f;

	// Token: 0x04001CA1 RID: 7329
	[FieldOffset(Offset = "0xB8")]
	[Token(Token = "0x4001CA1")]
	private float g_fOriginalAngularDrag = 0.05f;

	// Token: 0x04001CA2 RID: 7330
	[FieldOffset(Offset = "0xBC")]
	[Token(Token = "0x4001CA2")]
	protected bool g_bDamage;

	// Token: 0x04001CA3 RID: 7331
	[Token(Token = "0x4001CA3")]
	protected const float g_fDisTime = 5f;

	// Token: 0x04001CA4 RID: 7332
	[Token(Token = "0x4001CA4")]
	protected const float g_fDisSpeed = 1f;

	// Token: 0x04001CA5 RID: 7333
	[FieldOffset(Offset = "0xC0")]
	[Token(Token = "0x4001CA5")]
	protected float g_fDisTimeVal;

	// Token: 0x04001CA6 RID: 7334
	[FieldOffset(Offset = "0xC4")]
	[Token(Token = "0x4001CA6")]
	protected float g_fAlpha = 1f;

	// Token: 0x04001CA7 RID: 7335
	[FieldOffset(Offset = "0xC8")]
	[Token(Token = "0x4001CA7")]
	protected float g_fOriginalHP;

	// Token: 0x04001CA8 RID: 7336
	[FieldOffset(Offset = "0xD0")]
	[Token(Token = "0x4001CA8")]
	protected EffectPool g_DamageEffect;

	// Token: 0x04001CA9 RID: 7337
	[FieldOffset(Offset = "0xD8")]
	[Token(Token = "0x4001CA9")]
	protected EffectPool g_HitEffect;
}
