A simple animation system capable of loading a spritesheet with fixed sized frames.
Defines the collider system for collision detection.
Implements weapon systems including animations, shooting mechanics, and particle effects.
Defines preset particle emitter configurations for common visual effects.
int Player_HandleDash()
Handles ongoing dash state.
Definition player_skills.c:61
void Player_UpdateHitbox()
Updates player hitbox.
Definition player_movement.c:76
bool Player_DetectCollision()
Detects collisions for player.
Definition player_handlecollision.c:24
PlayerPassive
Definition player.h:20
@ KINETIC_ARMOR
Definition player.h:24
@ HEMO_CYCLE
Definition player.h:23
@ SCAVENGER
Definition player.h:27
@ LAST_STAND
Definition player.h:25
@ TOTAL_SKILLS
Definition player.h:28
@ ARMORED_UP
Definition player.h:21
@ GHOST_LOAD
Definition player.h:22
@ OVER_PRESSURED
Definition player.h:26
void Skill_Update()
Definition player_skills.c:233
int Handle_Parry()
Definition player_skills.c:367
int Player_HandleCrashOut()
Handles ongoing crashout state.
Definition player_skills.c:294
int Player_AnimationInit()
Initializes player animations.
Definition player_animations.c:25
int Player_Start()
Initializes the player.
Definition player_start.c:24
void Player_Input_Handler()
Handles player input.
Definition player_input_handler.c:26
void Player_Shoot()
Makes player shoot current weapon.
Definition player_combat.c:24
int Parry()
Definition player_skills.c:320
void scavenger()
Definition player_skills.c:130
bool ghostLoad()
Definition player_skills.c:203
PlayerData player
Global player instance.
Definition player_data.c:22
void Player_ReadLog(void *data, int interactableIndex)
Definition player_combat.c:165
int Player_CrashOut()
Activates crashout ability.
Definition player_skills.c:252
void Player_SwitchGun()
Changes player's current weapon.
Definition player_combat.c:73
void Player_TakeDamage(int damage)
Definition player_combat.c:177
void Player_RenderDamageEffect()
Definition player_combat.c:214
int Player_Dash()
Initiates player dash.
Definition player_skills.c:38
int Player_AnimationUpdate()
Updates player animations.
Definition player_animations.c:42
int Player_PostUpdate()
Post-update operations for player.
Definition player_postupdate.c:28
int Player_Look(Vec2 direction)
Makes player look in specified direction.
Definition player_movement.c:28
int Handle_ParryRender()
Definition player_skills.c:341
int Player_Render()
Renders the player.
Definition player_render.c:24
void Player_OpenCrate(void *data, int interactableIndex)
Opens a crate This function is a callback when the player interacts with a closed crate.
Definition player_combat.c:155
void Player_PickUpGun(void *data, int interactableIndex)
Picks up a gun.
Definition player_combat.c:95
int Player_Preupdate()
Pre-update operations for player.
Definition player_preupdate.c:25
int Player_Move()
Moves the player.
Definition player_movement.c:43
bool kineticArmor()
Definition player_skills.c:184
Manages audio playback for music and sound effects.
Configuration data for creating an animation.
Definition animation.h:102
The main animation structure.
Definition animation.h:83
This struct represents a collider.
Definition colliders.h:96
Gun data structure.
Definition gun.h:116
A struct that represents the configurations of a particle emitter.
Definition particles.h:105
Main player data structure.
Definition player.h:143
PlayerStat stats
Player statistics.
Definition player.h:145
AnimationData animData
Animation data.
Definition player.h:147
PlayerState state
Current player state.
Definition player.h:144
PlayerResources resources
Player resources.
Definition player.h:146
Contains the player's resources and timers.
Definition player.h:114
Timer * shootCooldownTimer
Timer for shoot cooldown.
Definition player.h:120
Timer * dashCooldownTimer
Timer for dash cooldown.
Definition player.h:119
Timer * dashDurationTimer
Timer for dash duration.
Definition player.h:118
SkillResources skillResources
Resources for player skills.
Definition player.h:122
ParticleEmitter * dashParticleEmitter
Particle effect for dashing.
Definition player.h:115
ParticleEmitter * crashOut
Particle effect for crashout.
Definition player.h:116
Timer * INVINCIBLE_Timer
[Title card] timer
Definition player.h:121
Animation * animation
Player animation data.
Definition player.h:117
Contains the player's stats and attributes.
Definition player.h:128
int maxAmmo
Definition player.h:130
float dashCooldown
Time between dashes.
Definition player.h:135
float dashSpeed
Speed during dash.
Definition player.h:133
SkillStat skillStat
Player skills and abilities
Definition player.h:137
float dashDuration
How long dash lasts.
Definition player.h:134
int enemiesKilled
Number of enemies killed.
Definition player.h:136
float walkSpeed
Normal walking speed.
Definition player.h:132
float INVINCIBLE_Time
Time the player is [Title card] before taking damage again.
Definition player.h:131
int maxHealth
Definition player.h:129
Contains the player's current state information.
Definition player.h:88
Vec2 direction
Last direction the player was facing.
Definition player.h:90
SDL_RendererFlip flip
Flip state for rendering.
Definition player.h:108
bool dashing
Whether the player is currently dashing.
Definition player.h:95
float crashOutMultiplier
Multipler that will be used fro crashout.
Definition player.h:99
Collider collider
Player collision data.
Definition player.h:104
bool insideRoom
Whether player is in a room.
Definition player.h:105
GunData currentGun
Currently equipped weapon.
Definition player.h:100
float currentSpeed
Current movement speed.
Definition player.h:91
bool insideHallway
Whether player is in a hallway.
Definition player.h:106
int currentAmmo
Definition player.h:93
Gun gunSlots[2]
Guns held by the player.
Definition player.h:101
Vec2 position
Current player position.
Definition player.h:89
int currentHealth
Definition player.h:92
bool movementLocked
Whether movement is locked.
Definition player.h:98
bool moving
Whether the player is moving.
Definition player.h:97
bool directionLocked
Whether movement direction is locked.
Definition player.h:96
SkillState skillState
Player skills and abilities.
Definition player.h:102
bool insideEnd
Whether player is at an endpoint.
Definition player.h:107
int armoredUpDamageOutputDamageReduction
Amount of damage reduction from armored up skill.
Definition player.h:53
float overPressuredFireRate
Fire rate when overpressured.
Definition player.h:47
Timer * crashOutDuration
Timer for crashout duration.
Definition player.h:57
int scavengerAmmoCapacity
Amount of capacity reduced percentage from scavenger skill.
Definition player.h:50
float parryRadius
Radius of the parry effect.
Definition player.h:62
Vec2 parryDirection
Definition player.h:63
ParticleEmitter * parryParticleEmitter
Visual effect for Parry.
Definition player.h:60
SDL_Texture * parryTexture
Texture for Parry effect.
Definition player.h:61
int hemocycleMultipler
Amount of health gained from hemocycle skill.
Definition player.h:51
int ammoShoot
Amount of ammo shot from the gun.
Definition player.h:54
Timer * parryTimer
Timer for Parry ability cooldown.
Definition player.h:58
int scavengerAmmoBonus
Amount of ammo gained from scavenger skill.
Definition player.h:49
float overPressuredProjectileSpeed
Speed of overpressured bullets.
Definition player.h:48
float overPressuredBulletConsumptionMultipler
Amount of ammo consumed when overpressured.
Definition player.h:46
Timer * parryDurationTimer
Timer for Parry ability duration.
Definition player.h:59
Timer * crashOutCooldown
Timer for crashout cooldown.
Definition player.h:56
float ghostLoadRandomizer
Randomizer for ghost load jamming.
Definition player.h:55
int armoredUpIncomingDamageReduction
Definition player.h:52
int scavengerAmmoBonus
Amount of ammo gained from scavenger skill.
Definition player.h:70
float parryDuration
How long parry lasts when activated.
Definition player.h:81
int crashOutDuration
Definition player.h:79
int scavengerAmmoCapacity
Amount of capacity reduced percentage from scavenger skill.
Definition player.h:71
int hemocycleMultipler
Amount of health gained from hemocycle skill.
Definition player.h:72
int armoredUpIncomingDamageReduction
Definition player.h:74
float overPressuredOriginalMultipler
Amount of ammo consumed when overpressured.
Definition player.h:67
float parryCooldown
Cooldown time for parry ability.
Definition player.h:80
int crashOutCooldown
Definition player.h:78
int armoredUpDamageOutputDamageReduction
Amount of damage reduction from armored up skill.
Definition player.h:75
float overPressuredOriginalFireRate
Fire rate when overpressured.
Definition player.h:68
float ghostLoadRandomizer
Randomizer for ghost load jamming.
Definition player.h:76
int hemocycleHealthGained
Amount of health gained from hemocycle skill.
Definition player.h:73
float maxParryAngle
Maximum angle for parry.
Definition player.h:82
int crashOutCurrentMultipler
Definition player.h:77
float overPressuredOriginalProjectileSpeed
Speed of overpressured bullets.
Definition player.h:69
bool armoredUp
Definition player.h:37
bool ghostLoad
Definition player.h:35
bool overPressured
Definition player.h:32
bool hemoCycle
Definition player.h:39
bool crashOut
Definition player.h:41
bool scavenger
Definition player.h:38
int crashOutMultiplier
Definition player.h:40
bool lastStand
Definition player.h:33
bool kineticArmor
Definition player.h:34
bool parryActive
Whether Parry ability is active.
Definition player.h:42
bool oneMore
Definition player.h:36
The Timer struct used to keep track of time.
Definition timer.h:48
A 2D vector structure.
Definition vec2.h:81
Provides 2D vector functionality for positions, directions, and transformations.