enemy.unbombable, bombs hurt bosses
This commit is contained in:
parent
5dac665402
commit
c5eba2156d
3 changed files with 14 additions and 3 deletions
|
@ -13,7 +13,7 @@
|
|||
#include "projectile.h"
|
||||
#include "list.h"
|
||||
|
||||
void create_enemy_p(Enemy **enemies, complex pos, int hp, EnemyDrawRule draw_rule, EnemyLogicRule logic_rule,
|
||||
Enemy *create_enemy_p(Enemy **enemies, complex pos, int hp, EnemyDrawRule draw_rule, EnemyLogicRule logic_rule,
|
||||
complex a1, complex a2, complex a3, complex a4) {
|
||||
Enemy *e = (Enemy *)create_element((void **)enemies, sizeof(Enemy));
|
||||
e->moving = 0;
|
||||
|
@ -24,6 +24,7 @@ void create_enemy_p(Enemy **enemies, complex pos, int hp, EnemyDrawRule draw_rul
|
|||
e->pos0 = pos;
|
||||
|
||||
e->hp = hp;
|
||||
e->unbombable = 0;
|
||||
|
||||
e->logic_rule = logic_rule;
|
||||
e->draw_rule = draw_rule;
|
||||
|
@ -34,6 +35,8 @@ void create_enemy_p(Enemy **enemies, complex pos, int hp, EnemyDrawRule draw_rul
|
|||
e->args[3] = a4;
|
||||
|
||||
e->logic_rule(e, EVENT_BIRTH);
|
||||
|
||||
return e;
|
||||
}
|
||||
|
||||
void _delete_enemy(void **enemies, void* enemy) {
|
||||
|
|
|
@ -40,6 +40,7 @@ struct Enemy {
|
|||
EnemyDrawRule draw_rule;
|
||||
|
||||
int hp;
|
||||
int unbombable;
|
||||
|
||||
complex args[RULE_ARGC];
|
||||
};
|
||||
|
@ -49,7 +50,7 @@ struct Enemy {
|
|||
#define create_enemy2c(p,h,d,l,a1,a2) create_enemy_p(&global.enemies,p,h,d,l,a1,a2,0,0)
|
||||
#define create_enemy1c(p,h,d,l,a1) create_enemy_p(&global.enemies,p,h,d,l,a1,0,0,0)
|
||||
|
||||
void create_enemy_p(Enemy **enemies, complex pos, int hp, EnemyDrawRule draw_rule, EnemyLogicRule logic_rule,
|
||||
Enemy *create_enemy_p(Enemy **enemies, complex pos, int hp, EnemyDrawRule draw_rule, EnemyLogicRule logic_rule,
|
||||
complex a1, complex a2, complex a3, complex a4);
|
||||
void delete_enemy(Enemy **enemies, Enemy* enemy);
|
||||
void draw_enemies(Enemy *enemies);
|
||||
|
|
|
@ -155,12 +155,19 @@ void player_logic(Player* plr) {
|
|||
if(global.frames - plr->recovery < 0) {
|
||||
Enemy *en;
|
||||
for(en = global.enemies; en; en = en->next)
|
||||
en->hp -= 300;
|
||||
if(!en->unbombable)
|
||||
en->hp -= 300;
|
||||
|
||||
Projectile *p;
|
||||
for(p = global.projs; p; p = p->next)
|
||||
if(p->type >= FairyProj)
|
||||
p->type = DeadProj;
|
||||
|
||||
if(global.boss && global.boss->current) {
|
||||
AttackType at = global.boss->current->type;
|
||||
if(at != AT_Move && at != AT_SurvivalSpell)
|
||||
global.boss->dmg += 30;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue