public static void Postfix(CombatHUDEquipmentSlot __instance, string creatorGUID, string targetGUID) { var HUD = Traverse.Create((object)__instance).Property("HUD", (object[])null).GetValue <CombatHUD>(); var selectedActor = HUD.SelectedActor; if (__instance.Ability.Def.Resource == AbilityDef.ResourceConsumed.ConsumesFiring) { // selectedActor.HasFiredThisRound = true; // this doesnt work to disable firing. } else if (__instance.Ability.Def.Resource == AbilityDef.ResourceConsumed.ConsumesMovement) { // selectedActor.HasMovedThisRound = true; //this doesnt work to disable movement } else if (__instance.Ability.Def.Resource == AbilityDef.ResourceConsumed.ConsumesActivation) { if (selectedActor is Mech mech) { mech.GenerateAndPublishHeatSequence(-1, true, false, selectedActor.GUID); Mod.Log.Info?.Write($"Generated and Published Heat Sequence for {mech.Description.UIName}."); } selectedActor.DoneWithActor();//need to to onactivationend too selectedActor.OnActivationEnd(selectedActor.GUID, __instance.GetInstanceID()); } }
//public static bool Prepare() { return false; } public static void Postfix(CombatHUDActionButton __instance, ref bool __result) { CombatHUDEquipmentSlot slot = __instance as CombatHUDEquipmentSlot; if (slot == null) { return; } Log.TWL(0, "CombatHUDEquipmentSlot.TryActivate GUID:" + __instance.GUID + " selection type:" + (SelectionType)typeof(CombatHUDEquipmentSlot).GetProperty("SelectionType", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(slot) + " result:" + __result); if (__result) { CombatHUD HUD = (CombatHUD)p_HUD.GetValue(slot); HUD.AttackModeSelector.FireButton.FireText.SetText(slot.Ability.Def.Description.Name); } }