/// <summary> /// 更新船坞容量大小 /// </summary> private void UpdatePackSize() { int m_Count = 0; ItemContainer m_Container = null; WarshipL1 warshipL1 = 0; switch (State.GetPageIndex()) { case 0: warshipL1 = WarshipL1.MiningShip; break; case 1: warshipL1 = WarshipL1.FightWarship; break; case 2: warshipL1 = WarshipL1.SurveillanceShip; break; } m_Container = m_ShipProxy.GetShipContainer(warshipL1); m_Count = m_ShipProxy.GetShipByType(warshipL1).Length; int m_MaxCount = m_Container != null ? (int)m_Container.CurrentSizeMax : 0; State.SetPageLabel(State.GetPageIndex(), string.Format(GetLocalization("shiphangar_text_1009"), m_Count, m_MaxCount)); }
/// <summary> /// 获取船类型包 /// </summary> /// <param name="warshipL1"></param> /// <returns></returns> public ItemContainer GetShipContainer(WarshipL1 warshipL1) { PackageProxy m_PackageProxy = Facade.RetrieveProxy(ProxyName.PackageProxy) as PackageProxy; switch (warshipL1) { case WarshipL1.MiningShip: return(m_PackageProxy.GetItemList <ItemContainer>(Category.WarehousePackage, Category.Package)[2]); case WarshipL1.FightWarship: return(m_PackageProxy.GetItemList <ItemContainer>(Category.WarehousePackage, Category.Package)[1]); case WarshipL1.SurveillanceShip: return(m_PackageProxy.GetItemList <ItemContainer>(Category.WarehousePackage, Category.Package)[0]); } return(null); }
/// <summary> /// 根据类型获取船 /// </summary> /// <param name="warshipL1"></param> /// <returns></returns> public IShip[] GetShipByType(WarshipL1 warshipL1) { IShip[] m_Ships = GetShips(); List <IShip> m_ShipsByType = new List <IShip>(); if (m_Ships != null && m_Ships.Length > 0) { foreach (IShip item in m_Ships) { if (item.GetWarShipType() == warshipL1) { m_ShipsByType.Add(item); } } } return(m_ShipsByType.ToArray()); }
/// <summary> /// 物品最大数量 /// </summary> private void GetGoodMax() { //玩家钱包容量 int m_MoneyNum = Mathf.FloorToInt(m_Money * 1.0f / (m_ShopParameter.Price / m_ShopParameter.Bounds)); //库存 int m_Stock = m_ShopParameter.Stock; //背包空间 ItemContainer m_Container = m_PackageProxy.GetPackage(m_ShopParameter.Category); long m_PackageNum = 0; //船包 if (m_Container == null) { Item item = m_CfgEternityProxy.GetItemByKey(m_ShopParameter.Tid); WarshipL1 warshipL1 = 0; ItemTypeUtil.SetSubType(ref warshipL1, ItemTypeUtil.GetItemType(item.Type)); m_PackageNum = m_ShipProxy.GetShipContainer(warshipL1).CurrentSizeMax - m_ShipProxy.GetShipByType(warshipL1).Length; } //普通包 else { //拥有数量 int m_LeftNum; //剩余堆 int m_Stack = 0; if (m_Container.Items == null) { m_LeftNum = 0; } else { m_LeftNum = m_Container.Items.Count; } int m_Empty = (int)m_Container.CurrentSizeMax - m_LeftNum; if ((m_PackageProxy.GetItemCountByTID(m_ShopParameter.Tid) % m_ItemConfig.StackingLimit) > 0) { m_Stack = (int)(m_ItemConfig.StackingLimit - (m_PackageProxy.GetItemCountByTID(m_ShopParameter.Tid) % m_ItemConfig.StackingLimit)); } else { m_Stack = 0; } //无限堆包内堆已满 if (m_ItemConfig.Heaps == 0 && m_Stack == 0) { m_PackageNum = m_ItemConfig.StackingLimit * m_Empty; } //无限堆包内堆未满 else if (m_ItemConfig.Heaps == 0 && m_Stack > 0) { m_PackageNum = m_Stack + m_Empty * m_ItemConfig.StackingLimit; } //单堆 else { m_PackageNum = m_ItemConfig.StackingLimit - m_PackageProxy.GetItemCountByTID(m_ShopParameter.Tid); } } List <long> m_Capacity = new List <long>() { m_MoneyNum, m_PackageNum }; if (m_Stock != -1) { m_Capacity.Add(m_Stock); } if (m_ShopParameter.LimitCount != -1) { m_Capacity.Add(m_ShopParameter.LimitCount); } m_Max = m_Capacity.Min(); }
public void SetWarShipType(WarshipL1 value) { m_WarshipL1 = value; }