Files
niko 8fc35183db a
2026-04-11 22:19:20 +02:00

366 lines
12 KiB
C#

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.<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;
}
}
}
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.<FEJCOJLMGPC>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<WandProjectileParticles>(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<Enemy> 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<Enemy> GOOBODNNOKN;
// Token: 0x0400C7BC RID: 51132
[FieldOffset(Offset = "0x370")]
[Token(Token = "0x400C7BC")]
private WandProjectileParticles JOBCKNKOCKM;
}
}