Exemple #1
0
    void CheckAddCheatItem(string msg)
    {
        if (null == MainPlayer.Instance.entity)
        {
            return;
        }

        CheatData data = CheatData.GetData(msg);

        if (null != data)
        {
            if (1 == data.addType)
            {
                if (MainPlayer.Instance.entity.packageCmpt.Add(data.itemID, 1) && "0" != data.successNotice)
                {
                    PeTipMsg.Register(data.successNotice, PeTipMsg.EMsgLevel.HighLightRed);
                }
            }
            else if (2 == data.addType)
            {
                if (0 == VCEditor.MakeCreation("Isos/Mission/" + data.isoName) && "0" != data.successNotice)
                {
                    PeTipMsg.Register(data.successNotice, PeTipMsg.EMsgLevel.HighLightRed);
                }
            }
        }
    }
Exemple #2
0
        public override bool CanDoAction(PEActionParam para = null)
        {
            if (motionMgr.IsActionRunning(PEActionType.Build))
            {
                PeTipMsg.Register(PELocalization.GetString(9500246), PeTipMsg.EMsgLevel.Warning);
                return(false);
            }

            PEActionParamDrive paramDrive = para as PEActionParamDrive;

            m_DrivingController = paramDrive.controller;
            if (m_DrivingController == null)
            {
                return(false);
            }
            ItemAsset.ItemObject item = m_DrivingController.itemObject;
            if (item != null && skillTreeMgr != null && RandomMapConfig.useSkillTree)
            {
                if (!skillTreeMgr.CheckDriveEnable(item.protoData.itemClassId, item.protoData.level))
                {
                    return(false);
                }
            }
            return(true);
        }
    protected override void CheckOperate()
    {
        base.CheckOperate();

        if (PeInput.Get(PeInput.LogicFunction.InteractWithItem) && CanCmd())
        {
            if (EntityMonsterBeacon.IsRunning())
            {
                PeTipMsg.Register(PELocalization.GetString(8000596), PeTipMsg.EMsgLevel.Warning);
                return;
            }

            if (!Operatable())
            {
                return;
            }

            Pathea.OperateCmpt operateCmpt = Pathea.MainPlayer.Instance.entity.operateCmpt;
            if (null != operateCmpt && operateCmpt.HasOperate)
            {
                return;
            }

            Pathea.MotionMgrCmpt mmc = Pathea.MainPlayer.Instance.entity.motionMgr;

            if (null != mmc && (mmc.IsActionRunning(Pathea.PEActionType.Sleep) || !mmc.CanDoAction(Pathea.PEActionType.Sleep)))
            {
                return;
            }

            GameUI.Instance.mItemOp.ShowSleepWnd(true, this, bedView.peSleep, Pathea.MainPlayer.Instance.entity);
            // GameUI.Instance.mItemOp.SleepImmediately(bedView.peSleep, Pathea.MainPlayer.Instance.entity);
        }
    }
    void OnRightMouseCliked(Grid_N grid)
    {
        ActiveWnd();
        GameUI.Instance.mItemPackageCtrl.Show();

        if (grid.ItemObj != null && playerPackage != null)
        {
            if (PeGameMgr.IsMulti)
            {
                if (_wareObj != null)
                {
                    _wareObj._objNet.GetItem(grid.ItemObj.instanceId);
                }
            }
            else
            {
                if (playerPackage.Add(grid.ItemObj))
                {
                    SetItemWithIndex(null, grid.ItemIndex);
                }
                else //lz-2016.09.14 提示背包已满
                {
                    PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning);
                }
            }
        }
    }
 public override void Do()
 {
     if (null != entityInfo && null != entityInfo.faceTex)
     {
         PeTipMsg.Register(PELocalization.GetString(contentIDs[Random.Range(0, contentIDs.Length)]), entityInfo.faceTex, PeTipMsg.EMsgLevel.Norm, PeTipMsg.EMsgType.Misc);
     }
 }
