// Token: 0x0600107D RID: 4221 public void UpdateDashing() { PlatformMovement platformMovement = this.m_sein.PlatformBehaviour.PlatformMovement; UI.Cameras.Current.ChaseTarget.CameraSpeedMultiplier.x = Mathf.Clamp01(this.m_stateCurrentTime / this.DashTime); float velocity = this.DashSpeedOverTime.Evaluate(this.m_stateCurrentTime); velocity *= 1.0f + .2f * RandomizerBonus.Velocity(); if ((RandomizerBonus.GravitySuit() && Characters.Sein.Abilities.Swimming.IsSwimming)) { Vector2 newSpeed = new Vector2(velocity, 0f); platformMovement.LocalSpeed = newSpeed.Rotate(this.m_sein.Abilities.Swimming.SwimAngle); } else { platformMovement.LocalSpeedX = (float)((!this.m_faceLeft) ? 1 : -1) * velocity; } this.m_sein.FaceLeft = this.m_faceLeft; if (this.AgainstWall()) { platformMovement.LocalSpeed = Vector2.zero; } this.SpriteRotation = Mathf.Lerp(this.SpriteRotation, this.m_sein.PlatformBehaviour.PlatformMovement.GroundAngle, 0.2f); if (this.m_sein.IsOnGround) { if (Core.Input.Horizontal > 0f && this.m_faceLeft) { this.StopDashing(); } if (Core.Input.Horizontal < 0f && !this.m_faceLeft) { this.StopDashing(); } } if (this.m_stateCurrentTime > this.DashTime) { if (platformMovement.IsOnGround && Core.Input.Horizontal == 0f) { platformMovement.LocalSpeedX = 0f; } this.ChangeState(SeinDashAttack.State.Normal); } if (Core.Input.Jump.OnPressed || Core.Input.Glide.OnPressed) { platformMovement.LocalSpeedX = ((!this.m_faceLeft) ? this.OffGroundSpeed : (-this.OffGroundSpeed)); this.m_sein.PlatformBehaviour.AirNoDeceleration.NoDeceleration = this.m_allowNoDecelerationForThisDash; this.m_stopAnimation = true; this.ChangeState(SeinDashAttack.State.Normal); this.m_timeWhenDashJumpHappened = Time.time; } if (this.RaycastTest() && this.m_isOnGround) { this.StickOntoGround(); return; } this.m_isOnGround = false; }
// Token: 0x0600107F RID: 4223 public void UpdateChargeDashing() { PlatformMovement platformMovement = this.m_sein.PlatformBehaviour.PlatformMovement; this.AttackNearbyEnemies(); this.m_sein.Mortality.DamageReciever.MakeInvincibleToEnemies(1f); float velocity = this.ChargeDashSpeedOverTime.Evaluate(this.m_stateCurrentTime); velocity *= 1.0f + .2f * RandomizerBonus.Velocity(); if (this.m_chargeDashAtTarget) { platformMovement.LocalSpeed = this.m_chargeDashDirection * velocity; } else { platformMovement.LocalSpeedX = (float)((!this.m_faceLeft) ? 1 : -1) * velocity; } if (this.m_hasHitAttackable) { platformMovement.LocalSpeed *= 0.33f; } this.m_sein.FaceLeft = this.m_faceLeft; this.SpriteRotation = Mathf.Lerp(this.SpriteRotation, this.m_sein.PlatformBehaviour.PlatformMovement.GroundAngle, 0.3f); if (this.AgainstWall()) { platformMovement.LocalSpeed = Vector2.zero; } if (this.m_sein.IsOnGround) { if (Core.Input.Horizontal > 0f && this.m_faceLeft) { this.StopDashing(); } if (Core.Input.Horizontal < 0f && !this.m_faceLeft) { this.StopDashing(); } } if (this.m_stateCurrentTime > this.ChargeDashTime) { this.ChangeState(SeinDashAttack.State.Normal); } if (Core.Input.Jump.OnPressed || Core.Input.Glide.OnPressed) { platformMovement.LocalSpeedX = ((!this.m_faceLeft) ? this.OffGroundSpeed : (-this.OffGroundSpeed)); this.m_sein.PlatformBehaviour.AirNoDeceleration.NoDeceleration = true; this.m_stopAnimation = true; this.ChangeState(SeinDashAttack.State.Normal); } if (this.RaycastTest() && this.m_isOnGround && !this.m_chargeDashAtTarget) { this.StickOntoGround(); return; } this.m_isOnGround = false; }
// Token: 0x06000FA9 RID: 4009 RVA: 0x0005F470 File Offset: 0x0005D670 public void JumpOffTarget(float angle) { if (GameController.Instance) { GameController.Instance.ResumeGameplay(); } Vector2 vector = Quaternion.Euler(0f, 0f, angle) * Vector2.up; Vector2 vector2 = vector * (this.BashVelocity + this.BashVelocity * .10f * RandomizerBonus.Velocity()); this.PlatformMovement.WorldSpeed = vector2; this.AirNoDeceleration.NoDeceleration = true; this.Sein.ResetAirLimits(); this.m_frictionTimeRemaining = this.FrictionDuration; this.ApplyFrictionToSpeed.SpeedToSlowDown = this.PlatformMovement.LocalSpeed; this.MovePlayerToTargetAndCreateEffect(); Component component = this.Target as Component; Vector3 position = (!InstantiateUtility.IsDestroyed(component)) ? component.transform.position : this.Sein.Position; GameObject gameObject = (GameObject)InstantiateUtility.Instantiate(this.BashOffFx); gameObject.transform.position = position; Vector3 localScale = gameObject.transform.localScale; localScale.x = vector2.magnitude * 0.1f; gameObject.transform.localScale = localScale; gameObject.transform.localRotation = Quaternion.Euler(0f, 0f, MoonMath.Angle.AngleFromVector(vector)); if (this.BashReleaseEffect) { ((GameObject)InstantiateUtility.Instantiate(this.BashReleaseEffect)).transform.position = position; } SeinBashAttack.OnBashAttackEvent(vector2); this.m_timeRemainingTillNextBash = this.DelayTillNextBash; CharacterAnimationSystem.CharacterAnimationState characterAnimationState = this.Sein.PlatformBehaviour.Visuals.Animation.Play(this.BashJumpAnimation, 10, new Func <bool>(this.ShouldBashJumpAnimationKeepPlaying)); characterAnimationState.OnStartPlaying = new Action(this.OnAnimationStart); characterAnimationState.OnStopPlaying = new Action(this.OnAnimationEnd); this.Sein.PlatformBehaviour.Visuals.SpriteMirror.FaceLeft = (vector2.x > 0f); if (this.Sein.Abilities.Swimming) { this.Sein.Abilities.Swimming.OnBash(angle); } }
// Token: 0x06001242 RID: 4674 RVA: 0x00069768 File Offset: 0x00067968 public void UpdateJumpingState() { float adjustedDrag = this.HorizontalDrag - this.HorizontalDrag * .10f * RandomizerBonus.Velocity(); this.PlatformMovement.LocalSpeedX = this.PlatformMovement.LocalSpeedX * (1f - adjustedDrag); this.PlatformMovement.LocalSpeedY = this.PlatformMovement.LocalSpeedY * (1f - adjustedDrag); if (this.m_stateCurrentTime > (this.AntiGravityDuration + this.AntiGravityDuration * .10f * RandomizerBonus.Velocity())) { this.ChangeState(SeinWallChargeJump.State.Normal); return; } this.m_sein.PlatformBehaviour.Visuals.SpriteRotater.CenterAngle = this.m_angleDirection; this.m_sein.PlatformBehaviour.Visuals.SpriteRotater.UpdateRotation(); for (int i = 0; i < Targets.Attackables.Count; i++) { IAttackable attackable = Targets.Attackables[i]; if (!this.m_attackablesIgnore.Contains(attackable)) { if (attackable.CanBeStomped()) { Vector3 vector = attackable.Position - this.m_sein.PlatformBehaviour.PlatformMovement.Position; float magnitude = vector.magnitude; if (magnitude < 4f && Vector2.Dot(vector.normalized, this.PlatformMovement.LocalSpeed.normalized) > 0f) { this.m_attackablesIgnore.Add(attackable); Damage damage = new Damage((float)this.Damage, this.PlatformMovement.WorldSpeed.normalized * 3f, this.m_sein.Position, DamageType.Stomp, base.gameObject); damage.DealToComponents(((Component)attackable).gameObject); if (this.ExplosionEffect) { InstantiateUtility.Instantiate(this.ExplosionEffect, Vector3.Lerp(base.transform.position, attackable.Position, 0.5f), Quaternion.identity); } break; } } } } }
// Token: 0x0600124B RID: 4683 RVA: 0x00069BA4 File Offset: 0x00067DA4 public void PerformChargeJump() { float chargedJumpStrength = this.ChargedJumpStrength + this.ChargedJumpStrength * 0.08f * (float)(RandomizerBonus.Velocity() + RandomizerBonus.Jumpgrades()); this.PlatformMovement.LocalSpeedX = chargedJumpStrength * this.Arrow.transform.right.x; this.PlatformMovement.LocalSpeedY = chargedJumpStrength * this.Arrow.transform.right.y; Vector2 normalized = this.m_sein.PlatformBehaviour.PlatformMovement.LocalSpeed.normalized; this.m_angleDirection = Mathf.Atan2(normalized.y, Mathf.Abs(normalized.x)) * 57.29578f * (float)((normalized.x >= 0f) ? 1 : -1); Sound.Play(this.JumpSound.GetSound(null), this.m_sein.PlatformBehaviour.PlatformMovement.Position, null); this.m_sein.Mortality.DamageReciever.MakeInvincibleToEnemies(this.AntiGravityDuration); this.ChangeState(SeinWallChargeJump.State.Jumping); this.m_sein.FaceLeft = (this.PlatformMovement.LocalSpeedX < 0f); CharacterAnimationSystem.CharacterAnimationState characterAnimationState = this.m_sein.PlatformBehaviour.Visuals.Animation.Play(this.JumpAnimation, 10, new Func <bool>(this.ShouldChargeJumpAnimationKeepPlaying)); characterAnimationState.OnStartPlaying = new Action(this.OnAnimationStart); characterAnimationState.OnStopPlaying = new Action(this.OnAnimationEnd); this.m_sein.PlatformBehaviour.Visuals.SpriteRotater.BeginTiltUpDownInAir(1.5f); if (this.m_sein.Abilities.Glide) { this.m_sein.Abilities.Glide.NeedsRightTriggerReleased = true; } JumpFlipPlatform.OnSeinChargeJumpEvent(); this.m_sein.Abilities.ChargeJumpCharging.EndCharge(); }
// Token: 0x06000FFE RID: 4094 RVA: 0x00060A40 File Offset: 0x0005EC40 public void PerformChargeJump() { float chargedJumpStrength = this.ChargedJumpStrength + this.ChargedJumpStrength * .10f * RandomizerBonus.Velocity(); this.PlatformMovement.LocalSpeedY = chargedJumpStrength; this.OnJumpEvent(chargedJumpStrength); Sound.Play(this.JumpSound.GetSound(null), this.Sein.PlatformBehaviour.PlatformMovement.Position, null); this.UpwardsDeceleration.Deceleration = this.Deceleration; this.Sein.Mortality.DamageReciever.MakeInvincibleToEnemies(this.JumpDuration); this.ChangeState(SeinChargeJump.State.Jumping); this.Sein.PlatformBehaviour.Visuals.Animation.Play(this.JumpAnimation, 10, new Func <bool>(this.ShouldChargeJumpAnimationKeepPlaying)); this.Sein.PlatformBehaviour.Visuals.SpriteRotater.BeginTiltLeftRightInAir(1.5f); if (this.Sein.PlatformBehaviour.JumpSustain) { this.Sein.PlatformBehaviour.JumpSustain.SetAmountOfSpeedToLose(this.PlatformMovement.LocalSpeedY, 1f); } this.Sein.Abilities.ChargeJumpCharging.EndCharge(); JumpFlipPlatform.OnSeinChargeJumpEvent(); }
// Token: 0x06001228 RID: 4648 RVA: 0x000692D0 File Offset: 0x000674D0 public void UpdateStompDownState() { if (Core.Input.Jump.OnPressed) { this.EndStomp(); return; } if (this.Logic.CurrentStateTime > this.StompDownDuration && !Core.Input.Down.Pressed) { this.EndStomp(); return; } this.PlatformMovement.LocalSpeed = new Vector2(0f, -(this.StompSpeed + this.StompSpeed * 0.2f * RandomizerBonus.Velocity())); this.Sein.Mortality.DamageReciever.MakeInvincibleToEnemies(0.2f); if (this.Sein.Controller.IsSwimming) { this.EndStomp(); } for (int i = 0; i < Targets.Attackables.Count; i++) { IAttackable attackable = Targets.Attackables[i]; if (!attackable.IsDead()) { if (!InstantiateUtility.IsDestroyed(attackable as Component)) { if (attackable.IsStompBouncable()) { Vector3 a = Characters.Sein.Position + Vector3.down; if (Vector3.Distance(a, attackable.Position) < 1.5f && this.Logic.CurrentState == this.State.StompDown) { GameObject gameObject = ((Component)attackable).gameObject; Damage damage = new Damage(this.StompDamage, Vector3.down * 3f, Characters.Sein.Position, DamageType.Stomp, base.gameObject); damage.DealToComponents(gameObject); if (attackable.IsDead()) { return; } this.EndStomp(); this.PlatformMovement.LocalSpeedY = 17f; this.Sein.PlatformBehaviour.UpwardsDeceleration.Deceleration = 20f; this.Sein.Animation.Play(this.StompBounceAnimation, 111, null); this.Sein.ResetAirLimits(); this.StompLandSound.Play(); this.DoBlastRadius(attackable); this.DoStompBlastEffect(); return; } } } } } }
// Token: 0x0600376D RID: 14189 RVA: 0x000E2764 File Offset: 0x000E0964 public static void UpgradeID(int ID) { bool flag = ID < 0; if (flag) { ID = -ID; } if (RandomizerBonusSkill.BonusSkillNames.ContainsKey(ID)) { RandomizerBonusSkill.FoundBonusSkill(ID); return; } if (ID >= 200 && ID < 260) { int abilityId = (ID - 200) % 30; Ability ability = abilities[abilityId]; if (ID < 230) { ability.Found(); } else { ability.Lost(); } return; } switch (ID) { case 0: if (!flag) { Characters.Sein.Mortality.Health.SetAmount((float)(Characters.Sein.Mortality.Health.MaxHealth + 20)); RandomizerSwitch.PickupMessage("Mega Health"); return; } break; case 1: if (!flag) { Characters.Sein.Energy.SetCurrent(Characters.Sein.Energy.Max + 5f); RandomizerSwitch.PickupMessage("Mega Energy"); return; } break; case 2: Randomizer.returnToStart(); RandomizerSwitch.PickupMessage("Go Home!"); return; case 20: break; case 6: if (!flag) { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); RandomizerSwitch.PickupMessage("Attack Upgrade (" + RandomizerBonus.SpiritFlameLevel().ToString() + ")"); return; } if (RandomizerBonus.SpiritFlameLevel() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); RandomizerSwitch.PickupMessage("Attack Upgrade (" + RandomizerBonus.SpiritFlameLevel().ToString() + ")"); return; } break; case 8: RandomizerSwitch.PickupMessage("Explosion Power Upgrade"); if (!RandomizerBonus.ExplosionPower()) { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); return; } break; case 9: if (!flag) { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); } else if (Characters.Sein.Inventory.GetRandomizerItem(ID) > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); } if (Characters.Sein.Inventory.GetRandomizerItem(ID) == 1) { RandomizerSwitch.PickupMessage("Spirit Light Efficiency"); } else { RandomizerSwitch.PickupMessage("Spirit Light Efficiency (" + Characters.Sein.Inventory.GetRandomizerItem(ID).ToString() + ")"); } break; case 10: RandomizerSwitch.PickupMessage("Extra Air Dash"); if (!RandomizerBonus.DoubleAirDash()) { Characters.Sein.Inventory.SetRandomizerItem(ID, 1); return; } break; case 11: RandomizerSwitch.PickupMessage("Charge Dash Efficiency"); if (!RandomizerBonus.ChargeDashEfficiency()) { Characters.Sein.Inventory.SetRandomizerItem(ID, 1); return; } break; case 12: if (!flag) { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); if (RandomizerBonus.DoubleJumpUpgrades() == 1) { RandomizerSwitch.PickupMessage("Extra Double Jump"); return; } RandomizerSwitch.PickupMessage("Extra Double Jump (" + RandomizerBonus.DoubleJumpUpgrades().ToString() + ")"); return; } else if (RandomizerBonus.DoubleJumpUpgrades() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); if (RandomizerBonus.DoubleJumpUpgrades() == 1) { RandomizerSwitch.PickupMessage("Extra Double Jump"); return; } RandomizerSwitch.PickupMessage("Extra Double Jump (" + RandomizerBonus.DoubleJumpUpgrades().ToString() + ")"); return; } break; case 13: if (!flag) { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); RandomizerSwitch.PickupMessage("Health Regeneration (" + RandomizerBonus.HealthRegeneration().ToString() + ")"); return; } if (RandomizerBonus.HealthRegeneration() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); RandomizerSwitch.PickupMessage("Health Regeneration (" + RandomizerBonus.HealthRegeneration().ToString() + ")"); return; } break; case 15: if (!flag) { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); RandomizerSwitch.PickupMessage("Energy Regeneration (" + RandomizerBonus.EnergyRegeneration().ToString() + ")"); return; } if (RandomizerBonus.EnergyRegeneration() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); RandomizerSwitch.PickupMessage("Energy Regeneration (" + RandomizerBonus.EnergyRegeneration().ToString() + ")"); return; } break; case 17: if (flag) { if (RandomizerBonus.WaterVeinShards() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); RandomizerSwitch.PickupMessage("*Water Vein Shard (" + RandomizerBonus.WaterVeinShards().ToString() + "/3)*"); } } else if (RandomizerBonus.WaterVeinShards() >= 3) { RandomizerSwitch.PickupMessage("*Water Vein Shard (extra)*"); } else { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); RandomizerSwitch.PickupMessage("*Water Vein Shard (" + RandomizerBonus.WaterVeinShards().ToString() + "/3)*", 300); } Keys.GinsoTree = (RandomizerBonus.WaterVeinShards() >= 3); if (Keys.GinsoTree) { RandomizerStatsManager.FoundEvent(0); } return; case 19: if (flag) { if (RandomizerBonus.GumonSealShards() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); RandomizerSwitch.PickupMessage("#Gumon Seal Shard (" + RandomizerBonus.GumonSealShards().ToString() + "/3)#"); } } else if (RandomizerBonus.GumonSealShards() >= 3) { RandomizerSwitch.PickupMessage("#Gumon Seal Shard (extra)#"); } else { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); RandomizerSwitch.PickupMessage("#Gumon Seal Shard (" + RandomizerBonus.GumonSealShards().ToString() + "/3)#", 300); } Keys.ForlornRuins = (RandomizerBonus.GumonSealShards() >= 3); if (Keys.ForlornRuins) { RandomizerStatsManager.FoundEvent(2); } return; case 21: if (flag) { if (RandomizerBonus.SunstoneShards() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); RandomizerSwitch.PickupMessage("@Sunstone Shard (" + RandomizerBonus.SunstoneShards().ToString() + "/3)@"); } } else if (RandomizerBonus.SunstoneShards() >= 3) { RandomizerSwitch.PickupMessage("@Sunstone Shard (extra)@"); } else { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); RandomizerSwitch.PickupMessage("@Sunstone Shard (" + RandomizerBonus.SunstoneShards().ToString() + "/3)@", 300); } Keys.MountHoru = (RandomizerBonus.SunstoneShards() >= 3); if (Keys.MountHoru) { RandomizerStatsManager.FoundEvent(4); } return; case 28: if (!flag) { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); } else if (RandomizerBonus.WarmthFrags() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); } if (Randomizer.fragKeyFinish < RandomizerBonus.WarmthFrags()) { RandomizerSwitch.PickupMessage("@Warmth Fragment (extra)@", 300); return; } RandomizerSwitch.PickupMessage(string.Concat(new object[] { "@Warmth Fragment (", RandomizerBonus.WarmthFrags().ToString(), "/", Randomizer.fragKeyFinish, ")@" }), 300); break; case 29: return; case 30: if (!flag) { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); RandomizerSwitch.PickupMessage("Bleeding x" + RandomizerBonus.Bleeding().ToString()); return; } if (RandomizerBonus.Bleeding() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); RandomizerSwitch.PickupMessage("Bleeding x" + RandomizerBonus.Bleeding().ToString()); return; } break; case 31: if (!flag) { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); } else if (RandomizerBonus.Lifesteal() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); } if (Lifesteal() == 1) { RandomizerSwitch.PickupMessage("Health Leech"); } else { RandomizerSwitch.PickupMessage("Health Leech x" + RandomizerBonus.Lifesteal().ToString()); } break; case 32: if (!flag) { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); } else if (RandomizerBonus.Manavamp() > 0) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); } if (Manavamp() == 1) { RandomizerSwitch.PickupMessage("Energy Leech"); } else { RandomizerSwitch.PickupMessage("Energy Leech x" + RandomizerBonus.Manavamp().ToString()); } break; case 33: if (!flag) { int v = Characters.Sein.Inventory.IncRandomizerItem(ID, 1); RandomizerSwitch.PickupMessage("Skill Velocity Upgrade x" + v.ToString()); if (Characters.Sein.Inventory.GetRandomizerItem(108) == 0) { RandomizerBonusSkill.FoundBonusSkill(108); } return; } if (RandomizerBonus.Velocity() > 0) { int v = Characters.Sein.Inventory.IncRandomizerItem(ID, -1); RandomizerSwitch.PickupMessage("Skill Velocity Upgrade x" + v.ToString()); return; } break; case 34: Characters.Sein.Inventory.SetRandomizerItem(34, 1); RandomizerSwitch.PickupMessage("Return to start disabled!"); break; case 35: Characters.Sein.Inventory.SetRandomizerItem(34, 0); RandomizerSwitch.PickupMessage("Return to start enabled!"); break; case 36: RandomizerSwitch.PickupMessage("Underwater Skill Usage"); Characters.Sein.Inventory.SetRandomizerItem(36, 1); break; case 37: if (!flag) { int v = Characters.Sein.Inventory.IncRandomizerItem(ID, 1); RandomizerSwitch.PickupMessage("Jump Upgrade x" + v.ToString()); if (Characters.Sein.Inventory.GetRandomizerItem(108) == 0) { RandomizerBonusSkill.FoundBonusSkill(108); } return; } if (RandomizerBonus.Jumpgrades() > 0) { int v = Characters.Sein.Inventory.IncRandomizerItem(ID, -1); RandomizerSwitch.PickupMessage("Jump Upgrade x" + v.ToString()); return; } break; case 40: if (!Characters.Sein || flag) { return; } RandomizerSwitch.PickupMessage("@Wall Jump Lost!!@", 240); Characters.Sein.PlayerAbilities.WallJump.HasAbility = false; Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); return; case 41: if (!Characters.Sein || flag) { return; } RandomizerSwitch.PickupMessage("@ChargeFlame Lost!!@", 240); Characters.Sein.PlayerAbilities.ChargeFlame.HasAbility = false; Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); return; case 42: if (!Characters.Sein || flag) { return; } RandomizerSwitch.PickupMessage("@DoubleJump Lost!!@", 240); Characters.Sein.PlayerAbilities.DoubleJump.HasAbility = false; Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); return; case 43: if (!Characters.Sein || flag) { return; } RandomizerSwitch.PickupMessage("@Bash Lost!!@", 240); Characters.Sein.PlayerAbilities.Bash.HasAbility = false; Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); return; case 44: if (!Characters.Sein || flag) { return; } RandomizerSwitch.PickupMessage("@Stomp Lost!!@", 240); Characters.Sein.PlayerAbilities.Stomp.HasAbility = false; Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); return; case 45: if (!Characters.Sein || flag) { return; } RandomizerSwitch.PickupMessage("@Glide Lost!!@", 240); Characters.Sein.PlayerAbilities.Glide.HasAbility = false; Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); return; case 46: if (!Characters.Sein || flag) { return; } RandomizerSwitch.PickupMessage("@Climb Lost!!@", 240); Characters.Sein.PlayerAbilities.Climb.HasAbility = false; Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); return; case 47: if (!Characters.Sein || flag) { return; } RandomizerSwitch.PickupMessage("@Charge Jump Lost!!@", 240); Characters.Sein.PlayerAbilities.ChargeJump.HasAbility = false; Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); return; case 48: if (!Characters.Sein || flag) { return; } RandomizerSwitch.PickupMessage("@Dash Lost!!@", 240); Characters.Sein.PlayerAbilities.Dash.HasAbility = false; Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); return; case 49: if (!Characters.Sein || flag) { return; } RandomizerSwitch.PickupMessage("@Grenade Lost!!@", 240); Characters.Sein.PlayerAbilities.Grenade.HasAbility = false; Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities(); return; case 81: if (Characters.Sein.Inventory.GetRandomizerItem(ID) > 0) { return; } Characters.Sein.Inventory.IncRandomizerItem(ID, 1); string s_color = ""; string g_color = ""; if (Characters.Sein.PlayerAbilities.HasAbility(AbilityType.Stomp)) { s_color = "$"; } if (Characters.Sein.PlayerAbilities.HasAbility(AbilityType.Grenade)) { g_color = "$"; } RandomizerSwitch.PickupMessage(s_color + "Stomp: " + Randomizer.StompZone + s_color + g_color + " Grenade: " + Randomizer.GrenadeZone + g_color, 480); break; default: if (flag) { Characters.Sein.Inventory.IncRandomizerItem(ID, -1); } else { Characters.Sein.Inventory.IncRandomizerItem(ID, 1); } return; } }
// Token: 0x06000FAB RID: 4011 RVA: 0x0005F690 File Offset: 0x0005D890 public void AttackTarget() { Component component = this.Target as Component; if (!InstantiateUtility.IsDestroyed(component)) { Vector2 force = -MoonMath.Angle.VectorFromAngle(this.m_bashAngle + 90f) * (4f + (float)RandomizerBonus.Velocity()); new Damage(RandomizerBonusSkill.AbilityDamage((!this.Sein.PlayerAbilities.BashBuff.HasAbility) ? this.Damage : this.UpgradedDamage), force, Characters.Sein.Position, DamageType.Bash, base.gameObject).DealToComponents(component.gameObject); EntityTargetting component2 = component.gameObject.GetComponent <EntityTargetting>(); if (component2 && component2.Entity is Enemy) { SeinBashAttack.OnBashEnemy(component2); } if (this.Sein.PlayerAbilities.BashBuff.HasAbility) { this.BeginBashThroughEnemies(); } } }