public override void OnTagChanged(TagDelta change) { switch (((GAME_TAG)change.tag)) { case GAME_TAG.STEP: if (change.newValue == 4) { MulliganManager.Get().BeginMulligan(); } break; case GAME_TAG.NEXT_STEP: if (change.newValue == 6) { if (GameState.Get().IsMulliganManagerActive()) { GameState.Get().SetMulliganPowerBlocker(true); } } else if (((change.oldValue == 9) && (change.newValue == 10)) && GameState.Get().IsFriendlySidePlayerTurn()) { TurnStartManager.Get().BeginPlayingTurnEvents(); } break; } base.OnTagChanged(change); }
public override void OnTagsChanged(TagDeltaSet changeSet) { for (int i = 0; i < changeSet.Size(); i++) { TagDelta change = changeSet[i]; this.OnTagChanged(change); } }
public void Add <TagEnum>(GAME_TAG tag, TagEnum prev, TagEnum curr) { TagDelta item = new TagDelta { tag = (int)tag, oldValue = Convert.ToInt32(prev), newValue = Convert.ToInt32(curr) }; this.m_deltas.Add(item); }
public void Add(int tag, int prev, int curr) { TagDelta item = new TagDelta { tag = tag, oldValue = prev, newValue = curr }; this.m_deltas.Add(item); }
protected void ToggleActorSpellOnCard(Card card, TagDelta change, SpellType spellType) { if ((card != null) && card.CanShowActorVisuals()) { Actor actor = card.GetActor(); if (change.newValue > 0) { actor.ActivateSpell(spellType); } else { actor.DeactivateSpell(spellType); } } }
private void OnOpposingPlayerTagChanged(TagDelta change) { switch (((GAME_TAG)change.tag)) { case GAME_TAG.PLAYSTATE: if (change.newValue == 7) { NotificationManager.Get().CreateInnkeeperQuote(GameStrings.Get("VO_ANNOUNCER_DISCONNECT_45"), "VO_ANNOUNCER_DISCONNECT_45", 0f, null); } break; case GAME_TAG.RESOURCES: if (change.newValue > change.oldValue) { GameState.Get().GetGameEntity().NotifyOfEnemyManaCrystalSpawned(); } break; } }
public override void OnTagChanged(TagDelta change) { if (this.IsFriendlySide()) { this.OnFriendlyPlayerTagChanged(change); } else { this.OnOpposingPlayerTagChanged(change); } GAME_TAG tag = (GAME_TAG)change.tag; switch (tag) { case GAME_TAG.LOCK_AND_LOAD: { Card heroCard = this.GetHeroCard(); this.ToggleActorSpellOnCard(heroCard, change, SpellType.LOCK_AND_LOAD); return; } case GAME_TAG.SHADOWFORM: { Card card5 = this.GetHeroCard(); this.ToggleActorSpellOnCard(card5, change, SpellType.SHADOWFORM); return; } } if ((tag != GAME_TAG.RESOURCES_USED) && (tag != GAME_TAG.RESOURCES)) { if (tag == GAME_TAG.PLAYSTATE) { if (change.newValue == 8) { this.PlayConcedeEmote(); } return; } if (tag == GAME_TAG.COMBO_ACTIVE) { foreach (Card card in this.GetHandZone().GetCards()) { card.UpdateActorState(); } return; } if (tag != GAME_TAG.TEMP_RESOURCES) { if (tag == GAME_TAG.MULLIGAN_STATE) { if ((change.newValue == 4) && (MulliganManager.Get() != null)) { MulliganManager.Get().ServerHasDealtReplacementCards(this.IsFriendlySide()); } return; } if (tag == GAME_TAG.STEADY_SHOT_CAN_TARGET) { Card heroPowerCard = this.GetHeroPowerCard(); this.ToggleActorSpellOnCard(heroPowerCard, change, SpellType.STEADY_SHOT_CAN_TARGET); return; } if (tag == GAME_TAG.CURRENT_HEROPOWER_DAMAGE_BONUS) { if (this.IsHeroPowerAffectedByBonusDamage()) { Card card3 = this.GetHeroPowerCard(); this.ToggleActorSpellOnCard(card3, change, SpellType.CURRENT_HEROPOWER_DAMAGE_BONUS); } return; } return; } } if (!GameState.Get().IsTurnStartManagerActive() || !this.IsFriendlySide()) { this.UpdateManaCounter(); } }
private void OnFriendlyPlayerTagChanged(TagDelta change) { GAME_TAG tag = (GAME_TAG)change.tag; switch (tag) { case GAME_TAG.CURRENT_SPELLPOWER: break; case GAME_TAG.TEMP_RESOURCES: { int num = change.oldValue - this.m_usedTempMana; int num2 = change.newValue - change.oldValue; if (num2 < 0) { this.m_usedTempMana += num2; } if (this.m_usedTempMana < 0) { this.m_usedTempMana = 0; } if (num < 0) { num = 0; } int numCrystals = (change.newValue - num) - this.m_usedTempMana; if (numCrystals > 0) { this.AddTempManaCrystal(numCrystals); } else { this.DestroyTempManaCrystal(-numCrystals); } return; } case GAME_TAG.OVERLOAD_OWED: this.HandleSameTurnOverloadChanged(change.newValue - change.oldValue); return; case GAME_TAG.CURRENT_PLAYER: if (change.newValue == 1) { ManaCrystalMgr.Get().OnCurrentPlayerChanged(); this.m_queuedSpentMana = 0; if (GameState.Get().IsMainPhase()) { TurnStartManager.Get().BeginListeningForTurnEvents(); } } return; case GAME_TAG.RESOURCES_USED: { int num4 = change.oldValue + this.m_queuedSpentMana; int num5 = change.newValue - change.oldValue; if (num5 > 0) { this.m_queuedSpentMana -= num5; } if (this.m_queuedSpentMana < 0) { this.m_queuedSpentMana = 0; } int shownChangeAmount = (change.newValue - num4) + this.m_queuedSpentMana; ManaCrystalMgr.Get().UpdateSpentMana(shownChangeAmount); return; } case GAME_TAG.RESOURCES: if (change.newValue <= change.oldValue) { this.DestroyManaCrystal(change.oldValue - change.newValue); return; } if (!GameState.Get().IsTurnStartManagerActive() || !this.IsFriendlySide()) { this.AddManaCrystal(change.newValue - change.oldValue); return; } TurnStartManager.Get().NotifyOfManaCrystalGained(change.newValue - change.oldValue); return; default: switch (tag) { case GAME_TAG.SPELLPOWER_DOUBLE: case GAME_TAG.HEALING_DOUBLE: break; case GAME_TAG.MULLIGAN_STATE: if ((change.newValue == 4) && (MulliganManager.Get() == null)) { foreach (Card card in this.GetHandZone().GetCards()) { card.GetActor().TurnOnCollider(); } } return; default: if ((tag == GAME_TAG.OVERLOAD_LOCKED) && (change.newValue < change.oldValue)) { this.UnlockCrystals(change.oldValue - change.newValue); } return; } break; } List <Card> cards = this.GetHandZone().GetCards(); for (int i = 0; i < cards.Count; i++) { if (cards[i].GetEntity().IsSpell()) { cards[i].GetActor().UpdatePowersText(); } } }