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: 0x02002D2E RID: 11566 [Token(Token = "0x2002D2E")] public class ForceWandWeapon : SpreadRangedWeapon { // Token: 0x0601372F RID: 79663 RVA: 0x0047C820 File Offset: 0x0047AA20 [Token(Token = "0x601372F")] [Address(RVA = "0x1625F10", Offset = "0x1624F10", VA = "0x181625F10", Slot = "13")] protected override void Awake() { base.Awake(); DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.trigger; DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.NDLIEIOPMNN); delayedRangedWeaponTrigger.JFPBBAHBCPN += ioglibapllg; } // Token: 0x06013730 RID: 79664 RVA: 0x0047C854 File Offset: 0x0047AA54 [Token(Token = "0x6013730")] [Address(RVA = "0x16270B0", Offset = "0x16260B0", VA = "0x1816270B0", Slot = "14")] protected override void OnDestroy() { base.OnDestroy(); DelayedRangedWeaponTrigger delayedRangedWeaponTrigger = this.trigger; DelayedRangedWeaponTrigger.IOGLIBAPLLG ioglibapllg = new DelayedRangedWeaponTrigger.IOGLIBAPLLG(this.NDLIEIOPMNN); delayedRangedWeaponTrigger.JFPBBAHBCPN -= ioglibapllg; } // Token: 0x06013731 RID: 79665 RVA: 0x0047C888 File Offset: 0x0047AA88 [Token(Token = "0x6013731")] [Address(RVA = "0x16268A0", Offset = "0x16258A0", VA = "0x1816268A0")] 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: 0x06013732 RID: 79666 RVA: 0x0047C8D8 File Offset: 0x0047AAD8 [Token(Token = "0x6013732")] [Address(RVA = "0x12410D0", Offset = "0x12400D0", VA = "0x1812410D0")] private void NDLIEIOPMNN(DelayedRangedWeaponTrigger OOONNFPBMKC) { if (base.OGIBLNIIHDK) { Color color = base.EPDNPLLEPOH; return; } } // Token: 0x06013733 RID: 79667 RVA: 0x0047C8F8 File Offset: 0x0047AAF8 [Token(Token = "0x6013733")] [Address(RVA = "0x1626420", Offset = "0x1625420", VA = "0x181626420", 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: 0x06013734 RID: 79668 RVA: 0x0047C994 File Offset: 0x0047AB94 [Token(Token = "0x6013734")] [Address(RVA = "0x1626370", Offset = "0x1625370", VA = "0x181626370", 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: 0x06013735 RID: 79669 RVA: 0x0047C9C0 File Offset: 0x0047ABC0 [Token(Token = "0x6013735")] [Address(RVA = "0x1625FA0", Offset = "0x1624FA0", VA = "0x181625FA0", 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: 0x06013736 RID: 79670 RVA: 0x0047CAB8 File Offset: 0x0047ACB8 [Token(Token = "0x6013736")] [Address(RVA = "0x1626890", Offset = "0x1625890", VA = "0x181626890")] protected void JIFMOEKGGNG(Enemy BPJNEFJBBML) { this.HFMECCNDOOE(BPJNEFJBBML); } // Token: 0x06013737 RID: 79671 RVA: 0x0047CACC File Offset: 0x0047ACCC [Token(Token = "0x6013737")] [Address(RVA = "0x1626C70", Offset = "0x1625C70", VA = "0x181626C70")] 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: 0x06013738 RID: 79672 RVA: 0x0047CB6C File Offset: 0x0047AD6C [Token(Token = "0x6013738")] [Address(RVA = "0x1626970", Offset = "0x1625970", VA = "0x181626970")] 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: 0x06013739 RID: 79673 RVA: 0x0047CBC4 File Offset: 0x0047ADC4 [Token(Token = "0x6013739")] [Address(RVA = "0x16267C0", Offset = "0x16257C0", VA = "0x1816267C0")] 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: 0x0601373A RID: 79674 RVA: 0x0047CC0C File Offset: 0x0047AE0C [Token(Token = "0x601373A")] [Address(RVA = "0x1626A70", Offset = "0x1625A70", VA = "0x181626A70", 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: 0x0601373B RID: 79675 RVA: 0x0047CCB4 File Offset: 0x0047AEB4 [Token(Token = "0x601373B")] [Address(RVA = "0x1627140", Offset = "0x1626140", VA = "0x181627140")] 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: 0x0400C9C1 RID: 51649 [FieldOffset(Offset = "0x318")] [Token(Token = "0x400C9C1")] [SerializeField] [NKNLDEIPALE(FHBJCBPFODN.Self, false, false, false)] private DelayedRangedWeaponTrigger trigger; // Token: 0x0400C9C2 RID: 51650 [FieldOffset(Offset = "0x320")] [Token(Token = "0x400C9C2")] [SerializeField] [Header("Wand")] private Transform spreadOffsetRoot; // Token: 0x0400C9C3 RID: 51651 [FieldOffset(Offset = "0x328")] [Token(Token = "0x400C9C3")] [SerializeField] private WandProjectileParticles shootParticlesPrefab; // Token: 0x0400C9C4 RID: 51652 [FieldOffset(Offset = "0x330")] [Token(Token = "0x400C9C4")] [SerializeField] private float minBulletPercentageRequiredForParticles; // Token: 0x0400C9C5 RID: 51653 [FieldOffset(Offset = "0x334")] [Token(Token = "0x400C9C5")] [SerializeField] [Header("Aiming")] private bool useHeadAimBias; // Token: 0x0400C9C6 RID: 51654 [FieldOffset(Offset = "0x338")] [Token(Token = "0x400C9C6")] [SerializeField] private float maxHeadAimAngle; // Token: 0x0400C9C7 RID: 51655 [FieldOffset(Offset = "0x33C")] [Token(Token = "0x400C9C7")] [SerializeField] [Header("Damage")] [Range(0f, 1f)] private float centerShotInitialCharge; // Token: 0x0400C9C8 RID: 51656 [FieldOffset(Offset = "0x340")] [Token(Token = "0x400C9C8")] [SerializeField] [Range(0f, 1f)] private float spreadShotInitialCharge; // Token: 0x0400C9C9 RID: 51657 [FieldOffset(Offset = "0x348")] [Token(Token = "0x400C9C9")] [SerializeField] private AnimationCurve damageFalloffCurve; // Token: 0x0400C9CA RID: 51658 [FieldOffset(Offset = "0x350")] [Token(Token = "0x400C9CA")] [SerializeField] [Header("Physics Damage")] private float minPhysicsDamageVelocity; // Token: 0x0400C9CB RID: 51659 [FieldOffset(Offset = "0x354")] [Token(Token = "0x400C9CB")] [SerializeField] private float maxFloorAngleDegrees; // Token: 0x0400C9CC RID: 51660 [FieldOffset(Offset = "0x358")] [Token(Token = "0x400C9CC")] [SerializeField] private float enemyCollisionDamageCharge; // Token: 0x0400C9CD RID: 51661 [FieldOffset(Offset = "0x35C")] [Token(Token = "0x400C9CD")] [SerializeField] private float otherEnemyCollisionDamageCharge; // Token: 0x0400C9CE RID: 51662 [FieldOffset(Offset = "0x360")] [Token(Token = "0x400C9CE")] [SerializeField] private float environmentCollisionDamageCharge; // Token: 0x0400C9CF RID: 51663 [FieldOffset(Offset = "0x368")] [Token(Token = "0x400C9CF")] private readonly List GOOBODNNOKN; // Token: 0x0400C9D0 RID: 51664 [FieldOffset(Offset = "0x370")] [Token(Token = "0x400C9D0")] private WandProjectileParticles JOBCKNKOCKM; } }