public static void DisplayPlayError(ErrorType error, Entity errorSource) { Log.PlayErrors.Print(string.Concat(new object[] { "DisplayPlayError: (", s_initialized, ") ", error, " ", errorSource }), new object[0]); if (s_initialized && !GameState.Get().GetGameEntity().NotifyOfPlayError(error, errorSource)) { switch (error) { case ErrorType.REQ_MINION_TARGET: case ErrorType.REQ_FRIENDLY_TARGET: case ErrorType.REQ_ENEMY_TARGET: case ErrorType.REQ_DAMAGED_TARGET: case ErrorType.REQ_FROZEN_TARGET: case ErrorType.REQ_TARGET_MAX_ATTACK: case ErrorType.REQ_TARGET_WITH_RACE: case ErrorType.REQ_HERO_TARGET: case ErrorType.REQ_HERO_OR_MINION_TARGET: case ErrorType.REQ_CAN_BE_TARGETED_BY_SPELLS: case ErrorType.REQ_CAN_BE_TARGETED_BY_OPPONENTS: case ErrorType.REQ_TARGET_MIN_ATTACK: case ErrorType.REQ_CAN_BE_TARGETED_BY_HERO_POWERS: case ErrorType.REQ_ENEMY_TARGET_NOT_IMMUNE: case ErrorType.REQ_CAN_BE_TARGETED_BY_BATTLECRIES: case ErrorType.REQ_MINION_OR_ENEMY_HERO: case ErrorType.REQ_LEGENDARY_TARGET: case ErrorType.REQ_TARGET_WITH_BATTLECRY: case ErrorType.REQ_TARGET_WITH_DEATHRATTLE: GameState.Get().GetFriendlySidePlayer().GetHeroCard().PlayEmote(EmoteType.ERROR_TARGET); break; case ErrorType.REQ_TARGET_TO_PLAY: case ErrorType.REQ_TARGET_IF_AVAILABLE: case ErrorType.REQ_TARGET_FOR_COMBO: case ErrorType.REQ_TARGET_FOR_NO_COMBO: case ErrorType.REQ_STEADY_SHOT: case ErrorType.REQ_TARGET_IF_AVAILABLE_AND_DRAGON_IN_HAND: case ErrorType.REQ_FRIENDLY_MINION_DIED_THIS_TURN: case ErrorType.REQ_FRIENDLY_MINION_DIED_THIS_GAME: case ErrorType.REQ_ENEMY_WEAPON_EQUIPPED: case ErrorType.REQ_TARGET_IF_AVAILABLE_AND_MINIMUM_FRIENDLY_MINIONS: GameState.Get().GetFriendlySidePlayer().GetHeroCard().PlayEmote(EmoteType.ERROR_PLAY); break; case ErrorType.REQ_NUM_MINION_SLOTS: case ErrorType.REQ_MINION_CAP_IF_TARGET_AVAILABLE: case ErrorType.REQ_MINION_CAP: GameState.Get().GetFriendlySidePlayer().GetHeroCard().PlayEmote(EmoteType.ERROR_FULL_MINIONS); break; case ErrorType.REQ_WEAPON_EQUIPPED: GameState.Get().GetFriendlySidePlayer().GetHeroCard().PlayEmote(EmoteType.ERROR_NEED_WEAPON); break; case ErrorType.REQ_ENOUGH_MANA: GameState.Get().GetFriendlySidePlayer().GetHeroCard().PlayEmote(EmoteType.ERROR_NEED_MANA); break; case ErrorType.REQ_YOUR_TURN: return; case ErrorType.REQ_NONSTEALTH_ENEMY_TARGET: GameState.Get().GetFriendlySidePlayer().GetHeroCard().PlayEmote(EmoteType.ERROR_STEALTH); break; case ErrorType.REQ_NOT_EXHAUSTED_ACTIVATE: if (!errorSource.IsHero()) { GameState.Get().GetFriendlySidePlayer().GetHeroCard().PlayEmote(EmoteType.ERROR_MINION_ATTACKED); } else { GameState.Get().GetCurrentPlayer().GetHeroCard().PlayEmote(EmoteType.ERROR_I_ATTACKED); } break; case ErrorType.REQ_TARGET_TAUNTER: DisplayTauntErrorEffects(); break; case ErrorType.REQ_NOT_MINION_JUST_PLAYED: GameState.Get().GetFriendlySidePlayer().GetHeroCard().PlayEmote(EmoteType.ERROR_JUST_PLAYED); break; case ErrorType.REQ_DRAG_TO_PLAY: break; default: GameState.Get().GetFriendlySidePlayer().GetHeroCard().PlayEmote(EmoteType.ERROR_GENERIC); break; } PlayRequirementInfo playRequirementInfo = GetPlayRequirementInfo(errorSource); string errorDescription = GetErrorDescription(error, playRequirementInfo); if (!string.IsNullOrEmpty(errorDescription)) { GameplayErrorManager.Get().DisplayMessage(errorDescription); } } }
private static string GetErrorDescription(ErrorType type, PlayRequirementInfo requirementInfo) { Log.PlayErrors.Print(string.Concat(new object[] { "GetErrorDescription: ", type, " ", requirementInfo }), new object[0]); ErrorType type2 = type; switch (type2) { case ErrorType.REQ_YOUR_TURN: return(string.Empty); case ErrorType.REQ_SECRET_CAP: { object[] args = new object[] { GameState.Get().GetMaxSecretsPerPlayer() }; return(GameStrings.Format("GAMEPLAY_PlayErrors_REQ_SECRET_CAP", args)); } case ErrorType.REQ_TARGET_MAX_ATTACK: { object[] objArray2 = new object[] { requirementInfo.paramMaxAtk }; return(GameStrings.Format("GAMEPLAY_PlayErrors_REQ_TARGET_MAX_ATTACK", objArray2)); } case ErrorType.REQ_TARGET_WITH_RACE: { object[] objArray3 = new object[] { GameStrings.GetRaceName((TAG_RACE)requirementInfo.paramRace) }; return(GameStrings.Format("GAMEPLAY_PlayErrors_REQ_TARGET_WITH_RACE", objArray3)); } case ErrorType.REQ_TARGET_TAUNTER: if (!CanShowMinionTauntError()) { return(GameStrings.Get("GAMEPLAY_PlayErrors_REQ_TARGET_TAUNTER_CHARACTER")); } return(GameStrings.Get("GAMEPLAY_PlayErrors_REQ_TARGET_TAUNTER_MINION")); case ErrorType.REQ_ACTION_PWR_IS_MASTER_PWR: return(ErrorInEditorOnly("[Unity Editor] Action power must be master power", new object[0])); } if (type2 != ErrorType.NONE) { if (type2 == ErrorType.REQ_MINIMUM_ENEMY_MINIONS) { object[] objArray5 = new object[] { requirementInfo.paramMinNumEnemyMinions }; return(GameStrings.Format("GAMEPLAY_PlayErrors_REQ_MINIMUM_ENEMY_MINIONS", objArray5)); } if (type2 == ErrorType.REQ_TARGET_MIN_ATTACK) { object[] objArray6 = new object[] { requirementInfo.paramMinAtk }; return(GameStrings.Format("GAMEPLAY_PlayErrors_REQ_TARGET_MIN_ATTACK", objArray6)); } if (type2 == ErrorType.REQ_MINIMUM_TOTAL_MINIONS) { object[] objArray7 = new object[] { requirementInfo.paramMinNumTotalMinions }; return(GameStrings.Format("GAMEPLAY_PlayErrors_REQ_MINIMUM_TOTAL_MINIONS", objArray7)); } string str = null; if (s_playErrorsMessages.TryGetValue(type, out str)) { return(GameStrings.Get(str)); } object[] objArray8 = new object[] { type }; return(ErrorInEditorOnly("[Unity Editor] Unknown play error ({0})", objArray8)); } Debug.LogWarning("PlayErrors.GetErrorDescription() - Action is not valid, but no error string found."); return(string.Empty); }
public static string GetErrorDescription(ErrorType type, PlayRequirementInfo requirementInfo) { object[] objArray1 = new object[] { type, requirementInfo }; return(MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "PlayErrors", "GetErrorDescription", objArray1)); }