/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_bad_boy_actions.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: joelecle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/14 17:28:51 by joelecle #+# #+# */ /* Updated: 2020/02/14 17:28:51 by joelecle ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include #include #include #include #include void ft_bb_wait(t_bad_boy *bl, t_sprite *sl, t_map *ml) { (void)sl; (void)ml; bl->does = 0; } /* ** rand(3) index list ** ------------------ ** rand() 0 - 3 ** 0: goes south ** 1: goes north ** 2: goes west ** 3: goes east */ void ft_bb_walk(t_bad_boy *bl, t_sprite *sl, t_map *ml) { int8_t r; const double old_x = sl->s_pos_x; const double old_y = sl->s_pos_y; if (FT_OS == 2) r = random() % 4; else r = rand() % 4; sl->r = r; if (r == 0) sl->s_pos_y += FT_ENMY_MOVE_SPEED; else if (r == 1) sl->s_pos_y -= FT_ENMY_MOVE_SPEED; else if (r == 2) sl->s_pos_x -= FT_ENMY_MOVE_SPEED; else if (r == 3) sl->s_pos_x += FT_ENMY_MOVE_SPEED; ft_bb_collision(old_y, old_x, sl, ml); ml->map[llround(old_y)][llround(old_x)] = '0'; ml->map[llround(sl->s_pos_y)][llround(sl->s_pos_x)] = 'e'; bl->does = 1; } /* ** skelton misses one random ** shot out of four */ void ft_check_bad_boy_shoot(t_cub *cl) { int8_t i; int8_t r; i = 0; while (i < cl->mlist.sprite_nbr[13]) { if (FT_OS == 2) r = random() % 4; else r = rand() % 4; if (cl->bad_boy[i].does == 2 && cl->bad_boy[i].sleep == 0) { cl->sfx[15].sfx_play(cl->sfx); if (r != 3) { if (FT_OS == 1) ft_macos_suffer_animation(FT_ENMY_DAMAGE_AMOUNT, cl); else ft_linux_suffer_animation(FT_ENMY_DAMAGE_AMOUNT, cl); } } i++; } } void ft_bb_fire(t_bad_boy *bl, t_sprite *sl, t_map *ml) { (void)sl; (void)ml; bl->does = 2; }