Exemple #6
0
    public bool RemoveEqByIndex(int index)
    {
        if (null != mEquipmentList && index >= 0 && index < mEquipmentList.Count && null != mEquipmentList[index].ItemObj)
        {
            if (GameConfig.IsMultiMode)
            {
                if (equipmentCmpt.TryTakeOffEquipment(mEquipmentList[index].ItemObj))
                {
                    return(true);
                }
            }
            else
            {
                if (equipmentCmpt.TakeOffEquipment(mEquipmentList[index].ItemObj, false))
                {
                    //lz-2016.08.30 脱下装备成功播放音效
                    GameUI.Instance.PlayTakeOffEquipAudio();
                    return(true);
                }
            }
        }

        //lz-2016.10.09 提示正在使用此装备,无法操作
        PeTipMsg.Register(PELocalization.GetString(8000594), PeTipMsg.EMsgLevel.Error);
        return(false);
    }
Exemple #7
0
    public void AddTipMsg(PeTipMsg msg)
    {
        m_TipsMsg.Add(msg);

        if (onAddTipMsg != null)
        {
            onAddTipMsg(msg);
        }
    }
Exemple #8
0
    void OnRightMouseClicked(Grid_N grid)
    {
        if (!CSUI_MainWndCtrl.IsWorking())
        {
            return;
        }

        if (!m_IsWorking)
        {
            if (OpStatusEvent != null)
            {
                OpStatusEvent(EEventType.CantWork, CSUtils.GetEntityName(CSConst.etStorage), null);
            }
            return;
        }
        if (!GameUI.Instance.mItemPackageCtrl.IsOpen())
        {
            GameUI.Instance.mItemPackageCtrl.Show();
        }

        if (grid.ItemObj == null)
        {
            return;
        }

        //lz-2016.10.26 不允许操作正在操作的东西
        if (EqualUsingItem(grid.Item, false))
        {
            return;
        }

        if (GameConfig.IsMultiMode)
        {
            if (m_storage == null)
            {
                PlayerNetwork.mainPlayer.RequestPersonalStorageFetch(grid.ItemObj.instanceId, -1);
            }
            else
            {
                m_storage._ColonyObj._Network.STO_Fetch(grid.ItemObj.instanceId, -1);
            }
        }
        else
        {
            if (PeCreature.Instance.mainPlayer.GetCmpt <PackageCmpt>().Add(grid.ItemObj))
            {
                GameUI.Instance.mItemPackageCtrl.ResetItem();
                RemoveOriginItem(grid);
            }
            else
            {
                //lz-2016.09.14 提示背包已满
                PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning);
            }
        }
    }
    bool CheckMonsterBeaconEnable()
    {
        ItemScript_MonsterBeacon monsterBeacon = GetComponent <ItemScript_MonsterBeacon>();

        if (null != monsterBeacon && EntityMonsterBeacon.IsRunning())
        {
            PeTipMsg.Register(PELocalization.GetString(82201076), PeTipMsg.EMsgLevel.Warning);
            return(false);
        }
        return(true);
    }
Exemple #10
0
    IEnumerator WarningOne(int count, float intervals, float delayTime)
    {
        for (int i = 0; i < count; i++)
        {
            string content = !m_IsReady?PELocalization.GetString(8000189) : PELocalization.GetString(8000190);

            PeTipMsg.Register(content, PeTipMsg.EMsgLevel.Warning, PeTipMsg.EMsgType.Colony, 800);
            yield return(new WaitForSeconds(intervals));
        }

        yield return(new WaitForSeconds(delayTime));
    }
 public override void DoGetItem()
 {
     if (null == pkg || null == itemObj || !pkg.CanAdd(itemObj))
     {
         PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning);
         return;
     }
     PeMap.TowerMark findMask = PeMap.TowerMark.Mgr.Instance.Find(tower => itemObjectId == tower.ID);
     if (null != findMask)
     {
         PeMap.LabelMgr.Instance.Remove(findMask);
         PeMap.TowerMark.Mgr.Instance.Remove(findMask);
     }
     base.DoGetItem();
 }
    public override void DoGetItem()
    {
        ItemAsset.MaterialItem[] items = itemList.GetItems();

        if (null == pkg || !pkg.CanAdd(items))
        {
            PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning);
            return;
        }

        if (!GameConfig.IsMultiMode)
        {
            for (int i = 0; i < items.Length; ++i)
            {
                pkgCmpt.Add(items[i].protoId, items[i].count);
            }

            ItemAsset.ItemMgr.Instance.DestroyItem(itemObjectId);

            DragItemAgent agent = DragItemAgent.GetById(id);
            if (agent != null)
            {
                DragItemAgent.Destory(agent);
            }

            GameUI.Instance.mItemPackageCtrl.ResetItem();
        }
        else
        {
            //CommonInterface target = GetComponentInChildren<CommonInterface>();
            //if (null == target || null == target.Netlayer)
            //    return;

            //if (null != target.OwnerView)
            //    PlayerFactory.mMainPlayer.RPCServer(EPacketType.PT_InGame_GetItemListBack, m_ItemID,
            //        itemObjectId, target.OwnerView.viewID, mItemIDList.ToArray(), mNumList.ToArray());

            if (null != PlayerNetwork.mainPlayer)
            {
                var getItems = items.Select(iter => new ItemAsset.ItemSample(iter.protoId, iter.count)).ToArray();
                PlayerNetwork.mainPlayer.RequestGetItemListBack(itemObjectId, getItems);
            }
        }

        GameUI.Instance.mItemOp.Hide();
    }
Exemple #13
0
    public virtual void DoGetItem()
    {
        if (null == itemObj)
        {
            return;
        }

        if (!GameConfig.IsMultiMode)
        {
            if (Pathea.PlayerPackageCmpt.LockStackCount &&
                !ItemMgr.IsCreationItem(itemObj.protoId))
            {
                ItemMgr.Instance.DestroyItem(itemObj.instanceId);
            }
            else if (null != pkg)
            {
                if (ItemPackage.InvalidIndex == pkg.AddItem(itemObj))
                {
                    PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning);
                    return;
                }
                if (MissionManager.Instance != null && Pathea.PeCreature.Instance != null && Pathea.PeCreature.Instance.mainPlayer != null)
                {
                    MissionManager.Instance.ProcessUseItemMissionByID(itemObj.protoId, Pathea.PeCreature.Instance.mainPlayer.position, -1);
                }
            }

            DragItemAgent agent = DragItemAgent.GetById(id);
            if (agent != null)
            {
                DragItemAgent.Destory(agent);
            }

            GameUI.Instance.mItemPackageCtrl.ResetItem();
        }
        else
        {
            if (null != PlayerNetwork.mainPlayer)
            {
                PlayerNetwork.mainPlayer.RequestGetItemBack(itemObjectId);
            }
        }

        HideItemOpGui();
    }
    public void AddToDropList(int packTab, int Index, Grid_N grid, Grid_N curDropItem = null)
    {
        if (curDropItem == null)
        {
            curDropItem = GetEmptyGrid();
            if (null == curDropItem)
            {
                PeTipMsg.Register(PELocalization.GetString(82209001), PeTipMsg.EMsgLevel.Warning);
                return;
            }
        }
        RemoveFromDropList(curDropItem);
        curDropItem.SetItem(grid.Item);
        DropItemInfo info = new DropItemInfo();

        info.SetInfo(packTab, Index, grid, grid.ItemObj);
        mDropInfoList.Add(info);
        ResetPackageWnd(packTab, Index);
    }
Exemple #15
0
 /// <summary>
 /// lz-2016.10.26 用来检测某个Item是不是玩家正在操作的东西
 /// </summary>
 /// <returns></returns>
 public bool EqualUsingItem(ItemSample item, bool showUsingTip = true)
 {
     if (null == item || null == CurOperateItem)
     {
         return(false);
     }
     if (CurOperateItem == item)
     {
         if (showUsingTip)
         {
             PeTipMsg.Register(PELocalization.GetString(8000623), PeTipMsg.EMsgLevel.Error);
         }
         return(true);
     }
     else
     {
         return(false);
     }
 }
    protected override void InitCmd(CmdList cmdList)
    {
        cmdList.Add("Turn", Turn90Degree);
        cmdList.Add("Get", OnGetBtn);

        //if (!GameConfig.IsMultiMode)
        {
            if (bedView.peSleep.CanOperateMask(Pathea.Operate.EOperationMask.Sleep))
            {
                cmdList.Add("Sleep", () =>
                {
                    if (EntityMonsterBeacon.IsRunning())
                    {
                        PeTipMsg.Register(PELocalization.GetString(8000596), PeTipMsg.EMsgLevel.Warning);
                        return;
                    }
                    if (!bedView.peSleep.CanOperateMask(Pathea.Operate.EOperationMask.Sleep))
                    {
                        return;
                    }

                    Pathea.OperateCmpt operateCmpt = Pathea.MainPlayer.Instance.entity.operateCmpt;
                    if (null != operateCmpt && operateCmpt.HasOperate)
                    {
                        return;
                    }

                    Pathea.MotionMgrCmpt mmc = Pathea.MainPlayer.Instance.entity.GetCmpt <Pathea.MotionMgrCmpt>();

                    if (null != mmc && (mmc.IsActionRunning(Pathea.PEActionType.Sleep) || !mmc.CanDoAction(Pathea.PEActionType.Sleep)))
                    {
                        return;
                    }

                    //if (GameConfig.IsMultiMode)
                    //     GameUI.Instance.mItemOp.SleepImmediately(bedView.peSleep, Pathea.MainPlayer.Instance.entity);
                    //else
                    GameUI.Instance.mItemOp.ShowSleepWnd(true, this, bedView.peSleep, Pathea.MainPlayer.Instance.entity);
                });
            }
        }
    }
