void OnEnable() { if (Instance == null) { Instance = this; } }
void Fall(int side) { int oppositeSide = side % 2 == 0 ? (side + 1) : (side - 1); transform.parent.GetComponentInChildren <LoggingActivityInteractPrompt>().HideUI(); ApplyFallingForce(oppositeSide); hasFallen = true; foreach (ForestTreeSnapSpot snap in transform.GetComponentsInChildren <ForestTreeSnapSpot>()) { snap.enabled = false; } LoggingActivityPlayerBehavior.UnsnapPlayer(); GetComponent <ForestTreeBehavior>().enabled = false; int qualityAverage = QualityMinigame.CalculateAverageGrade(); qualityAverage = Mathf.Clamp(qualityAverage, 0, maxQualityGrade.GetHashCode()); QualityGrade gatheredQuality = (QualityGrade)qualityAverage; HomesteadStockpile.UpdateTreesCountAtGrade(gatheredQuality, 1); Debug.Log("Gathered Grade: " + gatheredQuality); //Visually phase tree out Invoke("PhaseOutTree", 5); }
void GradeSplitFirewoodBeforeUnsnap() { SetCanPerformAction(false); PlayerHud.ToggleQualityGame(true); QualityMinigame.StartGame(); StartCoroutine(WaitForFirewoodGrade()); }
public static void ToggleQualityGame(bool state) { if (!state && PlayerHudReference.qualityGame.activeSelf) { QualityMinigame.EndGame(); PlayerHudReference.StartCoroutine(PlayerHudReference.HideQualityGame()); } else { PlayerHudReference.qualityGame.SetActive(state); } }
void HandleSnapLogic() { bool fellingCondition = (currentActivity == LoggingActivity.FELLING && !forestTreeToCut.HasFallen() /*&& forestTreeToCut.PlayerCanStore()*/ && PlayerTools.GetCurrentlyEquippedToolIndex() == 1); bool buckingCondition = (currentActivity == LoggingActivity.BUCKING && !felledTreeToSaw.IsLocationFullyCut(markToSaw) /*&& felledTreeToSaw.PlayerCanStore()*/ && PlayerTools.GetCurrentlyEquippedToolIndex() == 2); bool splittingCondition = (currentActivity == LoggingActivity.SPLITTING && logsRemaining > 0 /*&& logToSplit.PlayerCanStore()*/ && PlayerTools.GetCurrentlyEquippedToolIndex() == 3); if (Input.GetButtonDown("Interact") && canSnapPlayer) { if (fellingCondition || buckingCondition || splittingCondition) { if (!playerIsLocked) { SnapPlayer(); } else { if (currentActivity == LoggingActivity.SPLITTING && QualityMinigame.GetUngradedFirewood() > 0) { GradeSplitFirewoodBeforeUnsnap(); } else { UnsnapPlayer(); } } } // if (forestTreeToCut != null) // { // if (!forestTreeToCut.PlayerCanStore()) Debug.Log("Full On Trees: Grade " + forestTreeToCut.GetQualityGrade().ToString()); // } // if (felledTreeToSaw != null) // { // if (!felledTreeToSaw.PlayerCanStore()) Debug.Log("Full On Logs: Grade " + felledTreeToSaw.GetQualityGrade().ToString()); // } // if (logToSplit != null) // { // if (!logToSplit.PlayerCanStore()) Debug.Log("Full On Firewood: Grade " + logToSplit.GetQualityGrade().ToString()); // } } }
void SawThrough(int loc) { if (locationFullySawed[0] && locationFullySawed[1]) { LoggingActivityPlayerBehavior.UnsnapPlayer(); int qualityAverage = QualityMinigame.CalculateAverageGrade(); qualityAverage = Mathf.Clamp(qualityAverage, 0, maxQualityGrade.GetHashCode()); QualityGrade gatheredQuality = (QualityGrade)qualityAverage; HomesteadStockpile.UpdateLogsCountAtGrade(gatheredQuality, 3); HomesteadStockpile.UpdateTreesCountAtGrade(maxQualityGrade, -1); Debug.Log("Gathered Grade: " + gatheredQuality); Invoke("PhaseOutLogs", 1.0f); } }
void Split() { ApplySplitForce(); LoggingActivityPlayerBehavior.UnsnapPlayer(); int qualityAverage = QualityMinigame.CalculateAverageGrade(HomesteadStockpile.GetLogsCountAtGrade(maxQualityGrade)); qualityAverage = Mathf.Clamp(qualityAverage, 0, maxQualityGrade.GetHashCode()); QualityGrade gatheredQuality = (QualityGrade)qualityAverage; HomesteadStockpile.UpdateFirewoodCountAtGrade(gatheredQuality, QualityMinigame.GetUngradedFirewood()); QualityMinigame.ClearUngradedFirewood(); Debug.Log("Gathered Grade: " + gatheredQuality); Invoke("PhaseOutFirewood", 5f); }
public void CutSide(int side) { int oppositeSide = side % 2 == 0 ? (side + 1) : (side - 1); int axisCount = sideCutsCount[side] + sideCutsCount[oppositeSide]; if (axisCount < 9) { upperCutBlock.CutFace(side); lowerCutBlock.CutFace(side); sideCutsCount[side]++; } else { LoggingActivityPlayerBehavior.SetCanPerformAction(false); PlayerHud.ToggleQualityGame(true); QualityMinigame.StartGame(); StartCoroutine(FallAfterGrade(side)); } }
IEnumerator WaitForFirewoodGrade() { yield return(new WaitUntil(() => !QualityMinigame.IsGradeListEmpty())); UnsnapPlayer(); int qualityAverage = QualityMinigame.CalculateAverageGrade(HomesteadStockpile.GetLogsCountAtGrade(QualityMinigame.GetLastMaxFirewoodGrade())); qualityAverage = Mathf.Clamp(qualityAverage, 0, QualityMinigame.GetLastMaxFirewoodGrade().GetHashCode()); QualityGrade gatheredQuality = (QualityGrade)qualityAverage; int ungradedCount = QualityMinigame.GetUngradedFirewood(); HomesteadStockpile.UpdateFirewoodCountAtGrade(gatheredQuality, ungradedCount); QualityMinigame.ClearUngradedFirewood(); Debug.Log("Gathered Grade: " + gatheredQuality); // Debug.Log("Gathered Count: " + ungradedCount); }
public void SawLocation(int loc) { if (locationStrokeCounts[loc] == 0) { logMarks[loc].SetActive(false); } if (locationStrokeCounts[loc] < 5) { int cut01 = loc == 0 ? 0 : 2; int cut02 = loc == 0 ? 1 : 3; locationStrokeCounts[loc]++; sawProgressCuts[cut01].CutFace(3); sawProgressCuts[cut02].CutFace(3); } if (locationStrokeCounts[loc] == 5) { snapSpots[loc].enabled = false; locationFullySawed[loc] = true; LoggingActivityPlayerBehavior.SetCanPerformAction(false); if (locationFullySawed[0] && locationFullySawed[1]) { PlayerHud.ToggleQualityGame(true); QualityMinigame.StartGame(); StartCoroutine(SawThroughAfterGrade(loc)); } else { LoggingActivityPlayerBehavior.UnsnapPlayer(); } } }
// public bool PlayerCanStore() // { // return HomesteadStockpile.GetFirewoodCountAtGrade(qualityGrade) < PlayerSkills.GetMaxLumberFirewoodValue(); // } // public QualityGrade GetQualityGrade() { return qualityGrade; } // public bool HasBeenSplit() { return hasBeenSplit; } public void ChopLog() { HomesteadStockpile.UpdateLogsCountAtGrade(maxQualityGrade, -1); if (HomesteadStockpile.GetLogsCountAtGrade(maxQualityGrade) > 0) { associatedLogPile.UpdateLogPile(); } QualityMinigame.IncrementUngradedFirewood(); QualityMinigame.SetLastMaxFirewoodGrade(maxQualityGrade); // hasBeenSplit = true; if (HomesteadStockpile.GetLogsCountAtGrade(maxQualityGrade) <= 0) { LoggingActivityPlayerBehavior.SetLogsRemaining(HomesteadStockpile.GetLogsCountAtGrade(maxQualityGrade)); LoggingActivityPlayerBehavior.SetCanPerformAction(false); PlayerHud.ToggleQualityGame(true); QualityMinigame.StartGame(); StartCoroutine(SplitAfterGrade()); } }
IEnumerator SawThroughAfterGrade(int loc) { yield return(new WaitUntil(() => !QualityMinigame.IsGradeListEmpty())); SawThrough(loc); }
void Start() { Instance = this; }
IEnumerator SplitAfterGrade() { yield return(new WaitUntil(() => !QualityMinigame.IsGradeListEmpty())); Split(); }
IEnumerator FallAfterGrade(int side) { yield return(new WaitUntil(() => !QualityMinigame.IsGradeListEmpty())); Fall(side); }