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);
    }
Exemplo n.º 3
0
 public static string GetErrorDescription(ErrorType type, PlayRequirementInfo requirementInfo)
 {
     object[] objArray1 = new object[] { type, requirementInfo };
     return(MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "PlayErrors", "GetErrorDescription", objArray1));
 }