画布 1
AI系统
  全局导演AI
    整局游戏难度管控
  首领AI
    单局游戏实时难度管控
    职能
      收集信息
        引用的首领AI
        当前波次刷了哪些怪物（怪物ID）
          怪物类型（可多选）
            近战怪
            远程怪
            其他
          怪物属性
      职能分配
        同一个怪理论上可以拥有多种类型的行为树
        保证刷出来的这组怪，职能类型比例是符合预期（配置）的
        x个近战，y个远程，其余全部为观战者，找怪物组中符合要求的怪进行分配
        额外配置
          实时监测
            条件
              怪物死亡
              指定怪物死亡（比如boss）
            行为
              填补符合条件的观战者进近战怪/远程怪
              所有怪物死亡（boss死了，小弟全死）
      权限管控
        同时攻击人数
          同一时间，只允许1~N个人进行攻击
          越难的关卡，N越大
        攻击频率
          两波技能释放的间隔
        攻击周期
          攻击次数分配周期
        攻击次数
          单个周期内可分配的技能释放次数
        出手目标
          谁来进行出手
          饥饿值
            饥饿值算法
              初始饥饿值
              每秒饥饿值增量
                所有的都是可配置的
                近战倾向高
                远程倾向中
                观战者倾向低
                其他...
              当饥饿值达到A值时，目标获得技能释放机会
              释放完毕后扣除目标所有饥饿值
              出手转移
                当拥有出手权的目标，x秒内未成功释放技能，则取消其出手权，同时扣除目标所有饥饿值
          基于饥饿值的其他行为拓展
            比如某个怪受击后，饥饿值直接拉满
          行为内部拓展
            比如个体AI的某个技能释放条件是某个其他怪的某个技能的释放
              会扣除单个周期的攻击次数
            单个个体AI的技能连招，后续技能的释放条件是前置技能的释放
              不扣次数
        可以理解为：攻击次数是饭，越饿的人饥饿值越高，分到饭的概率就越高。每次间隔都会放N次饭，分完为止
        执行步骤
          1.发放攻击次数
          2.持续监测饥饿值，根据饥饿值发放技能释放次数
          3.将所有攻击者进行排列，谁饥饿值高，将释放次数给谁，并扣除首领AI拥有的攻击次数；若存在相同饥饿值，距离目标越近的派给优先级越高
          4.持续发饭
          5.饭发完了，开始进入攻击周期间隔，等待下次发饭
  个体AI（非BOSS）
    阵营
      领导者
        白旗
          对谁都好
      玩家
        红旗
          对打
      怪物
        蓝旗
          对打
      召唤物
        谁招的就是什么旗
      NPC
        黄旗
          谁打他，他打谁
    行为
      移动层
        非技能释放状态下的行为（徘徊）
          保持与玩家距离(m)
            近战怪x
            远程怪y
            观战怪z
          基础移动
            判断有没有到需要保持的距离
              是
                向下执行
              否
                筛选未CD的位移技能释放，并朝玩家方向移动
                  重新判断距离
          徘徊移动
            随机释放徘徊移动技能
              做八个方向的徘徊移动技能
              待机
              九个指令按间隔随机释放
      技能层
        拥有技能释放权限
        技能类型
          攻击技能
            受饭管控
          位移技能
            没有攻击判定的纯位移技能
              强制位移
              ...
          监听技能
            不受饭管控，一但满足条件即可概率释放
              召唤
              回血
              闪避
              反击
              ...
            这里解释一下为什么没有吧这类技能用饥饿值来管理：提升整体怪物的难度，应该更多体现在怪物攻击频率上，让玩家需要以更强的能力控制怪物行动，而不是让玩家摸不到怪物，不过这里的概率也可以根据实际情况，根据难度进行微调
          徘徊技能
            八个方向的徘徊
        技能优先级
          技能释放排序使用
        满足技能释放条件
          条件
            释放距离
            玩家状态
              ...
              ...
            自身状态
              ...
              ...
            技能释放权重
              同优先级的技能，按权重计算概率进行释放
          内置CD
        技能释放次数
          定义怪物某个技能的总释放次数
          在怪物的生命周期内，某个技能只能释放N次
        释放概率
          监听技能使用
          当监听到玩家/其他怪物某些行为时，释放某监听技能的概率
      攻击逻辑
        攻击权限（有没有饭）
          有
            是否有未CD的符合当前条件的技能
              有
                罗列所有技能，优先级排序
              无
                罗列所有可释放技能，寻找位移技能
                  有
                    朝目标点位置释放位移技能
                      直到到达目标地点
                        释放技能
                  无
                    朝目标点位移
                      直到到达目标位置，释放技能
                        每1秒检测一次
          无
            不进入
        监听技能
          筛选所有未处于CD的监听技能，根据监听的条件概率触发