Files
SVSimServer/SVSim.BattleEngine/Engine/BattleLogTextBuilderAttachSkill.cs
gamer147 4b9a603cd4 feat(battle-engine): full View/VFX/UI/Touch/Story type closure (4254->3916, unmasked)
Generate no-op shells for the entire stop-listed View/Vfx/UI/Touch/Story missing-
type closure (~180 types) + 5 copyable engine files. Net-new shells emitted base-less,
so override members are stripped via the new --no-override generator flag. SDK/BCL
over-reach (Adjust/GZipStream/Socket*) and non-battle Story-world clusters reduced to
minimal/empty stubs instead of full-surface. Nested-type closure (BuildInfo/BattleDialog/
ROOM_URI/FuncGetCantAttackText) placed top-level in their decomp namespaces.

Clearing the last View CS0115 unmasked the true member-level frontier: 3916 errors,
0 generated/structural errors, now dominated by Unity-type + god-object members.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 22:01:37 -04:00

852 lines
33 KiB
C#

using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Wizard;
public abstract class BattleLogTextBuilderAttachSkill
{
private static readonly string COST_MAX = "cost.max";
private const string OP_INPLAY_UNIT_COUNT = "op.inplay.unit.count";
private const string ME_INPLAY = "me.inplay";
private const string ME_HAND = "me.hand";
private const string ME_INPLAY_UNIT = "me.inplay.unit";
private const string ME_INPLAY_CLASS_EP = "me.inplay.class.ep";
private const string ME_HAND_COUNT = "me.hand.count";
private const string PLAYED_CARD = "played_card";
private const string ME_INPLAY_SELF = "me.inplay_self.count";
private const string ME_INPLAY_CLASS_PP = "me.inplay.class.pp";
private const string ME_TURN_COUNT = "{me.inplay.class.turn}";
private const string ME_DECK_NOT_DUPLICATION = "me.deck.unique_base_card_id_card";
public abstract string BuildTextAttachSkill(SkillBase attachedSkill, bool isBuffText, bool isNow);
public static string _GetSpecificCardCostInformation(SkillBase skill, bool isTarget)
{
if (isTarget)
{
if (skill.ApplyCardFilterList.Any((ISkillCardFilter f) => f is SkillParameterCostFilter))
{
SkillParameterCostFilter skillParameterCostFilter = skill.ApplyCardFilterList.First((ISkillCardFilter f) => f is SkillParameterCostFilter) as SkillParameterCostFilter;
if (skillParameterCostFilter.GetParameterText().Contains(COST_MAX))
{
return Data.SystemText.Get("BattleLog_0165");
}
if (skillParameterCostFilter.GetParameterOptionText() == ">=")
{
return Data.SystemText.Get("BattleLog_0182", skillParameterCostFilter.GetParameterText());
}
if (skillParameterCostFilter.GetParameterOptionText() == "<=")
{
return Data.SystemText.Get("BattleLog_0230", skillParameterCostFilter.GetParameterText());
}
}
if (skill.ApplyCardFilterList.Any((ISkillCardFilter f) => f is SkillParameterBaseCostFilter))
{
SkillParameterBaseCostFilter skillParameterBaseCostFilter = skill.ApplyCardFilterList.FirstOrDefault((ISkillCardFilter f) => f is SkillParameterBaseCostFilter) as SkillParameterBaseCostFilter;
if (skillParameterBaseCostFilter.GetParameterOptionText() == "<=")
{
return Data.SystemText.Get("BattleLog_0164", skillParameterBaseCostFilter.GetParameterText());
}
}
}
else if (skill.ConditionFilterCollection.VariableCompareFilter.Count > 0)
{
string text = skill.ConditionFilterCollection.VariableCompareFilter.First().Lhs.Trim('{', '}');
VariableSkillFilterCollection variableSkillFilterCollection = new VariableSkillFilterCollection();
SkillFilterCreator.SetupVariable(variableSkillFilterCollection, text, skill.SkillPrm.ownerCard, skill);
if (variableSkillFilterCollection.CardFilterList.Any((ISkillCardFilter f) => f is SkillParameterBaseCostFilter))
{
SkillParameterBaseCostFilter skillParameterBaseCostFilter2 = variableSkillFilterCollection.CardFilterList.First((ISkillCardFilter f) => f is SkillParameterBaseCostFilter) as SkillParameterBaseCostFilter;
if (skillParameterBaseCostFilter2.GetParameterOptionText() == "<=")
{
return Data.SystemText.Get("BattleLog_0164", skillParameterBaseCostFilter2.GetParameterText());
}
if (skillParameterBaseCostFilter2.GetParameterOptionText() == "=")
{
return Data.SystemText.Get("BattleLog_0194", skillParameterBaseCostFilter2.GetParameterText());
}
}
}
return "";
}
public static string _GetCardTypeByFilterList(List<ISkillCardFilter> filters)
{
if (filters.Any((ISkillCardFilter f) => f is SkillUnitFilter))
{
return Data.SystemText.Get("BattleLog_0172");
}
if (filters.Any((ISkillCardFilter f) => f is SkillSpellFilter))
{
return Data.SystemText.Get("BattleLog_0173");
}
if (filters.Any((ISkillCardFilter f) => f is SkillChantFieldFilter))
{
return Data.SystemText.Get("BattleLog_0176");
}
if (filters.Any((ISkillCardFilter f) => f is SkillFieldFilter))
{
return Data.SystemText.Get("BattleLog_0175");
}
if (filters.Any((ISkillCardFilter f) => f is SkillSpellAndFieldFilter))
{
return Data.SystemText.Get("BattleLog_0183");
}
return string.Empty;
}
public static string _GetSpecificCardType(SkillBase skill, bool isTarget)
{
if (isTarget)
{
string text = _GetCardTypeByFilterList(skill.ApplyCardFilterList);
if (text != string.Empty)
{
return text;
}
}
else
{
if (skill.ConditionCardFilterList.Count > 0)
{
string text = _GetCardTypeByFilterList(skill.ConditionCardFilterList);
if (text != string.Empty)
{
return text;
}
}
if (skill.ConditionFilterCollection.VariableCompareFilter.Count > 0)
{
string text2 = skill.ConditionFilterCollection.VariableCompareFilter.First().Lhs.Trim('{', '}');
VariableSkillFilterCollection variableSkillFilterCollection = new VariableSkillFilterCollection();
SkillFilterCreator.SetupVariable(variableSkillFilterCollection, text2, skill.SkillPrm.ownerCard, skill);
if (variableSkillFilterCollection.CardFilterList.Count > 0)
{
string text = _GetCardTypeByFilterList(variableSkillFilterCollection.CardFilterList);
if (text != string.Empty)
{
return text;
}
}
}
}
return Data.SystemText.Get("BattleLog_0174");
}
public static string _GetSpecificCardTribeClan(SkillBase skill, bool isTarget)
{
if (isTarget)
{
if (skill.ApplyCardFilterList.Any((ISkillCardFilter f) => f is SkillClanFilter))
{
SkillClanFilter skillClanFilter = skill.ApplyCardFilterList.First((ISkillCardFilter f) => f is SkillClanFilter) as SkillClanFilter;
string clanNameByKey = GameMgr.GetIns().GetDataMgr().GetClanNameByKey((int)skillClanFilter._clan);
string text = ((skillClanFilter.OptionText == SkillFilterCreator.NOTEQUAL) ? Data.SystemText.Get("BattleLog_0238") : "");
return Data.SystemText.Get("BattleLog_0234", clanNameByKey, text);
}
if (skill.ApplyCardFilterList.Any((ISkillCardFilter f) => f is SkillTribeFilter))
{
return DataMgr.GetTribeNameByKey((int)(skill.ApplyCardFilterList.First((ISkillCardFilter f) => f is SkillTribeFilter) as SkillTribeFilter)._type);
}
}
else
{
if (skill.ConditionCardFilterList.Any((ISkillCardFilter f) => f is SkillClanFilter))
{
SkillClanFilter skillClanFilter2 = skill.ConditionCardFilterList.First((ISkillCardFilter f) => f is SkillClanFilter) as SkillClanFilter;
return GameMgr.GetIns().GetDataMgr().GetClanNameByKey((int)skillClanFilter2._clan);
}
if (skill.ConditionCardFilterList.Any((ISkillCardFilter f) => f is SkillTribeFilter))
{
return DataMgr.GetTribeNameByKey((int)(skill.ConditionCardFilterList.First((ISkillCardFilter f) => f is SkillTribeFilter) as SkillTribeFilter)._type);
}
if (skill.ConditionFilterCollection.VariableCompareFilter.Any((SkillVariableComareFilter f) => f.Lhs.Contains(SkillFilterCreator.ContentKeyword.tribe.ToString())))
{
string text2 = skill.ConditionFilterCollection.VariableCompareFilter.FirstOrDefault((SkillVariableComareFilter f) => f.Lhs.Contains(SkillFilterCreator.ContentKeyword.tribe.ToString())).Lhs.Trim('{', '}');
VariableSkillFilterCollection variableSkillFilterCollection = new VariableSkillFilterCollection();
SkillFilterCreator.SetupVariable(variableSkillFilterCollection, text2, skill.SkillPrm.ownerCard, skill);
ISkillCardFilter skillCardFilter = variableSkillFilterCollection.CardFilterList.FirstOrDefault((ISkillCardFilter f) => f is SkillTribeFilter);
if (skillCardFilter != null)
{
return DataMgr.GetTribeNameByKey((int)(skillCardFilter as SkillTribeFilter)._type);
}
}
}
return "";
}
public static string _GetSpecificCardException(SkillBase skill)
{
if (skill.ApplyCardFilterList.Any((ISkillCardFilter f) => f is SkillParameterIdFilter))
{
SkillParameterIdFilter skillParameterIdFilter = skill.ApplyCardFilterList.First((ISkillCardFilter f) => f is SkillParameterIdFilter) as SkillParameterIdFilter;
if (skillParameterIdFilter.GetOptionText() == "!=")
{
CardParameter cardParameterFromId = CardMaster.GetInstanceForBattle().GetCardParameterFromId(int.Parse(skillParameterIdFilter.GetFilterId().First()));
return Data.SystemText.Get("BattleLog_0166", cardParameterFromId.CardName);
}
}
return "";
}
public static string _GetSpecificCardTargetCount(SkillBase skill, bool isTarget)
{
if (!isTarget)
{
return "";
}
if (skill.ApplySelectFilter is SkillRandomSelectFilter)
{
SkillRandomSelectFilter skillRandomSelectFilter = skill.ApplySelectFilter as SkillRandomSelectFilter;
if (!skillRandomSelectFilter.IsContainVariableValue())
{
int num = int.Parse(skillRandomSelectFilter.Context);
if (num >= 1)
{
return Data.SystemText.Get("BattleLog_0163", num.ToString());
}
}
return "";
}
if (skill.ApplySelectFilter is SkillUserSelectFilter)
{
SkillUserSelectFilter skillUserSelectFilter = skill.ApplySelectFilter as SkillUserSelectFilter;
return Data.SystemText.Get("BattleLog_0163", skillUserSelectFilter.CalcCount(skill.OptionValue).ToString());
}
if (skill.ApplyingTargetFilter is SkillTargetLastTargetFilter)
{
int num2 = skill.SkillPrm.selfBattlePlayer.SkillInfoLastTargets.Count();
return Data.SystemText.Get("BattleLog_0163", num2.ToString());
}
if (skill.ApplyingTargetFilter is SkillTargetSkillDrewCardFilter)
{
int num3 = skill.GetDrewCardInHand().Count();
return Data.SystemText.Get("BattleLog_0163", num3.ToString());
}
if (skill.ConditionTargetFilter is SkillTargetPlayedCardFilter)
{
return "";
}
return Data.SystemText.Get("BattleLog_0171");
}
public static string _GetSpecificCard(SkillBase skill, bool isBuffText, bool isTarget)
{
string text = _GetSpecificCardCostInformation(skill, isTarget);
string text2 = _GetSpecificCardTribeClan(skill, isTarget);
string text3 = _GetSpecificCardType(skill, isTarget);
if (skill.ApplyCardFilterList.Any((ISkillCardFilter f) => f is SkillParameterIdFilter))
{
SkillParameterIdFilter skillParameterIdFilter = skill.ApplyCardFilterList.First((ISkillCardFilter f) => f is SkillParameterIdFilter) as SkillParameterIdFilter;
if (skillParameterIdFilter.GetOptionText() == SkillFilterCreator.EQUAL)
{
CardParameter cardParameterFromId = CardMaster.GetInstanceForBattle().GetCardParameterFromId(int.Parse(skillParameterIdFilter.GetFilterId().First()));
text2 = "";
text3 = cardParameterFromId.CardName;
}
}
string text4 = _GetSpecificCardException(skill);
string text5 = _GetSpecificCardTargetCount(skill, isTarget);
if (isBuffText)
{
string text6 = string.Empty;
if ((isTarget && skill.ApplyCardFilterList.Any((ISkillCardFilter f) => f is SkillTribeFilter)) || (!isTarget && (skill.ConditionCardFilterList.Any((ISkillCardFilter f) => f is SkillTribeFilter) || skill.ConditionFilterCollection.VariableCompareFilter.Any((SkillVariableComareFilter f) => f.Lhs.Contains(SkillFilterCreator.ContentKeyword.tribe.ToString())))))
{
text6 = Data.SystemText.Get("BattleLog_0252");
}
return Data.SystemText.Get("BattleLog_0156", text, text2, text3, text4, text5, text6);
}
string text7 = Data.SystemText.Get("BattleLog_0225");
if (text == string.Empty && text2 == string.Empty && text3 == Data.SystemText.Get("BattleLog_0174") && text4 == string.Empty)
{
text7 = string.Empty;
}
return Data.SystemText.Get("BattleLog_0161", text5, text7);
}
public static string _GetSkillTarget(SkillBase skill, bool isBuffText)
{
if (skill.ApplyFilterCollection.ApplyAndFilter.Any((ApplySkillTargetFilterCollection f) => f.BattlePlayerFilter is OpponentBattlePlayerFilter && f.CardFilterList.Any((ISkillCardFilter c) => c is SkillUnitFilter)) && skill.ApplyFilterCollection.ApplyAndFilter.Any((ApplySkillTargetFilterCollection f) => f.BattlePlayerFilter is SelfBattlePlayerFilter && f.CardFilterList.Any((ISkillCardFilter c) => c is SkillClassFilter)))
{
return Data.SystemText.Get("BattleLog_0147");
}
if (skill.ApplyingTargetFilter is SkillTargetBeAttackedFilter)
{
return Data.SystemText.Get("BattleLog_0063");
}
if (skill.ApplyingTargetFilter is SkillTargetAttackerFilter)
{
return Data.SystemText.Get("BattleLog_0101");
}
if (skill.ApplyingTargetFilter is SkillTargetFightTargetFilter)
{
return Data.SystemText.Get("BattleLog_0103");
}
if (skill.ApplyingTargetFilter is SkillTargetSelfFilter)
{
return Data.SystemText.Get("BattleLog_0064");
}
if (skill.ApplyingTargetFilter is SkillTargetSkillDrewCardFilter)
{
if (isBuffText)
{
return Data.SystemText.Get("BattleLog_0118");
}
return Data.SystemText.Get("BattleLog_0065");
}
if (skill.ApplyingTargetFilter is SkillTargetHandOtherSelfFilter || skill.ApplyingTargetFilter is SkillTargetHandFilter)
{
return Data.SystemText.Get("BattleLog_0082", _GetSpecificCard(skill, isBuffText, isTarget: true));
}
if (skill.ApplyingTargetFilter is SkillTargetDeckFilter)
{
return Data.SystemText.Get("BattleLog_0083", _GetSpecificCard(skill, isBuffText, isTarget: true));
}
if (skill.ApplyingTargetFilter is SkillTargetSummonedCardFilter)
{
return Data.SystemText.Get("BattleLog_0093");
}
if (skill.ApplyingTargetFilter is SkillTargetPlayedCardFilter)
{
return Data.SystemText.Get("BattleLog_0118");
}
if (skill.ApplyingTargetFilter is SkillTargetInPlayFilter)
{
int num = 0;
for (int count = skill.ApplyCardFilterList.Count; num < count; num++)
{
if (skill.ApplyCardFilterList[num] is SkillClassFilter)
{
if (skill.ApplyBattlePlayerFilter is SelfBattlePlayerFilter)
{
return Data.SystemText.Get("BattleLog_0115");
}
if (skill.ApplyBattlePlayerFilter is OpponentBattlePlayerFilter)
{
return Data.SystemText.Get("BattleLog_0004");
}
}
else if (skill.ApplyCardFilterList[num] is SkillUnitAndClassFilter)
{
if (skill.ApplySelectFilter != null)
{
if (!(skill.ApplySelectFilter is SkillSelectAllFilter) && !(skill.ApplySelectFilter is SkillSelectNullFilter))
{
return Data.SystemText.Get("BattleLog_0120");
}
if (skill.ApplyBattlePlayerFilter is OpponentBattlePlayerFilter)
{
return Data.SystemText.Get("BattleLog_0112");
}
if (skill.ApplyBattlePlayerFilter is SelfBattlePlayerFilter)
{
return Data.SystemText.Get("BattleLog_0190");
}
}
else
{
Debug.LogError("ApplySelectFilter is not allowed null!");
}
}
else
{
if (!(skill.ApplyCardFilterList[num] is SkillUnitFilter))
{
continue;
}
if (skill.ApplySelectFilter != null)
{
string text = _ConvertSkillConditionCharacter((skill.ApplyBattlePlayerFilter is OpponentBattlePlayerFilter) ? SkillFilterCreator.ContentKeyword.op.ToStringCustom() : SkillFilterCreator.ContentKeyword.me.ToStringCustom());
if (!(skill.ApplySelectFilter is SkillSelectAllFilter) && !(skill.ApplySelectFilter is SkillSelectNullFilter))
{
string text2 = _GetSkillTargetCount(skill);
int result = -1;
int.TryParse(text2, out result);
return Data.SystemText.Get("BattleLog_0133", text2, text);
}
return Data.SystemText.Get("BattleLog_0124", text);
}
Debug.LogError("ApplySelectFilter is not allowed null!");
}
}
return "";
}
if (skill.ApplyingTargetFilter is SkillTargetInPlayOtherSelfFilter)
{
if (skill.ApplySelectFilter is SkillRandomSelectFilter)
{
return Data.SystemText.Get("BattleLog_0146");
}
return Data.SystemText.Get("BattleLog_0121");
}
if (skill.ApplyingTargetFilter is SkillTargetLastTargetFilter)
{
return Data.SystemText.Get("BattleLog_0118");
}
if (skill.ApplyingTargetFilter is SkillTargetInplaySelfAndClassFilter)
{
return Data.SystemText.Get("BattleLog_0214");
}
if (!(skill.ApplyingTargetFilter is SkillTargetTokenDrawCardFilter))
{
_ = skill.ApplyingTargetFilter is SkillTargetReturnCardFilter;
}
return "";
}
public static string _GetSkillPeriod(SkillBase skill, bool isNow)
{
if (skill.PreprocessList.FirstOrDefault((SkillPreprocessBase pre) => pre is SkillPreprocessInPlayPeriodOfTime) is SkillPreprocessInPlayPeriodOfTime)
{
if (isNow)
{
return Data.SystemText.Get("BattleLog_0091");
}
return Data.SystemText.Get("BattleLog_0159");
}
if (skill.ConditionCheckerList.Any((ISkillConditionChecker a) => a is SkillPreprocessTurnStartStop && (a as SkillPreprocessTurnStartStop).Target == "op"))
{
return Data.SystemText.Get("BattleLog_0189");
}
if (skill.ConditionCheckerList.Any((ISkillConditionChecker a) => a is SkillConditionTurn && (a as SkillConditionTurn).judgeFlg))
{
return Data.SystemText.Get("BattleLog_0126");
}
if (skill.ConditionCheckerList.Any((ISkillConditionChecker a) => a is SkillPreprocessTurnEndStop))
{
return Data.SystemText.Get("BattleLog_0215");
}
return "";
}
protected static string _GetSkillTiming(SkillBase skill, bool isBuffText)
{
if (skill.IsWhenPlaySkill)
{
return "";
}
if (skill.IsWhenDestroySkill)
{
return Data.SystemText.Get("BattleLog_0066");
}
if (skill.IsBeforAttackSkill || skill.IsBeforeAttackSelfAndOtherSkill)
{
if (skill.ConditionCheckerList.Any((ISkillConditionChecker f) => f is SkillConditionAttackerIsOther))
{
return Data.SystemText.Get("BattleLog_0192");
}
return Data.SystemText.Get("BattleLog_0067");
}
if (skill.OnAfterAttackStart != 0)
{
return Data.SystemText.Get("BattleLog_0254");
}
if (skill.IsWhenFightSkill)
{
return Data.SystemText.Get("BattleLog_0102");
}
if (skill.OnSelfTurnStartStart != 0)
{
return Data.SystemText.Get("BattleLog_0068");
}
if (skill.OnSelfTurnEndStart != 0)
{
return Data.SystemText.Get("BattleLog_0069");
}
if (skill.OnWhenSummonOtherStart != 0)
{
if (skill.ApplyBattlePlayerFilter is SelfBattlePlayerFilter)
{
return Data.SystemText.Get("BattleLog_0092", _GetSpecificCard(skill, isBuffText, isTarget: false));
}
return "";
}
if (skill.OnWhenPlayOtherStart != 0)
{
if (skill.ConditionTargetFilter is SkillTargetPlayedCardFilter && skill.ConditionCardFilterList.Any((ISkillCardFilter c) => c is SkillSpellFilter))
{
return Data.SystemText.Get("BattleLog_0108");
}
return Data.SystemText.Get("BattleLog_0117", _GetSpecificCard(skill, isBuffText, isTarget: false));
}
if (skill.OnWhenDamageStart != 0)
{
return Data.SystemText.Get("BattleLog_0127");
}
if (skill.OnWhenDestroyOtherStart != 0)
{
return Data.SystemText.Get("BattleLog_0257", _GetSpecificCard(skill, isBuffText, isTarget: false));
}
if (skill.OnWhenDamageStart != 0 && skill.ConditionCheckerList.Any((ISkillConditionChecker c) => c is SkillConditionTurn))
{
return "";
}
if (skill.OnWhenDrawOtherStart != 0)
{
return "";
}
if (skill.OnWhenPpHealStart != 0)
{
return "";
}
if (skill.OnOpponentTurnEndStart != 0)
{
return "";
}
if (skill.OnWhenReturnOtherStart != 0)
{
return Data.SystemText.Get("BattleLog_0264");
}
return "";
}
protected static string _GetSkillTargetCount(SkillBase skill)
{
if (skill.ApplySelectFilter != null)
{
return skill.ApplySelectFilter.CalcCount(skill.OptionValue).ToString();
}
return "";
}
protected static string _GetSkillPreProcessText(SkillBase skill)
{
SkillPreprocessBase skillPreprocessBase = skill.PreprocessList.FirstOrDefault((SkillPreprocessBase s) => s is SkillPreprocessUsePp);
if (skillPreprocessBase != null)
{
int consumeValue = (skillPreprocessBase as SkillPreprocessUsePp).ConsumeValue;
return Data.SystemText.Get("BattleLog_0236", consumeValue.ToString());
}
return string.Empty;
}
protected static string _GetSkillOptionSetCost(SkillBase skill)
{
int num = skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.set, int.MinValue);
int num2 = skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.add, int.MinValue);
if (num != int.MinValue)
{
return num.ToString();
}
if (num2 != int.MinValue)
{
return num2.ToString();
}
return "";
}
protected static string _GetSkillDetailCondition(SkillBase skill)
{
if (skill.ConditionCheckerList.Any((ISkillConditionChecker f) => f is SkillConditionResonance) && (skill.ConditionCheckerList.First((ISkillConditionChecker f) => f is SkillConditionResonance) as SkillConditionResonance).judgeFlg)
{
return Data.SystemText.Get("BattleLog_0169");
}
List<SkillVariableComareFilter> variableCompareFilter = skill.ConditionFilterCollection.VariableCompareFilter;
if (variableCompareFilter.Count > 0)
{
SkillVariableComareFilter skillVariableComareFilter = variableCompareFilter.First();
string compare = skillVariableComareFilter.Compare;
string text = skillVariableComareFilter.Lhs.Trim('{', '}');
VariableSkillFilterCollection variableSkillFilterCollection = new VariableSkillFilterCollection();
SkillFilterCreator.SetupVariable(variableSkillFilterCollection, text, skill.SkillPrm.ownerCard, skill);
if (text.Contains("me.deck.unique_base_card_id_card"))
{
if (compare == "=")
{
return Data.SystemText.Get("BattleLog_0260");
}
return Data.SystemText.Get("BattleLog_0259");
}
if (text.Contains("op.inplay.unit.count"))
{
string rhs = skillVariableComareFilter.Rhs;
if (compare == ">" && rhs == "0")
{
return Data.SystemText.Get("BattleLog_0158");
}
if (compare == "=" && rhs == "0")
{
return Data.SystemText.Get("BattleLog_0181");
}
}
else if (variableSkillFilterCollection.CardCountFilter != null && variableSkillFilterCollection.BattlePlayerFilter is SelfBattlePlayerFilter)
{
string rhs2 = skillVariableComareFilter.Rhs;
if (variableSkillFilterCollection.CardFilterList.Any((ISkillCardFilter f) => f is SkillParameterIdFilter))
{
SkillParameterIdFilter skillParameterIdFilter = variableSkillFilterCollection.CardFilterList.FirstOrDefault((ISkillCardFilter f) => f is SkillParameterIdFilter) as SkillParameterIdFilter;
string cardName = CardMaster.GetInstanceForBattle().GetCardParameterFromId(int.Parse(skillParameterIdFilter.GetFilterId().First())).CardName;
if (variableCompareFilter.Any((SkillVariableComareFilter f) => f.Lhs.Contains("me.inplay") && f.Rhs == "0") && variableCompareFilter.Any((SkillVariableComareFilter f) => f.Lhs.Contains("me.hand") && f.Rhs == "0"))
{
return Data.SystemText.Get("BattleLog_0193", cardName, Data.SystemText.Get("BattleLog_0177"));
}
if (compare == "=" && rhs2 == "0")
{
string text2 = Data.SystemText.Get("BattleLog_0205");
if (variableSkillFilterCollection.TargetFilter is SkillTargetHandFilter)
{
text2 = Data.SystemText.Get("BattleLog_0206");
}
return Data.SystemText.Get("BattleLog_0193", cardName, text2);
}
}
if (compare == ">" && rhs2 == "0")
{
if (variableSkillFilterCollection.CardFilterList.Any((ISkillCardFilter f) => f is SkillFieldFilter))
{
return Data.SystemText.Get("BattleLog_0149");
}
if (variableSkillFilterCollection.CardFilterList.Any((ISkillCardFilter f) => f is SkillUnitFilter))
{
return Data.SystemText.Get("BattleLog_0148");
}
}
}
else if (variableSkillFilterCollection.ParameterSelectFilter is SkillParameterTurnDamageValueFilter)
{
int num = int.Parse(skillVariableComareFilter.Rhs.ToString());
if (compare == ">=")
{
return Data.SystemText.Get("BattleLog_0197", num.ToString());
}
if (compare == "<")
{
return Data.SystemText.Get("BattleLog_0198", (num - 1).ToString());
}
}
if (text.Contains("me.hand.count"))
{
string rhs3 = skillVariableComareFilter.Rhs;
switch (compare)
{
case "<=":
return Data.SystemText.Get("BattleLog_0187", rhs3);
case "<":
{
int num3 = int.Parse(rhs3) - 1;
return Data.SystemText.Get("BattleLog_0187", num3.ToString());
}
case ">=":
return Data.SystemText.Get("BattleLog_0188", rhs3);
case ">":
{
int num2 = int.Parse(rhs3) + 1;
return Data.SystemText.Get("BattleLog_0188", num2.ToString());
}
}
}
if (text.Contains("me.inplay.class.ep"))
{
return Data.SystemText.Get("BattleLog_0177");
}
if (variableSkillFilterCollection.BattlePlayerFilter != null && variableSkillFilterCollection.TargetFilter is SkillTargetInPlayFilter && variableSkillFilterCollection.CardFilterList.Count > 0 && variableSkillFilterCollection.CardCountFilter != null)
{
string[] array = text.Split('.');
string text3 = _ConvertSkillConditionCharacter(array[0]);
string text4 = _ConvertSkillConditionTarget(array[1]);
string text5 = _ConvertSkillConditionCardType(array[2]);
string rhs4 = skillVariableComareFilter.Rhs;
switch (compare)
{
case "=":
return Data.SystemText.Get("BattleLog_0200", text3, text4, text5, rhs4);
case ">=":
return Data.SystemText.Get("BattleLog_0209", text3, text4, text5, rhs4);
case "<=":
return Data.SystemText.Get("BattleLog_0210", text3, text4, text5, rhs4);
}
}
if (text.Contains("me.inplay.class.pp"))
{
string rhs5 = skillVariableComareFilter.Rhs;
if (compare != null && compare == ">=")
{
return Data.SystemText.Get("BattleLog_0235", rhs5);
}
}
if (text.Contains(SkillFilterCreator.ContentKeyword.turn_play_cards.ToString()))
{
return Data.SystemText.Get("BattleLog_0191", skillVariableComareFilter.Rhs, _GetSpecificCard(skill, isBuffText: true, isTarget: false));
}
}
if (skill.ConditionCheckerList.Any((ISkillConditionChecker f) => f is SkillConditionTurn) && (skill.ConditionCheckerList.First((ISkillConditionChecker f) => f is SkillConditionTurn) as SkillConditionTurn).judgeFlg)
{
return Data.SystemText.Get("BattleLog_0126");
}
if (skill.ConditionCheckerList.Any((ISkillConditionChecker s) => s is SkillConditionPlayCount))
{
SkillConditionPlayCount skillConditionPlayCount = (SkillConditionPlayCount)skill.ConditionCheckerList.First((ISkillConditionChecker s) => s is SkillConditionPlayCount);
return Data.SystemText.Get("BattleLog_0191", skillConditionPlayCount.GetCount().ToString(), _GetSpecificCard(skill, isBuffText: true, isTarget: false));
}
if (skill.PreprocessList.Any((SkillPreprocessBase p) => p is SkillPreprocessTimesPerTurn && (p as SkillPreprocessTimesPerTurn).GetLimitCount() == 1))
{
return Data.SystemText.Get("BattleLog_0196");
}
return "";
}
protected static string _CombineSkillCondition(SkillBase skill, string condition)
{
if (skill.PreprocessList.Any((SkillPreprocessBase p) => p is SkillPreprocessDestroyTribe && (p as SkillPreprocessDestroyTribe).IsWhiteRitual))
{
return Data.SystemText.Get("BattleLog_0178", condition);
}
SkillVariableComareFilter skillVariableComareFilter = skill.ConditionFilterCollection.VariableCompareFilter.FirstOrDefault((SkillVariableComareFilter f) => f.Lhs == "{me.inplay.class.turn}");
if (skillVariableComareFilter != null)
{
int num = int.Parse(skillVariableComareFilter.Rhs);
return Data.SystemText.Get("BattleLog_0150", num.ToString(), condition);
}
return condition;
}
protected static string _GetSkillCondition(SkillBase skill, bool isBuffText)
{
if (skill.ConditionCheckerList.Any((ISkillConditionChecker a) => a is SkillConditionTurn && (a as SkillConditionTurn).judgeFlg))
{
return "";
}
if (skill.ConditionCardFilterList.Any((ISkillCardFilter s) => s is SkillAllCardFilter || s is SkillUnitFilter || s is SkillClassFilter || s is SkillFieldFilter || s is SkillChantFieldFilter || s is SkillNotChantFieldFilter || s is SkillSpellFilter || s is SkillUnitAndClassFilter || s is SkillUnitAndAllFieldFilter || s is SkillSpellAndFieldFilter) && !skill.ConditionFilterCollection.VariableCompareFilter.Any((SkillVariableComareFilter f) => !f.Lhs.Contains("played_card") && !f.Lhs.Contains("me.inplay_self.count")) && !skill.PreprocessList.Any((SkillPreprocessBase p) => p is SkillPreprocessTimesPerTurn && (p as SkillPreprocessTimesPerTurn).GetLimitCount() == 1) && !skill.ConditionCheckerList.Any((ISkillConditionChecker f) => f is SkillConditionResonance || f is SkillConditionHalfLife || f is SkillConditionTurn || f is SkillPreprocessDestroyTribe || f is SkillConditionPlayCount))
{
return "";
}
if (isBuffText)
{
return _CombineSkillCondition(skill, _GetSkillDetailCondition(skill));
}
return Data.SystemText.Get("BattleLog_0113");
}
public static string _ConvertSkillConditionCharacter(string character)
{
if (!SkillFilterCreator.PLAYER_FILTER_NAMES.Contains(character))
{
return "";
}
return SkillFilterCreator.Str2ContentKeyword(character) switch
{
SkillFilterCreator.ContentKeyword.me => Data.SystemText.Get("BattleLog_0218"),
SkillFilterCreator.ContentKeyword.op => Data.SystemText.Get("BattleLog_0219"),
SkillFilterCreator.ContentKeyword.both => Data.SystemText.Get("BattleLog_0208"),
_ => "",
};
}
protected static string _ConvertSkillConditionTarget(string target)
{
if (!SkillFilterCreator.PLAYER_TARGET_FILTER_NAMES.Contains(target))
{
return "";
}
return SkillFilterCreator.Str2ContentKeyword(target) switch
{
SkillFilterCreator.ContentKeyword.inplay => Data.SystemText.Get("BattleLog_0205"),
SkillFilterCreator.ContentKeyword.hand => Data.SystemText.Get("BattleLog_0206"),
SkillFilterCreator.ContentKeyword.deck => Data.SystemText.Get("BattleLog_0207"),
_ => "",
};
}
protected static string _ConvertSkillConditionCardType(string cardType)
{
if (!SkillFilterCreator.CARD_TYPE_FILTER_NAMES.Contains(cardType))
{
return "";
}
return SkillFilterCreator.Str2ContentKeyword(cardType) switch
{
SkillFilterCreator.ContentKeyword.unit => Data.SystemText.Get("BattleLog_0172"),
SkillFilterCreator.ContentKeyword.spell => Data.SystemText.Get("BattleLog_0173"),
SkillFilterCreator.ContentKeyword.field => Data.SystemText.Get("BattleLog_0175"),
SkillFilterCreator.ContentKeyword.chant_field => Data.SystemText.Get("BattleLog_0176"),
_ => "",
};
}
protected static string _GetSkillOptionDamage(SkillBase skill)
{
return Mathf.Max(0, skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.damage, 0)).ToString();
}
protected static string _GetSkillOptionAddDamage(SkillBase skill)
{
int b = skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.add_damage, 0);
return Mathf.Max(0, b).ToString();
}
protected static string _GetSkillOptionDamageCut(SkillBase skill)
{
int b = skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.cut_amount, 0);
return Mathf.Max(0, b).ToString();
}
protected static int _GetSkillOptionDamageClipping(SkillBase skill)
{
return skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.cut_clipping, int.MaxValue);
}
protected static string _GetSkillOptionHealing(SkillBase skill)
{
int b = skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.healing, 0);
return Mathf.Max(0, b).ToString();
}
protected static string _GetSkillOptionAddPp(SkillBase skill)
{
int b = skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.add_pp, 0);
return Mathf.Max(0, b).ToString();
}
protected static string _GetSkillOptionAddOffense(SkillBase skill)
{
return skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.add_offense, 0).ToString();
}
protected static string _GetSkillOptionAddLife(SkillBase skill)
{
return skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.add_life, 0).ToString();
}
protected static string _GetSkillOptionMultiplyOffense(SkillBase skill)
{
return skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.multiply_offense, 1).ToString();
}
protected static string _GetSkillOptionMultiplyLife(SkillBase skill)
{
return skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.multiply_life, 1).ToString();
}
protected static int _GetSkillOptionLifeLowerLimit(SkillBase skill)
{
return skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.life_lower_limit, 0);
}
protected static string _GetSkillCallCount(SkillBase skill)
{
int callCount = skill.CallCount;
if (callCount >= 2)
{
return Data.SystemText.Get("BattleLog_0114", callCount.ToString());
}
return "";
}
protected static string _GetSkillOptionAddEp(SkillBase skill)
{
int b = skill.OptionValue.GetInt(SkillFilterCreator.ContentKeyword.add_ep, 0);
return Mathf.Max(0, b).ToString();
}
}