public void NodeClicked(GameNode node) { if (lastClicked != null) { lastClicked.SetState(NodeStates.VISITED); } NodeStates state = node.GetState(); if (state == NodeStates.UNKNOWN) { curEncounterLevel += encounterTickForNewNode; AddEnergy(-energyCostForNewNode); } else if (state == NodeStates.VISITED) { curEncounterLevel += encounterTickForOldNode; AddEnergy(-energyCostForOldNode); } else if (state == NodeStates.HELP) { curLevelPoints += pointsPerHelp; AddEnergy(-energyCostForNewNode); } else if (state == NodeStates.EXIT) { curPoints += curLevelPoints; AddEnergy(-energyCostForNewNode); SceneManager.LoadScene(0); } else { AddEnergy(-energyCostForOldNode); } node.SetState(NodeStates.CURRENT); lastClicked = node; RefreshText(); if (curEncounterLevel > encounterThreshold) { DoEncounter(); } }