public override void FixedUpdate() { base.FixedUpdate(); if (base.isAuthority) { Ray aimRay = base.GetAimRay(); this.blastAttack.position = aimRay.origin; this.effectData.origin = aimRay.origin; if (base.fixedAge >= this.duration && base.isAuthority) { this.outer.SetNextStateToMain(); return; } float boost = charged * (.8f + (.2f * base.attackSpeedStat)); int roundDown = Mathf.FloorToInt(boost); int scale = Mathf.Max(2, 40 - roundDown); if (this.frameCounter % scale == 0) { BlastAttack.Result result = blastAttack.Fire(); int hitCount = result.hitCount; //if (this.styleComponent) this.styleComponent.AddStyle(hitCount * DrillCharge.styleCoefficient); EffectManager.SpawnEffect(this.explodePrefab, effectData, false); } this.frameCounter++; } }
private BlastAttack.Result BlastAttack_Fire(On.RoR2.BlastAttack.orig_Fire orig, BlastAttack self) { BlastAttack.Result result = orig(self); HitboxRevealer box = Instantiate(_hitboxNotBoxPrefab).initBlastBox(self.position, self.radius); Utils.LogReadout($"making blast hitbox at {self.position}, {self.radius}: {box != null}"); return(result); }
protected void Fire() { Ray aimRay = base.GetAimRay(); this.aimDirection = aimRay.direction; //base.PlayAnimation("FullBody, Override", this.animString); base.characterBody.AddSpreadBloom(2f); EffectManager.SimpleMuzzleFlash(EntityStates.Commando.CommandoWeapon.FirePistol2.muzzleEffectPrefab, base.gameObject, "Muzzle", false); Util.PlaySound("HenryShootShotgun", base.gameObject); if (base.isAuthority) { base.characterMotor.velocity = -this.aimDirection * Burst.pushForce; //base.characterMotor.rootMotion = this.pushForce; base.AddRecoil(-1f * Burst.recoil, -2f * Burst.recoil, -0.5f * Burst.recoil, 0.5f * Burst.recoil); BlastAttack blastAttack = new BlastAttack(); blastAttack.radius = 10f; blastAttack.procCoefficient = 1f; blastAttack.position = aimRay.origin + 2 * aimRay.direction; blastAttack.attacker = base.gameObject; blastAttack.crit = base.RollCrit(); blastAttack.baseDamage = base.characterBody.damage * Burst.damageCoefficient; blastAttack.falloffModel = BlastAttack.FalloffModel.None; blastAttack.baseForce = Burst.blastForce; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = DamageType.Stun1s; blastAttack.attackerFiltering = AttackerFiltering.NeverHit; BlastAttack.Result result = blastAttack.Fire(); EffectData effectData = new EffectData(); effectData.origin = aimRay.origin + 2 * aimRay.direction; effectData.scale = 8; EffectManager.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/ImpactEffects/FusionCellExplosion"), effectData, true); } }
public override void OnEnter() { base.OnEnter(); Ray aimRay = base.GetAimRay(); this.duration = this.baseDuration; Util.PlaySound(DiggerPlugin.Sounds.Backblast, base.gameObject); base.StartAimMode(0.6f, true); base.characterMotor.disableAirControlUntilCollision = false; float angle = Vector3.Angle(new Vector3(0, -1, 0), aimRay.direction); if (angle < 60) { base.PlayAnimation("FullBody, Override", "BackblastUp"); } else if (angle > 120) { base.PlayAnimation("FullBody, Override", "BackblastDown"); } else { base.PlayAnimation("FullBody, Override", "Backblast"); } if (NetworkServer.active) { base.characterBody.AddBuff(RoR2Content.Buffs.HiddenInvincibility); } if (base.isAuthority) { Vector3 theSpot = aimRay.origin + 2 * aimRay.direction; BlastAttack blastAttack = new BlastAttack(); blastAttack.radius = 14f; blastAttack.procCoefficient = 1f; blastAttack.position = theSpot; blastAttack.attacker = base.gameObject; blastAttack.crit = Util.CheckRoll(base.characterBody.crit, base.characterBody.master); blastAttack.baseDamage = base.characterBody.damage * BackBlast.damageCoefficient; blastAttack.falloffModel = BlastAttack.FalloffModel.None; blastAttack.baseForce = 500f; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = DamageType.Stun1s; blastAttack.attackerFiltering = AttackerFiltering.NeverHit; BlastAttack.Result result = blastAttack.Fire(); EffectData effectData = new EffectData(); effectData.origin = theSpot; effectData.scale = 15; EffectManager.SpawnEffect(DiggerPlugin.DiggerPlugin.backblastEffect, effectData, false); base.characterMotor.velocity = -80 * aimRay.direction; Compacted?.Invoke(result.hitCount); } }
// Token: 0x060031BD RID: 12733 RVA: 0x000D661C File Offset: 0x000D481C protected override void DoImpactAuthority() { base.DoImpactAuthority(); BlastAttack.Result result = base.DetonateAuthority(); base.skillLocator.utility.RunRecharge((float)result.hitCount * ChainableLeap.refundPerHit); }