예제 #1
0
    void InitTimeLimitItem(tagActionEventConfig tagInfo, byte state, uint curValue = 0)
    {
        LimitTimeItem item = new LimitTimeItem();

        item.Init(m_BaseItem);
        item.SetItemInfo(m_ActivityID, tagInfo, state, curValue);
        m_NodeList.Add(item);
    }
예제 #2
0
파일: RoleAction.cs 프로젝트: profiles/Fish
    bool HandleChangeActionInfo(NetCmdBase obj)
    {
        LC_Cmd_GetOnceActionInfo ncb     = (LC_Cmd_GetOnceActionInfo)obj;
        RoleActionBase           pAction = GetAction(ncb.ActionInfo.ActionID);

        if (pAction == null)
        {
            //直接添加
            tagActionConfig pConfig = null;
            if (!FishConfig.Instance.m_ActionInfo.m_ActionMap.TryGetValue(ncb.ActionInfo.ActionID, out pConfig))
            {
                return(false);
            }
            pAction = CreateAction((EventTargetType)pConfig.EventID);
            if (pAction == null || !pAction.OnInit(ncb.ActionInfo, this))
            {
                return(false);
            }
            m_ActionMap.Add(ncb.ActionInfo.ActionID, pAction);
            //  CheckIsExistsFinishItem();
            tagOnceActionChangeEvent pEvent = new tagOnceActionChangeEvent(ncb.ActionInfo.ActionID);
            MsgEventHandle.HandleMsg(pEvent);
            return(true);
        }
        else
        {
            UInt32 ID = (ncb.ActionInfo.ActionStates ^ pAction.pActionInfo.ActionStates);

            pAction.pActionInfo = ncb.ActionInfo;

            // CheckIsExistsFinishItem();
            tagOnceActionChangeEvent pEvent = new tagOnceActionChangeEvent(ncb.ActionInfo.ActionID);
            MsgEventHandle.HandleMsg(pEvent);

            RoleActionBase pBase = GetAction(ncb.ActionInfo.ActionID);
            if (pBase != null && pBase.pConfig.EventMap.ContainsKey(ID))
            {
                tagActionEventConfig     pEventConfig = pBase.pConfig.EventMap[ID];
                tagActionOnceRewardEvent pReward      = new tagActionOnceRewardEvent(ncb.ActionInfo.ActionID, ID, pEventConfig.RewardID);
                MsgEventHandle.HandleMsg(pReward);

                tagUserOperationEvent pUOM = new tagUserOperationEvent(UserOperateMessage.UOM_Action_GetReward_Sucess);
                MsgEventHandle.HandleMsg(pUOM);
            }
            //pAction.ChangeActionErrorInfo(ncb.ActionInfo);
        }
        return(true);
    }
예제 #3
0
    public void SetItemInfo(byte ActivityID, tagActionEventConfig tagInfo, byte state, uint curValue)
    {
        m_NodeState     = state;
        m_ActivityID    = ActivityID;
        m_NodeID        = tagInfo.ID;
        m_NodeName.text = tagInfo.Common;
        if (state <= 2)
        {
            m_NodeProgress.text = curValue.ToString() + "/" + tagInfo.FinishValue.ToString();
        }
        else
        {
            m_NodeProgress.text = tagInfo.FinishValue + "/" + tagInfo.FinishValue.ToString();
        }
        tagRewardOnce pReward = FishConfig.Instance.GetRewardOnceByID((ushort)tagInfo.RewardID);

        if (pReward == null)
        {
            return;
        }
        for (byte i = 0; i < pReward.RewardItemVec.Count; ++i)
        {
            uint ItemID = pReward.RewardItemVec[i].ItemID;
            if (FishConfig.Instance.m_ItemInfo.m_ItemMap.ContainsKey(ItemID) != true)
            {
                continue;
            }
            if (i >= 3)
            {
                break;
            }
            m_NodeReward[i].m_RewardIcon.spriteName = FishConfig.Instance.m_ItemInfo.m_ItemMap[ItemID].ItemIcon;
            m_NodeReward[i].m_RewardSum.text        = "x" + pReward.RewardItemVec[i].ItemSum.ToString();
            m_NodeReward[i].m_Obj.SetActive(true);
        }
        ChangeBtnSate(state);
    }