Exemple #17
0
    public override bool OnDragging(Ray cameraRay)
    {
        if (RandomDungenMgrData.InDungeon)
        {
            //lz-2016.09.29 在副本中提示可以使用Iso載具和机器人
            if (!_inDungeonMsgTip)
            {
                PeTipMsg.Register(PELocalization.GetString(8000732), PeTipMsg.EMsgLevel.Warning);
                _inDungeonMsgTip = true;
            }
            return(false);
        }

        // 限制只能拖出一个机器人
        if (RobotController.playerFollower && controller.category == EVCCategory.cgRobot)
        {
            _valid  = false;
            mTooFar = true;
            return(false);
        }

        // 因为 collidable 已经关闭,所以射线检测不需要排除自身
        if (Physics.Raycast(cameraRay, out fhitInfo, DraggingDistance, PEVCConfig.instance.creationDraggingLayerMask, QueryTriggerInteraction.Ignore))
        {
            mTooFar = false;

            _valid = SetPos(fhitInfo.point);

            if (!rootGameObject.activeSelf)
            {
                rootGameObject.SetActive(true);
            }

            return(_valid);
        }
        else
        {
            _valid  = false;
            mTooFar = true;
            return(false);
        }
    }
    private void TryExecAction()
    {
        if (null == _playerOperate || null == _monsterEntity)
        {
            return;
        }

        _rideTime = Time.realtimeSinceStartup;

        //lw:怪物血量高于50%不能乘骑
        if (_monsterEntity.HPPercent > 0.5f)
        {
            PeTipMsg.Register(PELocalization.GetString(LowHpTipsID), PeTipMsg.EMsgLevel.Warning, PeTipMsg.EMsgType.Misc);
            return;
        }

        //lw:玩家有规定物品才能乘骑怪物
        PlayerPackageCmpt playerPackage = MainPlayer.Instance.entity.packageCmpt as PlayerPackageCmpt;

        ItemAsset.ItemObject item = playerPackage.package.FindItemByProtoId(RideItemID);
        if (item == null || MainPlayer.Instance.entity.UseItem.GetCdByItemProtoId(RideItemID) > PETools.PEMath.Epsilon)
        {
            PeTipMsg.Register(PELocalization.GetString(LackRideItemTipsID), PeTipMsg.EMsgLevel.Warning, PeTipMsg.EMsgType.Misc);
            return;
        }

        //lz-2017.02.23 多人的时候先发消息请求控制权,请求回来再执行骑,避免坐骑系统Ai等运行不正常
        if (PeGameMgr.IsMulti)
        {
            //PlayerNetwork.RequestuseItem(item.instanceId);
            PlayerNetwork.RequestReqMonsterCtrl(_monsterEntity.Id);
        }
        else
        {
            if (ExecRide(Pathea.MainPlayer.Instance.entity))
            {
                //MainPlayer.Instance.entity.UseItem.Use(item);
                playerPackage.DestroyItem(item.instanceId, 1);
            }
        }
    }
    public bool IsChargeable(ItemObject itemObj)
    {
        if (null == itemObj)
        {
            return(false);
        }

        ItemAsset.Energy energy = itemObj.GetCmpt <ItemAsset.Energy>();

        if (null == energy || itemObj.protoData.unchargeable)
        {
            if (m_bUseMsgBox)
            {
                //lz-2016.10.24 把对话框的提示改成左上角提示
                PeTipMsg.Register(PELocalization.GetString(8000094), PeTipMsg.EMsgLevel.Error);
            }
            else
            {
                CSUI_MainWndCtrl.ShowStatusBar(PELocalization.GetString(8000094), Color.red);
            }
            return(false);
        }

        if ((!(energy is ItemAsset.EnergySmall)) && !m_bCanChargeLargedItem)
        {
            if (m_bUseMsgBox)
            {
                //lz-2016.10.24 把对话框的提示改成左上角提示
                PeTipMsg.Register(PELocalization.GetString(8000095), PeTipMsg.EMsgLevel.Warning);
            }
            else
            {
                CSUI_MainWndCtrl.ShowStatusBar(PELocalization.GetString(8000095), Color.red);
            }
            return(false);
        }

        return(true);
    }
