Exemplo n.º 1
0
    /// <summary>
    /// 初始化所有船数据
    /// </summary>
    /// <returns></returns>
    public void InitShipPackage()
    {
        PackageProxy m_PackageProxy = Facade.RetrieveProxy(ProxyName.PackageProxy) as PackageProxy;

        ItemContainer[] m_ShipByType = m_PackageProxy.GetItemList <ItemContainer>(Category.WarehousePackage, Category.Package);
        m_ShipPackage.Clear();
        if (m_ShipByType != null)
        {
            foreach (ItemContainer package in m_ShipByType)
            {
                if (package.Items != null)
                {
                    foreach (var item in package.Items.Values)
                    {
                        IShip m_WarShip = WarShipDataFactory.BuildShipData((ItemWarShipVO)item);
                        m_ShipPackage.Add(m_WarShip.GetUID(), m_WarShip);
                    }
                }
            }
        }
        IShip m_CurWarShip = GetAppointWarShip();

        if (!m_ShipPackage.ContainsKey(m_CurWarShip.GetUID()))
        {
            m_ShipPackage.Add(m_CurWarShip.GetUID(), m_CurWarShip);
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// 获取当前任命出战船
    /// </summary>
    /// <returns></returns>
    public IShip GetAppointWarShip()
    {
        PackageProxy m_PackageProxy = Facade.RetrieveProxy(ProxyName.PackageProxy) as PackageProxy;

        m_HeroItem = m_PackageProxy.GetHeroItem();
        if (m_HeroItem != null && m_HeroItem.Items != null && m_HeroItem.Items.Count > 0)
        {
            ItemWarShipVO itemWarShip = null;
            foreach (ItemBase item in m_HeroItem.Items.Values)
            {
                if (item is ItemWarShipVO)
                {
                    if (m_CurrentWarShip == null || m_CurrentWarShip.GetUID() != item.UID)
                    {
                        if (!m_ShipPackage.TryGetValue(item.UID, out m_CurrentWarShip))
                        {
                            itemWarShip      = item as ItemWarShipVO;
                            m_CurrentWarShip = WarShipDataFactory.BuildShipData(itemWarShip);
                            m_ShipPackage[m_CurrentWarShip.GetUID()] = m_CurrentWarShip;
                        }
                    }
                    return(m_CurrentWarShip);
                }
            }
        }
        m_CurrentWarShip = null;
        return(null);
    }
Exemplo n.º 3
0
    /// <summary>
    /// 获取当前出战船
    /// </summary>
    /// <returns></returns>
    public IShip GetCurrentWarShip(ulong uid)
    {
        if (m_ShipItems.Count > 0 && m_ShipItems.ContainsKey(uid))
        {
            Dictionary <ulong, ItemContainer> items = m_ShipItems[uid];
            if (m_Ships.Count > 0 && m_Ships.ContainsKey(uid))
            {
                return(m_Ships[uid]);
            }

            ItemWarShipVO itemWarShip = null;
            foreach (ItemBase item in items.Values)
            {
                if (item is ItemWarShipVO)
                {
                    itemWarShip = item as ItemWarShipVO;
                    break;
                }
            }

            if (itemWarShip != null)
            {
                IShip currentWarShip = WarShipDataFactory.BuildShipData(itemWarShip);
                m_Ships.Add(uid, currentWarShip);
                return(currentWarShip);
            }
        }
        return(null);
    }
Exemplo n.º 4
0
    /// <summary>
    /// 减装备
    /// </summary>
    /// <param name="ship"></param>
    /// <param name="uid"></param>
    /// <param name="parentUid"></param>
    /// <returns></returns>
    public bool RemoveItemToShip(ulong uid, ulong itemId, ulong parentUid)
    {
        IShip ship = null;

        m_ShipPackage.TryGetValue(uid, out ship);
        if (ship != null)
        {
            m_CurrentWarShip   = WarShipDataFactory.RemoveItemToShip(ship, itemId, parentUid);
            m_ShipPackage[uid] = m_CurrentWarShip;
            return(true);
        }
        return(false);
    }
Exemplo n.º 5
0
    /// <summary>
    /// 加装备
    /// </summary>
    /// <param name="uid"></param>
    /// <param name="item"></param>
    /// <returns></returns>
    public bool AddItemToShip(ulong uid, ItemContainer item)
    {
        IShip ship = null;

        m_ShipPackage.TryGetValue(uid, out ship);
        if (ship != null)
        {
            m_CurrentWarShip   = WarShipDataFactory.AddItemToShip(ship, item);
            m_ShipPackage[uid] = m_CurrentWarShip;
            return(true);
        }
        return(false);
    }
Exemplo n.º 6
0
    /// <summary>
    /// 修改船数据包
    /// </summary>
    /// <param name="item"></param>
    /// <returns></returns>
    public void ChangeShipPackage(ulong id)
    {
        PackageProxy  m_PackageProxy = Facade.RetrieveProxy(ProxyName.PackageProxy) as PackageProxy;
        ItemWarShipVO itemWarShipVO  = m_PackageProxy.GetItem <ItemWarShipVO>(id);
        IShip         m_Ship         = null;

        m_Ship = WarShipDataFactory.BuildShipData(itemWarShipVO);
        m_ShipPackage.Add(m_Ship.GetUID(), m_Ship);
        IShip m_CurWarShip = GetAppointWarShip();

        if (!m_ShipPackage.ContainsKey(m_CurWarShip.GetUID()))
        {
            m_ShipPackage.Add(m_CurWarShip.GetUID(), m_CurWarShip);
        }
    }