// Token: 0x060029AC RID: 10668 RVA: 0x000AF93C File Offset: 0x000ADB3C public override void FixedUpdate() { base.FixedUpdate(); if (base.fixedAge >= this.duration / 2f && base.isAuthority && !this.hasInputJump) { this.hasInputJump = true; base.characterMotor.moveDirection = base.inputBank.moveVector; GenericCharacterMain.ApplyJumpVelocity(base.characterMotor, base.characterBody, 1f, 1f); } if (base.fixedAge >= this.duration && base.isAuthority) { this.outer.SetNextStateToMain(); } }
// Token: 0x06002A23 RID: 10787 RVA: 0x000B12C8 File Offset: 0x000AF4C8 public virtual void ProcessJump() { if (this.hasCharacterMotor) { bool flag = false; bool flag2 = false; if (this.jumpInputReceived && base.characterBody && base.characterMotor.jumpCount < base.characterBody.maxJumpCount) { int itemCount = base.characterBody.inventory.GetItemCount(ItemIndex.JumpBoost); float horizontalBonus = 1f; float verticalBonus = 1f; if (base.characterMotor.jumpCount >= base.characterBody.baseJumpCount) { flag = true; horizontalBonus = 1.5f; verticalBonus = 1.5f; } else if ((float)itemCount > 0f && base.characterBody.isSprinting) { flag2 = true; float num = Mathf.Sqrt(10f * (float)itemCount / (base.characterBody.acceleration * base.characterMotor.airControl)); float num2 = base.characterBody.moveSpeed / (base.characterBody.acceleration * base.characterMotor.airControl); horizontalBonus = (num + num2) / num2; } GenericCharacterMain.ApplyJumpVelocity(base.characterMotor, base.characterBody, horizontalBonus, verticalBonus); if (this.hasModelAnimator) { int layerIndex = base.modelAnimator.GetLayerIndex("Body"); if (layerIndex >= 0) { if (base.characterMotor.jumpCount == 0 || base.characterBody.baseJumpCount == 1) { base.modelAnimator.CrossFade("Jump", this.smoothingParameters.intoJumpTransitionTime, layerIndex); } else { base.modelAnimator.CrossFade("BonusJump", this.smoothingParameters.intoJumpTransitionTime, layerIndex); } } } if (flag) { EffectManager.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/FeatherEffect"), new EffectData { origin = base.characterBody.footPosition }, true); } else if (base.characterMotor.jumpCount > 0) { EffectManager.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/ImpactEffects/CharacterLandImpact"), new EffectData { origin = base.characterBody.footPosition, scale = base.characterBody.radius }, true); } if (flag2) { EffectManager.SpawnEffect(Resources.Load <GameObject>("Prefabs/Effects/BoostJumpEffect"), new EffectData { origin = base.characterBody.footPosition, rotation = Util.QuaternionSafeLookRotation(base.characterMotor.velocity) }, true); } base.characterMotor.jumpCount++; } } }