所有的“索敌”都始于选择器(Selector)这一大类的东西。
根据运用方式不同,“是否有可选攻击目标”之类的被称为触发选择器,“一个弹道是否能选某个目标”之类的被选为能力选择器
明日方舟中绝大部分选择目标、选择地块、选择单位的行为均由选择器控制,包括干员是否会进入攻击状态、溅射效果是否可以选取某个目标、天赋是否能给予某个干员Buff、技能召唤的召唤物部署在哪个地快上等。

选择器的种类

为方便各类效果与机制的实现,明日方舟存在多种选择器,已知的包括:

  • 自我选择器(SelfSelector)选择自己的选择器,没有什么额外参数。
  • 地块选择器(TileSelector)选择某一地块的选择器,通常包括地块过滤器、需要可通行与否、需要可部署与否、限定位置等参数。
  • 所在地块选择器(RootTileSelector)选择自己这一地块(或称所在格)的选择器,没有地块选择器那么多参数。
  • 进阶选择器(AdvancedSelector)(及其变体)是最常用的选择器,通常包含仇恨过滤器、阵营(通常与发起者相同)、各类无可选性效果的无视与否、无视迷彩与否、是否是治疗行为等参数。已知的变体包括:
    • 阻挡+进阶选择器(BlockedOrAdvancedSelector)是在过滤器处理之外,会将自己阻挡的目标按顺序添加进列表最前的选择器,适用于各类“优先选择自己阻挡的目标”。
    • 标签BUFF+选择器(AdvancedSelectorWithTagAndBuffKey)
    • 异常效果+选择器(AdvancedSelectorWithAbnormalFlag),有关异常效果的内容请见异常效果
    • AdvancedSelectorWithinHpRatio
    • AdvancedSelectorWithTagAndBuffKeyIgnoredHitRange
    • AdvancedSelectorWithHostOrTokenRange
    • AdvancedSelectorWithTagAndBuffWithinHpRatio
    • 带阵营过滤器的进阶选择器(AdvancedSelectorWithValidatorFilter),顾名思义,有关阵营过滤器的内容请见#阵营过滤器
    • 带二次过滤器的进阶选择器(SecondaryFilterAdvancedSelector),顾名思义,有关二次过滤器的内容请见#二次过滤器
  • ParallelGroupSelector

进阶选择器的筛选参数

阵营

此处指的阵营与干员的势力阵营无关。

行动类型、类别

选择器可以限定目标的行动类型与类别,但这两项仅为敌人所有,对于干员、召唤物、装置等单位而言这两个筛选参数毫无意义。
行动类型参数可以是任意仅地面行动仅飞行行动。没有此类参数的对象默认会被视为地面单位。
而类别参数可以是任意萨卡兹机械等,由敌方情报决定(待补充)。

限制目标数、最大目标数

选择器可以被定义限制目标数与否,以及限定的话,最多能选择多少目标。
在限制目标数参数为假的情况下(即不限制目标数的话),最多能被选中的目标数为256个(待补充)。
反之,最多能被选中的目标数为选择器内被定义的最大目标数。
绝大部分选择“单个目标”的选择器都是依靠限制目标数参数+最大目标数设置为1实现的。
注意,这不是“选择器的列表大小”,目标数的处理是在仇恨过滤器之后,用于筛出合适数量的目标所用的。

无视迷彩

通常选择器会在初始化过程中,根据选择器的各种情况自行判断并为自己添加“无视迷彩”或“强制无视迷彩”

  • 所有触发选择器通常不无视迷彩。
    • 即使旗下的能力选择器可以无视迷彩,单位也不会选择迷彩单位发动攻击。
  • 不具有弹道的能力选择器在会根据对应能力(ability)检查是否可以无视迷彩:
    • 能力攻击类型(attackType)溅射(Splash),则本选择器改为“无视迷彩”(也即非弹道类型的溅射攻击会自动无视迷彩)。
    • 能力useDynamicAttackType参数为真,则本选择器改为“无视迷彩”。
  • 具有弹道的能力选择器只根据其独立参数(待补充)决定是否“无视迷彩”。
  • 此外,所有选择器还有一个选项可以控制本选择器是否“强制无视迷彩”

可选判定(敌对)

(待重置)

迷彩判定

若目标的掩码中包含迷彩异常效果: 迷彩
无法被敌对方的部分能力和部分弹道选中;会因反隐(隐匿免疫)而失效
※由特殊逻辑实现,不属于“无法选择”效果。
※迷彩与“阻挡时解除”没有直接关系,该机制通常由其他效果实现
,选择器会在处理完可选性后(若需要)再进行一次迷彩判定:

  • 若本选择器“无视迷彩”或“强制无视迷彩”,可选中
  • 检查目标是否具有隐匿免疫异常效果: 隐匿
    无法被敌对阵营选中(属于无法选择类效果)
    ※隐匿与“阻挡时解除”没有直接关系,该机制通常由其他效果实现
    隐匿免疫: 使自身的隐匿失效,但不会清除相关BUFF
    此外,隐匿免疫同样会使自身的迷彩失效
    (即反隐),若有则可选中
  • 若仍未被判定为可选中,若选择器的阵营与目标为敌对关系,则不可选中

迷彩不属于“无法选择”效果,因此即使选择器“无视无法选择”,也可能受迷彩制约。

索敌冷却

(待补充)

仇恨过滤器

仇恨过滤器是一整套对选择器中候选单位进行排序的系统,其排序规则大体上基于干员与敌人的仇恨值,不过也有大量不使用仇恨值的排序规则。
进阶选择器中会将已经过可选性筛选的目标列表传递给仇恨过滤器,过滤器进行常规筛选与排序后返还给选择器——通常,列表最前的若干个目标会被选为此次选择器的对象。
详见仇恨#仇恨过滤器

阵营过滤器

(待补充)

二次过滤器

有些干员与敌人在其索敌方式之外,可能还会使用到二次过滤器(secondaryFilter)
应用二次过滤器时,会在已应用完仇恨过滤器后,从头开始检查列表中的每个单位是否符合过滤条件(例如检查是否为飞行单位),若单位满足条件,则列表中将其与最前一个不满足条件的单位进行互换(而非排序)

ID 名称  解释 范例
0 FLY_FIRST 飞行单位优先 速射手特性
1 RANGED_APPLYWAY_FIRST “图鉴中【攻击方式】包含远程”者优先 安德切尔
2 SPECIFIED_FILTER_TAG 拥有指定tag者优先(以filterTag变量填写对应的tag为准) 格劳克斯
3 SPECIFIED_BUFF 拥有指定Buff者优先(以BuffKey为准) 泥岩小队掷能者
4 SPECIFIED_BUFF_PAIR_OR 拥有复数指定BuffKey的Buff的单位优先(以BuffKey为准)
5 MELEE_APPLYWAY_FIRST