Exemple #1
0
    private void SetupShooterMissionRound()
    {
        multiplicador = 1; // not used in Bitoon Kicks

        SetCenterPercent();

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

        currentDifficulty = round.GetDifficulty();

        FieldControl.instance.goalKeeper = round.HasGoalkeeper;

        currentRect = false;

        // Nos cepillamos cualquier diana que pudiera haber antes
        if (currentBullseye != null)
        {
            GameObject.Destroy(currentBullseye);
            currentBullseye = null;
        }

        // Y ahora generamos una diana nueva si es necesario
        if (round.HasBullseye)
        {
            SetMissionBullseye(round.bullseyeDesc);
            FieldControl.instance.HasBullseye = true;
        }
        else
        {
            FieldControl.instance.HasBullseye = false;
        }
    }
Exemple #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);
    }
Exemple #3
0
    public void SetupWall(Vector3 position)
    {
        int barrerasExtra = 0;

        if (Habilidades.IsActiveSkill(Habilidades.Skills.Barrera))
        {
            barrerasExtra = 2;
        }
        if (Habilidades.IsActiveSkill(Habilidades.Skills.BarreraPro))
        {
            barrerasExtra = 3;
        }
        if ((MissionManager.instance.HasCurrentMission()) &&
            (MissionManager.instance.GetMission().PlayerType == GameMode.Shooter))
        {
            ShooterMissionRound mr = (ShooterMissionRound)MissionManager.instance.GetMission().GetRoundInfo();
            if (mr.HasWall)
            {
                FieldControl.instance.HasWall = true;
                BarreraManager.instance.Create(mr.WallSize + barrerasExtra, position);
            }
            else
            {
                FieldControl.instance.HasWall = false;
                BarreraManager.instance.Create(0 + barrerasExtra, position);
            }
        }
        else
        {
            int wallPlayers = GetNumJugadoresBarrera();
            if (wallPlayers > 0)
            {
                FieldControl.instance.HasWall = true;
                BarreraManager.instance.Create(wallPlayers + barrerasExtra, position);
            }
            else
            {
                FieldControl.instance.HasWall = false;
                BarreraManager.instance.Create(0 + barrerasExtra, position);
            }
        }
    }
Exemple #4
0
    public void SetupSheet()
    {
        if ((MissionManager.instance.HasCurrentMission()) &&
            (MissionManager.instance.GetMission().PlayerType == GameMode.Shooter))
        {
            ShooterMissionRound mr = (ShooterMissionRound)MissionManager.instance.GetMission().GetRoundInfo();
            if (mr.HasSheet)
            {
                FieldControl.instance.HasSheet = true;

                // llamar al manager de sabanas e inicializarlo con el array de sectores-dificultad leido de la mision
                SabanasManager.instance.ShowSabanas(mr.SheetSectorDifficulties);
            }
            else
            {
                FieldControl.instance.HasSheet = false;
                SabanasManager.instance.ShowSabanas(null);
            }
        }
    }
    public void resultSound(ShotResult _info)
    {
        if (ServiceLocator.Request <IGameplayService>().GetGameMode() == GameMode.GoalKeeper)
        {
            if (_info.Result == Result.Saved)
            {
                cheer();
            }
            else if (_info.Result == Result.Goal)
            {
                boo();
                PlayOneShot(errorClip);
            }
            else if (_info.Result == Result.Stopped)
            {
                PlayOneShot(goalkeeperSuccessClip);
            }
        }
        else
        {
            if (_info.Result == Result.Goal || _info.Result == Result.Target)
            {
                cheer();
            }
            else if (_info.Result == Result.Saved || _info.Result == Result.Stopped || _info.Result == Result.OutOfBounds)
            {
                boo();
            }


            if (!GameplayService.networked && MissionManager.instance.HasCurrentMission())
            {
                ShooterMissionRound round = MissionManager.instance.GetMission().GetPrevRoundInfo() as ShooterMissionRound;

                if (round == null)
                {
                    Debug.LogError(">>> ROUND ES NULL!!!");
                    return;
                }

                if (round.HasYellowZone && (_info.Result == Result.Goal))
                {
                    PlayOneShot(yellowZoneClip);
                }
                else if (round.HasGoalkeeper && (_info.Result == Result.Goal))
                {
                    PlayOneShot(goalKeeperGoalClip);
                }
                else if (round.HasSheet && (_info.Result == Result.Goal))
                {
                    PlayOneShot(lonaGoalClip);
                }
                else if (_info.Result == Result.Target)
                {
                    if (_info.Perfect)
                    {
                        perfectBullseye();
                    }
                    else
                    {
                        bullseye();
                    }
                }
                else if (_info.Result == Result.Goal)
                {
                    PlayOneShot(normalGoalClip);
                }
                else if (_info.DefenseResult == GKResult.Good || _info.DefenseResult == GKResult.Perfect)
                {
                    PlayOneShot(goalkeeperStoppedClip);
                }
            }
        }

        if (_info.Result == Result.OutOfBounds)
        {
            PlayOneShot(outOfRangeClip);
        }
    }
    /// <summary>
    /// Calcula la puntuacion para un disparo en el modo carrera si estamos
    /// jugando como lanzador
    /// </summary>
    /// <param name="result"></param>
    private void CalculateShooterMissionScore(ref ShotResult result)
    {
        int scoreResult      = 0;
        int effectBonusScore = 0;

        if (MissionManager.instance.HasCurrentMission())
        {
            ShooterMissionRound ms = MissionManager.instance.GetMission().GetRoundInfo() as ShooterMissionRound;
            if (ms == null)
            {
                ms = MissionManager.instance.GetMission().GetPrevRoundInfo() as ShooterMissionRound;
            }

            if (ms.HasBullseye)
            {
                switch (result.Result)
                {
                case Result.Target:                   // Si ha acertado una diana
                    scoreResult = result.ScorePoints; // los puntos que nos llegaron en el ShotResult son buenos
                    //effectBonusScore = GetEffectBonusPoints();
                    if (!ms.bullseyeDesc.HasStaticSize)
                    {
                        scoreResult *= 2;
                    }

                    // Si el tirador tiene la habilidad "Prima"
                    if (Habilidades.IsActiveSkill(Habilidades.Skills.Prima))
                    {
                        // Habilidad Prima = las dianas puntuan doble (acumulable con bonus de balon)
                        scoreResult *= 2;
                    }
                    break;

                case Result.Goal:     // hay gol, por lo que no hemos atizado a la diana
                    if (ms.bullseyeDesc.HasYellowZone)
                    {
                        // si tiene zona amarilla es que le hemos atizado a la zona amarilla
                        scoreResult = SHOOTER_NOBULLSEYEHIT_GOAL;
                    }
                    else
                    {
                        // si no tiene zona amarilla se lo damos como gol normal
                        scoreResult = SHOOTER_NOBULLSEYEHIT_GOAL;
                    }
                    break;
                }
            }
            else if (ms.HasGoalkeeper)
            {
                scoreResult = CalculateShooterAgainstGoalkeeperScore(ref result);
            }
            else if (ms.HasSheet)
            {
                // Si ha acertado a una sabana
                if (result.Result == Result.Target)
                {
                    scoreResult = result.ScorePoints; // los puntos que nos llegan serán los buenos.
                    //effectBonusScore = GetEffectBonusPoints();
                }
            }

            if (result.Result == Result.Goal || result.Result == Result.Target)
            {
                effectBonusScore = GetEffectBonusPoints();
            }
        }

        result.ScorePoints       = scoreResult;
        result.EffectBonusPoints = effectBonusScore;
    }