目录
Game_Troop类代码解析
#==============================================================================
# ■ Game_Troop
#------------------------------------------------------------------------------
# 处理队伍的类。本类的实例请参考 $game_troop
#
#==============================================================================
class Game_Troop
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
# 建立敌人序列
@enemies = []
end
#--------------------------------------------------------------------------
# ● 获取敌人
#--------------------------------------------------------------------------
def enemies
return @enemies
end
#--------------------------------------------------------------------------
# ● 设置
# troop_id : 敌人 ID
#--------------------------------------------------------------------------
def setup(troop_id)
# 由敌人序列的设置来确定队伍的设置
@enemies = []
troop = $data_troops[troop_id] ##troop_id就是数据库敌人页的id
for i in 0...troop.members.size ##循环每个单独的敌人
enemy = $data_enemies[troop.members[i].enemy_id] ##获取敌人的id
if enemy != nil
@enemies.push(Game_Enemy.new(troop_id, i)) ##生成敌人
end
end
end
#--------------------------------------------------------------------------
# ● 对像敌人的随机确定
# hp0 : 限制 HP 0 的敌人
#--------------------------------------------------------------------------
def random_target_enemy(hp0 = false) ##初始设置里不能选择hp为0的敌人
# 初始化轮流
roulette = []
# 循环
for enemy in @enemies
# 条件符合的情况下
if (not hp0 and enemy.exist?) or (hp0 and enemy.hp0?)
# 添加敌人到轮流
roulette.push(enemy)
end
end
# 轮流尺寸为 0 的情况下
if roulette.size == 0
return nil
end
# 转轮盘赌,决定敌人
return roulette[rand(roulette.size)]
end
#--------------------------------------------------------------------------
# ● 对像敌人的随机确定 (HP 0)
#--------------------------------------------------------------------------
def random_target_enemy_hp0
return random_target_enemy(true) ##上面这个函数在hp0=true的情况
end
#--------------------------------------------------------------------------
# ● 对像角色的顺序确定
# enemy_index : 敌人索引
#--------------------------------------------------------------------------
def smooth_target_enemy(enemy_index)
# 获取敌人
enemy = @enemies[enemy_index]
# 敌人存在的场合
if enemy != nil and enemy.exist?
return enemy
end
# 循环 ##如果指定的敌人不存在,就选择敌人队列里的第一个存在的敌人
for enemy in @enemies
# 敌人存在的场合
if enemy.exist?
return enemy
end
end
end
end