xp multiplier based on combo + challenging lv2

This commit is contained in:
Lephenixnoir 2023-01-19 21:35:41 +01:00
parent c786d35388
commit 127bb4076d
Signed by: Lephenixnoir
GPG Key ID: 1BBA026E13FC0495
4 changed files with 16 additions and 11 deletions

1
.gitignore vendored
View File

@ -1,6 +1,7 @@
# Build files
/build-fx
/build-cg
/build-cg-push
/*.g1a
/*.g3a

View File

@ -20,7 +20,7 @@ wave: 12s 1*fire_slime/4 1*bat/2 4*slime/1
delay: 8s
# "Boss" wave #1
wave: 12s 1*albinos_bat/6 2*fire_slime/4 4*bat/2 8*slime/1
wave: 12s 1*albinos_bat/6 2*fire_slime/4 4*bat/2 8*slime/1 1*water_slime/8
delay: 10s
item: scepter2
@ -28,11 +28,13 @@ wave: 12s 4*fire_slime/4 4*bat/2
wave: 8s 1*albinos_bat/6
item: potion_hp
delay: 5s
wave: 18s 12*bat/2 12*slime/1
wave: 18s 12*bat/2 6*slime/1 2*water_slime/8
delay: 8s
# "Boss" wave #2
wave: 2s 4*fire_slime/4 4*bat/2 4*slime/1
delay: 4s
wave: 1s 2*albinos_bat/6
wave: 20s 40*slime/1
wave: 8s 4*water_slime/8 2*chemical_slime/10
wave: 20s 20*slime/1 10*fire_slime/4 4*water_slime/8 2*chemical_slime/10

View File

@ -54,7 +54,7 @@ static enemy_t const bat_2 = {
.stats_growth = { .HP=10, .ATK=3, .MAG=2, .DEF=1 },
.shadow_size = 4,
.xp = 6,
.xp = 8,
.z = fix(0.75),
.ai_data_size = sizeof(struct bat_ai),
};
@ -74,7 +74,7 @@ static enemy_t const fire_slime_4 = {
.stats_growth = { .HP=8, .ATK=4, .MAG=4, .DEF=2 },
.shadow_size = 4,
.xp = 14,
.xp = 22,
.z = 0,
.ai_data_size = 0,
};
@ -94,7 +94,7 @@ static enemy_t const albinos_bat_6 = {
.stats_growth = { .HP=10, .ATK=3, .MAG=2, .DEF=1 },
.shadow_size = 4,
.xp = 20,
.xp = 40,
.z = fix(0.5),
.ai_data_size = sizeof(struct bat_ai),
};
@ -113,7 +113,7 @@ static enemy_t const gunslinger_8 = {
.stats_growth = { .HP=12, .ATK=4, .MAG=1, .DEF=1 },
.shadow_size = 4,
.xp = 30,
.xp = 60,
.z = fix(0.25),
.ai_data_size = 0,
};
@ -133,7 +133,7 @@ static enemy_t const water_slime_8 = {
.stats_growth = { .HP=8, .ATK=4, .MAG=4, .DEF=2 },
.shadow_size = 4,
.xp = 24,
.xp = 32,
.z = 0,
.ai_data_size = 0,
};
@ -153,7 +153,7 @@ static enemy_t const chemical_slime_10 = {
.stats_growth = { .HP=8, .ATK=2, .MAG=6, .DEF=2 },
.shadow_size = 4,
.xp = 41,
.xp = 71,
.z = 0,
.ai_data_size = 0,
};

View File

@ -360,8 +360,10 @@ void game_remove_dead_entities(game_t *g)
bool anim_finished = !v || (v->anim.frame == NULL);
if(f && f->HP == 0 && f->enemy != NULL && anim_finished) {
/* Give XP points to player */
bool lvup = player_add_xp(g->player, f->enemy->id->xp);
/* Give XP points to player based on combo */
int mult_percent = 100 + min(g->combo, 100);
int xp = f->enemy->id->xp * mult_percent / 100;
bool lvup = player_add_xp(g->player, xp);
if(lvup) {
g->hud_xp_anim.frame = anims_hud_xp_Explode.start[0];