using System; using System.Collections.Generic; 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: 0x02002C45 RID: 11333 [Token(Token = "0x2002C45")] public class ForceWandWeapon : SpreadRangedWeapon { // Token: 0x060132EE RID: 78574 RVA: 0x00472AC4 File Offset: 0x00470CC4 [Token(Token = "0x60132EE")] [Address(RVA = "0xB260C0", Offset = "0xB24EC0", VA = "0x180B260C0", Slot = "13")] protected override void Awake() { base.Awake(); DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.trigger; DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.NDLIEIOPMNN); delayedRangedWeaponTrigger.JFPBBAHBCPN += ioglibapllg; } // Token: 0x060132EF RID: 78575 RVA: 0x00472AF8 File Offset: 0x00470CF8 [Token(Token = "0x60132EF")] [Address(RVA = "0xB27260", Offset = "0xB26060", VA = "0x180B27260", Slot = "14")] protected override void OnDestroy() { base.OnDestroy(); DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.trigger; DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.NDLIEIOPMNN); delayedRangedWeaponTrigger.JFPBBAHBCPN -= ioglibapllg; } // Token: 0x060132F0 RID: 78576 RVA: 0x00472B2C File Offset: 0x00470D2C [Token(Token = "0x60132F0")] [Address(RVA = "0xB26A50", Offset = "0xB25850", VA = "0x180B26A50")] 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: 0x060132F1 RID: 78577 RVA: 0x00472B7C File Offset: 0x00470D7C [Token(Token = "0x60132F1")] [Address(RVA = "0x79A500", Offset = "0x799300", VA = "0x18079A500")] private void NDLIEIOPMNN(DelayedRangedWeaponTrigger OOONNFPBMKC) { if (base.OGIBLNIIHDK) { bool isCompleted = ((IAsyncResult)this).IsCompleted; return; } } // Token: 0x060132F2 RID: 78578 RVA: 0x00472B9C File Offset: 0x00470D9C [Token(Token = "0x60132F2")] [Address(RVA = "0xB265D0", Offset = "0xB253D0", VA = "0x180B265D0", Slot = "40")] public override void Fire(float JHJCINDODIL) { if (base.OGIBLNIIHDK) { if (base.MJDHKAHMGMO || base.LAJLNCJKALH) { throw new NullReferenceException(); } Transform barrelTransform = this.barrelTransform; if (this.useHeadAimBias) { Tool tool = this._tool; if (tool.k__BackingField) { Transform transform = tool.k__BackingField.head.transform; float num; if (this.maxHeadAimAngle > num) { RigidbodyEx rigidbodyEx = this._tool.k__BackingField.head.rigidbodyEx; Transform barrelTransform2 = this.barrelTransform; } } } Transform transform2 = this.spreadOffsetRoot; this.Fire(JHJCINDODIL); } } // Token: 0x060132F3 RID: 78579 RVA: 0x00472C38 File Offset: 0x00470E38 [Token(Token = "0x60132F3")] [Address(RVA = "0xB26520", Offset = "0xB25320", VA = "0x180B26520", 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: 0x060132F4 RID: 78580 RVA: 0x00472C64 File Offset: 0x00470E64 [Token(Token = "0x60132F4")] [Address(RVA = "0xB26150", Offset = "0xB24F50", VA = "0x180B26150", Slot = "25")] protected override bool DHODJKLNHPA(Enemy BPJNEFJBBML, ANBBFGKPJFD EMPFLFOEDFD, GHMDIDJLFMC KNLMJBAKCGF) { if (KNLMJBAKCGF.FEDGOFKEGEF.z > this.spreadShotInitialCharge) { if (BPJNEFJBBML.steering.k__BackingField) { Steering steering = BPJNEFJBBML.steering; Vector3 vector; float z = vector.z; KNLMJBAKCGF.NKKJICPFILJ.z = z; } if (base.OGIBLNIIHDK && !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 z2 = KNLMJBAKCGF.FEDGOFKEGEF.z; float num = KNLMJBAKCGF.EGJBGIIHEEL.z; float num2 = Mathf.Clamp01(z2); AnimationCurve animationCurve = this.damageFalloffCurve; num = num2; float num3 = animationCurve.Evaluate(num); KNLMJBAKCGF.OHPBNIDKAEK = num3; bool flag; return flag; } // Token: 0x060132F5 RID: 78581 RVA: 0x00472D5C File Offset: 0x00470F5C [Token(Token = "0x60132F5")] [Address(RVA = "0xB26A40", Offset = "0xB25840", VA = "0x180B26A40")] protected void JIFMOEKGGNG(Enemy BPJNEFJBBML) { this.HFMECCNDOOE(BPJNEFJBBML); } // Token: 0x060132F6 RID: 78582 RVA: 0x00472D70 File Offset: 0x00470F70 [Token(Token = "0x60132F6")] [Address(RVA = "0xB26E20", Offset = "0xB25C20", VA = "0x180B26E20")] protected void OIHFBPGMEME(Enemy BPJNEFJBBML, Collision GBJHLKOJGPB) { int num = 0; Vector3 vector; float z = vector.z; float num2 = this.minPhysicsDamageVelocity; float num3; if (num3 > num2) { Enemy enemy = GBJHLKOJGPB.PABDAFCMNCK(num); int num4 = 0; if (!(enemy != num4)) { ContactPoint[] contacts = GBJHLKOJGPB.contacts; Vector3 up = Vector3.up; float num5; if (num5 <= 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: 0x060132F7 RID: 78583 RVA: 0x00472E10 File Offset: 0x00471010 [Token(Token = "0x60132F7")] [Address(RVA = "0xB26B20", Offset = "0xB25920", VA = "0x180B26B20")] 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: 0x060132F8 RID: 78584 RVA: 0x00472E68 File Offset: 0x00471068 [Token(Token = "0x60132F8")] [Address(RVA = "0xB26970", Offset = "0xB25770", VA = "0x180B26970")] 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: 0x060132F9 RID: 78585 RVA: 0x00472EB0 File Offset: 0x004710B0 [Token(Token = "0x60132F9")] [Address(RVA = "0xB26C20", Offset = "0xB25A20", VA = "0x180B26C20", 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(wandProjectileParticles2); this.JOBCKNKOCKM = wandProjectileParticles3; wandProjectileParticles3.ResetVelocity(); WandProjectileParticles jobcknkockm = this.JOBCKNKOCKM; Transform barrelTransform = this.barrelTransform; jobcknkockm.Play(barrelTransform); } } // Token: 0x060132FA RID: 78586 RVA: 0x00472F58 File Offset: 0x00471158 [Token(Token = "0x60132FA")] [Address(RVA = "0xB272F0", Offset = "0xB260F0", VA = "0x180B272F0")] 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 list = new List(); this.GOOBODNNOKN = list; base..ctor(); } // Token: 0x0400C7AD RID: 51117 [FieldOffset(Offset = "0x318")] [Token(Token = "0x400C7AD")] [SerializeField] [DDPIINEJFMD(JIBDPHMGEGO.Self, false, false, false)] private DelayedRangedWeaponTrigger trigger; // Token: 0x0400C7AE RID: 51118 [FieldOffset(Offset = "0x320")] [Token(Token = "0x400C7AE")] [SerializeField] [Header("Wand")] private Transform spreadOffsetRoot; // Token: 0x0400C7AF RID: 51119 [FieldOffset(Offset = "0x328")] [Token(Token = "0x400C7AF")] [SerializeField] private WandProjectileParticles shootParticlesPrefab; // Token: 0x0400C7B0 RID: 51120 [FieldOffset(Offset = "0x330")] [Token(Token = "0x400C7B0")] [SerializeField] private float minBulletPercentageRequiredForParticles; // Token: 0x0400C7B1 RID: 51121 [FieldOffset(Offset = "0x334")] [Token(Token = "0x400C7B1")] [SerializeField] [Header("Aiming")] private bool useHeadAimBias; // Token: 0x0400C7B2 RID: 51122 [FieldOffset(Offset = "0x338")] [Token(Token = "0x400C7B2")] [SerializeField] private float maxHeadAimAngle; // Token: 0x0400C7B3 RID: 51123 [FieldOffset(Offset = "0x33C")] [Token(Token = "0x400C7B3")] [SerializeField] [Header("Damage")] [Range(0f, 1f)] private float centerShotInitialCharge; // Token: 0x0400C7B4 RID: 51124 [FieldOffset(Offset = "0x340")] [Token(Token = "0x400C7B4")] [SerializeField] [Range(0f, 1f)] private float spreadShotInitialCharge; // Token: 0x0400C7B5 RID: 51125 [FieldOffset(Offset = "0x348")] [Token(Token = "0x400C7B5")] [SerializeField] private AnimationCurve damageFalloffCurve; // Token: 0x0400C7B6 RID: 51126 [FieldOffset(Offset = "0x350")] [Token(Token = "0x400C7B6")] [SerializeField] [Header("Physics Damage")] private float minPhysicsDamageVelocity; // Token: 0x0400C7B7 RID: 51127 [FieldOffset(Offset = "0x354")] [Token(Token = "0x400C7B7")] [SerializeField] private float maxFloorAngleDegrees; // Token: 0x0400C7B8 RID: 51128 [FieldOffset(Offset = "0x358")] [Token(Token = "0x400C7B8")] [SerializeField] private float enemyCollisionDamageCharge; // Token: 0x0400C7B9 RID: 51129 [FieldOffset(Offset = "0x35C")] [Token(Token = "0x400C7B9")] [SerializeField] private float otherEnemyCollisionDamageCharge; // Token: 0x0400C7BA RID: 51130 [FieldOffset(Offset = "0x360")] [Token(Token = "0x400C7BA")] [SerializeField] private float environmentCollisionDamageCharge; // Token: 0x0400C7BB RID: 51131 [FieldOffset(Offset = "0x368")] [Token(Token = "0x400C7BB")] private readonly List GOOBODNNOKN; // Token: 0x0400C7BC RID: 51132 [FieldOffset(Offset = "0x370")] [Token(Token = "0x400C7BC")] private WandProjectileParticles JOBCKNKOCKM; } }