public void UsePickup(BallController ball) { if (pickup == null) { Debug.Log("No pickup available for use"); } else { pickup.Consume(ball); this.RemovePickupHighlight(); if (pickup.GetCharges() < 1) { RemovePickup(); } } }
// Update is called once per frame void Update() { if (player != null) { if (player.IsAtTarget()) { Node node = GetOverlap(player); if (node != null && node.risk > 0 && node != actionedNode) { actionedNode = node; } if (node != null) { Goal goal = node.gameObject.GetComponent <Goal>(); if (goal != null) { reachedGoal = goal; } Pickup pickup = node.pickup; if (pickup != null && !pickup.consumed) { if (pickup.type == Pickup.PickupType.HEALTH) { pickup.Consume(); node.UpdateRiskText(); explosionHandler.PickupPlant(pickup.gameObject.transform.position + new Vector3(0, 0.4f, 0.4f)); playerHealth += pickup.amount; } } GameInfo gameInfo = node.gameObject.GetComponentInChildren <GameInfo>(); if (gameInfo != null && !gameInfo.isShown) { ConvoHandler convoHandler = FindObjectOfType <ConvoHandler>(); convoHandler.ShowInfo(gameInfo); gameInfo.Consume(); } } } if (waypoints.Count > 0) { if (waypoints.Count > 1) { player.targetPos = waypoints[waypoints.Count - 1].transform.position; } else { if (selectedNode != null && selectedNode.risk > 0) { Vector3 direction = Vector3.Normalize(selectedNode.transform.position - selectedPlayer.transform.position); selectedPlayer.targetPos = selectedNode.transform.position - (direction * 1f); } else { player.targetPos = waypoints[waypoints.Count - 1].transform.position; } } if (player.IsAtTarget()) { waypoints.Remove(waypoints[waypoints.Count - 1]); } } } if (isRolling) { diceResult = UnityEngine.Random.Range(1, 7); } else { diceResult = -100; } }
internal void HandleRoll(bool didSucceed, Game game) { if (actor != null) { if (didSucceed) { game.ExplodePosition(actor.gameObject.transform.position); Destroy(actor.gameObject); actor = null; game.canRun = false; RemoveRisk(); } else { if (game.armourHelp > 0) { game.armourHelp -= 1; } else { game.canRun = true; game.playerHealth -= 1; } } } if (pickup != null && !pickup.consumed && actor == null) { pickup.Consume(); game.ExplodePosition(pickup.gameObject.transform.position + new Vector3(0, 0.4f, 0.4f)); RemoveRisk(); if (pickup.isCurse) { if (!didSucceed) { pickup.ApplyPickupToPlayer(game); if (character != null) { character.SetFollow(game.player.transform); } } else { if (character != null) { Destroy(character.gameObject); character = null; } } } else { if (didSucceed) { pickup.ApplyPickupToPlayer(game); if (character != null) { character.SetFollow(game.player.transform); } game.PlayerCelebrate(); } else { if (character != null) { Destroy(character.gameObject); character = null; } } } if (character != null) { if ((didSucceed && !pickup.isCurse) || (!didSucceed && pickup.isCurse)) { character.SetFollow(game.player.transform); } else { Destroy(character.gameObject); character = null; } } } }