private static void Prefix(MechJumpSequence __instance) { Mod.ActivationLog.Debug?.Write($"MJS:OC entered for actor: {CombatantUtils.Label(__instance.OwningMech)}"); // Check for visibility to any enemies if (!__instance.owningActor.Combat.TurnDirector.IsInterleaved) { Mod.ActivationLog.Info?.Write("MJS:OC is not interleaved and no enemies - autobracing "); __instance.owningActor.AutoBrace = true; } Mod.Log.Trace?.Write($"JUMP -- ABILITY_CONSUMES_FIRING: {__instance.AbilityConsumesFiring} / CONSUMES_FIRING: {__instance.ConsumesFiring}"); if (__instance.OwningMech == null) { return; // Nothing more to do } // Movement - check for damage after a jump, and if so force a piloting check if (__instance.OwningMech.ActuatorDamageMalus() != 0 || Mod.Config.Developer.ForceFallAfterJump) { Mod.Log.Info?.Write($"Actor: {CombatantUtils.Label(__instance.OwningMech)} has actuator damage, forcing piloting check."); float sourceSkillMulti = __instance.OwningMech.PilotCheckMod(Mod.Config.SkillChecks.ModPerPointOfPiloting); float damagePenalty = __instance.OwningMech.ActuatorDamageMalus() * Mod.Config.SkillChecks.ModPerPointOfPiloting; float checkMod = sourceSkillMulti + damagePenalty; Mod.Log.Debug?.Write($" moveSkillMulti:{sourceSkillMulti} - damagePenalty: {damagePenalty} = checkMod: {checkMod}"); bool sourcePassed = Mod.Config.Developer.ForceFallAfterJump ? false : CheckHelper.DidCheckPassThreshold(Mod.Config.Move.FallAfterJumpChance, __instance.OwningMech, checkMod, ModText.FT_Fall_After_Jump); if (!sourcePassed) { Mod.Log.Info?.Write($"Source actor: {CombatantUtils.Label(__instance.OwningMech)} failed pilot check after jumping with actuator damage, forcing fall."); MechHelper.AddFallingSequence(__instance.OwningMech, __instance, ModText.FT_Fall_After_Jump); } } }
// Token: 0x060000F7 RID: 247 RVA: 0x000148B4 File Offset: 0x00012AB4 private static void Postfix(MechJumpSequence __instance, ref bool __result) { if (!__instance.owningActor.Combat.TurnDirector.IsInterleaved) { __result = false; } }
private static void Postfix(MechJumpSequence __instance, ref bool __result) { Mod.Log.Trace?.Write("AMS:CF:GET entered"); if (!__instance.owningActor.Combat.TurnDirector.IsInterleaved) { // We want to auto-brace, and auto-brace requires that consumesFiring = false. So when no enemies are around, don't consume firing so // that we can auto-brace __result = false; } }
// Token: 0x060000F8 RID: 248 RVA: 0x00014908 File Offset: 0x00012B08 private static void Prefix(MechJumpSequence __instance) { if (!__instance.owningActor.Combat.TurnDirector.IsInterleaved) { __instance.owningActor.AutoBrace = true; } if (__instance.OwningMech == null) { return; } }
public static void Postfix(MechJumpSequence __instance) { /*if (__instance.OwningMech == null) { return; } * switch (Core.Settings.auraUpdateFix) { * case AuraUpdateFix.Never: * case AuraUpdateFix.Position: * case AuraUpdateFix.Time: * __instance.OwningMech.RemoveAuraUpdateData(); * AuraCache.UpdateAurasToActor(__instance.OwningMech.Combat.AllActors, __instance.OwningMech, __instance.owningActor.CurrentPosition, EffectTriggerType.Passive, false); * break; * }*/ }
private static void Prefix(MechJumpSequence __instance) { Mod.Log.Trace("MJS:OC entered"); // Check for visibility to any enemies if (!__instance.owningActor.Combat.TurnDirector.IsInterleaved && __instance.owningActor.Combat.LocalPlayerTeam.GetDetectedEnemyUnits().Count > 0) { //Mod.Log.Info("MJS:OC TD is not interleaved but enemies are detected - disabling autobrace. "); __instance.owningActor.AutoBrace = false; } // Movement - check for damage after a sprint, and if so force a piloting check if (__instance.OwningMech != null && __instance.OwningMech.ActuatorDamageMalus() != 0) { Mod.Log.Debug($"Actor: {CombatantUtils.Label(__instance.OwningMech)} has actuator damage, forcing piloting check."); float sourceSkillMulti = __instance.OwningMech.PilotCheckMod(Mod.Config.Move.SkillMulti); bool sourcePassed = CheckHelper.DidCheckPassThreshold(Mod.Config.Move.FallAfterRunChance, __instance.OwningMech, sourceSkillMulti, ModConfig.FT_Fall_After_Jump); if (!sourcePassed) { Mod.Log.Info($"Source actor: {CombatantUtils.Label(__instance.OwningMech)} failed pilot check after jumping with actuator damage, forcing fall."); MechHelper.AddFallingSequence(__instance.OwningMech, __instance, ModConfig.FT_Fall_After_Jump); } } }