#==============================================================================
# ■ Enemy_name_plus　vol.1.20
#------------------------------------------------------------------------------
# エネミー名にABC(番号)を付ける
# 08/02/10
#==============================================================================
module Enemy_name_plus
  #--------------------------------------------------------------------------
  # ■エネミー名+アルファベット
  #--------------------------------------------------------------------------
  def make_abc_name(troop)
    group = []
    names = {0=>[],1=>[],2=>[],3=>[],4=>[],5=>[],6=>[],7=>[]}
    # □エネミー名の格納
    for i in troop
      i.plus_name = ""
      group.push(i.name)
    end
    # □エネミーのグループ化
    for c in 0..7
      for x in group
        if names[c].include?(x)
          names[c].push(x)
        end
        if names[c] == []
          names[c].push(x)
          dl = x
        end
      end
      group.delete(dl)
    end
    group = []
    # □グループ数リストの作成
    for i in 0..7
      if names[i] != []
        group.push(names[i].size)
      end
    end
    # □名前リストの作成(ハッシュ/配列の破壊)
    names = names.values.flatten.uniq
    # □リスト番号を設定
    for i in 0...names.size
      if group[i] == 1
        next
      end
      for x in 0...group[i]
        for n in 0...troop.size
          if names[i] == troop[n].name && troop[n].plus_name == ""
            troop[n].plus_name = x.to_s
            break
          end
        end
      end
    end
  end
end
#==============================================================================
# ■ Window_Help
#==============================================================================
class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # ■ エネミーの名前に通し番号(ABC..)
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_name_plus_set_enemy set_enemy;end
  def set_enemy(enemy)
    if enemy.plus_name != ""
      # □ABC合成名を取得
      text = plus_name?(enemy)
      set_text(text, 1)
    else
      # □元の処理を呼び出し
      hidesp_name_plus_set_enemy(enemy)
      return
    end
  end
  #--------------------------------------------------------------------------
  # ■ ABC合成名を取得
  #--------------------------------------------------------------------------
  def plus_name?(enemy)
    # □グループ番号のアルファベット化
    plus_name = enemy.plus_name
    abc = "ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ"
    #abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    plus_name.gsub!(/\d/) { |n| abc.scan(/./)[n.to_i] }
    # □エネミー名の合成
    text = enemy.name + plus_name
    state_text = make_battler_state_text(enemy, 112, false)
    if state_text != ""
      text += "  " + state_text
    end
    return text
  end
end
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
  def call_select(user,call_type = 0)
    # 『ORIGINAL ACT』
  end
end
#==============================================================================
# ■ Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
  include Enemy_name_plus
  attr_accessor :plus_name                # エネミー名に付ける通し番号（ABC..）
  #--------------------------------------------------------------------------
  # ■ オブジェクト初期化
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_name_plus_initialize initialize;end
  def initialize(troop_id, member_index)
    hidesp_name_plus_initialize(troop_id, member_index)
    @plus_name = ""
    $enemies_abc = []
  end
  #--------------------------------------------------------------------------
  # ■ 隠れフラグが変化した場合、エネミーグループの再構築
  #--------------------------------------------------------------------------
  def hidden=(hidden)
    if hidden == false
      $enemies_abc.push(self)
      make_abc_name($enemies_abc)
    end
    super
  end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
  include Enemy_name_plus
  #--------------------------------------------------------------------------
  # ■ プレバトルフェーズ開始
  #--------------------------------------------------------------------------
  if !$@;alias hidesp_name_plus_start_phase1 start_phase1;end
  def start_phase1
    hidesp_name_plus_start_phase1
    $enemies_abc = []
    # □隠れフラグがONの場合を除外
    for i in $game_troop.enemies
      if i.hidden == false
        $enemies_abc.push(i)
      end
    end
    make_abc_name($enemies_abc)
  end
end