コード例 #1
0
ファイル: MapObject.cs プロジェクト: komastar/TileTraveler
    public int OnClickNode(NodeObject node)
    {
        if (selectedNode == node)
        {
            return(1);
        }

        if (node.NodeState == ENodeState.Close ||
            node.NodeState == ENodeState.Open ||
            node.NodeType != ENodeType.Normal)
        {
            return(-1);
        }

        var diceFromHand = hand.GetDice();

        if (ReferenceEquals(null, diceFromHand))
        {
            return(-1);
        }

        if (selectDice == diceFromHand)
        {
            if (!ReferenceEquals(null, selectedNode))
            {
                selectedNode.ReadyToTransfer();
                selectedNode.ResetNode();
            }
            var route  = dataManager.RouteData[selectDice.DiceId];
            var sprite = spriteManager.Sprites[route.Name];
            node.SetupNode(route, sprite);
            AddRoundNode(node);
            LinkNodeAction(node);
            SelectNode(node);
            FixNode();

            return(0);
        }

        selectDice = diceFromHand;
        if (ReferenceEquals(null, selectDice))
        {
            if (node.Round == round)
            {
                SelectNode(node);
            }
        }
        else
        {
            if (node.Round == round)
            {
                hand.Return(node);
            }
            var route  = dataManager.RouteData[selectDice.DiceId];
            var sprite = spriteManager.Sprites[route.Name];
            node.SetupNode(route, sprite);
            AddRoundNode(node);
            LinkNodeAction(node);
            Log.Debug($"Build : {route.Name} / {node.Position}");
            hand.DisposeNode();
            SelectNode(node);
        }

        FixNode();

        return(0);
    }