diff --git a/server/src/ffxiv.rs b/server/src/ffxiv.rs index a5d6514..41d09c6 100644 --- a/server/src/ffxiv.rs +++ b/server/src/ffxiv.rs @@ -1,10 +1,10 @@ -pub mod auto_translate; -pub mod duties; -pub mod jobs; -pub mod roulettes; -pub mod territory_names; -pub mod treasure_maps; -pub mod worlds; +use std::{ + cmp::Ordering, + str::FromStr, +}; +use std::borrow::Cow; + +use crate::listing::{DutyCategory, DutyType}; pub use self::{ auto_translate::AUTO_TRANSLATE, @@ -16,12 +16,13 @@ pub use self::{ worlds::WORLDS, }; -use std::{ - cmp::Ordering, - str::FromStr, -}; -use std::borrow::Cow; -use crate::listing::{DutyCategory, DutyType}; +pub mod auto_translate; +pub mod duties; +pub mod jobs; +pub mod roulettes; +pub mod territory_names; +pub mod treasure_maps; +pub mod worlds; #[derive(Debug, Copy, Clone)] pub enum Language { @@ -150,6 +151,12 @@ pub fn duty_name<'a>(duty_type: DutyType, category: DutyCategory, duty: u16, lan Language::German => "Himmelssäule", Language::French => "Pilier des Cieux", }), + (DutyType::Other, DutyCategory::DeepDungeons) if duty == 3 => return Cow::from(match lang { + Language::English => "Eureka Orthos", + Language::Japanese => "オルト・エウレカ", + Language::German => "Eureka Orthos", + Language::French => "Eurêka Orthos", + }), (DutyType::Normal, _) => { if let Some(info) = crate::ffxiv::duty(u32::from(duty)) { return Cow::from(info.name.text(&lang)); diff --git a/server/src/ffxiv/auto_translate.rs b/server/src/ffxiv/auto_translate.rs index 6946322..1b4c713 100644 --- a/server/src/ffxiv/auto_translate.rs +++ b/server/src/ffxiv/auto_translate.rs @@ -4725,6 +4725,12 @@ lazy_static::lazy_static! { de: "Barbarizia", fr: "Barbariccia", }, + (23, 1959) => LocalisedText { + en: "Rubicante", + ja: "ルビカンテ", + de: "Rubicante", + fr: "Rubicante", + }, (24, 2000) => LocalisedText { en: "【Duty】", ja: "【コンテンツ】", @@ -7197,6 +7203,12 @@ lazy_static::lazy_static! { de: "Pod 602", fr: "pod 602", }, + (49, 285) => LocalisedText { + en: "moon-hopper", + ja: "ムーンホッパー", + de: "Mondhopper", + fr: "bondisseur lunaire", + }, (49, 286) => LocalisedText { en: "island alligator", ja: "アイランド・アリゲーター", @@ -7221,6 +7233,12 @@ lazy_static::lazy_static! { de: "Geißelskorpion", fr: "vinaigrier", }, + (49, 292) => LocalisedText { + en: "Orthos craklaw", + ja: "オルト・クラックロー", + de: "Orthos-Kraklaw", + fr: "craqulov Orthos", + }, (49, 293) => LocalisedText { en: "bluefeather lynx", ja: "ブルーフェザー・リンクス", @@ -7269,6 +7287,12 @@ lazy_static::lazy_static! { de: "Sturmwind-Luchs", fr: "lynx des vents tempétueux", }, + (49, 308) => LocalisedText { + en: "aeturna", + ja: "アエテルナエ", + de: "Aeturna", + fr: "Aeturna", + }, (49, 311) => LocalisedText { en: "Anden III", ja: "アンデンIII世", @@ -8895,6 +8919,12 @@ lazy_static::lazy_static! { de: "Heiligtum der Schlange", fr: "Sanctuaire du Grand Serpent", }, + (51, 2529) => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, (51, 2530) => LocalisedText { en: "Eureka Pyros", ja: "エウレカ:ピューロス帯", @@ -18987,6 +19017,12 @@ lazy_static::lazy_static! { de: "/kontaktperle", fr: "/appelvialinkperle", }, + (62, 653) => LocalisedText { + en: "/earwiggle", + ja: "/earwiggle", + de: "/löffelwackeln", + fr: "/longuesoreillessoyeuses", + }, (63, 29054) => LocalisedText { en: "Guard", ja: "防御", @@ -23434,6 +23470,18 @@ lazy_static::lazy_static! { de: "Aufzieh-Cagnazzo", fr: "Cagnazzo miniature", }, + (65, 472) => LocalisedText { + en: "Findingway", + ja: "ファインディングウェイ", + de: "Findingway", + fr: "Findingway", + }, + (65, 473) => LocalisedText { + en: "private pachypodium", + ja: "プライベート・パキポディウム", + de: "Privat-Pachypodium", + fr: "soldate pachypodium", + }, (65, 474) => LocalisedText { en: "wind-up Halone", ja: "マメット・ハルオーネ", @@ -26332,6 +26380,132 @@ lazy_static::lazy_static! { de: "Totenlaterne", fr: "Lanterne de résurrection", }, + (27, 3628) => LocalisedText { + en: "Pylon of Return", + ja: "再生装置", + de: "Reanimator", + fr: "résurrecteur", + }, + (27, 3629) => LocalisedText { + en: "Pylon of Passage", + ja: "転移装置", + de: "Translokator", + fr: "téléporteur", + }, + (27, 3630) => LocalisedText { + en: "Unei demiclone", + ja: "デミクローン・ウネ", + de: "Demiklon-Unei", + fr: "semi-clone d'Unéi", + }, + (27, 3631) => LocalisedText { + en: "Doga demiclone", + ja: "デミクローン・ドーガ", + de: "Demiklon-Doga", + fr: "semi-clone de Doga", + }, + (27, 3632) => LocalisedText { + en: "onion knight demiclone", + ja: "デミクローン・オニオンナイト", + de: "Demiklon-Zwiebelritter", + fr: "semi-clone du chevalier Oignon", + }, + (27, 3633) => LocalisedText { + en: "Protomander of Lethargy", + ja: "魔科学器:スロウガ", + de: "Ätherogefäß der Trägheit", + fr: "magismobjet de ralentissement", + }, + (27, 3634) => LocalisedText { + en: "Protomander of Storms", + ja: "魔科学器:ミールストーム", + de: "Ätherogefäß der Schwäche", + fr: "magismobjet de Charybde", + }, + (27, 3635) => LocalisedText { + en: "Protomander of Dread", + ja: "魔科学器:ドレッドノート化", + de: "Ätherogefäß der Macht", + fr: "magismobjet de cuirassé Dreadnaught", + }, + (27, 3636) => LocalisedText { + en: "Protomander of Safety", + ja: "魔科学器:呪印解除", + de: "Ätherogefäß des Siegelbruchs", + fr: "magismobjet de désamorçage", + }, + (27, 3637) => LocalisedText { + en: "Protomander of Sight", + ja: "魔科学器:サイトロ", + de: "Ätherogefäß der Sicht", + fr: "magismobjet de localisation", + }, + (27, 3638) => LocalisedText { + en: "Protomander of Strength", + ja: "魔科学器:自己強化", + de: "Ätherogefäß der Stärkung", + fr: "magismobjet de puissance", + }, + (27, 3639) => LocalisedText { + en: "Protomander of Steel", + ja: "魔科学器:防御強化", + de: "Ätherogefäß der Abwehr", + fr: "magismobjet de protection", + }, + (27, 3640) => LocalisedText { + en: "Protomander of Affluence", + ja: "魔科学器:宝箱増加", + de: "Ätherogefäß der Schätze", + fr: "magismobjet de décèlement", + }, + (27, 3641) => LocalisedText { + en: "Protomander of Flight", + ja: "魔科学器:敵排除", + de: "Ätherogefäß des Feindtods", + fr: "magismobjet de sécurisation", + }, + (27, 3642) => LocalisedText { + en: "Protomander of Alteration", + ja: "魔科学器:敵変化", + de: "Ätherogefäß der Feindwandlung", + fr: "magismobjet d'affaiblissement", + }, + (27, 3643) => LocalisedText { + en: "Protomander of Purity", + ja: "魔科学器:解呪", + de: "Ätherogefäß der Entzauberung", + fr: "magismobjet d'anti-maléfice", + }, + (27, 3644) => LocalisedText { + en: "Protomander of Fortune", + ja: "魔科学器:運気上昇", + de: "Ätherogefäß des Glücks", + fr: "magismobjet de chance", + }, + (27, 3645) => LocalisedText { + en: "Protomander of Witching", + ja: "魔科学器:形態変化", + de: "Ätherogefäß der Wandlung", + fr: "magismobjet de mutation", + }, + (27, 3646) => LocalisedText { + en: "Protomander of Serenity", + ja: "魔科学器:魔法効果解除", + de: "Ätherogefäß der Enthexung", + fr: "magismobjet de dissipation", + }, + (27, 3647) => LocalisedText { + en: "Protomander of Intuition", + ja: "魔科学器:財宝感知", + de: "Ätherogefäß des Finders", + fr: "magismobjet d'intuition", + }, + (27, 3648) => LocalisedText { + en: "Protomander of Raising", + ja: "魔科学器:リレイズ", + de: "Ätherogefäß des Lebens", + fr: "magismobjet de résurrection", + }, (17, 4000) => LocalisedText { en: "magia board", ja: "マギアボード", @@ -26560,6 +26734,12 @@ lazy_static::lazy_static! { de: "Manderville-Waffe", fr: "arme des Manderville", }, + (17, 4044) => LocalisedText { + en: "Splendorous tool", + ja: "モーエンツール", + de: "Mowen-Werkzeug", + fr: "outil des merveilles", + }, (24, 5000) => LocalisedText { en: "normal raid", ja: "ノーマルレイド", @@ -27214,6 +27394,12 @@ lazy_static::lazy_static! { de: "Lapis Manalis", fr: "Lapis Manalis", }, + (24, 5114) => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, (24, 5115) => LocalisedText { en: "The Omega Protocol (Ultimate)", ja: "絶オメガ検証戦", @@ -27226,6 +27412,18 @@ lazy_static::lazy_static! { de: "Euphrosyne", fr: "Domaine divin - Euphrosyne", }, + (24, 5117) => LocalisedText { + en: "Mount Ordeals", + ja: "ルビカンテ討滅戦", + de: "Prophetie - Rubicante", + fr: "Mont du Supplice", + }, + (24, 5118) => LocalisedText { + en: "Mount Ordeals (Extreme)", + ja: "極ルビカンテ討滅戦", + de: "Eschatos - Rubicante", + fr: "Mont du Supplice (extrême)", + }, (24, 5119) => LocalisedText { en: "Containment Bay P1T6 (Unreal)", ja: "幻女神ソフィア討滅戦", diff --git a/server/src/ffxiv/duties.rs b/server/src/ffxiv/duties.rs index b6add4b..41e77a6 100644 --- a/server/src/ffxiv/duties.rs +++ b/server/src/ffxiv/duties.rs @@ -6536,6 +6536,116 @@ lazy_static::lazy_static! { high_end: false, content_kind: ContentKind::Dungeons, }, + 897 => DutyInfo { + name: LocalisedText { + en: "Eureka Orthos (Floors 1-10)", + ja: "オルト・エウレカ B1~B10", + de: "Eureka Orthos (Ebenen 1-10)", + fr: "Eurêka Orthos (sous-sols 1-10)", + }, + high_end: false, + content_kind: ContentKind::DeepDungeons, + }, + 898 => DutyInfo { + name: LocalisedText { + en: "Eureka Orthos (Floors 11-20)", + ja: "オルト・エウレカ B11~B20", + de: "Eureka Orthos (Ebenen 11-20)", + fr: "Eurêka Orthos (sous-sols 11-20)", + }, + high_end: false, + content_kind: ContentKind::DeepDungeons, + }, + 899 => DutyInfo { + name: LocalisedText { + en: "Eureka Orthos (Floors 21-30)", + ja: "オルト・エウレカ B21~B30", + de: "Eureka Orthos (Ebenen 21-30)", + fr: "Eurêka Orthos (sous-sols 21-30)", + }, + high_end: false, + content_kind: ContentKind::DeepDungeons, + }, + 900 => DutyInfo { + name: LocalisedText { + en: "Eureka Orthos (Floors 31-40)", + ja: "オルト・エウレカ B31~B40", + de: "Eureka Orthos (Ebenen 31-40)", + fr: "Eurêka Orthos (sous-sols 31-40)", + }, + high_end: false, + content_kind: ContentKind::DeepDungeons, + }, + 901 => DutyInfo { + name: LocalisedText { + en: "Eureka Orthos (Floors 41-50)", + ja: "オルト・エウレカ B41~B50", + de: "Eureka Orthos (Ebenen 41-50)", + fr: "Eurêka Orthos (sous-sols 41-50)", + }, + high_end: false, + content_kind: ContentKind::DeepDungeons, + }, + 902 => DutyInfo { + name: LocalisedText { + en: "Eureka Orthos (Floors 51-60)", + ja: "オルト・エウレカ B51~B60", + de: "Eureka Orthos (Ebenen 51-60)", + fr: "Eurêka Orthos (sous-sols 51-60)", + }, + high_end: false, + content_kind: ContentKind::DeepDungeons, + }, + 903 => DutyInfo { + name: LocalisedText { + en: "Eureka Orthos (Floors 61-70)", + ja: "オルト・エウレカ B61~B70", + de: "Eureka Orthos (Ebenen 61-70)", + fr: "Eurêka Orthos (sous-sols 61-70)", + }, + high_end: false, + content_kind: ContentKind::DeepDungeons, + }, + 904 => DutyInfo { + name: LocalisedText { + en: "Eureka Orthos (Floors 71-80)", + ja: "オルト・エウレカ B71~B80", + de: "Eureka Orthos (Ebenen 71-80)", + fr: "Eurêka Orthos (sous-sols 71-80)", + }, + high_end: false, + content_kind: ContentKind::DeepDungeons, + }, + 905 => DutyInfo { + name: LocalisedText { + en: "Eureka Orthos (Floors 81-90)", + ja: "オルト・エウレカ B81~B90", + de: "Eureka Orthos (Ebenen 81-90)", + fr: "Eurêka Orthos (sous-sols 81-90)", + }, + high_end: false, + content_kind: ContentKind::DeepDungeons, + }, + 906 => DutyInfo { + name: LocalisedText { + en: "Eureka Orthos (Floors 91-100)", + ja: "オルト・エウレカ B91~B100", + de: "Eureka Orthos (Ebenen 91-100)", + fr: "Eurêka Orthos (sous-sols 91-100)", + }, + high_end: false, + content_kind: ContentKind::DeepDungeons, + }, + 907 => DutyInfo { + name: LocalisedText { + en: "Generational Bonding", + ja: "はつらつとした親子", + de: "Väterliche Liebe", + fr: "Tel gentilhomme, tel gentilhomme", + }, + high_end: false, + content_kind: ContentKind::QuestBattles, + }, 908 => DutyInfo { name: LocalisedText { en: "The Omega Protocol (Ultimate)", diff --git a/server/src/ffxiv/territory_names.rs b/server/src/ffxiv/territory_names.rs index f5550af..6d62f28 100644 --- a/server/src/ffxiv/territory_names.rs +++ b/server/src/ffxiv/territory_names.rs @@ -5343,6 +5343,66 @@ lazy_static::lazy_static! { de: "Sylphenland", fr: "Sylve sylphe sibylline", }, + 1099 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, + 1100 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, + 1101 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, + 1102 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, + 1103 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, + 1104 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, + 1105 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, + 1106 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, + 1107 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, + 1108 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, 1109 => LocalisedText { en: "The Great Gubal Library", ja: "グブラ幻想図書館", @@ -5379,6 +5439,12 @@ lazy_static::lazy_static! { de: "Baelsar-Wall", fr: "Muraille de Baelsar", }, + 1115 => LocalisedText { + en: "The Tower of Babil", + ja: "バブイルの塔", + de: "Turm von Babil", + fr: "Tour de Babil", + }, 1116 => LocalisedText { en: "The Clockwork Castletown", ja: "東方絡繰御殿", @@ -5427,6 +5493,12 @@ lazy_static::lazy_static! { de: "Gymnasion Agonon", fr: "Elpis Gymnasion", }, + 1124 => LocalisedText { + en: "Eureka Orthos", + ja: "オルト・エウレカ", + de: "Eureka Orthos", + fr: "Eurêka Orthos", + }, 1125 => LocalisedText { en: "Khadga", ja: "カドガの大岩", diff --git a/server/src/ffxiv/treasure_maps.rs b/server/src/ffxiv/treasure_maps.rs index 1247008..3c38e45 100644 --- a/server/src/ffxiv/treasure_maps.rs +++ b/server/src/ffxiv/treasure_maps.rs @@ -114,13 +114,13 @@ lazy_static::lazy_static! { 18 => LocalisedText { en: "Kumbhiraskin Treasure Map", ja: "古ぼけた地図G14", - de: "Ophiotaurosleder-Schatzkarte", + de: "Kumbhilaleder-Schatzkarte", fr: "Carte au trésor en peau de kumbhira", }, 19 => LocalisedText { en: "Ophiotauroskin Treasure Map", ja: "古ぼけた地図G15", - de: "Kumbhiraleder-Schatzkarte", + de: "Ophiotaurosleder-Schatzkarte", fr: "Carte au trésor en peau d'ophiotauros", }, 20 => LocalisedText {