Example #1
0
        public override bool TakeAction()
        {
            int useGold = ConfigEnvSet.GetInt("TrumpSkill.WashIngUseGold");

            if (ops == 1)
            {
                ErrorCode = ops;
                ErrorInfo = string.Format(LanguageManager.GetLang().St1460_WashingSkills, useGold);
                return(false);
            }
            else if (ops == 2)
            {
                if (useGold > ContextUser.GoldNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1460_WashingSkillsNotEnough;
                    return(false);
                }
                UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);
                if (userTrump == null || userTrump.SkillInfo.Count == 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1466_WorshipPropertyNotEnough;
                    return(false);
                }
                SkillInfo trumpSkill = userTrump.SkillInfo.Find(m => m.AbilityID == skillID);
                if (trumpSkill == null)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1460_SkillsNotEnough;
                    return(false);
                }
                AbilityInfo abilityInfo = TrumpHelper.GetRandomAbility(ContextUser.UserID);
                if (abilityInfo != null)
                {
                    ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold);
                    trumpSkill.UpdateNotify(obj =>
                    {
                        trumpSkill.AbilityID = abilityInfo.AbilityID;
                        trumpSkill.AbilityLv = 1;
                        return(true);
                    });
                    ErrorCode = ops;
                    ErrorInfo = LanguageManager.GetLang().St1460_WashingSuccess;
                }
            }
            return(true);
        }