public void OnCurrentPlayerChanged() { this.m_additionalOverloadedCrystalsOwedThisTurn = this.m_additionalOverloadedCrystalsOwedNextTurn; this.m_additionalOverloadedCrystalsOwedNextTurn = 0; if (this.m_additionalOverloadedCrystalsOwedThisTurn > 0) { this.m_overloadLocksAreShowing = true; } else { this.m_overloadLocksAreShowing = false; } for (int i = 0; i < this.m_permanentCrystals.Count; i++) { ManaCrystal crystal = this.m_permanentCrystals[i]; if (crystal.IsOverloaded()) { crystal.UnlockOverload(); } if (crystal.IsOwedForOverload()) { this.m_overloadLocksAreShowing = true; crystal.PayOverload(); } else if (this.m_additionalOverloadedCrystalsOwedThisTurn > 0) { crystal.PayOverload(); this.m_additionalOverloadedCrystalsOwedThisTurn--; } } }
private void LoadCrystalCallback(string actorName, GameObject actorObject, object callbackData) { this.m_numCrystalsLoading--; if (this.m_manaCrystalWidth <= 0f) { if (UniversalInputManager.UsePhoneUI != null) { this.m_manaCrystalWidth = 0.33f; } else { this.m_manaCrystalWidth = actorObject.transform.FindChild("Gem_Mana").GetComponent <Renderer>().bounds.size.x; } } LoadCrystalCallbackData data = callbackData as LoadCrystalCallbackData; ManaCrystal component = actorObject.GetComponent <ManaCrystal>(); if (data.IsTempCrystal) { component.MarkAsTemp(); this.m_temporaryCrystals.Add(component); } else { this.m_permanentCrystals.Add(component); if (data.IsTurnStart) { if (this.m_additionalOverloadedCrystalsOwedThisTurn > 0) { component.PayOverload(); this.m_additionalOverloadedCrystalsOwedThisTurn--; } } else if (this.m_additionalOverloadedCrystalsOwedNextTurn > 0) { component.state = ManaCrystal.State.USED; component.MarkAsOwedForOverload(); this.m_additionalOverloadedCrystalsOwedNextTurn--; } base.StartCoroutine(this.UpdatePermanentCrystalStates()); } if (UniversalInputManager.UsePhoneUI != null) { component.transform.parent = this.manaGemBone.transform.parent; component.transform.localRotation = this.manaGemBone.transform.localRotation; component.transform.localScale = this.manaGemBone.transform.localScale; } else { component.transform.parent = base.transform; } component.transform.localPosition = Vector3.zero; component.PlayCreateAnimation(); SoundManager.Get().LoadAndPlay("mana_crystal_add", base.gameObject); this.UpdateLayout(); }
public void SpendMana_ManaCrystalIsChargedAndUsed_CrystalIsChargedThenLosesChargeAndReturnsCorrectType() { ManaCrystal m = new ManaCrystal(Mana.Divine); m.Charge(); Assert.IsTrue(m.IsCharged); Mana type = m.Spend(); Assert.IsTrue(type == Mana.Divine); Assert.IsFalse(m.IsCharged); }
private void DestroyTempManaCrystal() { if (this.m_temporaryCrystals.Count > 0) { int index = this.m_temporaryCrystals.Count - 1; ManaCrystal crystal = this.m_temporaryCrystals[index]; this.m_temporaryCrystals.RemoveAt(index); crystal.GetComponent <ManaCrystal>().Destroy(); this.UpdateLayout(); } }
private void DestroyManaCrystal() { if (this.m_permanentCrystals.Count > 0) { int index = 0; ManaCrystal crystal = this.m_permanentCrystals[index]; this.m_permanentCrystals.RemoveAt(index); crystal.GetComponent <ManaCrystal>().Destroy(); this.UpdateLayout(); base.StartCoroutine(this.UpdatePermanentCrystalStates()); } }
public int GetSpendableManaCrystals() { int num = 0; for (int i = 0; i < this.m_temporaryCrystals.Count; i++) { ManaCrystal crystal = this.m_temporaryCrystals[i]; if (crystal.state == ManaCrystal.State.READY) { num++; } } for (int j = 0; j < this.m_permanentCrystals.Count; j++) { ManaCrystal crystal2 = this.m_permanentCrystals[j]; if ((crystal2.state == ManaCrystal.State.READY) && !crystal2.IsOverloaded()) { num++; } } return(num); }
public void MarkCrystalsOwedForOverload(int numCrystals) { if (numCrystals > 0) { this.m_overloadLocksAreShowing = true; } int num = 0; for (int i = 0; numCrystals != num; i++) { if (i == this.m_permanentCrystals.Count) { this.m_additionalOverloadedCrystalsOwedNextTurn += numCrystals - num; break; } ManaCrystal crystal = this.m_permanentCrystals[i]; if (!crystal.IsOwedForOverload()) { crystal.MarkAsOwedForOverload(); num++; } } }