/// <summary> /// Happens once when there's a collision with a ghost. /// </summary> private void GhostCollision(GameObject ghost) { switch (ghost.GetComponent <MoveComponent>().MovementState) { case MovementState.Chase: case MovementState.Scatter: OnGhostChaseCollision(); break; case MovementState.Frightened: ResetTimer(frightenedModeTime); ConsoleSprite consoleSprite = ghost.GetComponent <ConsoleSprite>(); consoleSprite.ChangeColor( ConsoleColor.Red, ConsoleColor.DarkBlue); MoveComponent moveComponent = ghost.GetComponent <MoveComponent>(); InvertGhostDirection(ghost); moveComponent.MovementState = MovementState.Eaten; moveComponent.AddMovementBehaviour( new BlinkyChaseBehaviour( ghost, map, new MapTransformComponent(13, 11), ghost.GetComponent <MapTransformComponent>(), 3)); break; } }
/// <summary> /// Method that defines what happens when pacman collides with /// power pills. /// </summary> private void PowerPillCollision() { ResetTimer(frightenedModeTime); foreach (GameObject ghost in ghosts) { MoveComponent moveComponent = ghost.GetComponent <MoveComponent>(); if (moveComponent.MovementState == MovementState.Eaten) { continue; } ConsoleSprite consoleSprite = ghost.GetComponent <ConsoleSprite>(); consoleSprite.ChangeColor( ConsoleColor.Red, ConsoleColor.White); moveComponent.MovementState = MovementState.Frightened; SwitchFrightenedMode(ghost); InvertGhostDirection(ghost); } }