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); }