Beispiel #1
0
        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());
            }
        }
Beispiel #2
0
        //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);
            }
        }