Example #1
0
    /// <summary>
    /// Si 0.2f centra al tirador en la zona desde la que dispara, si -0.2f lo situa en los eextremos
    /// </summary>
    private void SetCenterPercent()
    {
        // valor por defecto
        centerPercent = 1.0f;

        if (MissionManager.instance.HasCurrentMission())
        {
            if (MissionManager.instance.GetMission().PlayerType == GameMode.GoalKeeper)
            {
                GoalkeeperMissionRound mr = (GoalkeeperMissionRound)MissionManager.instance.GetMission().GetRoundInfo();
                centerPercent = (mr.IsCenteredShot ? 0.2f : 1.0f);
            }
        }
    }
Example #2
0
    MissionRound CreateMissionRound(Dictionary <string, object> roundData)
    {
        MissionRound mr = null;

        if (_playerType == GameMode.Shooter)
        {
            mr = new ShooterMissionRound(roundData);
        }
        else if (_playerType == GameMode.GoalKeeper)
        {
            mr = new GoalkeeperMissionRound(roundData);
        }

        return(mr);
    }
Example #3
0
    private void SetupGoalkeeperMissionRound()
    {
        multiplicador = 1; // not used in Bitoon Kicks

        GoalkeeperMissionRound round = (GoalkeeperMissionRound)MissionManager.instance.GetMission().GetRoundInfo();

        crossHairAlpha = round.HasHelp ? 1.0f : 0.0f;
        if (Habilidades.IsActiveSkill(Habilidades.Skills.Premonicion))
        {
            crossHairAlpha = 1f;
        }
        currentDifficulty = round.GetDifficulty();

        SetCenterPercent();

        autoEffect = round.BallEffect;

        if (round.HasPowerUp)
        {
            Auto_Thrower.instance.queuedPowerUp   = round.PowerupType;
            Auto_Thrower.instance.powerUpEnqueued = true;
        }
    }
Example #4
0
    /// <summary>
    /// Calcula la puntuacion para un disparo si estamos jugando como portero.
    /// El calculo de puntuacion es igual para duelos que para misiones.
    /// </summary>
    /// <param name="result"></param>
    private void CalculateGoalkeeperScore(ref ShotResult result)
    {
        int scoreResult = 0;

        switch (result.Result)
        {
        case Result.Saved:     // balon atrapado
            scoreResult = GOALKEEPER_BALLSAVED;
            break;

        case Result.Stopped: {
            // balon despejado, habra que ver si lo hemos parado nosotros, o ha ido al palo
            switch (result.DefenseResult)
            {
            case GKResult.Good:             // hemos parado el tiro, así que merecemos puntos!
                scoreResult = GOALKEEPER_BALLSTOPPED_NORMAL;
                switch (result.Precision)
                {
                case 1:
                    scoreResult = GOALKEEPER_BALLSTOPPED_BEST;
                    break;

                case 2:
                    scoreResult = GOALKEEPER_BALLSTOPPED_MEDIUM;
                    break;

                case 3:
                    scoreResult = GOALKEEPER_BALLSTOPPED_NORMAL;
                    break;
                }

                // Si el portero tiene la habilidad "Heroico"
                if (Habilidades.IsActiveSkill(Habilidades.Skills.Heroico))
                {
                    // Habilidad Heroico = las paradas no perfectas puntuan doble
                    scoreResult *= 2;
                }
                break;

            case GKResult.ThrowerFail:             // el tirador ha tirado a un poste, no mereces puntos
                scoreResult = GOALKEEPER_THROWERFAIL_BONUS;
                break;

            case GKResult.Perfect:             // no puede darse, porque si no el result no seria Stopped
                scoreResult = 0;
                break;
            }
        }
        break;

        case Result.OutOfBounds:     // El tirador ha fallado, no has hecho nada, no te mereces puntos
            scoreResult = GOALKEEPER_THROWERFAIL_BONUS;
            break;

        case Result.Goal:     // Nos han metido gol, te jodes, no hay puntos
            scoreResult = 0;
            break;

        case Result.Target:     // IMPOSIBLE: que coño pinta una diana si estamos jugando de porteros??
            scoreResult = 0;
            break;
        }

        if (MissionManager.instance.HasCurrentMission())
        {
            GoalkeeperMissionRound ms = MissionManager.instance.GetMission().GetRoundInfo() as GoalkeeperMissionRound;

            Debug.Log(">>> ms: " + ms);
            Debug.Log(">>> result: " + result);

            if (ms.HasPowerUp && (result.Result != Result.Goal))
            {
                scoreResult += GOALKEEPER_POWERUP_BONUS;
            }
        }


        result.ScorePoints = scoreResult;
    }