thewar_client/Client/Assets/1_Script/System/ItemManager.cs

155 lines
4.2 KiB
C#

using System.Collections.Generic;
using System.Linq;
using static UnityEditor.Progress;
public class ItemManager
{
public ItemBox box;
public ItemManager(List<DeckUnitInfo> deckUnitInfo, List<Equipment> equipment, List<ConsumableItem> consumableItem, List<EtcItem> etcItem)
{
box = new ItemBox(deckUnitInfo, equipment, consumableItem, etcItem);
}
}
public class ItemBox
{
List<DeckUnitInfo> _deckUnitInfo;
public List<DeckUnitInfo> deckUnitInfo { get { return _deckUnitInfo; } }
List<Equipment> _equipment;
public List<Equipment> equipment { get { return _equipment; } }
List<ConsumableItem> _consumableItem;
public List<ConsumableItem> consumableItem { get { return _consumableItem; } }
List<EtcItem> _etcItem;
public List<EtcItem> etcItem { get { return _etcItem; } }
public ItemBox(List<DeckUnitInfo> deckUnitInfo, List<Equipment> equipment, List<ConsumableItem> consumableItem, List<EtcItem> etcItem)
{
if (deckUnitInfo == null)
_deckUnitInfo = new List<DeckUnitInfo>();
else
_deckUnitInfo = deckUnitInfo.OrderBy(n => n.unit_data_id).ToList();
if (equipment == null)
_equipment = new List<Equipment>();
else
_equipment = equipment.OrderBy(n => n.id).ToList();
if (consumableItem == null)
_consumableItem = new List<ConsumableItem>();
else
_consumableItem = consumableItem.OrderBy(n => n.id).ToList();
if (etcItem == null)
_etcItem = new List<EtcItem>();
else
_etcItem = etcItem.OrderBy(n => n.id).ToList();
}
/// <summary>
/// À¯´Ö ¹Ýȯ
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public DeckUnitInfo FindDeckUnitInfo(long id)
{
return _deckUnitInfo.Find(n => n.id == id);
}
/// <summary>
/// À¯´Ö index¹Ýȯ
/// </summary>
/// <param name="unit_data_id"></param>
/// <returns></returns>
public int FindIndexDeckUnitInfo(long unit_data_id)
{
return _deckUnitInfo.FindIndex(n => n.unit_data_id == unit_data_id);
}
/// <summary>
/// Àåºñ ¾ÆÀÌÅÆ ¹Ýȯ
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Equipment FindEquipment(long id)
{
return _equipment.Find(n => n.id == id);
}
public ConsumableItem FindConsumableItem(long id)
{
return _consumableItem.Find(n => n.id == id);
}
public EtcItem FindEtcItem(long id)
{
return _etcItem.Find(n => n.id == id);
}
/// <summary>
/// À¯´Ö ¾÷µ¥ÀÌÆ®
/// </summary>
/// <param name="item"></param>
public void UpdateDeckUnitInfo(DeckUnitInfo item)
{
FindDeckUnitInfo(item.id).Update(item);
}
/// <summary>
/// Àåºñ ¾÷µ¥ÀÌÆ®
/// </summary>
/// <param name="item"></param>
public void UpdateEquipment(Equipment item)
{
FindEquipment(item.id).Update(item);
}
public void add(DeckUnitInfo item)
{
//À¯´ÖÀº °ãÄ¥ÀÏÀÌ ¾ø±â¶§¹®¿¡ ±×³É Ãß°¡
_deckUnitInfo.Add(item);
}
public void add(List<DeckUnitInfo> items)
{
//À¯´ÖÀº °ãÄ¥ÀÏÀÌ ¾ø±â¶§¹®¿¡ ±×³É Ãß°¡
_deckUnitInfo.AddRange(items);
}
public void add(Equipment item)
{
//Àåºñ ¾ÆÀÌÅÆÀº °ãÄ¥ÀÏÀÌ ¾ø±â¶§¹®¿¡ ±×³É Ãß°¡
_equipment.Add(item);
}
public void add(List<Equipment> items)
{
//Àåºñ ¾ÆÀÌÅÆÀº °ãÄ¥ÀÏÀÌ ¾ø±â¶§¹®¿¡ ±×³É Ãß°¡
_equipment.AddRange(items);
}
public void add(ConsumableItem item)
{
ConsumableItem select = FindConsumableItem(item.id);
if (select != null)
select.count += item.count;
else
_consumableItem.Add(item);
}
public void add(List<ConsumableItem> items)
{
foreach (ConsumableItem item in items)
add(item);
}
public void add(EtcItem item)
{
EtcItem select = FindEtcItem(item.id);
if (select != null)
select.count += item.count;
else
_etcItem.Add(item);
}
public void add(List<EtcItem> items)
{
foreach (EtcItem item in items)
add(item);
}
}