public void start_skill(Player caster, Group casterGroup) { // 檢查mp是否足夠 if( !check_mp(caster) ) return; targetGroup = new List<Player>(); // 設定target if( targetType == TargetType.SELF ){ targetGroup.Add(caster); } else if( targetType == TargetType.SELF_GROUP ){ foreach( Player player in casterGroup.player_group){ targetGroup.Add(player); } } else if( targetType == TargetType.ENEMY ){ Player target = casterGroup.get_target (caster); targetGroup.Add(target); } else if( targetType == TargetType.ENEMY_GROUP ){ Group enemyGroup = casterGroup.get_target (caster).group; foreach( Player enemy in enemyGroup.player_group){ targetGroup.Add(enemy); } } else if( targetType == TargetType.SELF_LOWEST_HP ){ int min = -1; Player target = null; foreach (Player player in casterGroup.player_group) { if( player.is_alive() ){ if( min < 0 || player.info.hp < min ){ target = player; min = target.info.hp; } } } targetGroup.Add(target); } use_skill(caster, casterGroup, targetGroup); }