text: 'use strict';
  
  // The Copied Factory
  // TODO: Tell people where to stand for Engels wall saws
  // TODO: Tell people where to stand for 9S overhead saws
  // TODO: Tell people where to go for 9S divebombs
  // TODO: Tell people where to go for 9S tethered tank
  
  [{
    zoneRegex: {
      en: /^The Copied Factory$/,
      cn: /^复制工厂废墟$/,
      ko: /^복제된 공장 폐허$/,
    },
    timelineFile: 'the_copied_factory.txt',
    timelineTriggers: [
      {
        id: 'Copied Flight Unit Lightfast',
        regex: /Lightfast Blade/,
        beforeSeconds: 15,
        infoText: function(data) {
          // The third lightfast blade comes very close to second,
          // so suppress its message.
          data.lightfastCount = (data.lightfastCount || 0) + 1;
          if (data.lightfastCount != 3)
            return;
          return {
            en: 'Be Near Boss',
            de: 'sei in der Nähe des Bosses',
            fr: 'Près du boss',
            cn: '靠近Boss',
            ko: '보스 근처로',
          };
        },
      },
      {
        id: 'Copied Engels Demolish Structure',
        regex: /Demolish Structure/,
        beforeSeconds: 15,
        infoText: {
          en: 'Move to South Edge',
          de: 'zur südlichen Kante',
          fr: 'Allez au Sud',
          cn: '前往南侧边缘',
          ko: '남쪽으로',
        },
      },
    ],
    triggers: [
      {
        id: 'Copied Serial Forceful Impact',
        regex: Regexes.startsUsing({ id: '48CF', source: 'Serial-Jointed Command Model', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48CF', source: '多关节型：司令机', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48CF', source: 'Befehlsmodell Mit Omnigelenk', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48CF', source: 'Modèle Multiarticulé : Commandant', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48CF', source: '多関節型：司令機', capture: false }),
        condition: function(data) {
          return data.role == 'tank' || data.role == 'healer' || data.CanAddle();
        },
        response: Responses.aoe(),
      },
      {
        id: 'Copied Serial Energy Assault',
        regex: Regexes.startsUsing({ id: '48B5', source: 'Serial-Jointed Command Model', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48B5', source: '多关节型：司令机', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48B5', source: 'Befehlsmodell Mit Omnigelenk', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48B5', source: 'Modèle Multiarticulé : Commandant', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48B5', source: '多関節型：司令機', capture: false }),
        alertText: {
          en: 'Get Behind',
          de: 'Hinter Ihn',
          fr: 'Derrière le boss',
          cn: '背面',
          ko: '보스 앞 피하기',
        },
      },
      {
        id: 'Copied Serial High-Caliber Laser',
        regex: Regexes.startsUsing({ id: '48FA', source: 'Serial-Jointed Service Model', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48FA', source: '多关节型：士兵机', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48FA', source: 'Modell Mit Omnigelenk', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48FA', source: 'Modèle Multiarticulé : Soldat', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48FA', source: '多関節型：兵隊機', capture: false }),
        suppressSeconds: 15,
        infoText: {
          en: 'Look for Lasers',
          de: 'Pass auf die Laser auf',
          fr: 'Attention aux lasers',
          cn: '小心激光',
          ko: '레이저 확인',
        },
      },
      {
        id: 'Copied Serial Clanging Blow',
        regex: Regexes.startsUsing({ id: '48CE', source: 'Serial-Jointed Command Model' }),
        regexCn: Regexes.startsUsing({ id: '48CE', source: '多关节型：司令机' }),
        regexDe: Regexes.startsUsing({ id: '48CE', source: 'Befehlsmodell Mit Omnigelenk' }),
        regexFr: Regexes.startsUsing({ id: '48CE', source: 'Modèle Multiarticulé : Commandant' }),
        regexJa: Regexes.startsUsing({ id: '48CE', source: '多関節型：司令機' }),
        response: Responses.tankBuster(),
      },
      {
        id: 'Copied Serial Centrifugal Spin',
        regex: Regexes.startsUsing({ id: '48C8', source: 'Serial-Jointed Command Model', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48C8', source: '多关节型：司令机', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48C8', source: 'Befehlsmodell Mit Omnigelenk', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48C8', source: 'Modèle Multiarticulé : Commandant', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48C8', source: '多関節型：司令機', capture: false }),
        alertText: {
          en: 'Go To Sides',
          de: 'Geh zu den Seiten',
          fr: 'Sur les côtés',
          cn: '两侧躲避',
          ko: '양옆으로 이동',
        },
      },
      {
        id: 'Copied Serial Sidestriking Spin',
        regex: Regexes.startsUsing({ id: '48CA', source: 'Serial-Jointed Command Model', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48CA', source: '多关节型：司令机', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48CA', source: 'Befehlsmodell Mit Omnigelenk', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48CA', source: 'Modèle Multiarticulé : Commandant', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48CA', source: '多関節型：司令機', capture: false }),
        alertText: {
          en: 'Go Front/Back',
          de: 'Geh nach Vorne/ Hinten',
          fr: 'Devant/Derrière',
          cn: '去前/后',
          ko: '양옆 피하기',
        },
      },
      {
        id: 'Copied Serial Shockwave',
        regex: Regexes.startsUsing({ id: '48C3', source: 'Serial-Jointed Command Model', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48C3', source: '多关节型：司令机', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48C3', source: 'Befehlsmodell Mit Omnigelenk', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48C3', source: 'Modèle Multiarticulé : Commandant', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48C3', source: '多関節型：司令機', capture: false }),
        response: Responses.knockback(),
      },
      {
        id: 'Copied Hobbes Laser-Resistance Test',
        regex: Regexes.startsUsing({ id: '4805', source: 'Hobbes', capture: false }),
        regexCn: Regexes.startsUsing({ id: '4805', source: '霍布斯', capture: false }),
        regexDe: Regexes.startsUsing({ id: '4805', source: 'Hobbes', capture: false }),
        regexFr: Regexes.startsUsing({ id: '4805', source: 'Hobbes', capture: false }),
        regexJa: Regexes.startsUsing({ id: '4805', source: 'ホッブス', capture: false }),
        condition: function(data) {
          return data.role == 'tank' || data.role == 'healer' || data.CanAddle();
        },
        response: Responses.aoe(),
      },
      {
        id: 'Copied Hobbes Right Arm',
        regex: Regexes.message({ line: 'The wall-mounted right arm begins to move\.\.\.', capture: false }),
        regexCn: Regexes.message({ line: '墙面的右臂开始运作……', capture: false }),
        regexDe: Regexes.message({ line: 'Der wandmontierte rechte Arm ist aktiv!', capture: false }),
        regexFr: Regexes.message({ line: 'Le bras mural droit s\'active!', capture: false }),
        regexJa: Regexes.message({ line: '壁面のライトアームが稼働を始めた……！', capture: false }),
        run: function(data) {
          data.alliance = data.alliance || 'A';
        },
        infoText: {
          en: 'Dodge Moving Circle',
          de: 'Bewegenden Kreisen ausweichen',
          fr: 'Evitez les cercles mouvants',
          cn: '躲避移动圆圈',
          ko: '시계방향 회전하면서 나오는 장판 피하기',
        },
      },
      {
        id: 'Copied Hobbes Flamethrowers',
        regex: Regexes.message({ line: 'The wall-mounted flamethrowers activate\.', capture: false }),
        regexCn: Regexes.message({ line: '墙面的火炎放射器开始运作……', capture: false }),
        regexDe: Regexes.message({ line: 'Die wandmontierten Flammenwerfer sind aktiv!', capture: false }),
        regexFr: Regexes.message({ line: 'Les lance-flammes muraux s\'activent!', capture: false }),
        regexJa: Regexes.message({ line: '壁面の火炎放射器が稼働を始めた……！', capture: false }),
        run: function(data) {
          data.alliance = data.alliance || 'B';
        },
        alertText: {
          en: 'Look Behind For Flamethrowers',
          de: 'Flammenwerfer hinter dir',
          fr: 'Regardez derrière (lance-flammes)',
          cn: '观察后方放火',
          ko: '뒤에서 불 나오는 곳 확인',
        },
      },
      {
        id: 'Copied Hobbes Left Arm 1',
        regex: Regexes.message({ line: 'The wall-mounted left arm begins to move\.\.\.', capture: false }),
        regexCn: Regexes.message({ line: '墙面的左臂开始运作……', capture: false }),
        regexDe: Regexes.message({ line: 'Der wandmontierte linke Arm ist aktiv!', capture: false }),
        regexFr: Regexes.message({ line: 'Le bras mural gauche s\'active!', capture: false }),
        regexJa: Regexes.message({ line: '壁面のレフトアームが稼働を始めた……！', capture: false }),
        durationSeconds: 6,
        run: function(data) {
          data.alliance = data.alliance || 'C';
        },
        infoText: {
          en: 'Out',
          de: 'Raus',
          fr: 'Dehors',
          cn: '远离',
          ko: '외곽으로',
        },
      },
      {
        id: 'Copied Hobbes Left Arm 2',
        regex: Regexes.message({ line: 'The wall-mounted left arm begins to move\.\.\.', capture: false }),
        regexCn: Regexes.message({ line: '墙面的左臂开始运作……', capture: false }),
        regexDe: Regexes.message({ line: 'Der wandmontierte linke Arm ist aktiv!', capture: false }),
        regexFr: Regexes.message({ line: 'Le bras mural gauche s\'active!', capture: false }),
        regexJa: Regexes.message({ line: '壁面のレフトアームが稼働を始めた……！', capture: false }),
        delaySeconds: 8,
        alertText: {
          en: 'Dodge Falling Walls',
          de: 'Den fallenden Wände asuweichen',
          fr: 'Eviter les murs tombants',
          cn: '躲避倒塌墙壁',
          ko: '넘어지는 벽 피하기',
        },
      },
      {
        id: 'Copied Hobbes Left Arm 3',
        regex: Regexes.message({ line: 'The wall-mounted left arm begins to move\.\.\.', capture: false }),
        regexCn: Regexes.message({ line: '墙面的左臂开始运作……', capture: false }),
        regexDe: Regexes.message({ line: 'Der wandmontierte linke Arm ist aktiv!', capture: false }),
        regexFr: Regexes.message({ line: 'Le bras mural gauche s\'active!', capture: false }),
        regexJa: Regexes.message({ line: '壁面のレフトアームが稼働を始めた……！', capture: false }),
        delaySeconds: 10,
        alertText: {
          en: 'Spread Tethers',
          de: 'Verbindungen Verteilen',
          fr: 'Ecartez les liens',
          cn: '散开扯断连线',
          ko: '산개 선 (탱 혼자도 가능)',
        },
      },
      {
        id: 'Copied Hobbes Short Missile',
        regex: Regexes.headMarker({ id: '00C4' }),
        condition: function(data, matches) {
          return data.me == matches.target;
        },
        response: Responses.spread('alert'),
      },
      {
        id: 'Copied Hobbes Laser Sight',
        regex: Regexes.startsUsing({ id: '4807', source: 'Hobbes', capture: false }),
        regexCn: Regexes.startsUsing({ id: '4807', source: '霍布斯', capture: false }),
        regexDe: Regexes.startsUsing({ id: '4807', source: 'Hobbes', capture: false }),
        regexFr: Regexes.startsUsing({ id: '4807', source: 'Hobbes', capture: false }),
        regexJa: Regexes.startsUsing({ id: '4807', source: 'ホッブス', capture: false }),
        response: Responses.stack(),
      },
      {
        id: 'Copied Hobbes Electric Floor',
        regex: Regexes.message({ line: 'You hear frenzied movement from machines beneath\.\.\.', capture: false }),
        regexCn: Regexes.message({ line: '地板下的机械生物动作很可疑……', capture: false }),
        regexDe: Regexes.message({ line: 'Die Maschinenwesen zu deinen Füßen bewegen sich!', capture: false }),
        regexFr: Regexes.message({ line: 'Les formes de vie mécaniques sous vos pieds s\'activent!', capture: false }),
        regexJa: Regexes.message({ line: '床下の機械生命体が怪しく動き始めた……！', capture: false }),
        suppressSeconds: 15,
        durationSeconds: 10,
        infoText: {
          en: 'Dodge Electric Floor',
          de: 'Elektrischem Boden ausweichen',
          fr: 'Evitez le sol électrifié',
          cn: '躲避带电地板',
          ko: '바닥 장판 피하기',
        },
      },
      {
        id: 'Copied Hobbes Conveyer Belts',
        regex: Regexes.message({ line: 'The conveyer belts whirr to life!', capture: false }),
        regexCn: Regexes.message({ line: '地面上的滚轴开始运作……', capture: false }),
        regexDe: Regexes.message({ line: 'Die Fließbänder sind aktiv!', capture: false }),
        regexFr: Regexes.message({ line: 'Le tapis roulant s\'est mis en branle!', capture: false }),
        regexJa: Regexes.message({ line: '床面のローラーコンベアが稼働を始めた……！', capture: false }),
        infoText: {
          en: 'Conveyor Belts',
          de: 'Förderbänder',
          fr: 'Tapis roulant',
          cn: '输送带',
          ko: '컨베이어 벨트',
        },
      },
      {
        id: 'Copied Hobbes Oil 1',
        regex: Regexes.message({ line: 'Flammable oil is leaking from the floor\.\.\.', capture: false }),
        regexCn: Regexes.message({ line: '地板下开始充满可燃性液体……', capture: false }),
        regexDe: Regexes.message({ line: 'Zu deinen Füßen wird brennbare Flüssigkeit eingelassen!', capture: false }),
        regexFr: Regexes.message({ line: 'Le sol s\'imbibe de liquide inflammable!', capture: false }),
        regexJa: Regexes.message({ line: '床下に可燃性の液体が満ち始めた……！', capture: false }),
        suppressSeconds: 15,
        durationSeconds: 3,
        alertText: {
          en: 'Oil Vats',
          de: 'Ölbehälter',
          fr: 'Cuves à huile',
          cn: '油桶',
          ko: '뚫린 바닥 피하기',
        },
      },
      {
        id: 'Copied Hobbes Oil 2',
        regex: Regexes.message({ line: 'Flammable oil is leaking from the floor\.\.\.', capture: false }),
        regexCn: Regexes.message({ line: '地板下开始充满可燃性液体……', capture: false }),
        regexDe: Regexes.message({ line: 'Zu deinen Füßen wird brennbare Flüssigkeit eingelassen!', capture: false }),
        regexFr: Regexes.message({ line: 'Le sol s\'imbibe de liquide inflammable!', capture: false }),
        regexJa: Regexes.message({ line: '床下に可燃性の液体が満ち始めた……！', capture: false }),
        suppressSeconds: 15,
        delaySeconds: 6,
        durationSeconds: 3,
        alertText: {
          en: 'Oil Vats',
          de: 'Ölbehälter',
          fr: 'Cuves à huile',
          cn: '油桶',
          ko: '뚫린 바닥 피하기',
        },
      },
      {
        id: 'Copied Goliath Tank Exploder',
        regex: Regexes.tether({ id: '0011', source: 'Medium Exploder' }),
        regexCn: Regexes.tether({ id: '0011', source: '中型自爆' }),
        regexDe: Regexes.tether({ id: '0011', source: 'Mittelgroß(?:e|er|es|en) Selbstzerstörung' }),
        regexFr: Regexes.tether({ id: '0011', source: 'Unité Kamikaze Moyenne' }),
        regexJa: Regexes.tether({ id: '0011', source: '中型自爆' }),
        condition: function(data, matches) {
          return data.me == matches.target;
        },
        alertText: {
          en: 'Exploder on YOU',
          de: 'Explosion auf DIR',
          fr: 'Explosion sur VOUS',
          cn: '自爆点名',
          ko: '폭발 징',
        },
      },
      {
        id: 'Copied Flight Unit 360 Bombing Manuever',
        regex: Regexes.startsUsing({ id: '4941', source: 'Flight Unit', capture: false }),
        regexCn: Regexes.startsUsing({ id: '4941', source: '飞行装置', capture: false }),
        regexDe: Regexes.startsUsing({ id: '4941', source: 'Flugeinheit', capture: false }),
        regexFr: Regexes.startsUsing({ id: '4941', source: 'Module De Vol', capture: false }),
        regexJa: Regexes.startsUsing({ id: '4941', source: '飛行ユニット', capture: false }),
        condition: function(data) {
          return data.role == 'tank' || data.role == 'healer' || data.CanAddle();
        },
        response: Responses.aoe(),
      },
      {
        id: 'Copied Flight Unit Ballistic Impact',
        regex: Regexes.headMarker({ id: '0017' }),
        condition: function(data, matches) {
          return data.me == matches.target;
        },
        response: Responses.spread('alert'),
      },
      {
        id: 'Copied Engels Marx Smash Right',
        regex: Regexes.startsUsing({ id: '4727', source: 'Engels', capture: false }),
        regexCn: Regexes.startsUsing({ id: '4727', source: '昂格士', capture: false }),
        regexDe: Regexes.startsUsing({ id: '4727', source: 'Engels', capture: false }),
        regexFr: Regexes.startsUsing({ id: '4727', source: 'Engels', capture: false }),
        regexJa: Regexes.startsUsing({ id: '4727', source: 'エンゲルス', capture: false }),
        alertText: {
          en: 'Right',
          de: 'Rechts',
          fr: 'Droite',
          cn: '右',
          ko: '오른쪽으로',
        },
      },
      {
        id: 'Copied Engels Marx Smash Left',
        regex: Regexes.startsUsing({ id: '4726', source: 'Engels', capture: false }),
        regexCn: Regexes.startsUsing({ id: '4726', source: '昂格士', capture: false }),
        regexDe: Regexes.startsUsing({ id: '4726', source: 'Engels', capture: false }),
        regexFr: Regexes.startsUsing({ id: '4726', source: 'Engels', capture: false }),
        regexJa: Regexes.startsUsing({ id: '4726', source: 'エンゲルス', capture: false }),
        alertText: {
          en: 'Left',
          de: 'Links',
          fr: 'Gauche',
          cn: '左',
          ko: '왼쪽으로',
        },
      },
      {
        id: 'Copied Engels Marx Smash Forward',
        regex: Regexes.startsUsing({ id: '472E', source: 'Engels', capture: false }),
        regexCn: Regexes.startsUsing({ id: '472E', source: '昂格士', capture: false }),
        regexDe: Regexes.startsUsing({ id: '472E', source: 'Engels', capture: false }),
        regexFr: Regexes.startsUsing({ id: '472E', source: 'Engels', capture: false }),
        regexJa: Regexes.startsUsing({ id: '472E', source: 'エンゲルス', capture: false }),
        alertText: {
          en: 'Front and Center',
          de: 'Vorne und Mitte',
          fr: 'Devant et au centre',
          cn: '前方中间',
          ko: '앞으로 => 중앙으로',
        },
      },
      {
        id: 'Copied Engels Marx Smash Back',
        regex: Regexes.startsUsing({ id: '472A', source: 'Engels', capture: false }),
        regexCn: Regexes.startsUsing({ id: '472A', source: '昂格士', capture: false }),
        regexDe: Regexes.startsUsing({ id: '472A', source: 'Engels', capture: false }),
        regexFr: Regexes.startsUsing({ id: '472A', source: 'Engels', capture: false }),
        regexJa: Regexes.startsUsing({ id: '472A', source: 'エンゲルス', capture: false }),
        alertText: {
          en: 'Back and Sides',
          de: 'Hinten und Seiten',
          fr: 'Arrière et côtés',
          cn: '后方两侧',
          ko: '뒤로 => 양옆으로',
        },
      },
      {
        id: 'Copied Engels Marx Crush',
        regex: Regexes.startsUsing({ id: '4746', source: 'Engels', capture: false }),
        regexCn: Regexes.startsUsing({ id: '4746', source: '昂格士', capture: false }),
        regexDe: Regexes.startsUsing({ id: '4746', source: 'Engels', capture: false }),
        regexFr: Regexes.startsUsing({ id: '4746', source: 'Engels', capture: false }),
        regexJa: Regexes.startsUsing({ id: '4746', source: 'エンゲルス', capture: false }),
        infoText: {
          en: 'Kill Claws',
          de: 'Klauen töten',
          fr: 'Tuez les pinces',
          cn: '杀掉爪子',
          ko: '양옆 톱 처리',
        },
      },
      {
        id: 'Copied Engels Precision Guided Missile',
        regex: Regexes.headMarker({ id: '00C6' }),
        condition: function(data, matches) {
          return data.me == matches.target;
        },
        response: Responses.tankBuster('info'),
      },
      {
        id: 'Copied Engels Diffuse Laser',
        regex: Regexes.startsUsing({ id: '4755', source: 'Engels', capture: false }),
        regexCn: Regexes.startsUsing({ id: '4755', source: '昂格士', capture: false }),
        regexDe: Regexes.startsUsing({ id: '4755', source: 'Engels', capture: false }),
        regexFr: Regexes.startsUsing({ id: '4755', source: 'Engels', capture: false }),
        regexJa: Regexes.startsUsing({ id: '4755', source: 'エンゲルス', capture: false }),
        condition: function(data) {
          return data.role == 'tank' || data.role == 'healer' || data.CanAddle();
        },
        response: Responses.aoe(),
      },
      {
        // Technicallly this is Laser Sight 473A, but energy barrage
        // always precedes it and is an earlier warning.
        // Also suggest going to the front for towers.
        id: 'Copied Engels Energy Barrage 1',
        regex: Regexes.startsUsing({ id: '473C', source: 'Engels', capture: false }),
        regexCn: Regexes.startsUsing({ id: '473C', source: '昂格士', capture: false }),
        regexDe: Regexes.startsUsing({ id: '473C', source: 'Engels', capture: false }),
        regexFr: Regexes.startsUsing({ id: '473C', source: 'Engels', capture: false }),
        regexJa: Regexes.startsUsing({ id: '473C', source: 'エンゲルス', capture: false }),
        infoText: {
          en: 'Go Sides (Near Front)',
          de: 'Zu den Seiten (Nahe der Front)',
          fr: 'Allez sur les côtés (vers l\'avant)',
          cn: '两侧（靠近前方）',
          ko: '양옆으로 (앞 근처)',
        },
      },
      {
        id: 'Copied Engels Energy Barrage',
        regex: Regexes.startsUsing({ id: '473C', source: 'Engels', capture: false }),
        regexCn: Regexes.startsUsing({ id: '473C', source: '昂格士', capture: false }),
        regexDe: Regexes.startsUsing({ id: '473C', source: 'Engels', capture: false }),
        regexFr: Regexes.startsUsing({ id: '473C', source: 'Engels', capture: false }),
        regexJa: Regexes.startsUsing({ id: '473C', source: 'エンゲルス', capture: false }),
        delaySeconds: 8,
        infoText: {
          en: 'Get Towers',
          de: 'Türme nehmen',
          fr: 'Prenez les tours',
          cn: '踩塔',
          ko: '장판 하나씩 들어가기',
        },
      },
      {
        id: 'Copied Engels Incendiary Bombing',
        regex: Regexes.headMarker({ id: '0017' }),
        alertText: function(data, matches) {
          if (matches.target == data.me) {
            return {
              en: 'Puddle on YOU',
              de: 'Fläsche auf dir',
              fr: 'Flaques sur VOUS',
              cn: '水圈点名',
              ko: '징 대상자',
            };
          }
        },
      },
      {
        id: 'Copied Engels Guided Missile',
        regex: Regexes.headMarker({ id: '00C5' }),
        alertText: function(data, matches) {
          if (matches.target == data.me) {
            return {
              en: 'Get Out + Dodge Homing AoE',
              de: 'Geh Raus + Zielsuch-AoE ausweichen',
              fr: 'Dehors + Evitez l\'AoE',
              cn: '远离 + 躲避弹幕',
              ko: '바깥으로 빠지고 따라오는 장판 피하기',
            };
          }
        },
      },
      {
        id: 'Copied Engels Reverse-Jointed Goliaths',
        regex: Regexes.ability({ id: '473F', source: 'Engels', capture: false }),
        regexCn: Regexes.ability({ id: '473F', source: '昂格士', capture: false }),
        regexDe: Regexes.ability({ id: '473F', source: 'Engels', capture: false }),
        regexFr: Regexes.ability({ id: '473F', source: 'Engels', capture: false }),
        regexJa: Regexes.ability({ id: '473F', source: 'エンゲルス', capture: false }),
        durationSeconds: 4,
        infoText: {
          en: 'Adds (Ignore Small)',
          de: 'Adds (kleine ignorieren)',
          fr: 'Adds (ignorez les petits)',
          cn: '小怪（忽略小的）',
          ko: '쫄 나옴 (작은건 무시)',
        },
      },
      {
        id: 'Copied Engels Incendiary Saturation Bombing',
        regex: Regexes.startsUsing({ id: '474E', source: 'Engels', capture: false }),
        regexCn: Regexes.startsUsing({ id: '474E', source: '昂格士', capture: false }),
        regexDe: Regexes.startsUsing({ id: '474E', source: 'Engels', capture: false }),
        regexFr: Regexes.startsUsing({ id: '474E', source: 'Engels', capture: false }),
        regexJa: Regexes.startsUsing({ id: '474E', source: 'エンゲルス', capture: false }),
        alertText: {
          en: 'Front and Center',
          de: 'Vorne und Mitte',
          fr: 'Devant et au centre',
          cn: '前方中间',
          ko: '앞 중앙',
        },
      },
      {
        id: 'Copied Engels Marx Thrust',
        regex: Regexes.startsUsing({ id: '48A8', source: 'Engels', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48A8', source: '昂格士', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48A8', source: 'Engels', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48A8', source: 'Engels', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48A8', source: 'エンゲルス', capture: false }),
        delaySeconds: 9,
        infoText: {
          en: 'Look For Wall Saws',
          de: 'Halt nach den kleinen Sägen ausschau',
          fr: 'Repérez les scies',
          cn: '观察墙壁',
          ko: '양옆 톱 확인',
        },
      },
      {
        id: 'Copied 9S Neutralization',
        regex: Regexes.startsUsing({ id: '48F5', source: '9S-Operated Walking Fortress' }),
        regexCn: Regexes.startsUsing({ id: '48F5', source: '9S：接入多脚战车' }),
        regexDe: Regexes.startsUsing({ id: '48F5', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer' }),
        regexFr: Regexes.startsUsing({ id: '48F5', source: '9S : Avec Multipède Esclave' }),
        regexJa: Regexes.startsUsing({ id: '48F5', source: '９Ｓ：多脚戦車従属' }),
        condition: function(data, matches) {
          return data.me == matches.target || data.role == 'healer';
        },
        response: Responses.tankBuster(),
      },
      {
        id: 'Copied 9S Laser Saturation',
        regex: Regexes.startsUsing({ id: '48F6', source: '9S-Operated Walking Fortress', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48F6', source: '9S：接入多脚战车', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48F6', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48F6', source: '9S : Avec Multipède Esclave', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48F6', source: '９Ｓ：多脚戦車従属', capture: false }),
        condition: function(data) {
          return data.role == 'tank' || data.role == 'healer' || data.CanAddle();
        },
        response: Responses.aoe(),
      },
      {
        id: 'Copied 9S Laser Turret',
        regex: Regexes.startsUsing({ id: '4A74', source: '9S-Operated Walking Fortress', capture: false }),
        regexCn: Regexes.startsUsing({ id: '4A74', source: '9S：接入多脚战车', capture: false }),
        regexDe: Regexes.startsUsing({ id: '4A74', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer', capture: false }),
        regexFr: Regexes.startsUsing({ id: '4A74', source: '9S : Avec Multipède Esclave', capture: false }),
        regexJa: Regexes.startsUsing({ id: '4A74', source: '９Ｓ：多脚戦車従属', capture: false }),
        alertText: {
          en: 'Away From Front',
          de: 'Weg von Vorne',
          fr: 'Eloignez vous de l\'avant',
          cn: '远离前方',
          ko: '정면 피하기',
        },
      },
      {
        id: 'Copied 9S Ballistic Impact',
        regex: Regexes.headMarker({ id: '008B' }),
        condition: function(data, matches) {
          return data.me == matches.target;
        },
        response: Responses.spread(),
      },
      {
        id: 'Copied 9S Goliath Laser Turret',
        regex: Regexes.headMarker({ id: '00A4' }),
        condition: function(data, matches) {
          return data.me == matches.target;
        },
        alertText: {
          en: 'Laser Buster on YOU',
          de: 'Laser Tankbuster auf DIR',
          fr: 'Laser Tankbuster sur VOUS',
          cn: '激光点名',
          ko: '레이저 대상자',
        },
      },
      {
        id: 'Copied 9S Fore-Hind Cannons',
        regex: Regexes.startsUsing({ id: '48DF', source: '9S-Operated Walking Fortress', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48DF', source: '9S：接入多脚战车', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48DF', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48DF', source: '9S : Avec Multipède Esclave', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48DF', source: '９Ｓ：多脚戦車従属', capture: false }),
        infoText: {
          en: 'Go Sides',
          de: 'Zu den Seiten',
          fr: 'Sur les côtés',
          cn: '两侧',
          ko: '양옆으로',
        },
      },
      {
        id: 'Copied 9S Dual-Flank Cannons',
        regex: Regexes.startsUsing({ id: '48DE', source: '9S-Operated Walking Fortress', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48DE', source: '9S：接入多脚战车', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48DE', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48DE', source: '9S : Avec Multipède Esclave', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48DE', source: '９Ｓ：多脚戦車従属', capture: false }),
        infoText: {
          en: 'Go Front / Back',
          de: 'Geh nach Vorne / Hinten',
          fr: 'Allez devant / derrière',
          cn: '前往前/后',
          ko: '앞/뒤로',
        },
      },
      {
        id: 'Copied 9S Engage Marx Support',
        regex: Regexes.startsUsing({ id: '48D3', source: '9S-Operated Walking Fortress', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48D3', source: '9S：接入多脚战车', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48D3', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48D3', source: '9S : Avec Multipède Esclave', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48D3', source: '９Ｓ：多脚戦車従属', capture: false }),
        delaySeconds: 4,
        alertText: {
          en: 'Dodge Overhead Saws',
          de: 'Sägen über dem Kopf ausweichen',
          fr: 'Evitez la scie au-dessus de vous',
          cn: '躲避头顶锯',
          ko: '톱 없는 쪽으로 피하기',
        },
      },
      {
        // Use the ability before the adds show up, as looking for the added combatant
        // also triggers on the first boss.
        id: 'Copied 9S Serial-Jointed Service Models',
        regex: Regexes.ability({ id: '48EA', source: '9S-Operated Walking Fortress', capture: false }),
        regexCn: Regexes.ability({ id: '48EA', source: '9S：接入多脚战车', capture: false }),
        regexDe: Regexes.ability({ id: '48EA', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer', capture: false }),
        regexFr: Regexes.ability({ id: '48EA', source: '9S : Avec Multipède Esclave', capture: false }),
        regexJa: Regexes.ability({ id: '48EA', source: '９Ｓ：多脚戦車従属', capture: false }),
        infoText: {
          en: 'Adds',
          de: 'Adds',
          fr: 'Adds',
          cn: '小怪',
          ko: '쫄',
        },
      },
      {
        id: 'Copied 9S Engage Goliath Tank Support',
        regex: Regexes.startsUsing({ id: '48E5', source: '9S-Operated Walking Fortress', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48E5', source: '9S：接入多脚战车', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48E5', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48E5', source: '9S : Avec Multipède Esclave', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48E5', source: '９Ｓ：多脚戦車従属', capture: false }),
        infoText: {
          en: 'Adds',
          de: 'Adds',
          fr: 'Adds',
          cn: '小怪',
          ko: '탱크 쫄 나옴',
        },
      },
      {
        id: 'Copied 9S Hack Goliath Tank',
        regex: Regexes.startsUsing({ id: '48E7', source: '9S-Operated Walking Fortress', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48E7', source: '9S：接入多脚战车', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48E7', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48E7', source: '9S : Avec Multipède Esclave', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48E7', source: '９Ｓ：多脚戦車従属', capture: false }),
        alertText: {
          en: 'Go Behind Untethered Tank',
          de: 'Hinter den nicht verbundenen Panzer gehen',
          fr: 'Derrière le tank non-lié',
          cn: '没连线的坦克后躲避',
          ko: '연결되지 않은 탱크 뒤로 숨기',
        },
      },
      {
        id: 'Copied 9S Shrapnel Impact',
        regex: Regexes.startsUsing({ id: '48F3', source: '9S-Operated Walking Fortress', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48F3', source: '9S：接入多脚战车', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48F3', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48F3', source: '9S : Avec Multipède Esclave', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48F3', source: '９Ｓ：多脚戦車従属', capture: false }),
        suppressSeconds: 2,
        response: Responses.stack(),
      },
      {
        id: 'Copied 9S Bubble',
        regex: Regexes.startsUsing({ id: '48EB', source: '9S-Operated Walking Fortress', capture: false }),
        regexCn: Regexes.startsUsing({ id: '48EB', source: '9S：接入多脚战车', capture: false }),
        regexDe: Regexes.startsUsing({ id: '48EB', source: '9S\' Mehrbeinig(?:e|er|es|en) Panzer', capture: false }),
        regexFr: Regexes.startsUsing({ id: '48EB', source: '9S : Avec Multipède Esclave', capture: false }),
        regexJa: Regexes.startsUsing({ id: '48EB', source: '９Ｓ：多脚戦車従属', capture: false }),
        delaySeconds: 5,
        infoText: {
          en: 'Get in the bubble',
          de: 'Geh in die Kuppel',
          fr: 'Allez dans les bulles',
          cn: '进入圈圈',
          ko: '안전지대 안으로 들어가기',
        },
      },
    ],
    timelineReplace: [
      {
        'locale': 'de',
        'replaceSync': {
          '9S-Operated Flight Unit': '9S\' Flugeinheit',
          '9S-Operated Walking Fortress': '9S\' mehrbeiniger Panzer',
          'Engels': 'Engels',
          '(?<! )Flight Unit': 'Flugeinheit',
          'Goliath Tank': 'Goliath-Panzer',
          'Hobbes': 'Hobbes',
          'Marx': 'Marx',
          'Marx [LR]': '(Linker|Rechter) Marx',
          'Medium Exploder': 'mittelgroße Selbstzerstörung',
          'Multi-leg Medium Model': 'mittelgroßes mehrbeiniges Modell',
          'Quality assurance': 'Warenkontrollhalle',
          'Reverse-jointed Goliath': 'Goliath mit Inversgelenk',
          'Serial-jointed Command Model': 'Befehlsmodell mit Omnigelenk',
          'Serial-jointed Service Model': 'Modell mit Omnigelenk',
          'Small Biped': 'kleiner Zweibeiner',
          'Small Flyer': 'kleine Flugeinheit',
          'The forward deck': 'vordere Deck',
          'The rear deck': 'hintere Deck',
          'Warehouse A': 'Warenlager A',
          'Warehouse B': 'Warenlager B',
          'Warehouse C': 'Warenlager C',
        },
        'replaceText': {
          '--jump--': '--Sprung--',
          '360-Degree Bombing Maneuver': 'Offensive: Raketenring',
          'Adds': 'Adds',
          'Anti-Personnel Missile': 'Antipersonenrakete',
          'Area Bombardment': 'Blindraketen',
          'Area Bombing Maneuver': 'Offensive: Raketensalve',
          'Arm Laser': 'Armlaser',
          'Cannons': 'Kanonen',
          'Clanging Blow': 'Schwerer Angriff',
          'Convenient Self-Destruction': 'Selbstsprengung',
          'Crusher Adds': 'Zangenrad Adds',
          'Crushing Wheel': 'Zangenradoffensive',
          'Demolish Structure': 'Terraintilgung',
          'Diffuse Laser': 'Diffusionslaser',
          'Energy Assault': 'Energieschauer',
          'Energy Barrage': 'Energetisches Sperrfeuer',
          'Energy Blast': 'Energetische Explosion',
          'Energy Bombardment': 'Energiemörser',
          'Energy Ring': 'Omnidirektionalenergie',
          'Engage Goliath Tank Support': 'Verstärkung: Goliath-Panzer',
          'Engage Marx Support': 'Verstärkung: Marx',
          'Exploding Tethers': 'Explodierende Verbindungen',
          'Floor': 'Boden',
          'Forceful Impact': 'Heftiges Beben',
          'Frontal Somersault': 'Sprungoffensive',
          'Ground-To-Ground Missile': 'Boden-Boden-Rakete',
          '(?<! )Guided Missile': 'Lenkraketen',
          'Hack Goliath Tank': 'Hacken: Goliath-Panzer',
          'High-Caliber Laser': 'Großkaliberlaser',
          'High-Frequency Laser': 'Hochfrequenzlaser',
          'High-Powered Laser': 'Hochleistungslaser',
          'Incendiary Bombing': 'Brandraketen',
          'Incendiary Saturation Bombing': 'Streubrandraketen',
          'Laser Saturation': 'Omnidirektionallaser',
          'Laser Sight': 'Laserbestrahlung',
          'Laser Turret': 'Hauptgeschützlaser',
          'Laser-Resistance Test': 'Laserresistenztest',
          'Lightfast Blade': 'Lichtklingenschnitt',
          'Marx Activation': 'Marx-Aktivierung',
          'Marx Crush': 'Marxsche Offensive',
          'Marx Impact': 'Marxscher Sturz',
          'Marx Smash': 'Marxscher Schlag',
          'Marx Thrust': 'Marxscher Ansturm',
          'Neutralization': 'Unterwerfung',
          'Precision Guided Missile': 'Schwere Lenkrakete',
          'Radiate Heat': 'Thermaloffensive',
          'Ring Laser': 'Ringlaser',
          'Shockwave': 'Schockwelle',
          'Short-Range Missile': 'Kurzstreckenrakete',
          'Shrapnel Impact': 'Wrackteilregen',
          'Spin': 'Verwirbeln',
          'Surface Missile': 'Raketenschlag',
          'Systematic Airstrike': 'Luftformation',
          'Systematic Siege': 'Kesselformation',
          'Systematic Suppression': 'Artillerieformation',
          'Systematic Targeting': 'Jagdformation',
          'Total Annihilation Maneuver': 'Offensive: Totale Vernichtung',
          'Undock': 'Abdocken',
          'Wall Mechanic': 'Wand Mechanik',
        },
      },
      {
        'locale': 'fr',
        'replaceSync': {
          '9S-operated Flight Unit': '9S : module de vol équipé',
          '9S-Operated Walking Fortress': '9S : avec multipède esclave',
          'Engels': 'Engels',
          '(?<! )Flight Unit': 'Module de vol',
          'Goliath Tank': 'Char Goliath',
          'Hobbes': 'Hobbes',
          'Marx': 'Marx',
          'Marx [LR]': 'Marx : (Gauche|Droite)',
          'Medium Exploder': 'Unité kamikaze moyenne',
          'Multi-leg Medium Model': 'Multipède moyen',
          'Quality assurance': 'la salle de test',
          'Reverse-jointed Goliath': 'Goliath articulations inversées',
          'Serial-jointed Command Model': 'Modèle multiarticulé : commandant',
          'Serial-jointed Service Model': 'Modèle multiarticulé : soldat',
          'Small Biped': 'Petit bipède',
          'Small Flyer': 'Petite unité volante',
          'The forward deck': 'la plate-forme avant',
          'The rear deck': 'la plate-forme arrière',
          'Warehouse A': 'l\'entrepôt A',
          'Warehouse B': 'l\'entrepôt B',
          'Warehouse C': 'l\'entrepôt C',
        },
        'replaceText': {
          '--jump--': '--Saut--',
          '360-Degree Bombing Maneuver': 'Attaque : tir de missiles circulaire',
          'Adds': 'Adds',
          'Anti-Personnel Missile': 'Pluie de missiles antipersonnel',
          'Area Bombardment': 'Déluge de missiles',
          'Area Bombing Maneuver': 'Attaque : salve de missiles',
          'Arm Laser': 'Lasers brachiaux',
          'Cannons': 'Canons',
          'Clanging Blow': 'Attaque puissante',
          'Convenient Self-Destruction': 'Autodestruction',
          'Crusher Adds': 'Broyeurs',
          'Crushing Wheel': 'Scie circulaire',
          'Demolish Structure': 'Démolition de plate-forme',
          'Diffuse Laser': 'Laser diffractif',
          'Energy Assault': 'Tirs en éventail',
          'Energy Barrage': 'Rideau de balles',
          'Energy Blast': 'Fission de balle',
          'Energy Bombardment': 'Tirs courbes',
          'Energy Ring': 'Tirs multidirectionnels',
          'Engage Goliath Tank Support': 'Appel de renfort : char Goliath',
          'Engage Marx Support': 'Appel de renforts : Marx',
          'Exploding Tethers': 'Liens explosifs',
          'Floor': 'Sol',
          'Forceful Impact': 'Forte secousse',
          'Frontal Somersault': 'Attaque sautée',
          'Ground-To-Ground Missile': 'Missile sol-sol',
          '(?<! )Guided Missile': 'Missile à tête chercheuse',
          'Hack Goliath Tank': 'Piratage : char Goliath',
          'High-Caliber Laser': 'Laser à large faisceau',
          'High-Frequency Laser': 'Laser à haute fréquence',
          'High-Powered Laser': 'Laser surpuissant',
          'Incendiary Bombing': 'Missiles incendiaires',
          'Incendiary Saturation Bombing': 'Salve incendiaire',
          'Laser Saturation': 'Laser multidirectionnel',
          'Laser Sight': 'Rayon laser',
          'Laser Turret': 'Canon laser',
          'Laser-Resistance Test': 'Test de résistance au laser',
          'Lightfast Blade': 'Lame éclair',
          'Marx Activation': 'Activation de Marx',
          'Marx Crush': 'Pinçage de Marx',
          'Marx Impact': 'Chute de Marx',
          'Marx Smash': 'Coup de Marx',
          'Marx Thrust': 'Charge de Marx',
          'Neutralization': 'Tir de suppression',
          'Precision Guided Missile': 'Missile à tête chercheuse ultraprécise',
          'Radiate Heat': 'Relâchement de chaleur',
          'Ring Laser': 'Anneau laser',
          'Shockwave': 'Onde de choc',
          'Short-Range Missile': 'Missiles à courte portée',
          'Shrapnel Impact': 'Chute de débris',
          'Spin': 'Gyrocoup',
          'Surface Missile': 'Missiles sol-sol',
          'Systematic Airstrike': 'Formation de bombardement',
          'Systematic Siege': 'Formation d\'encerclement',
          'Systematic Suppression': 'Formation de balayage',
          'Systematic Targeting': 'Formation de tir',
          'Total Annihilation Maneuver': 'Attaque : bombardement dévastateur',
          'Undock': 'Désamarrage',
          'Wall Mechanic': 'Mécanique du mur',
        },
      },
      {
        'locale': 'ja',
        'missingTranslations': true,
        'replaceSync': {
          '9S-operated Flight Unit': '９Ｓ：飛行ユニット装備',
          '9S-Operated Walking Fortress': '９Ｓ：多脚戦車従属',
          'Engels': 'エンゲルス',
          '(?<! )Flight Unit': '飛行ユニット',
          'Goliath Tank': '大型戦車',
          'Hobbes': 'ホッブス',
          'Marx': 'マルクス',
          'Marx [LR]': 'Marx [LR]', // FIXME
          'Medium Exploder': '中型自爆',
          'Multi-leg Medium Model': '中型多脚',
          'Reverse-jointed Goliath': '大型逆関節',
          'Serial-jointed Command Model': '多関節型：司令機',
          'Serial-jointed Service Model': '多関節型：兵隊機',
          'Small Biped': '小型二足',
          'Small Flyer': '小型飛行体',
        },
        'replaceText': {
          '--jump--': '--jump--', // FIXME
          '360-Degree Bombing Maneuver': '攻撃：ミサイル円射',
          'Adds': 'Adds', // FIXME
          'Anti-Personnel Missile': '対人ミサイル乱射',
          'Area Bombardment': 'ミサイル乱射',
          'Area Bombing Maneuver': '攻撃：ミサイル斉射',
          'Arm Laser': '腕部レーザー',
          'Cannons': 'Cannons', // FIXME
          'Clanging Blow': '強攻撃',
          'Convenient Self-Destruction': '自爆攻撃',
          'Crusher Adds': 'Crusher Adds', // FIXME
          'Crushing Wheel': '挟撃ホイール',
          'Demolish Structure': '地形破壊攻撃',
          'Diffuse Laser': '拡散レーザー',
          'Energy Assault': '連続エネルギー弾',
          'Energy Barrage': 'エネルギー弾幕',
          'Energy Blast': 'エネルギー炸裂',
          'Energy Bombardment': '迫撃エネルギー弾',
          'Energy Ring': '全方位エネルギー弾',
          'Engage Goliath Tank Support': '支援要請：大型戦車',
          'Engage Marx Support': '支援要請：マルクス',
          'Exploding Tethers': 'Exploding Tethers', // FIXME
          'Floor': 'Floor', // FIXME
          'Forceful Impact': '大震動',
          'Frontal Somersault': 'ジャンプ攻撃',
          'Ground-To-Ground Missile': '地対地ミサイル',
          '(?<! )Guided Missile': '誘導ミサイル',
          'Hack Goliath Tank': 'ハッキング：大型戦車',
          'High-Caliber Laser': '大口径レーザー',
          'High-Frequency Laser': '高周波レーザー',
          'High-Powered Laser': '高出力レーザー',
          'Incendiary Bombing': '焼尽ミサイル',
          'Incendiary Saturation Bombing': '拡散焼尽ミサイル',
          'Laser Saturation': '全方位レーザー',
          'Laser Sight': 'レーザー照射',
          'Laser Turret': '主砲レーザー',
          'Laser-Resistance Test': '耐レーザー検証',
          'Lightfast Blade': '光刃斬機',
          'Marx Activation': 'マルクス起動',
          'Marx Crush': 'マルクス挟撃',
          'Marx Impact': 'マルクス落下',
          'Marx Smash': 'マルクス打撃',
          'Marx Thrust': 'マルクス突撃',
          'Neutralization': '制圧射撃',
          'Precision Guided Missile': '高性能誘導ミサイル',
          'Radiate Heat': '放熱攻撃',
          'Ring Laser': 'リングレーザー',
          'Shockwave': '衝撃波',
          'Short-Range Missile': '短距離ミサイル',
          'Shrapnel Impact': '残骸落下',
          'Spin': 'ぶん回す',
          'Surface Missile': '対地ミサイル',
          'Systematic Airstrike': '空爆陣形',
          'Systematic Siege': '包囲陣形',
          'Systematic Suppression': '掃射陣形',
          'Systematic Targeting': '照準陣形',
          'Total Annihilation Maneuver': '攻撃：殲滅爆撃',
          'Undock': 'ドッキング解除',
          'Wall Mechanic': 'Wall Mechanic', // FIXME
        },
      },
      {
        'locale': 'cn',
        'replaceSync': {
          '9S-operated Flight Unit': '9S：装备飞行装置',
          '9S-Operated Walking Fortress': '9S：接入多脚战车',
          'Engels': '昂格士',
          '(?<! )Flight Unit': '飞行装置',
          'Goliath Tank': '大型战车',
          'Hobbes': '霍布斯',
          'Marx': '麦喀士',
          'Marx [LR]': '麦喀士[左右]',
          'Medium Exploder': '中型自爆',
          'Multi-leg Medium Model': '中型多脚',
          'Quality assurance': '质检场',
          'Reverse-jointed Goliath': '大型逆关节',
          'Serial-Jointed Command Model': '多关节型：司令机',
          'Serial-Jointed Service Model': '多关节型：士兵机',
          'Serial-jointed Command Model': '多关节型：司令机',
          'Serial-jointed Service Model': '多关节型：士兵机',
          'Small Biped': '小型二足',
          'Small Flyer': '小型飞行体',
          'The forward deck': '前部甲板',
          'The rear deck': '后部甲板',
          'Warehouse A': '仓库A',
          'Warehouse B': '仓库B',
          'Warehouse C': '仓库C',
        },
        'replaceText': {
          '--jump--': '--大跳--',
          '360-Degree Bombing Maneuver': '攻击：周边导弹轰炸',
          'Anti-Personnel Missile': '对人导弹乱射',
          'Area Bombardment': '导弹乱射',
          'Area Bombing Maneuver': '攻击：追踪导弹轰炸',
          'Arm Laser': '腕部激光',
          'Cannons': '加农',
          'Clanging Blow': '强攻击',
          'Convenient Self-Destruction': '自爆攻击',
          'Crusher Adds': '粉碎机小怪',
          'Tank Adds': '坦克小怪',
          'Serial-Jointed Adds': '多关节型小怪',
          '(?<! )Adds': '小怪',
          'Crushing Wheel': '碾轮夹击',
          'Demolish Structure': '地形破坏攻击',
          'Wide-Angle Diffuse Laser': '广角扩散射线',
          '(?<! )Diffuse Laser': '扩散射线',
          'Energy Assault': '连续能量弹',
          'Energy Barrage': '能量弹幕',
          'Energy Blast': '能量炸裂',
          'Energy Bombardment': '迫击能量弹',
          'Energy Ring': '全方位能量弹',
          'Engage Goliath Tank Support': '请求支援：大型战车',
          'Engage Marx Support': '请求支援：麦喀士',
          'Exploding Tethers': '爆炸连线',
          'Floor': '地板',
          'Forceful Impact': '大震动',
          'Frontal Somersault': '跳跃攻击',
          'Ground-To-Ground Missile': '地对地导弹',
          'Precision Guided Missile': '高性能追踪导弹',
          '(?<! )Guided Missile': '追踪导弹',
          'Hack Goliath Tank': '骇入：大型战车',
          'High-Caliber Laser': '大口径激光',
          'High-Frequency Laser': '高周波激光',
          'High-Powered Laser': '高功率激光',
          'Incendiary Bombing': '燃烧导弹',
          'Incendiary Saturation Bombing': '扩散燃烧导弹',
          'Laser Saturation': '全方位激光',
          'Laser Sight': '激光照射',
          'Laser Turret': '主炮激光',
          'Laser-Resistance Test': '耐激光检测',
          'Lightfast Blade': '光刃斩机',
          'Marx Activation': '麦喀士启动',
          'Marx Crush': '麦喀士夹击',
          'Marx Impact': '麦喀士冲击',
          'Marx Smash L/R': '麦喀士打击左/右',
          'Marx Smash R/L': '麦喀士打击右/左',
          'Marx Smash F/B': '麦喀士打击前/后',
          'Marx Smash B/F': '麦喀士打击后/前',
          'Marx Smash(?! )': '麦喀士打击',
          'Marx Thrust': '麦喀士突击',
          'Neutralization': '压制射击',
          'Radiate Heat': '放热攻击',
          'Ring Laser': '环形激光',
          'Shockwave': '冲击波',
          'Short-Range Missile': '短途导弹',
          'Shrapnel Impact': '残骸坠落',
          'Spin': '回转',
          'Surface Missile': '对地导弹',
          'Systematic Airstrike': '空袭阵型',
          'Systematic Siege': '包围阵型',
          'Systematic Suppression': '扫射阵型',
          'Systematic Targeting': '瞄准阵型',
          'Total Annihilation Maneuver': '攻击：歼灭轰炸',
          'Undock': '对接解除',
          'Wall Mechanic': '墙机制',
        },
      },
    ],
  }];
  