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