static public void Equip(int[] items, EquipSlot startSlot) { RestoreEquip(); var df = DateFile.instance; var actorDate = df.actorsDate[df.mianActorId]; var actorsDateKey = (int)startSlot.ToActorsDateKey(); // 紀錄並脫下原本的裝備 for (int i = 0; i < items.Length; i++) { int key = (int)(actorsDateKey + i); int itemId = int.Parse(actorDate[key]); if (itemId == 0) { continue; } _originEquitments.Add(new EquipDetails(key, itemId, ItemFrom.Equip)); ControlHelper.TakeoffEquip(key); } // 穿起裝備 // 紀錄來源 身上(背包) 或是 倉庫 foreach (var item in items) { if (item == 0) { continue; } var itemFrom = df.ItemFrom(item); _equipDetails.Add(new EquipDetails(actorsDateKey, item, itemFrom)); switch (itemFrom) { case ItemFrom.Equip: break; case ItemFrom.Bag: ControlHelper.WearEquip(actorsDateKey, item); break; case ItemFrom.Warehouse: df.actorItemsDate[-999].Remove(item); actorDate[actorsDateKey] = item.ToString(); break; case ItemFrom.Unknow: default: throw new Exception($"Unknow item from: {item}"); } actorsDateKey++; //#if (DEBUG) // Main.Logger.Log($"Equip:{item}"); //#endif } }