# file name : game_funcs_enemies.py
# reidai8_7 敵から逃げる

import pygame
import numpy as np # random 関数利用
import globals as GV # グローバル変数

# ====== 関数：敵情報の初期化=======
def init_enemies():
    GV.enemies_lst.clear()
    for _ in range(GV.enemies_count):
        e1={'x':np.random.randint(0,GV.canv['w']-GV.enemy['w']), # x座標
            'y':np.random.randint(0,GV.canv['h']-GV.enemy['h']), # y座標
            'speed':np.random.randint(1, GV.speed_max+1)}        # 移動速度
        GV.enemies_lst.append(e1)      # 敵情報をリストに追加

# ====== 関数：敵の自動移動=======
def move_enemies():
    for e1 in GV.enemies_lst:
        # プレイヤーに向かって移動
        if   e1['x']<GV.fpos['x']: e1['x']+=e1['speed']
        elif e1['x']>GV.fpos['x']: e1['x']-=e1['speed']
        if   e1['y']<GV.fpos['y']: e1['y']+=e1['speed']
        elif e1['y']>GV.fpos['y']: e1['y']-=e1['speed']

        # ウィンドウ内に敵の移動を制限する
        e1['x']=max(0,min(GV.canv['w']-GV.enemy['w'],e1['x']))
        e1['y']=max(0,min(GV.canv['h']-GV.enemy['h'],e1['y']))

# ====== プレイヤーと敵の衝突判定=======
def check_collision():
    p_rect=pygame.Rect(GV.fpos['x'],  GV.fpos['y'],
                       GV.enemy['w'],GV.enemy['h'])
    for e1 in GV.enemies_lst:
        e_rect=pygame.Rect(e1['x'],e1['y'],GV.enemy['w'],GV.enemy['h'])

        # p_rect とe_rect が衝突した場合
        if p_rect.colliderect(e_rect): # 矩形（画像）どうしが重なっている（衝突した）場合
            GV.player_lives-=1         # ライフを1つ減らす
            GV.enemies_lst.remove(e1)  # 衝突した敵情報をリストから消去する
            if GV.player_lives<= 0:    # ライフがなくなったとき
                return True            # 関数の戻り値はTrue
    return False                       # ライフがなくなっていない場合関数の戻り値Falsee