平衡改动：
毕宿五 子机武器从离子脉冲改为离子脉冲(战机) 弹道散布更小 颜色改为红色
毕宿 热脉冲替换为过稳定爆裂脉冲 专属弹迹与音效
血色诛戮 新增特效：命中船体/装甲时根据敌方结构完整度增加伤害 结构值越高 伤害越高
		射程提高100su

视觉更新：
测试关卡：封面更改
冷凝回响脉冲 描述贴图更改
诛戮 增加命中光效
命定 重置音效 增加命中光效 激光加宽
血色诛戮 增加描述贴图 增加发射光效 增加命中光效 弹体加宽




内容类：
→毕宿的主动系统 (现在是毕宿五同款 想做成非时流的技能)
→毕宿五的新轴炮 步枪形态
→会变形的角宿一

平衡类：
→虚宿二 内置武器的负面效果 (奥创？)

贴图类：
三红的武器贴图会乱飞
虚宿一的贴图向虚宿二风格化

不知道怎么实现类：
→想一个黑色系列舰船的核心机制
→毕宿和毕宿五的主炮开火特效(例如让毕宿开火后轴炮/舰体喷气)
→引擎特效(用装饰武器给引擎上光环)
→护盾特效(想在主动技能+护盾开启时展示暗淡的星光特效)

//战术系统部分
    @Override
    public void apply(MutableShipStatsAPI stats, String id, State state, float effectLevel) {
        stats.getEntity().setCustomData("XXX战术系统变形进度", effectLevel);

    }

    @Override
    public void unapply(MutableShipStatsAPI stats, String id) {
        stats.getEntity().setCustomData("XXX战术系统变形进度", 0);
    }

   //=========================模块AI部分==================
    final ShipAPI ship;//通过构造方法赋值
    String SlotID = "目标武器槽ID";
    WeaponSlotAPI targetSlot = null;
    boolean noSlot = false;

    /**
     * 这是模块ai的advance，用于模块式的变形，如果是武器的变形，写在EveryFrameEffect里面就行了
     * 这个版本只用于在两点之间直线运动，如果要折线运动，要通过对比武器槽id纪录多个武器槽作为路径点
     * @param amount
     */
    @Override
    public void advance(float amount) {

        float effectLevel = 0;
        if (noSlot || !ship.isAlive() || ship.getParentStation() == null) {
            return;
        }
        //0.96a以上版本不需要这个
        //     ship.setCustomData("checking", true);
        //
        if (ship.getParentStation().getCustomData() != null) {
            effectLevel = (float) ship.getParentStation().getCustomData().get("XXX战术系统变形进度");
        }
        if (targetSlot == null) {
            for (WeaponSlotAPI slot : ship.getParentStation().getHullSpec().getAllWeaponSlotsCopy()) {
                if (slot != null && slot.getId().equals(SlotID)) {
                    targetSlot = slot;
                    break;
                }
            }
            if (targetSlot == null) {
                noSlot = true;
                return;
            }
        }
        //根据effectLevel，将模块从原武器槽移动至目标武器槽，并且调整方向与目标武器槽一致
        //这只是最简单的匀速变化的写法，如果有其他需求需要自行调整
        Vector2f targetLoc = targetSlot.getLocation();
        Vector2f loc = ship.getStationSlot().getLocation();
        float x = (targetLoc.x - loc.x) * amount;
        float y = (targetLoc.y - loc.y) * amount;
        Vector2f offset = new Vector2f(loc.x+x, loc.y+y);
        //将武器槽坐标offset转化为实际位置
        VectorUtils.rotate(offset, ship.getParentStation().getFacing(), offset);
        Vector2f.add(offset, ship.getParentStation().getLocation(), offset);
        //
        ship.getLocation().set(offset);

        float facing = targetSlot.getAngle() + ship.getParentStation().getFacing();//这个值最好进行处理，适当地加减360度让它出于0-360的范围，或-180-180的范围，避免异常情况
        float facing2 = ship.getStationSlot().getAngle() + ship.getParentStation().getFacing();////这个值最好进行处理，适当地加减360度让它出于0-360的范围，或-180-180的范围，避免异常情况
        //facing = normalize(facing);//处理的代码就不写了，无非是大于360/180的时候减去360，小于-180/0的时候加上360
        //facing2 = normalize(facing2);//处理的代码就不写了，无非是大于360/180的时候减去360，小于-180/0的时候加上360
        float trueFacing = effectLevel * (facing - facing2) + facing2;
        ship.setFacing(facing2);
    }