/// <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); } } }
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); }
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; } }
/// <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; }