Ejemplo n.º 1
0
 static void Postfix(UnitViewHandSlotData __instance, bool isVisible, ref List <ItemEnchantment> ___m_VisibleEnchantments, UnitViewHandsEquipment ___m_Equipment)
 {
     try {
         if (!Main.enabled)
         {
             return;
         }
         if (!__instance.Owner.IsPlayerFaction)
         {
             return;
         }
         var characterSettings = Main.settings.GetCharacterSettings(__instance.Owner);
         if (characterSettings == null)
         {
             return;
         }
         if (__instance.Slot.MaybeItem == null)
         {
             return;
         }
         if (WeaponEnchantments.ContainsKey(__instance.Slot.MaybeItem))
         {
             foreach (var fxObject in WeaponEnchantments[__instance.Slot.MaybeItem])
             {
                 DestroyFx(fxObject);
             }
             WeaponEnchantments[__instance.Slot.MaybeItem].Clear();
         }
         if (__instance.IsInHand && isVisible)
         {
             if (!WeaponEnchantments.ContainsKey(__instance.Slot.MaybeItem))
             {
                 WeaponEnchantments[__instance.Slot.MaybeItem] = new List <GameObject>();
             }
             var enchantments = __instance.IsOff ?
                                characterSettings.overrideOffhandWeaponEnchantments :
                                characterSettings.overrideMainWeaponEnchantments;
             foreach (var enchantmentId in enchantments)
             {
                 var blueprint = ResourcesLibrary.TryGetBlueprint <BlueprintWeaponEnchantment>(enchantmentId);
                 if (blueprint == null || blueprint.WeaponFxPrefab == null)
                 {
                     continue;
                 }
                 var fxObject = RespawnFx(blueprint.WeaponFxPrefab, __instance.Slot.MaybeItem);
                 WeaponEnchantments[__instance.Slot.MaybeItem].Add(fxObject);
             }
         }
     } catch (Exception ex)
     {
         Main.DebugError(ex);
     }
 }
Ejemplo n.º 2
0
 static void Postfix(DollRoom __instance, UnitViewHandsEquipment ___m_AvatarHands, UnitEntityData ___m_Unit)
 {
     try
     {
         if (___m_Unit == null)
         {
             return;
         }
         var characterSettings = Main.settings.GetCharacterSettings(___m_Unit);
         if (characterSettings == null)
         {
             return;
         }
         foreach (var isOffhand in new bool[] { true, false })
         {
             WeaponParticlesSnapMap weaponParticlesSnapMap = ___m_AvatarHands?.GetWeaponModel(isOffhand)?.GetComponent <WeaponParticlesSnapMap>();
             if (weaponParticlesSnapMap)
             {
                 UnityEngine.Object x = weaponParticlesSnapMap;
                 UnityEngine.Object y = isOffhand ?
                                        ___m_Unit?.Body?.SecondaryHand.FxSnapMap :
                                        ___m_Unit?.Body?.PrimaryHand.FxSnapMap;
                 if (x == y)
                 {
                     var weapon = isOffhand ?
                                  ___m_Unit?.Body?.SecondaryHand?.MaybeItem :
                                  ___m_Unit?.Body?.PrimaryHand?.MaybeItem;
                     WeaponEnchantments.TryGetValue(weapon, out List <GameObject> fxObjects);
                     if (fxObjects != null)
                     {
                         foreach (var fxObject in fxObjects)
                         {
                             UnscaleFxTimes(__instance, fxObject);
                         }
                     }
                 }
             }
         }
     } catch (Exception ex)
     {
         Main.DebugError(ex);
     }
 }
Ejemplo n.º 3
0
 static void Postfix(UnitViewHandSlotData __instance, ref List <ItemEnchantment> ___m_VisibleEnchantments, UnitViewHandsEquipment ___m_Equipment)
 {
     try
     {
         if (!Main.enabled)
         {
             return;
         }
         if (!__instance.Owner.IsPlayerFaction)
         {
             return;
         }
         var characterSettings = Main.settings.GetCharacterSettings(__instance.Owner);
         if (characterSettings == null)
         {
             return;
         }
         if (__instance.Slot.MaybeItem == null)
         {
             return;
         }
         if (!WeaponEnchantments.ContainsKey(__instance.Slot.MaybeItem))
         {
             return;
         }
         foreach (var fxObject in WeaponEnchantments[__instance.Slot.MaybeItem])
         {
             DestroyFx(fxObject);
         }
         WeaponEnchantments[__instance.Slot.MaybeItem].Clear();
         WeaponEnchantments.Remove(__instance.Slot.MaybeItem);
     } catch (Exception ex)
     {
         Main.DebugError(ex);
     }
 }