/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_bad_boy_actions.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: rbousset +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/14 17:28:51 by rbousset #+# #+# */ /* Updated: 2020/02/14 17:28:51 by rbousset ### ########lyon.fr */ /* */ /* ************************************************************************** */ #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_MOVE_SPEED * 1.5); else if (r == 1) sl->s_pos_y -= (FT_MOVE_SPEED * 1.5); else if (r == 2) sl->s_pos_x -= (FT_MOVE_SPEED * 1.5); else if (r == 3) sl->s_pos_x += (FT_MOVE_SPEED * 1.5); ft_bb_collision(old_y, old_x, sl, ml); ml->map[(uint64_t)old_y][(uint64_t)old_x] = '0'; ml->map[(uint64_t)sl->s_pos_y][(uint64_t)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; }