Exemple #20
0
    public void OnLeftMouseCliked_Equip(Grid_N grid)
    {
        if (m_NpcCmpt == null || null == equipmentCmpt)
        {
            return;
        }

        if (null == grid || null == grid.ItemObj)
        {
            return;
        }

        if (equipmentCmpt.TryTakeOffEquipment(grid.ItemObj))
        {
            SelectItem_N.Instance.SetItemGrid(grid);
        }
        else
        {
            //lz-2016.10.09 提示正在使用此装备,无法操作
            PeTipMsg.Register(PELocalization.GetString(8000594), PeTipMsg.EMsgLevel.Error);
        }
    }
Exemple #21
0
    public void AddMsg(PeTipMsg peTipMsg)
    {
        UITipMsg uiTipMsg = Instantiate(msgPrefab) as UITipMsg;

        uiTipMsg.transform.parent        = transform;
        uiTipMsg.transform.localScale    = Vector3.one;
        uiTipMsg.transform.localPosition = Vector3.zero;


        uiTipMsg.content.text  = peTipMsg.GetContent();
        uiTipMsg.content.color = peTipMsg.GetColor();
        uiTipMsg.musicID       = peTipMsg.GetMusicID();
        switch (peTipMsg.GetEStyle())
        {
        case PeTipMsg.EStyle.Text:
            uiTipMsg.tex.mainTexture = null;
            uiTipMsg.icon.spriteName = "";
            break;

        case PeTipMsg.EStyle.Icon:
            uiTipMsg.icon.spriteName = peTipMsg.GetIconName();
            uiTipMsg.tex.mainTexture = null;
            break;

        case PeTipMsg.EStyle.Texture:
            uiTipMsg.icon.spriteName = "";
            uiTipMsg.tex.mainTexture = peTipMsg.GetIconTex();
            break;
        }
        uiTipMsg.SetStyle(peTipMsg.GetEStyle());
        uiTipMsg.gameObject.SetActive(false);

        m_WaitList.Add(uiTipMsg);

        if (GameUI.Instance.mTipRecordsMgr != null)
        {
            GameUI.Instance.mTipRecordsMgr.AddMsg(peTipMsg);
        }
    }
    public override void DoGetItem()
    {
        if (null == pkg || null == itemObj || !pkg.CanAdd(itemObj))
        {
            PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning);
            return;
        }
        CSEntityObject ceo = GetComponent <CSEntityObject>();

        if (ceo != null)
        {
            float dura    = ceo.m_Entity.BaseData.m_Durability;
            float maxDura = ceo.m_Entity.m_Info.m_Durability;
            ceo.m_Entity.BaseData.m_Durability = dura - Mathf.Floor(maxDura * 0.1f);
            if (ceo.m_Creator.RemoveEntity(ceo.m_Entity.ID, false) != null)
            {
                base.DoGetItem();
            }
        }
        if (!PeGameMgr.IsMulti)
        {
            SendMessage("OnRemoveGo", itemObjectId, SendMessageOptions.DontRequireReceiver);
        }
    }
    public override void OnGetBtn()
    {
        //base.OnGetBtn ();
        //if (!GameConfig.IsMultiMode)
        //{
        CSEntityObject ceo = GetComponent <CSEntityObject>();

        if (ceo == null)
        {
            return;
        }

        if (EntityMonsterBeacon.IsRunning())
        {
            PeTipMsg.Register(PELocalization.GetString(8000622), PeTipMsg.EMsgLevel.Warning);
            CloseOn();
            return;
        }

        if (ceo.m_Entity.BaseData.m_Durability < ceo.m_Entity.m_Info.m_Durability * 0.15f)
        {
            MessageBox_N.ShowOkBox(PELocalization.GetString(8000084));
        }
        else
        {
            if (ceo as CSDwellingsObject != null)
            {
                MessageBox_N.ShowYNBox(PELocalization.GetString(8000085), GetOn, CloseOn);
            }
            else
            {
                MessageBox_N.ShowYNBox(PELocalization.GetString(8000086), GetOn, CloseOn);
            }
        }
        //}
    }
Exemple #24
0
    bool PlaySounds(AudioClip clip)
    {
        if (null != m_AudioSource)
        {
            if (null != clip)
            {
                if (null != m_AudioSource.clip)
                {
                    m_AudioSource.Stop();
                }
                m_AudioSource.clip = clip;
                m_AudioSource.Play();
                PlayState = SoundPlayState.Playing;

                return(true);
            }
            else
            {
                PeTipMsg.Register(string.Format("{0}:{1}", CurSoundInfo.Name, PELocalization.GetString(9500106)), PeTipMsg.EMsgLevel.Error);
            }
        }
        m_SwitchSound = true;
        return(false);
    }
Exemple #25
0
    public void AddMsg(PeTipMsg peTipMsg)
    {
        GameObject go       = CreateGo();
        UITipMsg   uiTipMsg = go.GetComponent <UITipMsg>();

        uiTipMsg.content.text  = peTipMsg.GetContent();
        uiTipMsg.content.color = peTipMsg.GetColor();
        uiTipMsg.musicID       = peTipMsg.GetMusicID();
        switch (peTipMsg.GetEStyle())
        {
        case PeTipMsg.EStyle.Text:
            uiTipMsg.tex.mainTexture = null;
            uiTipMsg.icon.spriteName = "";
            break;

        case PeTipMsg.EStyle.Icon:
            uiTipMsg.icon.spriteName = peTipMsg.GetIconName();
            uiTipMsg.tex.mainTexture = null;
            break;

        case PeTipMsg.EStyle.Texture:
            uiTipMsg.icon.spriteName = "";
            uiTipMsg.tex.mainTexture = peTipMsg.GetIconTex();
            break;
        }
        uiTipMsg.SetStyle(peTipMsg.GetEStyle());
        uiTipMsg.gameObject.SetActive(true);

        m_WaitList.Add(go);
        CheckTipsCount();
        Reposition();
        if (m_WaitList.Count > 7 && mScrollBar != null)
        {
            mScrollBar.scrollValue = 1f;
        }
    }
    public override void DoGetItem()
    {
        if (!GameConfig.IsMultiMode)
        {
            plant.UpdateStatus();
            int itemGetNum = (int)(((int)(plant.mLife / 20f) + 1) * 0.2f * plant.mPlantInfo.mItemGetNum);
            Dictionary <int, int> retItems = new Dictionary <int, int>();
            for (int i = 0; i < itemGetNum; i++)
            {
                float randomVar = Random.Range(0f, 1f);
                for (int j = 0; j < plant.mPlantInfo.mItemGetPro.Count; j++)
                {
                    if (randomVar < plant.mPlantInfo.mItemGetPro[j].m_probablity)
                    {
                        if (!retItems.ContainsKey(plant.mPlantInfo.mItemGetPro[j].m_id))
                        {
                            retItems[plant.mPlantInfo.mItemGetPro[j].m_id] = 0;
                        }
                        retItems[plant.mPlantInfo.mItemGetPro[j].m_id] += 1;
                    }
                }
            }

            List <MaterialItem> items = new List <MaterialItem>();
            foreach (int protoTypeId in retItems.Keys)
            {
                MaterialItem item = new MaterialItem();
                item.protoId = protoTypeId;
                item.count   = retItems[protoTypeId];
                items.Add(item);
                //ItemSample addItem = new ItemSample(itemid, retItems[itemid]);
                //PlayerFactory.mMainPlayer.AddItem(addItem);
//				Pathea.PeCreature.Instance.mainPlayer.GetCmpt<Pathea.PlayerPackageCmpt>().Add(protoTypeId, retItems[protoTypeId]);
            }

            if (null == pkg || !pkg.CanAdd(items))
            {
                PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning);
                return;
            }
            pkg.Add(items);

            FarmManager.Instance.RemovePlant(itemObjectId);

            //ItemMgr.Instance.DestroyItem(mItemObj.instanceId);
            DragArticleAgent.Destory(id);

            GameUI.Instance.mItemPackageCtrl.ResetItem();
            HideItemOpGui();
        }
        else
        {
            if (null != PlayerNetwork.mainPlayer)
            {
                PlayerNetwork.mainPlayer.RPCServer(EPacketType.PT_InGame_Plant_GetBack, itemObjectId);
            }
            GameUI.Instance.mItemPackageCtrl.ResetItem();
            HideItemOpGui();
        }

        //UpdateCmdList();
    }
