Beispiel #1
0
    /// <summary>
    /// 单击节点显示详情
    /// </summary>
    /// <param name="p1"></param>
    /// <param name="p2"></param>
    void OnStateNodeClicked(object p1, object p2)
    {
        int           nodeId = (int)p1;
        BaseStageNode node   = _stageConfig.GetNode(nodeId);

        if (node.IsPassed)
        {
            return;
        }
        if (node.HiddenDetail)
        {
            EventSys.Instance.AddEvent(ViewEvent.ShowNodeUnKnow, nodeId);
            return;
        }
        Type type = node.GetType();

        if (type == typeof(StageNodeFight))
        {
            Enemy e = FightDataMgr.Instance.GetEnemy(nodeId);
            EventSys.Instance.AddEvent(ViewEvent.ShowNodeFightDetails, e.CreatureData, nodeId);
        }
        else if (type == typeof(StageNodeReward))
        {
            Reward r = FightDataMgr.Instance.GetReward(nodeId);
            EventSys.Instance.AddEvent(ViewEvent.ShowNodeRewardDetails, r, nodeId);
        }
        else if (type == typeof(StageNodeHidden))
        {
        }
        else if (type == typeof(StageNodeSafe))
        {
            EventSys.Instance.AddEvent(ViewEvent.ShowNodeSafeDetails, nodeId);
        }
    }
Beispiel #2
0
    void OnFightDragAllOnNode(object p1, object p2)
    {
        int fromNodeId   = (int)p1;
        int targetNodeId = (int)p2;

        StageNodeSafe fromNode   = (StageNodeSafe)_stageConfig.GetNode(fromNodeId);
        BaseStageNode targetNode = _stageConfig.GetNode(targetNodeId);

        if (!fromNode.NextNodes.Contains(targetNodeId))
        {
            EventSys.Instance.AddEvent(ViewEvent.ShowTipNotNextNode);
            return;
        }

        if (targetNode.GetType() != typeof(StageNodeFight))
        {
            EventSys.Instance.AddEvent(ViewEvent.ShowTipNotSupportYet);
            return;
        }

        switch (_fState)
        {
        case FSubState.SelectHero:
            break;

        case FSubState.Mapping:

            List <int> heros = new List <int>();
            foreach (var pair in FightDataMgr.Instance.GetHeros())
            {
                if (pair.Value.NowNodeId == fromNode.Id)
                {
                    heros.Add(pair.Value.Id);
                }
            }
            EventSys.Instance.AddEvent(LogicEvent.StartFightRound, heros.ToArray(), targetNodeId);
            break;
        }
    }