Exemple #1
0
 static bool PrefixOcPlcheckAct_Put(OcPlEquipCtrl ____EquipCtrl)
 {
     try
     {
         OcItem itemData = ____EquipCtrl.getWpMain()?.Item;
         if (itemData != null)
         {
             var id       = itemData.Id;
             var registry = RegistryManager.Inst.GetRegistry <Item>();
             var item     = registry.GetElementById(id);
             var result   = item?.PutHandler?.IsPuttable();
             return(!result.HasValue || result.Value);
         }
     }
     catch (Exception e)
     {
         Logger.Inst.LogException(e);
     }
     return(true);
 }
Exemple #2
0
        // 装備品一覧の取得
        internal static HashSet <OcPlEquip> GetPlEquips(OcPlEquipCtrl plEquipCtrl)
        {
            if (plEquipCtrlCorrespondedplEquips.TryGetValue(plEquipCtrl, out var plEquips))
            {
                return(plEquips);
            }
            else
            {
                // OcPlEquipCtrlがDestoryされるタイミングがわからないので、新規追加のタイミングでDictionary中のOcPlEquipCtrlの存在チェックを実施する
                foreach (var destroyedPlEquipCtrl in plEquipCtrlCorrespondedplEquips.Keys.Where(key => key == null).ToArray())
                {
                    plEquipCtrlCorrespondedplEquips.Remove(destroyedPlEquipCtrl);
                }
                foreach (var destroyedPlEquipCtrl in originalParentTransform.Keys.Where(key => key == null).ToArray())
                {
                    originalParentTransform.Remove(destroyedPlEquipCtrl);
                }

                var newPlEquips = new HashSet <OcPlEquip>();
                plEquipCtrlCorrespondedplEquips.Add(plEquipCtrl, newPlEquips);
                return(newPlEquips);
            }
        }
Exemple #3
0
 // 装備変更のタイミングで装備品リストを更新(追加)
 static void Postfix(OcPlEquipCtrl __instance, OcEquipSlot __state)
 {
     EquipAdjustPos_OcPlEquipCtrl_lateMove.GetPlEquips(__instance).Add(__instance.getEquip(__state));
 }
Exemple #4
0
 static bool Prefix(OcPlEquipCtrl __instance, OcItem item, OcEquipSlot equipSlot, out OcEquipSlot __state)
 {
     __state = equipSlot;
     return(true);
 }