Ejemplo n.º 1
0
    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);
    }