public void ApplyControlTest(BoterkroonSkills skill) { worstCaseScenario.CreateControlResult(skill); bestCaseScenario.CreateControlResult(skill); worstCaseScenario.TurnsLeft -= BoterkroonValues.Values.CostControlTest; bestCaseScenario.TurnsLeft -= BoterkroonValues.Values.CostControlTest; }
public void ApplyTraining(BoterkroonSkills skill, TrainingType type) { switch (type) { case TrainingType.Slow: worstCaseScenario.GetTrainingResultsFor(skill).Add(new BoterkroonTrainingResult(BoterkroonValues.Values.NormalTrainingMinXPGain)); bestCaseScenario.GetTrainingResultsFor(skill).Add(new BoterkroonTrainingResult(BoterkroonValues.Values.NormalTrainingMaxXPGain)); worstCaseScenario.TurnsLeft -= BoterkroonValues.Values.CostNormalTraining; bestCaseScenario.TurnsLeft -= BoterkroonValues.Values.CostNormalTraining; break; case TrainingType.Fast: float skillControl = Mathf.Max(0, GetSkillControl(worstCaseScenario, skill) - BoterkroonValues.Values.StartpointFastTrainingLerp); float skillControlLerpPoint = skillControl / (1 - BoterkroonValues.Values.StartpointFastTrainingLerp); int xpGain = Mathf.FloorToInt(Mathf.Lerp(BoterkroonValues.Values.FastTrainingMinXPGain, BoterkroonValues.Values.FastTrainingMaxXPGain, skillControlLerpPoint)); worstCaseScenario.GetTrainingResultsFor(skill).Add(new BoterkroonTrainingResult(xpGain)); worstCaseScenario.TurnsLeft -= BoterkroonValues.Values.CostFastTraining; skillControl = Mathf.Max(0, GetSkillControl(bestCaseScenario, skill) - BoterkroonValues.Values.StartpointFastTrainingLerp); skillControlLerpPoint = skillControl / (1 - BoterkroonValues.Values.StartpointFastTrainingLerp); xpGain = Mathf.FloorToInt(Mathf.Lerp(BoterkroonValues.Values.FastTrainingMinXPGain, BoterkroonValues.Values.FastTrainingMaxXPGain, skillControlLerpPoint)); bestCaseScenario.GetTrainingResultsFor(skill).Add(new BoterkroonTrainingResult(xpGain)); bestCaseScenario.TurnsLeft -= BoterkroonValues.Values.CostFastTraining; break; } }
private bool GetSkillScore(int currentLevel, BoterkroonSkills skill, out float skillScore) { float maxScore = BoterkroonScoreRequirements.GetMaxScoreFor(currentLevel).Skill(skill); float minScore = BoterkroonScoreRequirements.GetMinScoreFor(currentLevel).Skill(skill); skillScore = Mathf.Min(maxScore, GetLastScoreFor(skill)); return(minScore <= skillScore); }
public bool HasNewTrainingFor(BoterkroonSkills skill) { var results = GetTrainingResultsFor(skill); if (results.Count == 0) { return(false); } return(results[results.Count - 1].IsNew); }
private float GetSkillControl(ActiveBoterkroonData data, BoterkroonSkills currentskill) { int currentXPLevel = 0; foreach (var trainingResult in data.GetTrainingResultsFor(currentskill)) { currentXPLevel += trainingResult.GainedXP; } return(currentXPLevel / (float)BoterkroonValues.Values.MaxSkillXP); }
public void CreateControlResult(BoterkroonSkills skill) { int currentXPLevel = 0; foreach (var trainingResult in GetTrainingResultsFor(skill)) { currentXPLevel += trainingResult.GainedXP; trainingResult.IsNew = false; } BoterkroonControlResult result = new BoterkroonControlResult(currentXPLevel); GetControlResultsFor(skill).Add(result); }
private VisualSkillTest GetVisual(BoterkroonSkills result) { switch (result) { case BoterkroonSkills.Baking: return(visualBaking); case BoterkroonSkills.Sword: return(visualSword); case BoterkroonSkills.Research: return(visualNavigating); } throw new NotImplementedException(); }
public List <BoterkroonControlResult> GetControlResultsFor(BoterkroonSkills skill) { switch (skill) { case BoterkroonSkills.Baking: return(ControlResultsBaking); case BoterkroonSkills.Sword: return(ControlResultsSword); case BoterkroonSkills.Research: return(ControlResultsRoyal); } throw new System.NotImplementedException(); }
public bool IsSkillActive(BoterkroonSkills skill) { switch (skill) { case BoterkroonSkills.Baking: return(!IsBakingLocked); case BoterkroonSkills.Sword: return(!IsSwordLocked); case BoterkroonSkills.Research: return(!IsResearchLocked); } throw new System.NotImplementedException(); }
private string GetTrainingText(BoterkroonSkills currentskill) { switch (currentskill) { case BoterkroonSkills.Baking: return("Bakken"); case BoterkroonSkills.Sword: return("Zwaardvechten"); case BoterkroonSkills.Research: return("Onderzoeken"); } throw new NotImplementedException(); }
//[SerializeField] private PlayerCharacterController playerCharacterController = null; //[SerializeField] private TMPro.TextMeshProUGUI textMeshTrainingName = null; //[SerializeField] private UnityEngine.UI.Image imageTraining = null; //[SerializeField] private TrainingGameResult trainingGameResult = null; //[SerializeField] private Transform gameControllerContainer = null; //[SerializeField] private string uiEventStringGameResult = ""; //private TrainingGameController activeGameController = null; //private ActiveTraining activeTraining; //private int gainedXP = 0; public void SetResult(BoterkroonSkills result, TrainingType trainingType) { this.currentskill = result; this.currentType = trainingType; //activeTraining = result as ActiveTraining; //textMeshTrainingName.text = activeTraining.Training.Name; //imageTraining.sprite = activeTraining.Training.Visual; //activeGameController = CreateActiveGameController(activeTraining); //activeGameController.Setup(activeTraining); //activeGameController.OnXPGain += OnXPGain; //activeGameController.OnGameFinished += OnGameFinished; //gainedXP = 0; //Debug.Log(activeTraining.Data.Name); //Debug.Log(activeTraining.Training.TargetSkill.Name); }
private int GetLastScoreFor(BoterkroonSkills skill) { if (HasNewTrainingFor(skill)) { CreateControlResult(skill); } var controlResults = GetControlResultsFor(skill); if (controlResults.Count == 0) { return(0); } //foreach (var result in controlResults) { // result.IsNew = false; //} return(controlResults[controlResults.Count - 1].TotalXP); }
private bool HasDoneControlWithoutTraining(BoterkroonSkills skill) { var results = SaveController.Instance.GameData.BoterKroon.GetControlResultsFor(skill); if (results.Count < 2) { if (results.Count > 0 && results[results.Count - 1].TotalXP == 0) { results[results.Count - 1].HasBeenCheckedForDoubleControl = true; return(true); } return(false); } if (results[results.Count - 1].HasBeenCheckedForDoubleControl == false) { results[results.Count - 1].HasBeenCheckedForDoubleControl = true; if (results[results.Count - 1].TotalXP == results[results.Count - 2].TotalXP) { return(true); } } return(false); }
public void SetResult(BoterkroonSkills currentSkill) { this.currentSkill = currentSkill; this.currentVisual = GetVisual(currentSkill); }
private void SetupOption(OptionPointFlipOver option, BoterkroonSkills skill) { option.gameObject.SetActive(true); option.OnObjectClicked += () => PickResult(skill); option.ToStartPosition(); }
private void PickResult(BoterkroonSkills result) { resultController.SetResult(result); GameEventMessage.SendEvent(uiEventString); }
private void PickResult(BoterkroonSkills skill, TrainingType trainingType) { resultController.SetResult(skill, trainingType); GameEventMessage.SendEvent(uiEventString); }