Exemple #27
0
 void OnAddNewTipsMsg(PeTipMsg tipMsg)
 {
     tipList.AddMsg(tipMsg);
 }
Exemple #28
0
    public void BuyItem(int instanceId, int count)
    {
        int        shopID  = -1;
        int        cost    = 0;
        ItemObject itemObj = ItemAsset.ItemMgr.Instance.Get(instanceId);

        if (itemObj == null)
        {
            UpdateShop();
            return;
        }


        if (PeGameMgr.IsMulti)
        {
            cost = count * Mathf.RoundToInt(ShopRespository.GetPriceBuyItemId(itemObj.protoId) * (1 + ColonyConst.TRADE_POST_CHARGE_RATE));
            if (PlayerMoney.current < cost)
            {
                PeTipMsg.Register(PELocalization.GetString(Money.Digital? 8000092:8000073), PeTipMsg.EMsgLevel.Warning);
                return;
            }

            _ColonyObj._Network.RPCServer(EPacketType.PT_CL_TRD_BuyItem, instanceId, count);
            return;
        }
        else
        {
            foreach (KeyValuePair <int, stShopData> kvp in mShopList)
            {
                if (kvp.Value.ItemObjID == instanceId)
                {
                    shopID = kvp.Key;
                    break;
                }
            }
            if (shopID < 0)
            {
                UpdateShop();
                return;
            }

            ShopData data = ShopRespository.GetShopData(shopID);
            if (data != null)
            {
                cost = Mathf.RoundToInt(data.m_Price * (1 + ColonyConst.TRADE_POST_CHARGE_RATE)) * count;
            }
            else
            {
                PeTipMsg.Register(PELocalization.GetString(8000496), PeTipMsg.EMsgLevel.Warning);
                return;
            }
            if (!Buy(itemObj, count, data, false))
            {
                return;
            }
        }

        colonyMoney += cost;
        RemoveBuyItem(itemObj, count);

        //--to do: updateUi;
        UpdateBuyDataToUI();
    }
