#ifndef DIFFICULTY_H
#define DIFFICULTY_H

#include <types.h>

// Game difficulty options.
#define EASY_DIFFICULTY 0
#define NORMAL_DIFFICULTY 1
#define HARD_DIFFICULTY 2

// The default rate for oxygen depletion.
#define DEFAULT_OXYGEN_DEPLETION_RATE 400

// The rate of oxygen deletion when in low oxygen water.
#define LOW_OXYGEN_DEPLETION_RATE 170

// The rate of oxygen deletion when in high oxygen water.
#define HIGH_OXYGEN_DEPLETION_RATE 800

// The amount of ammo that an ammo pickup contains.
extern u8 ammoPickupAmount;

// The difficulty level chosen by the player for the game session.
extern u8 chosenDifficulty;

// The maximum amount of oxygen the player can carry.
extern u8 maxOxygen;

// The amount of oxygen that an oxygen pickup contains.
extern u8 oxygenPickupAmount;

// The interval used for depleting oxygen during interrupts.
extern u16 oxygenDepletionTimerInterval;

// The maximum amount of oxygen when using an oxygen point.
extern u8 maxOxygenPointAmount;

// The amount of health that the player starts with.
extern u8 playerStartingHealth;

// The maximum amount of health that the player can have.
extern u8 maxPlayerHealth;

// The amount of health a pickup contains.
extern u8 healthPickupAmount;

// The amount of health the player loses on colliding with a spike.
extern u8 spikeDamageAmount;

// The amount of health the player loses on colliding with an enemy.
extern u8 enemyDamageAmount;

// The amount of lives the player starts with.
extern u8 startingLivesCount;

// Sets up all the difficulty values for the game session.
void setupDifficulty();

#endif