private IEnumerator HandleFireShortBeam(Projectile projectileToSpawn, float duration) { float elapsed = 0f; float num2 = -1f; AIActor aiactor2 = this.m_extantOrbital.transform.position.GetAbsoluteRoom().GetNearestEnemy(this.m_extantOrbital.GetComponent <tk2dBaseSprite>().WorldCenter, out num2, true, true); BeamController beam = this.BeginFiringBeam(projectileToSpawn, this.m_owner, BraveMathCollege.Atan2Degrees(aiactor2.sprite.WorldCenter - this.m_extantOrbital.GetComponent <tk2dSprite>().WorldCenter), this.m_extantOrbital.GetComponent <tk2dBaseSprite>().WorldCenter); yield return(null); while (elapsed < duration) { if (!this || !this.m_extantOrbital || this.m_extantOrbital.transform.position.GetAbsoluteRoom() == null) { break; } float num = -1f; AIActor aiactor = this.m_extantOrbital.transform.position.GetAbsoluteRoom().GetNearestEnemy(this.m_extantOrbital.GetComponent <tk2dBaseSprite>().WorldCenter, out num, true, true); if (aiactor == null) { break; } elapsed += BraveTime.DeltaTime; this.ContinueFiringBeam(beam, BraveMathCollege.Atan2Degrees(aiactor.sprite.WorldCenter - this.m_extantOrbital.GetComponent <tk2dSprite>().WorldCenter), this.m_extantOrbital.GetComponent <tk2dBaseSprite>().WorldCenter); yield return(null); } this.CeaseBeam(beam); yield break; }
private void PostProcessBeamChanceTick(BeamController beamController) { if (UnityEngine.Random.value < this.chanceActivate) { Projectile projectile2 = ((Gun)ETGMod.Databases.Items[341]).DefaultModule.projectiles[0]; GameObject gameObject = SpawnManager.SpawnProjectile(projectile2.gameObject, base.Owner.sprite.WorldCenter, Quaternion.Euler(0f, 0f, (base.Owner.CurrentGun == null) ? 0f : base.Owner.CurrentGun.CurrentAngle), true); Projectile component = gameObject.GetComponent <Projectile>(); if (component != null) { if (Owner.PlayerHasActiveSynergy("Bleeding Edge")) { GameActorHealthEffect bleed = (PickupObjectDatabase.GetById(204) as BulletStatusEffectItem).HealthModifierEffect; bleed.effectIdentifier = "Cel sawblade bleed"; bleed.resistanceType = EffectResistanceType.None; bleed.TintColor = new Color(201, 0, 0, .25f); component.healthEffect = bleed; component.PoisonApplyChance = 1; component.AppliesPoison = true; } component.Owner = base.Owner; component.Shooter = base.Owner.specRigidbody; component.baseData.speed = 25f; component.baseData.damage = 7f; } } }
private void PostProcessBeamChanceTick(BeamController beamController) { if (BoxOTools.BasicRandom(Owner.PlayerHasActiveSynergy("Mahoguny Sapling") ? 0.6f : 0.75f) && CoolAsIce) { ShootLeafShit(); } }
public void PostProcessBeam(BeamController beam) { if (this.TintBeams) { beam.AdjustPlayerBeamTint(Library.LightGreen, 5); } }
private void PostProcessBeam(BeamController beam) { if (Owner.CurrentGun.PickupObjectId == 10) { beam.AdjustPlayerBeamTint(gold, 1, 0f); } }
private void PostProcessBeamTick(BeamController beam, SpeculativeRigidbody spec, float tickRate) { GameActor gameActor = spec.gameActor; if (!gameActor) { return; } PlayerController player = this.Owner; if (player.CurrentGun.PickupObjectId == 40) { beam.projectile.baseData.damage *= 1.003f; } BulletStatusEffectItem frostbullets = PickupObjectDatabase.GetById(278).GetComponent <BulletStatusEffectItem>(); GameActorFreezeEffect frostfreeze = frostbullets.FreezeModifierEffect; if (player.CurrentGun.PickupObjectId == 464) { if (UnityEngine.Random.value < BraveMathCollege.SliceProbability(1f, tickRate)) { gameActor.ApplyEffect(frostfreeze, 0.015f, null); } } }
private void PostProcessBeam(BeamController sourceBeam) { if (sourceBeam.projectile) { this.PostProcessProjectile(sourceBeam.projectile, 1); } }
private void PostProcessBeam(BeamController beam) { if (beam.GetComponent <Projectile>()) { PostProcessProjectile(beam.GetComponent <Projectile>(), 1); } }
protected override void Update() { if (this.m_extantOrbital != null & Owner) { if (Owner.IsInCombat && extantBeam == null) { extantBeam = BeamToolbox.FreeFireBeamFromAnywhere(InfraredBeam, Owner, this.m_extantOrbital, Vector2.zero, false, 0, float.MaxValue); extantBeam.projectile.gameObject.AddComponent <AlwaysPointAwayFromPlayerBeam>(); if (Owner.PlayerHasActiveSynergy("Infraredder Guon Stone")) { extantBeam.projectile.baseData.damage *= 2; } if (Owner.PlayerHasActiveSynergy("Xenochrome")) { extantBeam.GetComponent <BasicBeamController>().penetration++; extantBeam.GetComponent <BasicBeamController>().reflections++; } } else if (!Owner.IsInCombat && extantBeam != null) { extantBeam.CeaseAttack(); extantBeam = null; } } else if (((m_extantOrbital == null) || (Owner == null)) && extantBeam != null) { extantBeam.CeaseAttack(); extantBeam = null; } base.Update(); }
private void PostProcessBeam(BeamController bem) { if (Challenges.CurrentChallenge == ChallengeType.INVISIBLEO) { bem.sprite.renderer.enabled = false; } }
private void PostProcessBeam(BeamController beam) { if (beam && beam.projectile) { beam.projectile.baseData.damage *= 2; } }
private void PostProcessBem(BeamController bem) { if (bem && bem.GetComponent <Projectile>()) { PostProcess(bem.GetComponent <Projectile>(), 0); } }
private void HandleBeamCollision(BeamController beamController) { if (CanAwaken) { StartCoroutine(BecomeMimic()); } }
private void PostProcessBeamChanceTick(BeamController beamController) { if (BoxOTools.BasicRandom(0.7f) && !CoolAsIce) { ShootPlagueShit(); } }
private void PostBeam(BeamController b) { if (b.projectile) { b.projectile.baseData.damage *= (1 + (0.05f * timesHit)); } }
private void PostProcessBeamChanceTick(BeamController beamController) { PlayerController player = base.Owner; float Chance = 0.9f; if (player.HasGun(7)) { Chance -= 0.05f; } if (BoxOTools.BasicRandom(Chance) && !CoolAsIce) { CoolAsIce = true; StartCoroutine(StartCooldown()); if (BoxOTools.BasicRandom(0.97f) && !SharkMFs) { SharkMFs = true; StartCoroutine(SharkCooldown()); player.HandleProjectile(25f, (player.HasGun(359)) ? 110 : 95f, 359, true, Vector2.zero, true); } else { player.HandleProjectile(20f, (player.HasGun(7)) ? 20 : 10, 7, false, Vector2.zero, true); } } }
protected override void PostProcessBeam(BeamController beam) { if (beam && beam.projectile && beam.projectile.ProjectilePlayerOwner()) { if (beam.projectile.ProjectilePlayerOwner().PlayerHasActiveSynergy("It won't actually show up on screen, but there's no hard limit on how long you can make synergy names.")) { beam.AdjustPlayerBeamTint(Color.green, 1); beam.projectile.fireEffect = StaticStatusEffects.greenFireEffect; } if (beam.projectile.ProjectilePlayerOwner().PlayerHasActiveSynergy("Re-Heat")) { beam.GetComponent <BasicBeamController>().TimeToStatus = 0.1f; beam.GetComponent <BasicBeamController>().statusEffectChance = 1f; } if (beam.projectile.ProjectilePlayerOwner().PlayerHasActiveSynergy("Don't Trust The Toaster")) { beam.projectile.baseData.speed *= 5; beam.projectile.UpdateSpeed(); beam.projectile.RuntimeUpdateScale(1.3f); beam.projectile.baseData.damage *= 2; EmmisiveBeams emission = beam.projectile.gameObject.GetOrAddComponent <EmmisiveBeams>(); } } base.PostProcessBeam(beam); }
private void PostProcessBeam(BeamController beam) { if (beam && beam.projectile) { Exploder.DoRadialKnockback(beam.Origin, 40, 7); if (beam.projectile && beam.projectile.GetAbsoluteRoom() != null) { List <AIActor> activeEnemies = beam.projectile.GetAbsoluteRoom().GetActiveEnemies(RoomHandler.ActiveEnemyType.All); if (activeEnemies != null && activeEnemies.Count > 0) { for (int i = 0; i < activeEnemies.Count; i++) { AIActor aiactor = activeEnemies[i]; if (aiactor.IsNormalEnemy && aiactor.behaviorSpeculator) { if (Vector2.Distance(beam.Origin, aiactor.sprite.WorldCenter) < 3) { if (UnityEngine.Random.value <= (0.25f * 2)) { aiactor.behaviorSpeculator.Stun(1); } } else if (Vector2.Distance(beam.Origin, aiactor.sprite.WorldCenter) < 6) { if (UnityEngine.Random.value <= (0.07f * 2)) { aiactor.behaviorSpeculator.Stun(1); } } } } } } } }
void LateUpdate() { RaycastHit hit; if (Physics.Raycast(this.transform.position, this.transform.forward, out hit, _RayLength)) { // If the hit object has a beam controller component... if (hit.transform.gameObject.GetComponent <BeamController> ()) { // Return if the hit object's children contrain a beam collision component. if (hit.transform.gameObject.GetComponentInChildren <BeamCollision>()) { return; } _HitBeamController = hit.transform.gameObject.GetComponent <BeamController> (); // Activate it's beam. _HitBeamController.ActivateBeam(); } } else { // If no tower is being hit then stop it. Stop(); } }
private IEnumerator HandleFiringBeam(BeamController beam) { float elapsed = 0f; yield return(null); while (m_Player && m_Player.IsFiring && this && m_AIActor.sprite && m_AIActor.healthHaver && !m_IsDisconnected) { elapsed += BraveTime.DeltaTime; if (!m_AIActor.TargetRigidbody) { m_AIActor.PlayerTarget = m_Player; } if (!m_MirrorGunToggle) { beam.CeaseAttack(); beam.DestroyBeam(); yield break; } if (m_AIActor.CurrentGun) { beam.Origin = m_AIActor.CurrentGun.sprite.WorldCenter; beam.LateUpdatePosition(m_AIActor.CurrentGun.sprite.WorldCenter); } else { beam.Origin = m_AIActor.specRigidbody.UnitCenter; beam.LateUpdatePosition(m_AIActor.specRigidbody.UnitCenter); } // beam.Origin = m_AIActor.specRigidbody.UnitCenter; // beam.LateUpdatePosition(m_AIActor.specRigidbody.UnitCenter); if (m_Player) { float angle = ((m_AIActor.TargetRigidbody.GetUnitCenter(ColliderType.HitBox) - m_AIActor.specRigidbody.UnitCenter).ToAngle()); if (m_AIActor.CurrentGun) { angle = ((m_AIActor.TargetRigidbody.GetUnitCenter(ColliderType.HitBox) - m_AIActor.CurrentGun.sprite.WorldCenter).ToAngle()); } if (m_InvertSweepAngle) { angle = (angle + m_BeamSweepAngle); } else { angle = (angle - m_BeamSweepAngle); } beam.Direction = BraveMathCollege.DegreesToVector(angle, 1); if (m_Player.IsDodgeRolling) { beam.CeaseAttack(); beam.DestroyBeam(); yield break; } } yield return(null); } beam.CeaseAttack(); beam.DestroyBeam(); yield break; }
private void PostProcessBeam(BeamController beam) { if (beam.GetComponent <BeamSplittingModifier>()) { ETGModConsole.Log("Split found"); beam.GetComponent <BeamSplittingModifier>().amtToSplitTo++; } }
private void ContinueFiringBeam(BeamController beam, PlayerController source, float angle, Vector2?overrideSpawnPoint) { Vector2 vector = (overrideSpawnPoint == null) ? source.CenterPosition : overrideSpawnPoint.Value; beam.Direction = BraveMathCollege.DegreesToVector(angle, 1f); beam.Origin = vector; beam.LateUpdatePosition(vector); }
private void ContinueFiringBeam(BeamController beam, float angle, Vector2 overrideSpawnPoint) { Vector2 vector = overrideSpawnPoint; beam.Direction = BraveMathCollege.DegreesToVector(angle, 1f); beam.Origin = vector; beam.LateUpdatePosition(vector); }
public static BeamController FreeFireBeamFromAnywhere(Projectile projectileToSpawn, PlayerController owner, GameObject otherShooter, Vector2 fixedPosition, bool usesFixedPosition, float targetAngle, float duration, bool skipChargeTime = false, bool followDirOnProjectile = false, float angleOffsetFromProjectileAngle = 0) { Vector2 sourcePos = Vector2.zero; SpeculativeRigidbody rigidBod = null; if (usesFixedPosition) { sourcePos = fixedPosition; } else { if (otherShooter.GetComponent <SpeculativeRigidbody>()) { rigidBod = otherShooter.GetComponent <SpeculativeRigidbody>(); } else if (otherShooter.GetComponentInChildren <SpeculativeRigidbody>()) { rigidBod = otherShooter.GetComponentInChildren <SpeculativeRigidbody>(); } if (rigidBod) { sourcePos = rigidBod.UnitCenter; } } if (sourcePos != Vector2.zero) { GameObject gameObject = SpawnManager.SpawnProjectile(projectileToSpawn.gameObject, sourcePos, Quaternion.identity, true); Projectile component = gameObject.GetComponent <Projectile>(); component.Owner = owner; BeamController component2 = gameObject.GetComponent <BeamController>(); if (skipChargeTime) { component2.chargeDelay = 0f; component2.usesChargeDelay = false; } component2.Owner = owner; component2.HitsPlayers = false; component2.HitsEnemies = true; Vector3 vector = BraveMathCollege.DegreesToVector(targetAngle, 1f); if (otherShooter != null && !usesFixedPosition && otherShooter.GetComponent <Projectile>() && followDirOnProjectile) { component2.Direction = (otherShooter.GetComponent <Projectile>().Direction.ToAngle() + angleOffsetFromProjectileAngle).DegreeToVector2(); } else { component2.Direction = vector; } component2.Origin = sourcePos; GameManager.Instance.Dungeon.StartCoroutine(BeamToolbox.HandleFreeFiringBeam(component2, rigidBod, fixedPosition, usesFixedPosition, targetAngle, duration, followDirOnProjectile, angleOffsetFromProjectileAngle)); return(component2); } else { ETGModConsole.Log("ERROR IN BEAM FREEFIRE CODE. SOURCEPOS WAS NULL, EITHER DUE TO INVALID FIXEDPOS OR SOURCE GAMEOBJECT."); return(null); } }
private void HandleDodgedBeam(BeamController beam, PlayerController player) { if (Ratt) { Ratt = false; StartCoroutine(Rat()); ShootRandomProjectile(player); } }
private IEnumerator DoLaserAttack() { isAttacking = true; this.aiAnimator.PlayUntilFinished("attack", false, null, -1f, false); yield return(new WaitForSeconds(0.5f)); //Start Firing Lasers this.aiActor.MovementSpeed *= 0.0001f; this.aiAnimator.PlayForDuration("contattack", 1); Projectile beamToFire = LaserBullets.SimpleRedBeam.projectile; if (UnityEngine.Random.value <= 0.5f) { int angle = 135; for (int i = 0; i < 4; i++) { BeamController beam = BeamToolbox.FreeFireBeamFromAnywhere(beamToFire, this.m_owner, this.gameObject, Vector2.zero, false, angle, 1, true); Projectile beamprojcomponent = beam.GetComponent <Projectile>(); beamprojcomponent.baseData.damage *= 3f; if (PassiveItem.IsFlagSetForCharacter(this.Owner, typeof(BattleStandardItem))) { beamprojcomponent.baseData.damage *= BattleStandardItem.BattleStandardCompanionDamageMultiplier; } if (this.Owner.CurrentGun && this.Owner.CurrentGun.LuteCompanionBuffActive) { beamprojcomponent.baseData.damage *= 2; } angle -= 90; } } else { int angle = 180; for (int i = 0; i < 4; i++) { BeamController beam = BeamToolbox.FreeFireBeamFromAnywhere(beamToFire, this.m_owner, this.gameObject, Vector2.zero, false, angle, 1, true); Projectile beamprojcomponent = beam.GetComponent <Projectile>(); beamprojcomponent.baseData.damage *= 3f; if (PassiveItem.IsFlagSetForCharacter(this.Owner, typeof(BattleStandardItem))) { beamprojcomponent.baseData.damage *= BattleStandardItem.BattleStandardCompanionDamageMultiplier; } if (this.Owner.CurrentGun && this.Owner.CurrentGun.LuteCompanionBuffActive) { beamprojcomponent.baseData.damage *= 2; } angle -= 90; } } yield return(new WaitForSeconds(1f)); //Stop shit isAttacking = false; timer = 1.5f; this.aiActor.MovementSpeed /= 0.0001f; yield break; }
private void PostProcessBeamChanceTick(BeamController beam) { if (UnityEngine.Random.value > this.ActivationChance) { return; } beam.ChanceBasedHomingRadius += this.homingRadius; beam.ChanceBasedHomingAngularVelocity += this.homingAngularVelocity; }
// Token: 0x060002BD RID: 701 RVA: 0x000163CC File Offset: 0x000145CC public void PostProcessBeam(BeamController beam) { bool tintBeams = this.TintBeams; if (tintBeams) { beam.AdjustPlayerBeamTint(this.TintColor.WithAlpha(this.TintColor.a / 2f), this.TintPriority, 0f); } }
public override DebrisObject Drop(PlayerController player) { if (extantBeam) { extantBeam.CeaseAttack(); extantBeam = null; } return(base.Drop(player)); }
protected override void OnDestroy() { if (extantBeam) { extantBeam.CeaseAttack(); extantBeam = null; } base.OnDestroy(); }