370 lines
12 KiB
C#
370 lines
12 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using Cpp2IlInjected;
|
|
using RecRoom.Core.AI;
|
|
using RecRoom.Core.Combat;
|
|
using RecRoom.Core.Pools;
|
|
using RecRoom.Tools.Weapons;
|
|
using UnityEngine;
|
|
|
|
namespace RecRoom.Activities.Quest.Goblin2
|
|
{
|
|
// Token: 0x0200275A RID: 10074
|
|
[Token(Token = "0x200275A")]
|
|
[StructLayout(3)]
|
|
public class ForceWandWeapon : SpreadRangedWeapon
|
|
{
|
|
// Token: 0x0601196A RID: 72042 RVA: 0x00430B94 File Offset: 0x0042ED94
|
|
[Token(Token = "0x601196A")]
|
|
[Address(RVA = "0x1103550", Offset = "0x1101F50", VA = "0x181103550", Slot = "13")]
|
|
protected override void Awake()
|
|
{
|
|
base.Awake();
|
|
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.trigger;
|
|
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.NDLIEIOPMNN);
|
|
delayedRangedWeaponTrigger.JFPBBAHBCPN += ioglibapllg;
|
|
}
|
|
|
|
// Token: 0x0601196B RID: 72043 RVA: 0x00430BC8 File Offset: 0x0042EDC8
|
|
[Token(Token = "0x601196B")]
|
|
[Address(RVA = "0x11046F0", Offset = "0x11030F0", VA = "0x1811046F0", Slot = "14")]
|
|
protected override void OnDestroy()
|
|
{
|
|
base.OnDestroy();
|
|
DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.trigger;
|
|
DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.NDLIEIOPMNN);
|
|
delayedRangedWeaponTrigger.JFPBBAHBCPN -= ioglibapllg;
|
|
}
|
|
|
|
// Token: 0x0601196C RID: 72044 RVA: 0x00430BFC File Offset: 0x0042EDFC
|
|
[Token(Token = "0x601196C")]
|
|
[Address(RVA = "0x1103EE0", Offset = "0x11028E0", VA = "0x181103EE0")]
|
|
private void LateUpdate()
|
|
{
|
|
WandProjectileParticles jobcknkockm = this.JOBCKNKOCKM;
|
|
int num = 0;
|
|
if (jobcknkockm != num)
|
|
{
|
|
float num2 = this.HLMEEKJIEEL.DDKECNEDAEK;
|
|
SpreadRangedWeapon.SpreadTarget[] spreadTargets = this.spreadTargets;
|
|
this.JOBCKNKOCKM.StopVelocity();
|
|
this.JOBCKNKOCKM = (ulong)0L;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601196D RID: 72045 RVA: 0x00430C4C File Offset: 0x0042EE4C
|
|
[Token(Token = "0x601196D")]
|
|
[Address(RVA = "0x104F7F0", Offset = "0x104E1F0", VA = "0x18104F7F0")]
|
|
private void NDLIEIOPMNN(DelayedRangedWeaponTrigger OOONNFPBMKC)
|
|
{
|
|
if (base.hasAuthority)
|
|
{
|
|
bool isCompleted = ((IAsyncResult)this).IsCompleted;
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601196E RID: 72046 RVA: 0x00430C6C File Offset: 0x0042EE6C
|
|
[Token(Token = "0x601196E")]
|
|
[Address(RVA = "0x1103A60", Offset = "0x1102460", VA = "0x181103A60", Slot = "40")]
|
|
public override void Fire(float JHJCINDODIL)
|
|
{
|
|
if (base.hasAuthority)
|
|
{
|
|
if (base.MJDHKAHMGMO || base.LAJLNCJKALH)
|
|
{
|
|
throw new NullReferenceException();
|
|
}
|
|
Transform barrelTransform = this.barrelTransform;
|
|
if (this.useHeadAimBias)
|
|
{
|
|
Tool tool = this._tool;
|
|
if (tool.<BIPMAHKMNKF>k__BackingField)
|
|
{
|
|
Transform transform = tool.<OKDFEPHLKCB>k__BackingField.head.transform;
|
|
float num;
|
|
if (this.maxHeadAimAngle > num)
|
|
{
|
|
RigidbodyEx rigidbodyEx = this._tool.<OKDFEPHLKCB>k__BackingField.head.rigidbodyEx;
|
|
Transform barrelTransform2 = this.barrelTransform;
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
Vector3 vector2;
|
|
float z2 = vector2.z;
|
|
}
|
|
}
|
|
}
|
|
Transform transform2 = this.spreadOffsetRoot;
|
|
this.Fire(JHJCINDODIL);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0601196F RID: 72047 RVA: 0x00430D20 File Offset: 0x0042EF20
|
|
[Token(Token = "0x601196F")]
|
|
[Address(RVA = "0x11039B0", Offset = "0x11023B0", VA = "0x1811039B0", Slot = "47")]
|
|
protected override void EIEJLOGPMGM(Bullet NLLMMPLAPBK, Enemy BPJNEFJBBML, ANBBFGKPJFD EMPFLFOEDFD, GHMDIDJLFMC KNLMJBAKCGF)
|
|
{
|
|
AAEGKOIININ aaegkoiinin = this.HLMEEKJIEEL.OBKMOLNOBHD(NLLMMPLAPBK);
|
|
if (aaegkoiinin != 0)
|
|
{
|
|
aaegkoiinin.MCHIEHNFNLF();
|
|
}
|
|
}
|
|
|
|
// Token: 0x06011970 RID: 72048 RVA: 0x00430D4C File Offset: 0x0042EF4C
|
|
[Token(Token = "0x6011970")]
|
|
[Address(RVA = "0x11035E0", Offset = "0x1101FE0", VA = "0x1811035E0", Slot = "25")]
|
|
protected override bool DHODJKLNHPA(Enemy BPJNEFJBBML, ANBBFGKPJFD EMPFLFOEDFD, GHMDIDJLFMC KNLMJBAKCGF)
|
|
{
|
|
if (KNLMJBAKCGF.FEDGOFKEGEF.z > this.spreadShotInitialCharge)
|
|
{
|
|
if (BPJNEFJBBML.steering.<FEJCOJLMGPC>k__BackingField)
|
|
{
|
|
Steering steering = BPJNEFJBBML.steering;
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
Vector3 vector2;
|
|
float z2 = vector2.z;
|
|
KNLMJBAKCGF.NKKJICPFILJ.z = z2;
|
|
}
|
|
if (base.hasAuthority && !this.GOOBODNNOKN.Contains(BPJNEFJBBML) && !this.GOOBODNNOKN.Contains(BPJNEFJBBML))
|
|
{
|
|
Enemy.FIEKLJKDFIP fiekljkdfip = new Enemy.FIEKLJKDFIP(this.OIHFBPGMEME);
|
|
BPJNEFJBBML.NCMJJBMBDHK += fiekljkdfip;
|
|
Enemy.FJNNOHNMINM fjnnohnminm = new Enemy.FJNNOHNMINM(this.JIFMOEKGGNG);
|
|
BPJNEFJBBML.EJPGEKHJECG += fjnnohnminm;
|
|
this.GOOBODNNOKN.Add(BPJNEFJBBML);
|
|
}
|
|
}
|
|
float z3 = KNLMJBAKCGF.FEDGOFKEGEF.z;
|
|
float num = KNLMJBAKCGF.EGJBGIIHEEL.z;
|
|
float num2 = Mathf.Clamp01(z3);
|
|
AnimationCurve animationCurve = this.damageFalloffCurve;
|
|
num = num2;
|
|
float num3 = animationCurve.Evaluate(num);
|
|
KNLMJBAKCGF.OHPBNIDKAEK = num3;
|
|
bool flag;
|
|
return flag;
|
|
}
|
|
|
|
// Token: 0x06011971 RID: 72049 RVA: 0x00430E4C File Offset: 0x0042F04C
|
|
[Token(Token = "0x6011971")]
|
|
[Address(RVA = "0x1103ED0", Offset = "0x11028D0", VA = "0x181103ED0")]
|
|
protected void JIFMOEKGGNG(Enemy BPJNEFJBBML)
|
|
{
|
|
this.HFMECCNDOOE(BPJNEFJBBML);
|
|
}
|
|
|
|
// Token: 0x06011972 RID: 72050 RVA: 0x00430E60 File Offset: 0x0042F060
|
|
[Token(Token = "0x6011972")]
|
|
[Address(RVA = "0x11042B0", Offset = "0x1102CB0", VA = "0x1811042B0")]
|
|
protected void OIHFBPGMEME(Enemy BPJNEFJBBML, Collision GBJHLKOJGPB)
|
|
{
|
|
int num = 0;
|
|
Vector3 vector;
|
|
float z = vector.z;
|
|
float num2 = this.minPhysicsDamageVelocity;
|
|
Enemy enemy = GBJHLKOJGPB.PABDAFCMNCK(num);
|
|
int num3 = 0;
|
|
if (!(enemy != num3))
|
|
{
|
|
ContactPoint[] contacts = GBJHLKOJGPB.contacts;
|
|
Vector3 up = Vector3.up;
|
|
float num4;
|
|
if (num4 <= this.maxFloorAngleDegrees)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
this.HFMECCNDOOE(BPJNEFJBBML);
|
|
Vector3 vector2;
|
|
float z2 = vector2.z;
|
|
float z3 = Vector3.zero.z;
|
|
ContactPoint[] contacts2 = GBJHLKOJGPB.contacts;
|
|
ContactPoint[] contacts3 = GBJHLKOJGPB.contacts;
|
|
GameObject gameObject = GBJHLKOJGPB.gameObject;
|
|
if (enemy)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x06011973 RID: 72051 RVA: 0x00430EF8 File Offset: 0x0042F0F8
|
|
[Token(Token = "0x6011973")]
|
|
[Address(RVA = "0x1103FB0", Offset = "0x11029B0", VA = "0x181103FB0")]
|
|
private void MELDMLAJELJ(Enemy BPJNEFJBBML)
|
|
{
|
|
if (!this.GOOBODNNOKN.Contains(BPJNEFJBBML))
|
|
{
|
|
Enemy.FIEKLJKDFIP fiekljkdfip = new Enemy.FIEKLJKDFIP(this.OIHFBPGMEME);
|
|
BPJNEFJBBML.NCMJJBMBDHK += fiekljkdfip;
|
|
Enemy.FJNNOHNMINM fjnnohnminm = new Enemy.FJNNOHNMINM(this.JIFMOEKGGNG);
|
|
BPJNEFJBBML.EJPGEKHJECG += fjnnohnminm;
|
|
this.GOOBODNNOKN.Add(BPJNEFJBBML);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06011974 RID: 72052 RVA: 0x00430F50 File Offset: 0x0042F150
|
|
[Token(Token = "0x6011974")]
|
|
[Address(RVA = "0x1103E00", Offset = "0x1102800", VA = "0x181103E00")]
|
|
private void HFMECCNDOOE(Enemy BPJNEFJBBML)
|
|
{
|
|
Enemy.FIEKLJKDFIP fiekljkdfip = new Enemy.FIEKLJKDFIP(this.OIHFBPGMEME);
|
|
BPJNEFJBBML.NCMJJBMBDHK -= fiekljkdfip;
|
|
Enemy.FJNNOHNMINM fjnnohnminm = new Enemy.FJNNOHNMINM(this.JIFMOEKGGNG);
|
|
BPJNEFJBBML.EJPGEKHJECG -= fjnnohnminm;
|
|
bool flag = this.GOOBODNNOKN.Remove(BPJNEFJBBML);
|
|
}
|
|
|
|
// Token: 0x06011975 RID: 72053 RVA: 0x00430F98 File Offset: 0x0042F198
|
|
[Token(Token = "0x6011975")]
|
|
[Address(RVA = "0x11040B0", Offset = "0x1102AB0", VA = "0x1811040B0", Slot = "42")]
|
|
protected override void OICJPFPBIIK(Vector3 DDHPAFKBMON, Quaternion IGPENJBJADK, Vector3 NHAOMEMANJA, float LFDFFDCJAAD, bool FLKHKHDBIOH, byte LNPHJIHHNPN)
|
|
{
|
|
float z = NHAOMEMANJA.z;
|
|
float z2 = DDHPAFKBMON.z;
|
|
float num = this.spreadShotInitialCharge;
|
|
float z3 = NHAOMEMANJA.z;
|
|
float z4 = DDHPAFKBMON.z;
|
|
float num2 = this.centerShotInitialCharge;
|
|
WandProjectileParticles wandProjectileParticles = this.shootParticlesPrefab;
|
|
int num3 = 0;
|
|
if (wandProjectileParticles != num3)
|
|
{
|
|
GlobalPool instance = GlobalPool.ONCPNMDGGKG;
|
|
WandProjectileParticles wandProjectileParticles2 = this.shootParticlesPrefab;
|
|
WandProjectileParticles wandProjectileParticles3 = instance.Acquire<WandProjectileParticles>(wandProjectileParticles2);
|
|
this.JOBCKNKOCKM = wandProjectileParticles3;
|
|
wandProjectileParticles3.ResetVelocity();
|
|
WandProjectileParticles jobcknkockm = this.JOBCKNKOCKM;
|
|
Transform barrelTransform = this.barrelTransform;
|
|
jobcknkockm.Play(barrelTransform);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06011976 RID: 72054 RVA: 0x00431040 File Offset: 0x0042F240
|
|
[Token(Token = "0x6011976")]
|
|
[Address(RVA = "0x1104780", Offset = "0x1103180", VA = "0x181104780")]
|
|
public ForceWandWeapon()
|
|
{
|
|
int num = 0;
|
|
this.minBulletPercentageRequiredForParticles = 0.25f;
|
|
int num2 = 0;
|
|
this.maxHeadAimAngle = 75f;
|
|
this.centerShotInitialCharge = 1f;
|
|
this.spreadShotInitialCharge = 0.3f;
|
|
AnimationCurve animationCurve = AnimationCurve.Linear((float)num2, 1f, 1f, (float)num);
|
|
this.damageFalloffCurve = animationCurve;
|
|
this.minPhysicsDamageVelocity = 1f;
|
|
this.maxFloorAngleDegrees = 30f;
|
|
this.enemyCollisionDamageCharge = 1f;
|
|
this.otherEnemyCollisionDamageCharge = 1f;
|
|
this.environmentCollisionDamageCharge = 1f;
|
|
List<Enemy> list = new List();
|
|
this.GOOBODNNOKN = list;
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x0400BC54 RID: 48212
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x310")]
|
|
[Token(Token = "0x400BC54")]
|
|
[SerializeField]
|
|
[DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)]
|
|
private DelayedRangedWeaponTrigger trigger;
|
|
|
|
// Token: 0x0400BC55 RID: 48213
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x318")]
|
|
[Token(Token = "0x400BC55")]
|
|
[SerializeField]
|
|
[Header("Wand")]
|
|
private Transform spreadOffsetRoot;
|
|
|
|
// Token: 0x0400BC56 RID: 48214
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x320")]
|
|
[Token(Token = "0x400BC56")]
|
|
[SerializeField]
|
|
private WandProjectileParticles shootParticlesPrefab;
|
|
|
|
// Token: 0x0400BC57 RID: 48215
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x328")]
|
|
[Token(Token = "0x400BC57")]
|
|
[SerializeField]
|
|
private float minBulletPercentageRequiredForParticles;
|
|
|
|
// Token: 0x0400BC58 RID: 48216
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x32C")]
|
|
[Token(Token = "0x400BC58")]
|
|
[SerializeField]
|
|
[Header("Aiming")]
|
|
private bool useHeadAimBias;
|
|
|
|
// Token: 0x0400BC59 RID: 48217
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x330")]
|
|
[Token(Token = "0x400BC59")]
|
|
[SerializeField]
|
|
private float maxHeadAimAngle;
|
|
|
|
// Token: 0x0400BC5A RID: 48218
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x334")]
|
|
[Token(Token = "0x400BC5A")]
|
|
[SerializeField]
|
|
[Range(0f, 1f)]
|
|
[Header("Damage")]
|
|
private float centerShotInitialCharge;
|
|
|
|
// Token: 0x0400BC5B RID: 48219
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x338")]
|
|
[Token(Token = "0x400BC5B")]
|
|
[SerializeField]
|
|
[Range(0f, 1f)]
|
|
private float spreadShotInitialCharge;
|
|
|
|
// Token: 0x0400BC5C RID: 48220
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x340")]
|
|
[Token(Token = "0x400BC5C")]
|
|
[SerializeField]
|
|
private AnimationCurve damageFalloffCurve;
|
|
|
|
// Token: 0x0400BC5D RID: 48221
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x348")]
|
|
[Token(Token = "0x400BC5D")]
|
|
[SerializeField]
|
|
[Header("Physics Damage")]
|
|
private float minPhysicsDamageVelocity;
|
|
|
|
// Token: 0x0400BC5E RID: 48222
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34C")]
|
|
[Token(Token = "0x400BC5E")]
|
|
[SerializeField]
|
|
private float maxFloorAngleDegrees;
|
|
|
|
// Token: 0x0400BC5F RID: 48223
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x350")]
|
|
[Token(Token = "0x400BC5F")]
|
|
[SerializeField]
|
|
private float enemyCollisionDamageCharge;
|
|
|
|
// Token: 0x0400BC60 RID: 48224
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x354")]
|
|
[Token(Token = "0x400BC60")]
|
|
[SerializeField]
|
|
private float otherEnemyCollisionDamageCharge;
|
|
|
|
// Token: 0x0400BC61 RID: 48225
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x358")]
|
|
[Token(Token = "0x400BC61")]
|
|
[SerializeField]
|
|
private float environmentCollisionDamageCharge;
|
|
|
|
// Token: 0x0400BC62 RID: 48226
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x360")]
|
|
[Token(Token = "0x400BC62")]
|
|
private readonly List<Enemy> GOOBODNNOKN;
|
|
|
|
// Token: 0x0400BC63 RID: 48227
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x368")]
|
|
[Token(Token = "0x400BC63")]
|
|
private WandProjectileParticles JOBCKNKOCKM;
|
|
}
|
|
}
|