static bool Prefix(UnitViewHandsEquipment __instance, HandSlot slot, ItemEntity previousItem) { MethodInfo getHandSlotMethod = __instance.GetType().GetMethod("GetSlotData", BindingFlags.NonPublic | BindingFlags.Instance); UnitViewHandSlotData slotDataCheck = (UnitViewHandSlotData)getHandSlotMethod.Invoke(__instance, new object[] { slot }); if (!(bool)unitViewHandsEquipment_get_Active(__instance) || slotDataCheck == null) { return(true); } if (__instance.Owner.IsFreeEquipmentChange() && __instance.InCombat && (__instance.Owner.Descriptor.State.CanAct || __instance.IsDollRoom) && slot.Active) { MethodInfo changeEquipmentWithoutAnimation = __instance.GetType().GetMethod("ChangeEquipmentWithoutAnimation", BindingFlags.NonPublic | BindingFlags.Instance); changeEquipmentWithoutAnimation.Invoke(__instance, new object[0]); return(false); } return(true); }
static bool Prefix(UnitViewHandsEquipment __instance) { if (!(bool)unitViewHandsEquipment_get_Active(__instance)) { return(true); } if (__instance.Owner.IsFreeEquipmentChange() && __instance.InCombat && (__instance.Owner.Descriptor.State.CanAct || __instance.IsDollRoom)) { MethodInfo updateImmediately = __instance.GetType().GetMethod("UpdateActiveWeaponSetImmediately", BindingFlags.NonPublic | BindingFlags.Instance); updateImmediately.Invoke(__instance, new object[0]); return(false); } return(true); }