using System.Collections.Generic; namespace Wizard; public class AIOtherBattleBonusRate : AIBonusArgumentWithIgnoreInBattle { private int ValueArgumentIndexOffset = 1; private int MinimumArgumentCount = 2; public List Filters { get; private set; } public AIOtherBattleBonusRate(string text) : base(text) { } protected override void InitExpressions(string text) { base.InitExpressions(text); if (_exprList.Count < MinimumArgumentCount) { return; } Filters = GetFilters(_exprList.GetRange(0, _exprList.Count - ValueArgumentIndexOffset)); int num = -1; for (int i = 0; i < Filters.Count; i++) { if (Filters[i].Type == AIScriptTokenType.ARG && ((AIScriptArgumentToken)Filters[i]).ArgumentType == AIScriptTokenArgType.NONE) { num = i; break; } } if (num != -1) { Filters = Filters.GetRange(0, num + 1); } } public float GetBonusValue(AIVirtualCard tagOwner, AIVirtualCard target, List allCandidates, AIVirtualField field, List playPtn, bool useIgnoreInBattle) { if (useIgnoreInBattle && base.IsIgnoreInBattle) { return 1f; } if (AIFilteringUtility.CheckMatchTargetFiltering(target, allCandidates, Filters, playPtn, tagOwner, null)) { return _bonusValueArg.EvalArg(tagOwner, playPtn, field); } return 1f; } }