public static void CombatHUDWeaponSlot_UpdateToolTipsFiring_Postfix(CombatHUDWeaponSlot __instance, ICombatant target, CombatGameState ___Combat, CombatHUD ___HUD, int ___modifier) { if (___HUD.SelectionHandler.ActiveState.SelectionType == SelectionType.FireMorale) { Mod.Log.Trace("CHUDWS:UTTF:Post entered."); AbstractActor attacker = ___HUD.SelectedActor; // Calculate called shot modifier int pilotValue = CalledShotHelper.GetCalledShotModifier(___HUD.SelectedActor.GetPilot()); int unitMod = 0; if (attacker.StatCollection.ContainsStatistic(ModStats.CalledShotMod)) { unitMod = attacker.StatCollection.GetStatistic(ModStats.CalledShotMod).Value <int>(); } int calledShotMod = pilotValue + unitMod; Mod.Log.Debug($" Called Shot from pilot:{attacker.GetPilot().Name} => pilotValue:{pilotValue} + unitMod:0 = calledShotMod:{calledShotMod}"); if (calledShotMod != 0) { AddMoraleToolTip(__instance, ___Combat.Constants.CombatUIConstants.MoraleAttackDescription.Name, calledShotMod); } } }
public static void ToHit_GetAllModifiers_Postfix(ToHit __instance, ref float __result, bool isCalledShot, AbstractActor attacker, Weapon weapon, ICombatant target) { if (isCalledShot) { Mod.Log.Trace("TH:GAM entered."); // Calculate called shot modifier int pilotValue = CalledShotHelper.GetCalledShotModifier(attacker.GetPilot()); int unitMod = 0; if (attacker.StatCollection.ContainsStatistic(ModStats.CalledShotMod)) { unitMod = attacker.StatCollection.GetStatistic(ModStats.CalledShotMod).Value <int>(); } int calledShotMod = pilotValue + unitMod; Mod.Log.Debug($" Called Shot from pilot:{attacker.GetPilot().Name} => pilotValue:{pilotValue} + unitMod:{unitMod} = calledShotMod:{calledShotMod}"); __result = __result + calledShotMod; } }
public static void ToHit_GetAllModifiersDescription_Postfix(ToHit __instance, ref string __result, bool isCalledShot, AbstractActor attacker, Weapon weapon, ICombatant target) { if (isCalledShot) { Mod.Log.Trace("TH:GAMD entered."); // Calculate called shot modifier int pilotValue = CalledShotHelper.GetCalledShotModifier(attacker.GetPilot()); int unitMod = 0; if (attacker.StatCollection.ContainsStatistic(ModStats.CalledShotMod)) { unitMod = attacker.StatCollection.GetStatistic(ModStats.CalledShotMod).Value <int>(); } int calledShotMod = pilotValue + unitMod; Mod.Log.Debug($" Called Shot from pilot:{attacker.GetPilot().Name} => pilotValue:{pilotValue} + unitMod:{unitMod} = calledShotMod:{calledShotMod}"); if (calledShotMod != 0) { __result = string.Format("{0}CALLED-SHOT {1:+#;-#}; ", __result, (int)calledShotMod); } } }