38 lines
868 B
C
38 lines
868 B
C
#include "player_modifiers.h"
|
|
#include "player.h"
|
|
#include "conf.h"
|
|
|
|
void player_mod_water(Player *player, uint8_t sides) {
|
|
if (sides & D_ANY) {
|
|
/* precise and slow movement */
|
|
player->vars.acceleration *= 4;
|
|
player->vars.friction *= 16;
|
|
/* low jump and super slow fall */
|
|
player->vars.jump_spd /= 4;
|
|
player->vars.gravity_scalar /= 8;
|
|
/* allow the player to jump midair */
|
|
player->grace = 1;
|
|
}
|
|
}
|
|
|
|
void player_mod_ice(Player *player, uint8_t sides) {
|
|
if (sides & D_FLOOR) {
|
|
player->vars.acceleration /= 4;
|
|
player->vars.friction /= 4;
|
|
}
|
|
}
|
|
|
|
void player_mod_glue(Player *player, uint8_t sides) {
|
|
if (sides & D_FLOOR) {
|
|
player->vars.acceleration = 1;
|
|
player->vars.friction = 1;
|
|
}
|
|
if (sides & (D_LEFT | D_RIGHT | D_CEIL)) {
|
|
player->spd.y = 0;
|
|
player->vars.gravity = 0;
|
|
player->vars.acceleration /= 2;
|
|
player->vars.friction *= 2;
|
|
}
|
|
}
|
|
|