Exemple #29
0
    public bool Buy(ItemObject itemObj, int count, ShopData data, bool isRepurchase)
    {
        int price;

        if (!isRepurchase)
        {
            price = Mathf.RoundToInt(data.m_Price * (1 + ColonyConst.TRADE_POST_CHARGE_RATE));
        }
        else
        {
            price = itemObj.GetSellPrice();
        }
        int cost = price * count;

        if (PlayerMoney.current < cost)
        {
            PeTipMsg.Register(PELocalization.GetString(Money.Digital? 8000092:8000073), PeTipMsg.EMsgLevel.Warning);
            return(false);
        }

        ItemObject        addItem = null;
        PlayerPackageCmpt pkg     = PeCreature.Instance.mainPlayer.GetCmpt <PlayerPackageCmpt>();

        if (null == pkg)
        {
            PeTipMsg.Register(PELocalization.GetString(8000496), PeTipMsg.EMsgLevel.Warning);
            return(false);
        }

        if (!pkg.package.CanAdd(itemObj.protoId, count))
        {
            PeTipMsg.Register(PELocalization.GetString(9500312), PeTipMsg.EMsgLevel.Warning);
            return(false);
        }

        if (itemObj.protoData.maxStackNum == 1)
        {
            int NUM = count;
            for (int i = 0; i < NUM; i++)
            {
                count = 1;
                if (count < itemObj.GetCount())
                {
                    addItem = ItemMgr.Instance.CreateItem(itemObj.protoId);                     // single
                    addItem.SetStackCount(count);
                }
                else
                {
                    addItem = itemObj;
                    if (!isRepurchase)
                    {
                        mShopList[data.m_ID].ItemObjID = -1;
                    }
                }
                pkg.package.AddItem(addItem, !isRepurchase);
            }
            PlayerMoney.current -= cost;

            GameUI.Instance.mItemPackageCtrl.ResetItem();
        }
        else
        {
            if (count == itemObj.GetCount())
            {
                if (!isRepurchase)
                {
                    mShopList[data.m_ID].ItemObjID = -1;
                }
            }
            pkg.package.Add(itemObj.protoId, count, !isRepurchase);
            PlayerMoney.current -= cost;
            GameUI.Instance.mItemPackageCtrl.ResetItem();
        }

        return(true);
    }
    public void OnDropItem(Grid_N grid)
    {
        if (this.mRepairMachine.m_Repair != null && this.mRepairMachine.m_Repair.IsRepairingM)
        {
            return;
        }

        if (SelectItem_N.Instance.Place == ItemPlaceType.IPT_HotKeyBar || SelectItem_N.Instance.Place == ItemPlaceType.IPT_Repair)
        {
            return;
        }

        //lz-2016.09.19 如果是ISO就返回,营地修理机不支持修ISO
        if (WhiteCat.CreationHelper.GetCreationItemClass(SelectItem_N.Instance.ItemObj) != WhiteCat.CreationItemClass.None)
        {
            //lz-2016.10.23 增加只能在基地修理的提示
            PeTipMsg.Register(PELocalization.GetString(8000843), PeTipMsg.EMsgLevel.Warning);
            return;
        }

        ActiveWnd();

        Repair dragRepairItem = SelectItem_N.Instance.ItemObj.GetCmpt <Repair>();

        if (dragRepairItem == null)
        {
            return;
        }

        if (dragRepairItem.protoData.repairMaterialList == null || dragRepairItem.protoData.repairMaterialList.Count == 0)
        {
            return;
        }

        //多人模式
        if (Pathea.PeGameMgr.IsMulti)
        {
            int[] itemlist = new int[1];
            itemlist[0] = SelectItem_N.Instance.ItemObj.instanceId;
            _net.InsertItemList(itemlist);
            return;
        }
        else
        {
            //lz-2016.07.29 在修理机拖入物品的时候,如果里面有东西就先尝试取出里面的物品到背包,执行成功的时候再放进新的物品
            if (null == mRepairItem.ItemObj)
            {
                UpdateItem(dragRepairItem);
                SelectItem_N.Instance.RemoveOriginItem();
                SelectItem_N.Instance.SetItem(null);
            }
            else
            {
                //lz-2016.10.19 如果拖动的Item和放置的Item是同一类型,就直接交换ItemObj数据
                ItemPackage.ESlotType dropType = ItemPackage.GetSlotType(mRepairItem.ItemObj.protoId);
                ItemPackage.ESlotType dragType = ItemPackage.GetSlotType(dragRepairItem.itemObj.protoId);
                if (dropType == dragType && null != SelectItem_N.Instance.Grid)
                {
                    if (SelectItem_N.Instance.Grid.onGridsExchangeItem != null)
                    {
                        SelectItem_N.Instance.Grid.onGridsExchangeItem(SelectItem_N.Instance.Grid, mRepairItem.ItemObj);
                        UpdateItem(dragRepairItem);
                        SelectItem_N.Instance.SetItem(null);
                    }
                }
                //lz-2016.10.19 如果不是同一类型,或者没有Grid,就先添加,后移除
                else
                {
                    if (TryAddCurRepairItemToPlayerPackage())
                    {
                        UpdateItem(dragRepairItem);
                        SelectItem_N.Instance.RemoveOriginItem();
                        SelectItem_N.Instance.SetItem(null);
                    }
                }
            }
        }
    }