diff --git a/projects/mtg/bin/Res/graphics/f3.sjis b/projects/mtg/bin/Res/graphics/f3.sjis new file mode 100644 index 000000000..a91b79bfa Binary files /dev/null and b/projects/mtg/bin/Res/graphics/f3.sjis differ diff --git a/projects/mtg/bin/Res/graphics/magic.sjis b/projects/mtg/bin/Res/graphics/magic.sjis new file mode 100644 index 000000000..1adace8d5 Binary files /dev/null and b/projects/mtg/bin/Res/graphics/magic.sjis differ diff --git a/projects/mtg/bin/Res/graphics/simon.sjis b/projects/mtg/bin/Res/graphics/simon.sjis new file mode 100644 index 000000000..7fb20b8da Binary files /dev/null and b/projects/mtg/bin/Res/graphics/simon.sjis differ diff --git a/projects/mtg/bin/Res/graphics/smallface.sjis b/projects/mtg/bin/Res/graphics/smallface.sjis new file mode 100644 index 000000000..fc47c49c0 Binary files /dev/null and b/projects/mtg/bin/Res/graphics/smallface.sjis differ diff --git a/projects/mtg/bin/Res/lang/jp.txt b/projects/mtg/bin/Res/lang/jp.txt new file mode 100644 index 000000000..2e30fa2e0 --- /dev/null +++ b/projects/mtg/bin/Res/lang/jp.txt @@ -0,0 +1,343 @@ +#LANG:Japanese +#Wagic 0.13.1 日本語 + +#Note: +# - Limitation: Special characters that are not in the limited Shift-JIS +# set can not be used, the game won't display them. + + +########################## +# MAIN MENU # +########################## + +# Main menu: +Play=スタート +Deck Editor=デッキ +Shop=ショップ +Options=オプション +Exit=やめる + +########################## +# DECK EDITOR # +########################## + +# Filter: +5DN=フィフス・ドーン +#Archenemy +ALA=アラーラの断片 +#ALL +#APC +ARB=アラーラ再誕 +#ARN +#ATQ +BOK=神河謀叛 +#BRB +#BTD +CHK=神河物語 +#CHR +CSP=コールドスナップ +DIS=ディセンション +#DRK +DST=ダークスティール +#Duel Decks: Phyrexia vs. the Coalition +#DVD +EVE=イーブンタイド +#EVG +#EVT +#EXO +#FEM +#FUT +#FVD +#FVE +#FVR +GPT=ギルドパクト +#GVL +#HML +#HOP +#ICE +#INV +#JUD +#JVC +#LEA +#LEB +#LEG +#LGN +LRW=ローウィン +#MED +#ME2 +#ME3 +#MIR +MOR=モーニングタイド +#MRD +#MRQ +#NMS +#ODY +#ONS +#P02 +#PCY +#PDS +PLC=次元の混乱 +#PLS +#POR +#PPR +#PTK +RAV=ラブニカ:ギルドの都 +ROE=エルドラージ覚醒 +#SCG +SHM=シャドウムーア +SOK=神河救済 +SOM=ミラディンの傷跡 +#STH +Starter '00=Starter '00 +Starter '99=Starter '99 +#TMP +#TOR +TSB=時のらせんのタイムシフト +TSP=時のらせん +#UDS +#UGL +#ULG +#UNH +#USG +#VIS +#WTH +WWK=ワールドウェイク +Wagic 2010=M2010 +Wagic 2011=M2011 +ZEN=ゼンディカー + + +########################## +# CARD DATA: NAMES # +########################## + +# please keep this alphabetized +Abuna Acolyte=高僧の見習い +Accorder's Shield=調和者隊の盾 +Acid Web Spider=酸の巣の蜘蛛 +Alpha Tyrranax=最上位のティラナックス +Arc Trail=電弧の痕跡 +Argent Sphinx=銀白のスフィンクス +Argentum Armor=アージェンタムの鎧 +Arrest=拘引 +Asceticism=苦行主義 +Assault Strobe=突撃のストロボ +Auriok Edgewright=オーリオックの刃工 +Auriok Replica=オーリオックの模造品 +Auriok Sunchaser=オーリオックの太陽追い +Barbed Battlegear=逆刺の戦具 +Barrage Ogre=連射のオーガ +Bellowing Tanglewurm=吠える絡みワーム +Blackcleave Cliffs=黒割れの崖 +Blackcleave Goblin=黒割れのゴブリン +Bladed Pinions=刃の翼 +Blade-Tribe Berserkers=刃族の狂戦士 +Bleak Coven Vampires=冷たき集いの吸血鬼 +Blight Mamba=荒廃のマンバ +Blistergrub=水膨れ地掘り +Bloodshot Trainee=血まなこの練習生 +Blunt the Assault=突撃の鈍化 +Bonds of Quicksilver=水銀の縛め +Carapace Forger=甲殻の鍛冶工 +Carnifex Demon=執行の悪魔 +Carrion Call=屍肉の呼び声 +Cerebral Eruption=知性の爆発 +Chimeric Mass=キマイラ的大群 +Chrome Steed=金属の駿馬 +Clone Shell=クローンの殻 +Contagion Clasp=伝染病の留め金 +Contagion Engine=伝染病エンジン +Contagious Nim=伝染病の屍賊 +Copperhorn Scout=銅角笛の斥候 +Copperline Gorge=銅線の地溝 +Copper Myr=銅のマイア +Corpse Cur=死体の野犬 +Corrupted Harvester=堕落した収穫者 +Culling Dais=選別の高座 +Cystbearer=嚢胞抱え +Darkslick Drake=闇滑りのドレイク +Darkslick Shores=闇滑りの岸 +Darksteel Axe=ダークスティールの斧 +Darksteel Juggernaut=ダークスティールの巨大戦車 +Darksteel Myr=ダークスティールのマイア +Darksteel Sentinel=ダークスティールの歩哨 +Dispense Justice=正義の施行 +Disperse=分散 +Dissipation Field=霧消の場 +Dross Hopper=ドロスバッタ +Echo Circlet=こだまの飾り輪 +Elspeth Tirel=エルズペス・ティレル +Embersmith=燃えさし鍛冶 +Engulfing Slagwurm=飲み込む金屑ワーム +Etched Champion=刻まれた勇者 +Exsanguinate=瀉血 +Ezuri, Renegade Leader=背教の主導者、エズーリ +Ezuri's Archers=エズーリの射手 +Ezuri's Brigade=エズーリの大部隊 +Ferrovore=鉄を食うもの +Flameborn Hellion=炎生まれのヘリオン +Flesh Allergy=肉体アレルギー +Flight Spellbomb=飛行の呪文爆弾 +Fulgent Distraction=燦爛たる放心 +Fume Spitter=煙霧吐き +Furnace Celebration=炉の式典 +Galvanic Blast=感電破 +Genesis Wave=起源の波 +Geth, Lord of the Vault=大霊堂の王、ゲス +Ghalma's Warden=ガルマの保護者 +Glimmerpoint Stag=微光角の鹿 +Glimmerpost=微光地 +Glint Hawk=きらめく鷹 +Glint Hawk Idol=きらめく鷹の偶像 +Goblin Gaveleer=ゴブリンの小槌打ち +Golden Urn=黄金の甕 +Gold Myr=金のマイア +Golem Artisan=ゴーレムの職工 +Golem Foundry=ゴーレムの鋳造所 +Golem's Heart=ゴーレムの心臓 +Grafted Exoskeleton=生体融合外骨格 +Grand Architect=大建築家 +Grasp of Darkness=闇の掌握 +Grindclock=研磨時計 +Halt Order=停止命令 +Hand of the Praetors=法務官の手 +Heavy Arbalest=大石弓 +Hoard-Smelter Dragon=蔵製錬のドラゴン +Horizon Spellbomb=地平線の呪文爆弾 +Ichorclaw Myr=胆液爪のマイア +Ichor Rats=胆液の鼠 +Indomitable Archangel=不退転の大天使 +Inexorable Tide=容赦無い潮流 +Infiltration Lens=浸透のレンズ +Instill Infection=感染の賦活 +Iron Myr=鉄のマイア +Kemba, Kha Regent=王の摂政、ケンバ +Kemba's Skyguard=ケンバの空護衛 +Koth of the Hammer=槌のコス +Kuldotha Forgemaster=カルドーサの鍛冶場主 +Kuldotha Phoenix=カルドーサのフェニックス +Kuldotha Rebirth=カルドーサの再誕 +Leaden Myr=鉛のマイア +Leonin Arbiter=レオニンの裁き人 +Liege of the Tangle=絡み森の主 +Lifesmith=生命鍛冶 +Liquimetal Coating=液鋼の塗膜 +Livewire Lash=活線の鞭 +Loxodon Wayfarer=ロクソドンの旅人 +Lumengrid Drake=ルーメングリッドのドレイク +Lux Cannon=光明の大砲 +Melt Terrain=地形の融解 +Memnite=メムナイト +Memoricide=記憶殺し +Mimic Vat=ミミックの大桶 +Mindslaver=精神隷属器 +Molder Beast=腐食獣 +Molten Psyche=溶鉄の精神 +Molten-Tail Masticore=溶鉄の尾のマスティコア +Moriok Reaver=モリオックの肉裂き +Moriok Replica=モリオックの模造品 +Mox Opal=オパールのモックス +Myr Battlesphere=マイアの戦闘球 +Myr Galvanizer=マイアの感電者 +Myr Propagator=マイアの繁殖者 +Myr Reservoir=マイアの貯蔵庫 +Myrsmith=マイア鍛冶 +Necrogen Censer=屍気の香炉 +Necrogen Scudder=屍気を飛ばすもの +Necropede=屍百足 +Necrotic Ooze=壊死のウーズ +Neurok Invisimancer=ニューロックの透術士 +Neurok Replica=ニューロックの模造品 +Nihil Spellbomb=虚無の呪文爆弾 +Nim Deathmantle=屍賊の死のマント +Ogre Geargrabber=オーガの装具奪い +Origin Spellbomb=起源の呪文爆弾 +Oxidda Daredevil=オキシダの向こう見ず +Oxidda Scrapmelter=オキシダの屑鉄溶かし +Painful Quandary=痛ましい苦境 +Painsmith=苦痛鍛冶 +Palladium Myr=パラジウムのマイア +Panic Spellbomb=恐慌の呪文爆弾 +Perilous Myr=危険なマイア +Plague Stinger=疫病のとげ刺し +Plated Seastrider=板金鎧の海うろつき +Platinum Emperion=白金の帝像 +Precursor Golem=先駆のゴーレム +Prototype Portal=試作品の扉 +Psychic Miasma=精神の瘴気 +Putrefax=化膿獣 +Quicksilver Gargantuan=水銀のガルガンチュアン +Ratchet Bomb=漸増爆弾 +Razorfield Thresher=剃刀ヶ原の打つもの +Razor Hippogriff=剃刀のヒポグリフ +Razorverge Thicket=剃刀境の茂み +Relic Putrescence=秘宝の腐敗 +Revoke Existence=存在の破棄 +Riddlesmith=謎鍛冶 +Rusted Relic=錆びた秘宝 +Rust Tick=錆ダニ +Saberclaw Golem=剣爪のゴーレム +Salvage Scout=回収の斥候 +Scoria Elemental=岩滓の精霊 +Scrapdiver Serpent=屑鉄潜りの海蛇 +Screeching Silcaw=金切り声のシルカウ +Seachrome Coast=金属海の沿岸 +Seize the Initiative=主導権の奪取 +Semblance Anvil=類似の金床 +Shape Anew=新たな造形 +Shatter=粉砕 +Silver Myr=銀のマイア +Skinrender=皮裂き +Skithiryx, the Blight Dragon=荒廃のドラゴン、スキジリクス +Sky-Eel School=空長魚の群れ +Slice in Twain=真っ二つ +Snapsail Glider=嵌め乗りの滑空者 +Soliton=ソリトン +Soul Parry=魂の受け流し +Spikeshot Elder=トゲ撃ちの古老 +Steady Progress=着実な進歩 +Steel Hellkite=鋼のヘルカイト +Stoic Rebuttal=冷静な反論 +Strata Scythe=地層の鎌 +Strider Harness=闊歩するものの装具 +Sunblast Angel=太陽破の天使 +Sunspear Shikari=太陽の槍のシカール +Sword of Body and Mind=肉体と精神の剣 +Sylvok Lifestaff=シルヴォクの生命杖 +Sylvok Replica=シルヴォクの模造品 +Tainted Strike=汚れた一撃 +Tangle Angler=絡み森の鮟鱇 +Tel-Jilad Defiance=テル=ジラードの抵抗 +Tel-Jilad Fallen=テル=ジラードの堕ちたる者 +Tempered Steel=鍛えられた鋼 +Throne of Geth=ゲスの玉座 +Thrummingbird=かき鳴らし鳥 +Tower of Calamities=災難の塔 +Trigon of Corruption=堕落の三角護符 +Trigon of Infestation=感染の三角護符 +Trigon of Mending=回復の三角護符 +Trigon of Rage=憤怒の三角護符 +Trigon of Thought=思考の三角護符 +Trinket Mage=粗石の魔道士 +True Conviction=真実の確信 +Tumble Magnet=転倒の磁石 +Tunnel Ignus=トンネルのイグナス +Turn Aside=取り繕い +Turn to Slag=金屑化 +Twisted Image=よじれた映像 +Untamed Might=荒々しき力 +Vault Skyward=空への跳躍 +Vector Asp=媒介のアスプ +Vedalken Certarch=ヴィダルケンのセルターチ +Venser's Journal=ヴェンセールの日誌 +Venser, the Sojourner=滞留者ヴェンセール +Vigil for the Lost=失われし者への祈り +Viridian Revel=ヴィリジアンのお祭り騒ぎ +Volition Reins=決断の手綱 +Vulshok Heartstoker=ヴァルショクの心臓焚き +Vulshok Replica=ヴァルショクの模造品 +Wall of Tanglecord=絡み線の壁 +Whitesun's Passage=白の太陽の通過 +Wing Puncture=風の突き刺し +Withstand Death=死への抵抗 +Wurmcoil Engine=ワームとぐろエンジン diff --git a/projects/mtg/bin/Res/lang/jp_cards.txt b/projects/mtg/bin/Res/lang/jp_cards.txt new file mode 100644 index 000000000..7809aeba6 --- /dev/null +++ b/projects/mtg/bin/Res/lang/jp_cards.txt @@ -0,0 +1,229 @@ +Abuna Acolyte=T:クリーチャー1体かプレイヤー1人を対象とする。このターン、次にそれに与えられるダメージを1点軽減する。 T:アーティファクト・クリーチャー1体を対象とする。このターン、次にそれに与えられるダメージを2点軽減する。 +Accorder's Shield=装備しているクリーチャーは+0/+3の修整を受けるとともに警戒を持つ。 装備3 +Acid Web Spider=到達 酸の巣の蜘蛛が戦場に出たとき、装備品1つを対象とする。あなたはそれを破壊してもよい。 +Alpha Tyrranax= +Arc Trail=クリーチャー1体かプレイヤー1人を対象とし、他のクリーチャー1体かプレイヤー1人を対象とする。電弧の痕跡はその前者に2点のダメージを与え、その後者に1点のダメージを与える。 +Argent Sphinx=飛行 金属術 ―U:銀白のスフィンクスを追放する。 次の終了ステップの開始時に、それをあなたのコントロール下で戦場に戻す。 この能力は、あなたが3つ以上のアーティファクトをコントロールしている場合にのみ起動できる。 +Argentum Armor=装備しているクリーチャーは+6/+6の修整を受ける。 装備しているクリーチャーが攻撃するたび、パーマネント1つを対象とし、それを破壊する。 装備6 +Arrest=エンチャント(クリーチャー) エンチャントされているクリーチャーは攻撃したりブロックしたりできず、それの起動型能力は起動できない。 +Asceticism=あなたがコントロールするクリーチャーは、あなたの対戦相手がコントロールする呪文や能力の対象にならない。 1G:クリーチャー1体を対象とし、それを再生する。 +Assault Strobe=クリーチャー1体を対象とする。それはターン終了時まで二段攻撃を得る。(それは先制攻撃と通常の2回の戦闘ダメージを与える。) +Auriok Edgewright=金属術―オーリオックの刃工は、あなたが3つ以上のアーティファクトをコントロールしているかぎり二段攻撃を持つ。 +Auriok Replica=W,オーリオックの模造品を生け贄に捧げる:このターン、あなたが選んだ発生源1つがあなたに与えるすべてのダメージを軽減する。 +Auriok Sunchaser=金属術―あなたが3つ以上のアーティファクトをコントロールしているかぎり、オーリオックの太陽追いは+2/+2の修整を受けるとともに飛行 を持つ。 +Barbed Battlegear=装備しているクリーチャーは+4/-1の修整を受ける。 装備2 +Barrage Ogre=T,アーティファクトを1つ生け贄に捧げる:クリーチャー1体かプレイヤー1人を対象とする。連射のオーガはそれに2点のダメージを与える。 +Bellowing Tanglewurm=威嚇(このクリーチャーはアーティファクト・クリーチャーかそれと共通の色を持つクリーチャー以外にはブロックされない。) あなたがコントロールする他の緑のクリーチャーは威嚇を持つ。 +Blackcleave Cliffs=あなたがコントロールしている他の土地が3つ以上であるかぎり、黒割れの崖はタップ状態で戦場に出る。 T:あなたのマナ・プールにBかRを加える。 +Blackcleave Goblin=速攻 感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) +Bladed Pinions=装備しているクリーチャーは飛行 と先制攻撃を持つ。 装備2 +Blade-Tribe Berserkers=金属術―刃族の狂戦士が戦場に出たとき、あなたが3つ以上のアーティファクトをコントロールしている場合、刃族の狂戦士はターン終了時まで+3/+3の修整を受けるとともに速攻を得る。 +Bleak Coven Vampires=金属術―冷たき集いの吸血鬼が戦場に出たとき、あなたが3つ以上のアーティファクトをコントロールしている場合、プレイヤー1人を対象とする。そのプレイヤーは4点のライフを失い、あなたは4点のライフを得る。 +Blight Mamba=感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) 1G:荒廃のマンバを再生する。 +Blistergrub=沼渡り 水膨れ地掘りが戦場からいずれかの墓地に置かれたとき、各対戦相手はそれぞれ2点のライフを失う。 +Bloodshot Trainee=T:クリーチャー1体を対象とする。血まなこの練習生はそれに4点のダメージを与える。 この能力は、血まなこの練習生のパワーが4以上の場合のみ起動できる。 +Blunt the Assault=あなたは戦場に出ているクリーチャー1体につき1点のライフを得る。 このターンに与えられるすべての戦闘ダメージを軽減する。 +Bonds of Quicksilver=瞬速(あなたはこの呪文を、あなたがインスタントを唱えられるときならいつでも唱えてよい。) エンチャント(クリーチャー) エンチャントされているクリーチャーは、それのコントローラーのアンタップ・ステップにアンタップしない。 +Carapace Forger=金属術―甲殻の鍛冶工は、あなたが3つ以上のアーティファクトをコントロールしているかぎり+2/+2の修整を受ける。 +Carnifex Demon=飛行 執行の悪魔は、-1/-1カウンターが2個置かれた状態で戦場に出る。 B,執行の悪魔から-1/-1カウンターを1個取り除く:他の各クリーチャーの上に-1/-1カウンターを1個置く。 +Carrion Call=感染を持つ緑の1/1の昆虫・クリーチャー・トークンを2体戦場に出す。(それらはクリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) +Cerebral Eruption=対戦相手1人を対象とする。そのプレイヤーは自分のライブラリーの一番上のカードを公開する。 知性の爆発はそのプレイヤーとそのプレイヤーがコントロールする各クリーチャーに、その公開されたカードの点数で見たマナ・コストに等しい点数のダメージを与える。 これにより土地カードが公開された場合、知性の爆発をオーナーの手札に戻す。 +Chimeric Mass=キマイラ的大群は、蓄積カウンターがX個置かれた状態で戦場に出る。 1:ターン終了時まで、キマイラ的大群は「このクリーチャーのパワーとタフネスは、それぞれそれの上に置かれている蓄積カウンターの数に等しい。」を持つ構築物・アーティファクト・クリーチャーになる。 +Chrome Steed=金属術―金属の駿馬は、あなたが3つ以上のアーティファクトをコントロールしているかぎり+2/+2の修整を受ける。 +Clone Shell=刻印―クローンの殻が戦場に出たとき、あなたのライブラリーの一番上から4枚のカードを見て、1枚を裏向きに追放し、その後その残りをあなたのライブラリーの一番下に望む順番で置く。 クローンの殻が戦場からいずれかの墓地に置かれたとき、その追放されたカードを表向きにする。 それがクリーチャー・カードである場合、それをあなたのコントロール下で戦場に出す。 +Contagion Clasp=伝染病の留め金が戦場に出たとき、クリーチャー1体を対象とし、それの上に-1/-1カウンターを1個置く。 4,T:増殖を行う。(あなたはカウンターの置かれているパーマネントやプレイヤーを望む数だけ選び、その後それぞれに、その上にすでに置かれているカウンターのうち1種類を1個置く。) +Contagion Engine=伝染病エンジンが戦場に出たとき、プレイヤー1人を対象とする。そのプレイヤーがコントロールする各クリーチャーの上に-1/-1カウンターを1個ずつ置く。 4,T:増殖を行い、その後再び増殖を行う。(あなたはカウンターの置かれているパーマネントやプレイヤーを望む数だけ選び、その後それぞれに、その上にすでに置かれているカウンターのうち1種類を1個置く。 その後、それを繰り返す。) +Contagious Nim=感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) +Copperhorn Scout=銅角笛の斥候が攻撃するたび、あなたがコントロールする他の各クリーチャーをアンタップする。 +Copperline Gorge=あなたがコントロールしている他の土地が3つ以上であるかぎり、銅線の地溝はタップ状態で戦場に出る。 T:あなたのマナ・プールにRかGを加える。 +Copper Myr=T:あなたのマナ・プールにGを加える。 +Corpse Cur=感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) 死体の野犬が戦場に出たとき、あなたの墓地にある感染を持つクリーチャー・カード1枚を対象とする。あなたはそれをあなたの手札に戻してもよい。 +Corrupted Harvester=B,クリーチャーを1体生け贄に捧げる:堕落した収穫者を再生する。 +Culling Dais=T,クリーチャーを1体生け贄に捧げる:選別の高座の上に蓄積カウンターを1個置く。 1,選別の高座を生け贄に捧げる:選別の高座の上に置かれていた蓄積カウンター1個につきカードを1枚引く。 +Cystbearer=感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) +Darkslick Drake=飛行 闇滑りのドレイクが戦場からいずれかの墓地に置かれたとき、カードを1枚引く。 +Darkslick Shores=あなたがコントロールしている他の土地が3つ以上であるかぎり、闇滑りの岸はタップ状態で戦場に出る。 T:あなたのマナ・プールにUかBを加える。 +Darksteel Axe=ダークスティールの斧は破壊されない。("破壊する"と書かれた効果では、それは破壊されない。) 装備しているクリーチャーは+2/+0の修整を受ける。 装備2 +Darksteel Juggernaut=ダークスティールの巨大戦車のパワーとタフネスは、それぞれあなたがコントロールするアーティファクトの総数に等しい。 ダークスティールの巨大戦車はは破壊されず、可能なら毎ターン攻撃する。 +Darksteel Myr=ダークスティールのマイアは破壊されない。(致死ダメージや"破壊する"効果ではそれは破壊されない。 それのタフネスが0以下である場合は、それはオーナーの墓地に置かれる。) +Darksteel Sentinel=瞬速(あなたはこの呪文を、あなたがインスタントを唱えられるときならいつでも唱えてよい。) 警戒 ダークスティールの歩哨は破壊されない。(致死ダメージや"破壊する"効果ではそれは破壊されない。 それのタフネスが0以下である場合は、それはオーナーの墓地に置かれる。) +Dispense Justice=プレイヤー1人を対象とする。そのプレイヤーは攻撃クリーチャーを1体生け贄に捧げる。 金属術―あなたが3つ以上のアーティファクトをコントロールしている場合、代わりにそのプレイヤーは攻撃クリーチャーを2体生け贄に捧げる。 +Disperse=土地でないパーマネント1つを対象とし、それをオーナーの手札に戻す。 +Dissipation Field=いずれかのパーマネントがあなたにダメージを与えるたび、それをオーナーの手札に戻す。 +Dross Hopper=クリーチャーを1体生け贄に捧げる:ドロスバッタはターン終了時まで飛行 を得る。 +Echo Circlet=装備しているクリーチャーは、さらに1体のクリーチャーをブロックできる。 装備1 +Elspeth Tirel=+2: あなたはあなたがコントロールするクリーチャー1体につき1点のライフを得る。 -2: 白の1/1の兵士・クリーチャー・トークンを3体戦場に出す。 -5: 土地とトークンを除く他のすべてのパーマネントを破壊する 。 +Embersmith=あなたがアーティファクト呪文を1つ唱えるたび、クリーチャー1体かプレイヤー1人を対象とする。あなたはあなたは1を支払ってもよい。 そうした場合、燃えさし鍛冶はそれに1点のダメージを与える。 +Engulfing Slagwurm=飲み込む金屑ワームがクリーチャー1体をブロックするかクリーチャー1体にブロックされた状態になるたび、そのクリーチャーを破壊する。 あなたはそのクリーチャーのタフネスに等しい点数のライフを得る。 +Etched Champion=金属術―刻まれた勇者は、あなたが3つ以上のアーティファクトをコントロールしているかぎり、プロテクション(すべての色) を持つ。 +Exsanguinate=各対戦相手はそれぞれX点のライフを失う。 あなたはこれにより失われたライフに等しい点数のライフを得る。 +Ezuri, Renegade Leader=G:他のエルフ1体を対象とし、それを再生する。 2GGG:あなたがコントロールするエルフ・クリーチャーは、ターン終了時まで+3/+3の修整を受けるとともにトランプルを得る。 +Ezuri's Archers=到達(このクリーチャーは飛行 を持つクリーチャーをブロックできる。) エズーリの射手が飛行 を持つクリーチャーを1体ブロックするたび、エズーリの射手はターン終了時まで+3/+0の修整を受ける。 +Ezuri's Brigade=金属術―あなたが3つ以上のアーティファクトをコントロールしているかぎり、エズーリの大部隊は+4/+4の修整を受けるとともにトランプルを持つ。 +Ferrovore=R,アーティファクトを1つ生け贄に捧げる:鉄を食うものは、ターン終了時まで+3/+0の修整を受ける。 +Flameborn Hellion=速攻 炎生まれのヘリオンは可能なら毎ターン攻撃する。 +Flesh Allergy=肉体アレルギーを唱えるための追加コストとして、クリーチャーを1体生け贄に捧げる。 クリーチャー1体を対象とし、それを破壊する。 それのコントローラーは、このターン、戦場からすべての墓地に置かれたクリーチャーの数に等しい点数のライフを失う。 +Flight Spellbomb=T,飛行 の呪文爆弾を生け贄に捧げる:クリーチャー1体を対象とする。それはターン終了時まで飛行 を得る。 飛行 の呪文爆弾が戦場からいずれかの墓地に置かれたとき、あなたはUを支払ってもよい。 そうした場合、カードを1枚引く。 +Fulgent Distraction=クリーチャー2体を対象とする。 それらをタップし、その後それらからすべての装備品をはずす。 +Fume Spitter=煙霧吐きを生け贄に捧げる:クリーチャー1体を対象とし、それの上に-1/-1カウンターを1個置く。 +Furnace Celebration=あなたが他のパーマネントを生け贄に捧げるたび、クリーチャー1体かプレイヤー1人を対象とする。あなたは2を支払ってもよい。 そうした場合、炉の式典はそれに2点のダメージを与える。 +Galvanic Blast=クリーチャー1体かプレイヤー1人を対象とする。感電破はそれに2点のダメージを与える。 金属術―あなたが3つ以上のアーティファクトをコントロールしているかぎり、代わりに感電破はそのクリーチャーやプレイヤーに4点のダメージを与える。 +Genesis Wave=あなたのライブラリーの一番上からX枚のカードを公開する。 あなたはその中の点数で見たマナ・コストがX以下であるパーマネント・カードを、望む枚数戦場に出してもよい。 その後、これにより公開されて戦場に出されなかったすべてのカードをあなたの墓地に置く。 +Geth, Lord of the Vault=威嚇XB:いずれかの対戦相手の墓地にある点数で見たマナ・コストがXの、アーティファクト・カード1枚かクリーチャー・カード1枚を対象とし、それをあなたのコントロール下でタップ状態で戦場に出す。 その後、そのプレイヤーは、自分のライブラリーの一番上からX枚のカードを自分の墓地に置く。 +Ghalma's Warden=金属術―ガルマの保護者は、あなたが3つ以上のアーティファクトをコントロールしているかぎり+2/+2の修整を受ける。 +Glimmerpoint Stag=警戒 微光角の鹿が戦場に出たとき、他のパーマネント1つを対象とし、それを追放する。 次の終了ステップの開始時に、そのカードをオーナーのコントロール下で戦場に出す。 +Glimmerpost=微光地が戦場に出たとき、あなたは戦場に出ている神座1つにつき1点のライフを得る。 T:あなたのマナ・プールに1を加える。 +Glint Hawk Idol=他のアーティファクトが1つあなたのコントロール下で戦場に出るたび、あなたは「きらめく鷹の偶像は、ターン終了時まで飛行 を持つ2/2のアーティファクト・クリーチャーになる。」を選んでもよい。 W:きらめく鷹の偶像は、ターン終了時まで飛行 を持つ2/2のアーティファクト・クリーチャーになる。 +Glint Hawk=飛行 きらめく鷹が戦場に出たとき、あなたがコントロールするアーティファクト1つをオーナーの手札に戻さないかぎり、それを生け贄に捧げる。 +Goblin Gaveleer=トランプル ゴブリンの小槌打ちは、それにつけられている装備品1つにつき+2/+0の修整を受ける。 +Golden Urn=あなたのアップキープの開始時に、あなたは黄金の甕の上に蓄積カウンターを1個置いてもよい。 T,黄金の甕を生け贄に捧げる:あなたは黄金の甕に置かれていた蓄積カウンターの数に等しい点数のライフを得る。 +Gold Myr=T:あなたのマナ・プールにWを加える。 +Golem Artisan=2:アーティファクト・クリーチャー1体を対象とする。それはターン終了時まで+1/+1の修整を受ける。 2:アーティファクト・クリーチャー1体を対象とする。それはターン終了時まで、飛行 かトランプルか速攻のうちあなたが選んだ1つを得る。 +Golem Foundry=あなたがアーティファクト呪文を1つ唱えるたび、あなたはゴーレムの鋳造所の上に蓄積カウンターを1個置いてもよい。 ゴーレムの鋳造所から蓄積カウンターを3個取り除く:無色の3/3のゴーレム・アーティファクト・クリーチャー・トークンを1体戦場に出す。 +Golem's Heart=いずれかのプレイヤーがアーティファクト呪文を1つ唱えるたび、あなたは1点のライフを得てもよい。 +Grafted Exoskeleton=装備しているクリーチャーは+2/+2の修整を受けるとともに感染を持つ。(それはクリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) 生体融合外骨格がいずれかのパーマネントからはずれるたび、そのパーマネントを生け贄に捧げる。 装備2 +Grand Architect=あなたがコントロールする他の青のクリーチャーは+1/+1の修整を受ける。 U:アーティファクト・クリーチャー1体を対象とする。ターン終了時まで、それは青になる。 あなたがコントロールするアンタップ状態の青のクリーチャーを1体タップする:あなたのマナ・プールに2を加える。 このマナは、アーティファクト呪文を唱えるためか、アーティファクトの能力を起動するためにのみ支払える。 +Grasp of Darkness=クリーチャー1体を対象とする。それはターン終了時まで-4/-4の修整を受ける。 +Grindclock=T:研磨時計の上に蓄積カウンターを1個置く。 T:プレイヤー1人を対象とする。そのプレイヤーのライブラリーの一番上からX枚のカードをそのプレイヤーの墓地に置く。Xはその研磨時計の上に置かれている蓄積カウンターの数に等しい。 +Halt Order=アーティファクト呪文1つを対象とし、それを打ち消す。 カードを1枚引く。 +Hand of the Praetors=感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) あなたがコントロールする他の感染を持つクリーチャーは+1/+1の修整を受ける。 あなたが感染を持つクリーチャー呪文を1つ唱えるたび、プレイヤー1人を対象とする。そのプレイヤーは毒カウンターを1個得る。 +Heavy Arbalest=装備しているクリーチャーは、それのコントローラーのアンタップ・ステップにアンタップしない。 装備しているクリーチャーは「T:クリーチャー1体かプレイヤー1人を対象とする。このクリーチャーはそれに2点のダメージを与える。」を持つ。 装備4 +Hoard-Smelter Dragon=飛行 3R:アーティファクト1つを対象とし、それを破壊する。 蔵製錬のドラゴンはターン終了時まで+X/+0の修整を受ける。Xはそのアーティファクトの点数で見たマナ・コストに等しい。 +Horizon Spellbomb=2,T,地平線の呪文爆弾を生け贄に捧げる:あなたのライブラリーから基本土地カードを1枚探し、それを公開してあなたの手札に加える。 その後あなたのライブラリーを切り直す。 地平線の呪文爆弾が戦場からいずれかの墓地に置かれたとき、あなたはGを支払ってもよい。 そうした場合、カードを1枚引く。 +Ichorclaw Myr=感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) 胆液爪のマイアがブロックされた状態になるたび、それはターン終了時まで+2/+2の修整を受ける。 +Ichor Rats=感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) 胆液の鼠が戦場に出たとき、各プレイヤーはそれぞれ毒カウンターを1個得る。 +Indomitable Archangel=飛行 金属術―あなたが3つ以上のアーティファクトをコントロールしているかぎり、あなたがコントロールするアーティファクトは被覆を持つ。 +Inexorable Tide=あなたが呪文を1つ唱えるたび、増殖を行う。(あなたはカウンターの置かれているパーマネントやプレイヤーを望む数だけ選び、その後それぞれに、その上にすでに置かれているカウンターのうち1種類を1個置く。) +Infiltration Lens=装備しているクリーチャーがクリーチャー1体にブロックされた状態になるたび、あなたはカードを2枚引いてもよい。 装備1 +Instill Infection=クリーチャー1体を対象とし、それの上に-1/-1カウンターを1個置く。 カードを1枚引く。 +Iron Myr=T:あなたのマナ・プールにRを加える。 +Kemba, Kha Regent=あなたのアップキープの開始時に、王の摂政、ケンバにつけられている装備品1つにつき、白の2/2の猫・クリーチャー・トークンを1体戦場に出す。 +Kemba's Skyguard=飛行 ケンバの空護衛が戦場に出たとき、あなたは2点のライフを得る。 +Koth of the Hammer=+1: 山を1つ対象とし、それをアンタップする。 それはターン終了時まで、赤の4/4のエレメンタル・クリーチャーになる。 それは土地でもある。 -2: あなたがコントロールする山1つにつき、あなたのマナ・プールにRを加える。 -5: あなたは「あなたがコントロールする山は『T:クリーチャー1体かプレイヤー1人を対象とする。この土地はそれに1点のダメージを与える。』を持つ。」を持つ紋章を得る。 +Kuldotha Forgemaster=T,アーティファクトを3つ生け贄に捧げる:あなたのライブラリーからアーティファクト・カードを1枚探し、それを戦場に出す。 その後あなたのライブラリーを切り直す。 +Kuldotha Phoenix=飛行 、速攻 金属術 ―4:あなたの墓地にあるカルドーサのフェニックスを戦場に戻す。 この能力は、あなたのアップキープの間に、あなたが3つ以上のアーティファクトをコントロールしている場合にのみ起動できる。 +Kuldotha Rebirth=カルドーサの再誕を唱えるための追加コストとして、アーティファクトを1つ生け贄に捧げる。 赤の1/1のゴブリン・クリーチャー・トークンを3体戦場に出す。 +Leaden Myr=T:あなたのマナ・プールにBを加える。 +Leonin Arbiter=プレイヤーはライブラリーから探せない。 いずれのプレイヤーも2を支払ってもよい。そうしたなら、ターン終了時まで、そのプレイヤーはこの効果を無視する。 +Liege of the Tangle=トランプル 絡み森の主がいずれかのプレイヤーに戦闘ダメージを与えるたび、望む数のあなたがコントロールする土地を対象とする。あなたはそれらの上に、それぞれ覚醒カウンターを1個ずつ置いてもよい。 それらの各土地は、覚醒カウンターが置かれ続けているかぎり、緑の8/8のエレメンタル・クリーチャーである。 それらは土地でもある。 +Lifesmith=あなたがアーティファクト呪文を1つ唱えるたび、あなたは1を支払ってもよい。 そうした場合、あなたは3点のライフを得る。 +Liquimetal Coating=T:パーマネント1つを対象とする。ターン終了時まで、それは他のタイプに加えてアーティファクトになる。 +Livewire Lash=装備しているクリーチャーは+2/+0の修整を受けるとともに「このクリーチャーが呪文1つの対象になるたび、クリーチャー1体かプレイヤー1人を対象とする。このクリーチャーはそれに2点のダメージを与える」を持つ。 装備2 +Loxodon Wayfarer= +Lumengrid Drake=飛行 金属術―ルーメングリッドのドレイクが戦場に出たとき、あなたが3つ以上のアーティファクトをコントロールしている場合、クリーチャー1体を対象とし、それをオーナーの手札に戻す。 +Lux Cannon=T:光明の大砲の上に蓄積カウンターを1個置く。 T,光明の大砲から蓄積カウンターを3個取り除く:パーマネント1つを対象とし、それを破壊する。 +Melt Terrain=土地1つを対象とし、それを破壊する。 地形の融解はその土地のコントローラーに2点のダメージを与える。 +Memnite= +Memoricide=プレイヤー1人を対象とする。土地でないカード名を1つ指定する。 そのプレイヤーの墓地と手札とライブラリーから、その名前を持つカードを望む枚数探し、それらを追放する。 その後、そのプレイヤーは自分のライブラリーを切り直す。 +Mimic Vat=刻印―トークンでないクリーチャーが1体戦場からいずれかの墓地に置かれるたび、あなたはそのカードを追放してもよい。そうした場合、ミミックの大桶により追放された他の各カードをオーナーの墓地に戻す。 3,T:その追放されているカードのコピーであるトークンを1体戦場に出す。それは速攻を得る。 次の終了ステップの開始時に、それを追放する。 +Mindslaver=4,T,精神隷属器を生け贄に捧げる:プレイヤー1人を対象とする。あなたはそのプレイヤーの次のターンをコントロールする。(あなたはそのプレイヤーが見ることのできるカードをすべて見て、そのプレイヤーが行うすべての決定を行う。) +Molder Beast=トランプル アーティファクトが1つ戦場からいずれかの墓地に置かれるたび、腐食獣はターン終了時まで+2/+0の修整を受ける。 +Molten Psyche=各プレイヤーは、自分の手札を自分のライブラリーに加えて切り直し、その後その枚数に等しいカードを引く。 金属術―あなたが3つ以上のアーティファクトをコントロールしている場合、溶鉄の精神は各対戦相手に、このターンにそのプレイヤーが引いたカードの枚数に等しい点数のダメージを与える。 +Molten-Tail Masticore=あなたのアップキープの開始時に、あなたがカードを1枚捨てないかぎり、溶鉄の尾のマスティコアを生け贄に捧げる。 4,あなたの墓地にあるクリーチャー・カードを1枚追放する:クリーチャー1体かプレイヤー1人を対象とする。溶鉄の尾のマスティコアはそれに4点のダメージを与える。 2:溶鉄の尾のマスティコアを再生する。 +Moriok Reaver= +Moriok Replica=1B,モリオックの模造品を生け贄に捧げる:あなたはカードを2枚引き、2点のライフを失う。 +Mox Opal=金属術 ―T:あなたのマナ・プールに、好きな色1色のマナ1点を加える。 この能力は、あなたが3つ以上のアーティファクトをコントロールしている場合にのみ起動できる。 +Myr Battlesphere=マイアの戦闘球が戦場に出たとき、無色の1/1のマイア・アーティファクト・クリーチャー・トークンを4体戦場に出す。 マイアの戦闘球が攻撃するたび、あなたはあなたがコントロールするアンタップ状態のマイアをX体タップしてもよい。 そうした場合、マイアの戦闘球はターン終了時まで+X/+0の修整を受けるとともに、防御プレイヤーにX点のダメージを与える。 +Myr Galvanizer=あなたがコントロールする他のマイア・クリーチャーは+1/+1の修整を受ける。 1,T:あなたがコントロールする他の各マイアをアンタップする。 +Myr Propagator=3,T:マイアの繁殖者のコピーであるトークンを1体戦場に出す。 +Myr Reservoir=T:あなたのマナ・プールに2を加える。 このマナは、マイア呪文を唱えるためか、マイアの能力を起動するためにのみ支払える。 3,T:あなたの墓地にあるマイア・カード1枚を対象とし、それをあなたの手札に戻す。 +Myrsmith=あなたがアーティファクト呪文を1つ唱えるたび、あなたは1を支払ってもよい。 そうした場合、無色の1/1のマイア・アーティファクト・クリーチャー・トークンを1体戦場に出す。 +Necrogen Censer=屍気の香炉は、蓄積カウンターが2個置かれた状態で戦場に出る。 T,屍気の香炉から蓄積カウンターを1個取り除く:プレイヤー1人を対象とする。そのプレイヤーは2点のライフを失う。 +Necrogen Scudder=飛行 屍気を飛ばすものが戦場に出たとき、あなたは3点のライフを失う。 +Necropede=感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) 屍百足が戦場からいずれかの墓地に置かれたとき、クリーチャー1体を対象とする。あなたはそれの上に-1/-1カウンターを1個置いてもよい。 +Necrotic Ooze=壊死のウーズが戦場に出ているかぎり、それはすべての墓地にあるすべてのクリーチャー・カードの起動型能力を持つ。 +Neurok Invisimancer=ニューロックの透術士はブロックされない。 ニューロックの透術士が戦場に出たとき、クリーチャー1体を対象とする。このターン、それはブロックされない。 +Neurok Replica=1U,ニューロックの模造品を生け贄に捧げる:クリーチャー1体を対象とし、それをオーナーの手札に戻す。 +Nihil Spellbomb=T,虚無の呪文爆弾を生け贄に捧げる:プレイヤー1人を対象とし、そのプレイヤーの墓地にあるすべてのカードを追放する。 虚無の呪文爆弾が戦場からいずれかの墓地に置かれたとき、あなたはBを支払ってもよい。 そうした場合、カードを1枚引く。 +Nim Deathmantle=装備しているクリーチャーは+2/+2の修整を受けるともに威嚇を持ち、黒のゾンビである。 トークンでないクリーチャーが1体戦場からあなたの墓地に置かれるたび、あなたは4を支払ってもよい。 そうした場合、そのカードを戦場に戻し、屍賊の死のマントをそれにつける。 装備4 +Ogre Geargrabber=オーガの装具奪いが攻撃するたび、いずれかの対戦相手がコントロールする装備品1つを対象とし、ターン終了時までそれのコントロールを得る。 それをオーガの装具奪いにつける。 あなたがその装備品のコントロールを失ったとき、それをはずす。 +Origin Spellbomb=1,T,起源の呪文爆弾を生け贄に捧げる:無色の1/1のマイア・アーティファクト・クリーチャー・トークンを1体戦場に出す。 起源の呪文爆弾が戦場からいずれかの墓地に置かれたとき、あなたはWを支払ってもよい。 そうした場合、カードを1枚引く。 +Oxidda Daredevil=アーティファクトを1つ生け贄に捧げる:オキシダの向こう見ずはターン終了時まで速攻を得る。 +Oxidda Scrapmelter=オキシダの屑鉄溶かしが戦場に出たとき、アーティファクト1つを対象とし、それを破壊する。 +Painful Quandary=いずれかの対戦相手が呪文を1つ唱えるたび、そのプレイヤーはカードを1枚捨てないかぎり5点のライフを失う。 +Painsmith=あなたがアーティファクト呪文を1つ唱えるたび、クリーチャー1体を対象とする。あなたは「それはターン終了時まで+2/+0の修整を受けるとともに接死を得る。」を選んでもよい。 +Palladium Myr=T:あなたのマナ・プールに2を加える。 +Panic Spellbomb=T,恐慌の呪文爆弾を生け贄に捧げる:クリーチャー1体を対象とする。このターン、それではブロックできない。 恐慌の呪文爆弾が戦場からいずれかの墓地に置かれたとき、あなたはRを支払ってもよい。 そうした場合、カードを1枚引く。 +Perilous Myr=危険なマイアが戦場からいずれかの墓地に置かれたとき、クリーチャー1体かプレイヤー1人を対象とする。危険なマイアはそれに2点のダメージを与える。 +Plague Stinger=飛行 感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) +Plated Seastrider= +Platinum Emperion=あなたのライフの総量は変化しない。(あなたはライフを得ることも失うこともできない。 あなたはライフを0点以外支払うことができない。) +Precursor Golem=先駆のゴーレムが戦場に出たとき、無色の3/3のゴーレム・アーティファクト・クリーチャー・トークンを2体戦場に出す。 いずれかのプレイヤーが、ゴーレム1体のみを対象とする、インスタント呪文かソーサリー呪文を1つ唱えるたび、そのプレイヤーはその呪文を、その呪文が対象にできる他の各ゴーレム1体につき1回コピーする。 それぞれのコピーは、それらのゴーレムのうち別々のものを対象とする。 +Prototype Portal=刻印―試作品の扉が戦場に出たとき、あなたはあなたの手札にあるアーティファクト・カードを1枚追放してもよい。 X,T:その追放されているカードのコピーであるトークンを1つ戦場に出す。 Xはそのカードの点数で見たマナ・コストに等しい。 +Psychic Miasma=プレイヤー1人を対象とする。そのプレイヤーはカードを1枚捨てる。 これにより土地カードが捨てられた場合、精神の瘴気をオーナーの手札に戻す。 +Putrefax=トランプル、速攻 感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) 終了ステップの開始時に、化膿獣を生け贄に捧げる。 +Quicksilver Gargantuan=あなたは「水銀のガルガンチュアンは7/7のままであることを除いて、戦場に出ているいずれかのクリーチャーのコピーとして戦場に出る。」を選んでもよい。 +Ratchet Bomb=T:漸増爆弾の上に蓄積カウンターを1個置く。 T,漸増爆弾を生け贄に捧げる:点数で見たマナ・コストが漸増爆弾の上に置かれていた蓄積カウンターの数に等しい土地でない各パーマネントを破壊する。 +Razorfield Thresher= +Razor Hippogriff=飛行 剃刀のヒポグリフが戦場に出たとき、あなたの墓地にあるアーティファクト・カード1枚を対象とし、それをあなたの手札に戻す。 あなたはそのカードの点数で見たマナ・コストに等しい点数のライフを得る。 +Razorverge Thicket=あなたがコントロールしている他の土地が3つ以上であるかぎり、剃刀境の茂みはタップ状態で戦場に出る。 T:あなたのマナ・プールにGかWを加える。 +Relic Putrescence=エンチャント(アーティファクト) エンチャントされているアーティファクトがタップ状態になるたび、それのコントローラーは毒カウンターを1個得る。 +Revoke Existence=アーティファクト1つかエンチャント1つを対象とし、それを追放する。 +Riddlesmith=あなたがアーティファクト呪文を1つ唱えるたび、あなたはカードを1枚引いてもよい。そうした場合、カードを1枚捨てる。 +Rusted Relic=金属術―錆びた秘宝は、あなたが3つ以上のアーティファクトをコントロールしているかぎり5/5のゴーレム・アーティファクト・クリーチャーである。 +Rust Tick=あなたは、あなたのアンタップ・ステップに錆ダニをアンタップしないことを選んでもよい。 1,T:アーティファクト1つを対象とし、それをタップする。 それは錆ダニがタップ状態であり続けるかぎり、それのコントローラーのアンタップ・ステップにアンタップしない。 +Saberclaw Golem=R:剣爪のゴーレムはターン終了時まで先制攻撃を得る。 +Salvage Scout=W,回収の斥候を生け贄に捧げる:あなたの墓地にあるアーティファクト・カード1枚を対象とし、それをあなたの手札に戻す。 +Scoria Elemental= +Scrapdiver Serpent=屑鉄潜りの海蛇は、防御プレイヤーがアーティファクトをコントロールしているかぎりブロックされない。 +Screeching Silcaw=飛行 金属術―金切り声のシルカウがいずれかのプレイヤーに戦闘ダメージを与えるたび、あなたが3つ以上のアーティファクトをコントロールしている場合、そのプレイヤーは自分のライブラリーの一番上から4枚のカードを自分の墓地に置く。 +Seachrome Coast=あなたがコントロールしている他の土地が3つ以上であるかぎり、金属海の沿岸はタップ状態で戦場に出る。 T:あなたのマナ・プールにWかUを加える。 +Seize the Initiative=クリーチャー1体を対象とする。それはターン終了時まで+1/+1の修整を受けるとともに先制攻撃を得る。 +Semblance Anvil=刻印―類似の金床が戦場に出たとき、あなたはあなたの手札にある土地でないカードを1枚追放してもよい。 あなたがその追放されているカードと共通のカード・タイプを持つ呪文を唱えるためのコストは2少なくなる。 +Shape Anew=アーティファクト1つを対象とする。それのコントローラーはそれを生け贄に捧げる。そのプレイヤーは、自分のライブラリーのカードを一番上から、アーティファクト・カードが公開されるまで公開し続ける。 そのプレイヤーはそのカードを戦場に出し、その後、これにより公開された他のすべてのカードを自分のライブラリーに加えて切り直す。 +Shatter=アーティファクト1つを対象とし、それを破壊する。 +Silver Myr=T:あなたのマナ・プールにUを加える。 +Skinrender=皮裂きが戦場に出たとき、クリーチャー1体を対象とし、それの上に-1/-1カウンターを3個置く。 +Skithiryx, the Blight Dragon=飛行 感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) B:荒廃のドラゴン、スキジリクスはターン終了時まで速攻を得る。 BB:荒廃のドラゴン、スキジリクスを再生する。 +Sky-Eel School=飛行 空長魚の群れが戦場に出たとき、カードを1枚引き、その後カードを1枚捨てる。 +Slice in Twain=アーティファクト1つかエンチャント1つを対象とし、それを破壊する。 カードを1枚引く。 +Snapsail Glider=金属術―嵌め乗りの滑空者は、あなたが3つ以上のアーティファクトをコントロールしているかぎり飛行 を持つ。 +Soliton=U:ソリトンをアンタップする。 +Soul Parry=クリーチャーを1体か2体対象とする。このターン、それらから与えられるすべてのダメージを軽減する。 +Spikeshot Elder=1RR:クリーチャー1体かプレイヤー1人を対象とする。トゲ撃ちの古老はそれに、自身のパワーに等しい点数のダメージを与える。 +Steady Progress=増殖を行う。(あなたはカウンターの置かれているパーマネントやプレイヤーを望む数だけ選び、その後それぞれに、その上にすでに置かれているカウンターのうち1種類を1個置く。) カードを1枚引く。 +Steel Hellkite=飛行 2:鋼のヘルカイトはターン終了時まで+1/+0の修整を受ける。 X:このターン、鋼のヘルカイトに戦闘ダメージを与えられたプレイヤーがコントロールする点数で見たマナ・コストがXの土地でない各パーマネントを破壊する。 この能力は、毎ターン1回のみ起動できる。 +Stoic Rebuttal=金属術―あなたが3つ以上のアーティファクトをコントロールしている場合、冷静な反論を唱えるためのコストは1少なくなる。 呪文1つを対象とし、それを打ち消す。 +Strata Scythe=刻印―地層の鎌が戦場に出たとき、あなたはあなたのライブラリーから土地カードを1枚探し、それを追放し、その後あなたのライブラリーを切り直す。 装備しているクリーチャーは、その追放されているカードと同じ名前を持つ戦場に出ている土地1つにつき+1/+1の修整を受ける。 装備3 +Strider Harness=装備しているクリーチャーは+1/+1の修整を受けるとともに速攻を持つ。 装備1 +Sunblast Angel=飛行 太陽破の天使が戦場に出たとき、すべてのタップ状態のクリーチャーを破壊する。 +Sunspear Shikari=太陽の槍のシカールが装備しているかぎり、それは先制攻撃と絆魂を持つ。 +Sword of Body and Mind=装備しているクリーチャーは、+2/+2の修整を受けるとともにプロテクション(緑) とプロテクション(青) を持つ。 装備しているクリーチャーがいずれかのプレイヤーに戦闘ダメージを与えるたび、あなたは緑の2/2の狼・クリーチャー・トークンを1体戦場に出し、そのプレイヤーは自分のライブラリーの一番上から10枚のカードをそのプレイヤーの墓地に置く。 装備2 +Sylvok Lifestaff=装備しているクリーチャーは+1/+0の修整を受ける。 装備しているクリーチャーがいずれかの墓地に置かれるたび、あなたは3点のライフを得る。 装備1 +Sylvok Replica=G,シルヴォクの模造品を生け贄に捧げる:アーティファクト1つかエンチャント1つを対象とし、それを破壊する。 +Tainted Strike=クリーチャー1体を対象とする。それはターン終了時まで+1/+0の修整を受けるとともに感染を得る。(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) +Tangle Angler=感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) G:クリーチャー1体を対象とする。このターン、それは可能なら絡み森の鮟鱇をブロックする。 +Tel-Jilad Defiance=クリーチャー1体を対象とする。それはターン終了時までプロテクション(アーティファクト) を得る。 カードを1枚引く。 +Tel-Jilad Fallen=プロテクション(アーティファクト) 感染(このクリーチャーは、クリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) +Tempered Steel=あなたがコントロールするアーティファクト・クリーチャーは+2/+2の修整を受ける。 +Throne of Geth=T,アーティファクトを1つ生け贄に捧げる:増殖を行う。(あなたはカウンターの置かれているパーマネントやプレイヤーを望む数だけ選び、その後それぞれに、その上にすでに置かれているカウンターのうち1種類を1個置く。) +Thrummingbird=飛行 かき鳴らし鳥がいずれかのプレイヤーに戦闘ダメージを与えるたび、増殖を行う。(あなたはカウンターの置かれているパーマネントやプレイヤーを望む数だけ選び、その後それぞれに、その上にすでに置かれているカウンターのうち1種類を1個置く。) +Tower of Calamities=8,T:クリーチャー1体を対象とする。災難の塔はそれに12点のダメージを与える。 +Trigon of Corruption=堕落の三角護符は、蓄積カウンターが3個置かれた状態で戦場に出る。 BB,T:堕落の三角護符の上に蓄積カウンターを1個置く。 2,T,堕落の三角護符から蓄積カウンターを1個取り除く:クリーチャー1体を対象とし、それの上に-1/-1カウンターを1個置く。 +Trigon of Infestation=感染の三角護符は、蓄積カウンターが3個置かれた状態で戦場に出る。 GG,T:感染の三角護符の上に蓄積カウンターを1個置く。 2,T,感染の三角護符から蓄積カウンターを1個取り除く:感染を持つ緑の1/1の昆虫・クリーチャー・トークンを1体戦場に出す。 +Trigon of Mending=回復の三角護符は、蓄積カウンターが3個置かれた状態で戦場に出る。 WW,T:回復の三角護符の上に蓄積カウンターを1個置く。 2,T,回復の三角護符から蓄積カウンターを1個取り除く:プレイヤー1人を対象とする。そのプレイヤーは3点のライフを得る。 +Trigon of Rage=憤怒の三角護符は、蓄積カウンターが3個置かれた状態で戦場に出る。 RR,T:憤怒の三角護符の上に蓄積カウンターを1個置く。 2,T,憤怒の三角版から蓄積カウンターを1個取り除く:クリーチャー1体を対象とする。それはターン終了時まで+3/+0の修整を受ける。 +Trigon of Thought=思考の三角護符は、蓄積カウンターが3個置かれた状態で戦場に出る。 UU,T:思考の三角護符の上に蓄積カウンターを1個置く。 2,T,思考の三角護符から蓄積カウンターを1個取り除く:カードを1枚引く。 +Trinket Mage=粗石の魔道士が戦場に出たとき、あなたは自分のライブラリーから点数で見たマナ・コストが1以下のアーティファクト・カードを1枚探し、公開してあなたの手札に加えてもよい。 そうした場合、あなたのライブラリーを切り直す。 +True Conviction=あなたがコントロールするクリーチャーは二段攻撃と絆魂を持つ。 +Tumble Magnet=転倒の磁石は、蓄積カウンターが3個置かれた状態で戦場に出る。 T,転倒の磁石から蓄積カウンターを1個取り除く:アーティファクト1つかクリーチャー1体を対象とし、それをタップする。 +Tunnel Ignus=土地が1ついずれかの対戦相手のコントロール下で戦場に出るたび、このターンそのプレイヤーが他の土地を自分のコントロール下で戦場に出していた場合、トンネルのイグナスはそのプレイヤーに3点のダメージを与える。 +Turn Aside=あなたがコントロールするパーマネントを対象とする呪文1つを対象とし、それを打ち消す。 +Turn to Slag=クリーチャー1体を対象とする。金屑化はそれに5点のダメージを与える。 それにつけられているすべての装備品を破壊する。 +Twisted Image=クリーチャー1体を対象とする。ターン終了時まで、それのパワーとタフネスを入れ替える。 カードを1枚引く。 +Untamed Might=クリーチャー1体を対象とする。それはターン終了時まで+X/+Xの修整を受ける。 +Vault Skyward=クリーチャー1体を対象とする。それはターン終了時まで飛行 を得る。 それをアンタップする。 +Vector Asp=B:媒介のアスプは、ターン終了時まで感染を得る。(それはクリーチャーに-1/-1カウンターの形でダメージを与え、プレイヤーに毒カウンターの形でダメージを与える。) +Vedalken Certarch=T:アーティファクト1つかクリーチャー1体か土地1つを対象とし、それをタップする。 この能力は、あなたが3つ以上のアーティファクトをコントロールしている場合にのみ起動できる。 +Venser's Journal=あなたの手札の上限はなくなる。 あなたのアップキープの開始時に、あなたはあなたの手札のカード1枚につき1点のライフを得る。 +Venser, the Sojourner=+2: あなたがオーナーであるパーマネント1つを対象とし、それを追放する。 次の終了ステップの開始時に、それをあなたのコントロール下で戦場に戻す。 -1: このターン、クリーチャーはブロックされない。 -8: あなたは「あなたが呪文を1つ唱えるたび、パーマネント1つを対象とし、それを追放する。」を持つ紋章を得る。 +Vigil for the Lost=あなたコントロールするクリーチャーが1体戦場からいずれかの墓地に置かれるたび、あなたはXを支払ってもよい。 そうした場合、あなたはX点のライフを得る。 +Viridian Revel=アーティファクトが1つ戦場からいずれかの対戦相手の墓地に置かれるたび、あなたはカードを1枚引いてもよい。 +Volition Reins=エンチャント(パーマネント) 決断の手綱が戦場に出たとき、それがエンチャントされているパーマネントがタップ状態の場合、アンタップする。 あなたはエンチャントされているパーマネントをコントロールする。 +Vulshok Heartstoker=ヴァルショクの心臓焚きが戦場に出たとき、クリーチャー1体を対象とする。それはターン終了時まで+2/+0の修整を受ける。 +Vulshok Replica=1R,ヴァルショクの模造品を生け贄に捧げる:プレイヤー1人を対象とする。ヴァルショクの模造品はそのプレイヤーに3点のダメージを与える。 +Wall of Tanglecord=防衛 G:絡み線の壁はターン終了時まで到達を得る。(それは飛行 を持つクリーチャーをブロックできる。) +Whitesun's Passage=あなたは5点のライフを得る。 +Wing Puncture=あなたがコントロールするクリーチャー1体と、飛行 を持つクリーチャー1体を対象とする。その前者はその後者に、自身のパワーに等しい点数のダメージを与える。 +Withstand Death=クリーチャー1体を対象とする。このターン、それは破壊されない。(致死ダメージや"破壊する"効果ではそれは破壊されない。 それのタフネスが0以下である場合は、それはオーナーの墓地に置かれる。) +Wurmcoil Engine=接死、絆魂 ワームとぐろエンジンが戦場からいずれかの墓地に置かれたとき、接死を持つ無色の3/3のワーム・アーティファクト・クリーチャー・トークンを1体と、絆魂を持つ無色の3/3のワーム・アーティファクト・クリーチャー・トークンを1体戦場に出す。 diff --git a/projects/mtg/include/WFont.h b/projects/mtg/include/WFont.h index 8dd39f7f1..ad1fe5e1c 100644 --- a/projects/mtg/include/WFont.h +++ b/projects/mtg/include/WFont.h @@ -53,11 +53,7 @@ public: class WLBFont : public WFont { public: - WLBFont(int inFontID, const char *fontname, int lineheight, bool useVideoRAM=false) - : WFont(inFontID) - { - it = NEW JLBFont(fontname,lineheight,useVideoRAM); - }; + WLBFont(int inFontID, const char *fontname, int lineheight, bool useVideoRAM=false); ~WLBFont() {SAFE_DELETE(it);}; void DrawString(const char *s, float x, float y, int align=JGETEXT_LEFT, float leftOffset = 0, float width = 0) {it->DrawString(s,x,y,align,leftOffset,width);}; @@ -92,6 +88,9 @@ public: void SetTracking(float tracking) {}; void SetBase(int base) {}; + virtual int GetCode(const u8 *ch, bool *dualByteFont) const = 0; + virtual int GetMana(const u8 *ch) const = 0; + private: static JRenderer * mRenderer; @@ -120,4 +119,24 @@ private: int PreCacheChar(const u8 *ch); }; +class WGBKFont : public WFBFont +{ +public: + WGBKFont(int inFontID, const char *fontname, int lineheight, bool useVideoRAM=false) + : WFBFont(inFontID, fontname, lineheight, useVideoRAM) {}; + + int GetCode(const u8 *ch, bool *dualByteFont) const; + int GetMana(const u8 *ch) const; +}; + +class WSJISFont : public WFBFont +{ +public: + WSJISFont(int inFontID, const char *fontname, int lineheight, bool useVideoRAM=false) + : WFBFont(inFontID, fontname, lineheight, useVideoRAM) {}; + + int GetCode(const u8 *ch, bool *dualByteFont) const; + int GetMana(const u8 *ch) const; +}; + #endif diff --git a/projects/mtg/src/CardPrimitive.cpp b/projects/mtg/src/CardPrimitive.cpp index 954af41b0..65152fa82 100644 --- a/projects/mtg/src/CardPrimitive.cpp +++ b/projects/mtg/src/CardPrimitive.cpp @@ -58,7 +58,9 @@ const vector& CardPrimitive::formattedText() { std::string s = text; std::string::size_type found = s.find_first_of("{}"); - while (found!=string::npos) + // XXX: neofonts don't use {} for mana cost because some Shift-JIS character's + // second byte equals to the value of '{' or '}'. + while (!neofont && found!=string::npos) { s[found] = '/'; found = s.find_first_of("{}", found + 1); diff --git a/projects/mtg/src/Translate.cpp b/projects/mtg/src/Translate.cpp index 3b462435f..56b2cc5d5 100644 --- a/projects/mtg/src/Translate.cpp +++ b/projects/mtg/src/Translate.cpp @@ -141,7 +141,7 @@ void Translator::init() { if (fileExists(name.c_str())){ // fixup for Chinese language support. std::transform(lang.begin(), lang.end(), lang.begin(), ::tolower); - if (lang.compare("cn") == 0) + if (lang.compare("cn") == 0 || lang.compare("jp") == 0) neofont = true; else neofont = false; diff --git a/projects/mtg/src/WFont.cpp b/projects/mtg/src/WFont.cpp index 990b3871b..4df261509 100644 --- a/projects/mtg/src/WFont.cpp +++ b/projects/mtg/src/WFont.cpp @@ -57,43 +57,18 @@ static PIXEL_TYPE gencolor(int id, PIXEL_TYPE color) return ARGB(a,r,g,b); } -static int genmana(u8 c) -{ - int mana = -1; - switch (c) { - case 0xC7: - mana = Constants::MTG_COLOR_GREEN; - break; - case 0xD5: - mana = Constants::MTG_COLOR_BLUE; - break; - case 0xD2: - mana = Constants::MTG_COLOR_RED; - break; - case 0xC2: - mana = Constants::MTG_COLOR_BLACK; - break; - case 0xD7: - mana = Constants::MTG_COLOR_WHITE; - break; - case 0xD4: // T - case 0xD8: // X - case 0xD9: // Y - mana = Constants::MTG_UNCOLORED; - break; - default: - if (c >= 0xB0 && c <= 0xB9) - mana = Constants::MTG_UNCOLORED; - else - mana = -1; - } - return mana; -} - // JRenderer * WFBFont::mRenderer = NULL; +WLBFont::WLBFont(int inFontID, const char *fontname, int lineheight, bool useVideoRAM) + : WFont(inFontID) +{ + string path(fontname); + if (path.size() > 4 ) path = path.substr(0, path.size() - 4); //some stupid manipulation because of the way Font works in JGE + it = NEW JLBFont(path.c_str(), lineheight, useVideoRAM); +} + WFBFont::WFBFont(int inFontID, const char *fontname, int lineheight, bool useVideoRAM) : WFont(inFontID) { @@ -104,13 +79,15 @@ WFBFont::WFBFont(int inFontID, const char *fontname, int lineheight, bool useVid mGBCode = NULL; mCurr = 0; - char chnFileName[32], engFileName[32]; - sprintf(chnFileName, "%s.gbk", fontname); - sprintf(engFileName, "%s.asc", fontname); + char tmpFileName[32], engFileName[32]; + strcpy(tmpFileName, fontname); + char * ep = strrchr(tmpFileName, '.'); + *ep = '\0'; + sprintf(engFileName, "%s.asc", tmpFileName); JFileSystem *fileSys = JFileSystem::GetInstance(); int size = 0; - if (!fileSys->OpenFile(chnFileName)) + if (!fileSys->OpenFile(fontname)) return; size = fileSys->GetFileSize(); mChnFont = NEW u8[size]; @@ -207,11 +184,12 @@ static void SwizzlePlot(u8* out, PIXEL_TYPE color, int i, int j, unsigned int wi int WFBFont::PreCacheChar(const u8 *ch) { int code; - bool isChinese = true; + bool dualByteFont = true; u8 * src; unsigned int size, offset; u8 gray; +#if 0 if (*ch > 0xA0 && *(ch + 1) > 0xA0) // get offset to the proper character bits (GB2312 encoding) code = (((u32)(*ch - 0xA1)) * 0x5E + ((u32)(*(ch + 1) - 0xA1))); @@ -221,8 +199,11 @@ int WFBFont::PreCacheChar(const u8 *ch) } else { code = ((u32)*ch)|0x10000; - isChinese = false; + dualByteFont = false; } +#else + code = this->GetCode(ch, &dualByteFont); +#endif if (mGBCode[mCurr] != -1) { for (int i = 0; i < mCacheSize; i++) { @@ -244,7 +225,7 @@ int WFBFont::PreCacheChar(const u8 *ch) int y = (int)mSprites[index]->mY; #endif - if (isChinese) { + if (dualByteFont) { size = mFontSize; src = mChnFont + code * mBytesPerChar; offset = 0; @@ -347,13 +328,13 @@ void WFBFont::DrawString(const char *s, float x, float y, int align, float leftO float yy = y; int index = 0; - bool isChinese=true; + bool dualByteFont=true; while (*src != 0) { if (yy > SCREEN_HEIGHT_F) // don't render or count outside the buttom of viewport return; else if (yy + mFontSize < 0.0f) { // don't render when outside the top of viewport, but counted - if (*src < ' ') { // control characters + if (*src < 0x20) { // control characters if (*src == 0x0a) { // NEWLINE xx = x; yy += (mFontSize*mScale); @@ -361,7 +342,7 @@ void WFBFont::DrawString(const char *s, float x, float y, int align, float leftO src += 1; } else { - if (*src > 0x80) // Chinese characters (GBK encoding) + if (*src > 0x80) // Chinese (GBK) and Japanese (SJIS) characters src += 2; else src += 1; @@ -375,7 +356,7 @@ void WFBFont::DrawString(const char *s, float x, float y, int align, float leftO } } else { - if (*src < ' ') { // control characters + if (*src < 0x20) { // control characters if (*src == 0x0a) { // NEWLINE xx = x; yy += (mFontSize * mScale); @@ -384,16 +365,16 @@ void WFBFont::DrawString(const char *s, float x, float y, int align, float leftO } else { int mana = -1; - if (*src > 0x80) { // Chinese characters (GBK encoding) - if (*src == 0xa3) mana = genmana(*(src+1)); + if (*src > 0x80) { // Chinese (GBK) and Japanese (SJIS) characters + mana = this->GetMana(src); index = PreCacheChar(src); src += 2; - isChinese = true; + dualByteFont = true; } else { index = PreCacheChar(src); src += 1; - isChinese = false; + dualByteFont = false; } // fix for leftoffset and witdth's setting @@ -401,7 +382,7 @@ void WFBFont::DrawString(const char *s, float x, float y, int align, float leftO mSprites[index]->GetTextureRect(&xPos, &yPos, &charWidth, &charHeight); float xPos0 = xPos; float charWidth0 = charWidth; - float delta = (isChinese) ? (charWidth * mScale) : (charWidth * mScale / 2); + float delta = (dualByteFont) ? (charWidth * mScale) : (charWidth * mScale / 2); if (leftOffset) { if (leftOffset < 0) { xx -= leftOffset; @@ -428,10 +409,9 @@ void WFBFont::DrawString(const char *s, float x, float y, int align, float leftO } if (mana >= 0) { - if (*src == '/') { // hybrid mana cost - src += 1; - int mana2 = genmana(*(src+1)); - src += 2; + int mana2 = -1; + if (*src == '/' && (mana2 = this->GetMana(src+1)) >= 0) { // hybrid mana cost + src += 3; unsigned char t = (JGE::GetInstance()->GetTime() / 3) & 0xFF; unsigned char v = t + 127; float scale = 0.05f * cosf(2*M_PI*((float)t)/256.0f); @@ -486,18 +466,18 @@ float WFBFont::GetStringWidth(const char *s) const if (ISGBK(c)) { u8 * src = (u8 *)s; float xx = 0; - bool isChinese=true; + bool dualByteFont = true; while (*src != 0) { - if (*src > 0x80) { // Chinese + if (*src > 0x80) { // Chinese and Japanese src += 2; - isChinese = true; + dualByteFont = true; } - else { // Non-Chinese + else { // Latin 1 src += 1; - isChinese = false; + dualByteFont = false; } - if (isChinese) + if (dualByteFont) xx += (mFontSize * mScale); else xx += (mFontSize * mScale) / 2; @@ -519,3 +499,113 @@ void WFBFont::SetScale(float scale) float WFBFont::GetScale() const {return mScale;} float WFBFont::GetHeight() const {return (mFontSize * mScale);} +int WGBKFont::GetCode(const u8 *ch, bool *dualByteFont) const +{ + int code = 0; + *dualByteFont = true; + + if (*ch > 0xA0 && *(ch + 1) > 0xA0) { + // get offset to the proper character bits (GB2312 encoding) + code = (((u32)(*ch - 0xA1)) * 0x5E + ((u32)(*(ch + 1) - 0xA1))); + } + else if (*ch > 0x80) { + // get offset to the character space's bits (GBK encoding) + code = 0; + } + else { + code = ((u32)*ch)|0x10000; + *dualByteFont = false; + } + return code; +} + +int WGBKFont::GetMana(const u8 *ch) const +{ + int mana = -1; + + if (*ch != 0xa3) return mana; + switch (*(ch+1)) { + case 0xC7: + mana = Constants::MTG_COLOR_GREEN; + break; + case 0xD5: + mana = Constants::MTG_COLOR_BLUE; + break; + case 0xD2: + mana = Constants::MTG_COLOR_RED; + break; + case 0xC2: + mana = Constants::MTG_COLOR_BLACK; + break; + case 0xD7: + mana = Constants::MTG_COLOR_WHITE; + break; + case 0xD4: // T + case 0xD8: // X + case 0xD9: // Y + mana = Constants::MTG_UNCOLORED; + break; + default: + if (*(ch+1) >= 0xB0 && *(ch+1) <= 0xB9) + mana = Constants::MTG_UNCOLORED; + } + return mana; +} + +int WSJISFont::GetCode(const u8 *ch, bool *dualByteFont) const +{ + int code = 0; + *dualByteFont = true; + + if (*ch > 0xDF && *(ch + 1) > 0x3F) { + // get offset to the proper character bits (ShiftJIS encoding 2nd part) + code = (((u32)(*ch - 0xE0 + 0x1F)) * 0xBD + ((u32)(*(ch + 1) - 0x40))); + } + else if (*ch > 0x80 && *(ch + 1) > 0x3F) { + // get offset to the proper character bits (ShiftJIS encoding 1st part) + code = (((u32)(*ch - 0x81)) * 0xBD + ((u32)(*(ch + 1) - 0x40))); + } + else if (*ch > 0x80) { + // get offset to the character space's bits (ShiftJIS encoding) + code = 0; + } + else { + code = ((u32)*ch)|0x10000; + *dualByteFont = false; + } + return code; +} + +int WSJISFont::GetMana(const u8 *ch) const +{ + int mana = -1; + + if (*ch != 0x82) return mana; + switch (*(ch+1)) { + case 0x66: + mana = Constants::MTG_COLOR_GREEN; + break; + case 0x74: + mana = Constants::MTG_COLOR_BLUE; + break; + case 0x71: + mana = Constants::MTG_COLOR_RED; + break; + case 0x61: + mana = Constants::MTG_COLOR_BLACK; + break; + case 0x76: + mana = Constants::MTG_COLOR_WHITE; + break; + case 0x73: // T + case 0x77: // X + case 0x78: // Y + mana = Constants::MTG_UNCOLORED; + break; + default: + if (*(ch+1) >= 0x4F && *(ch+1) <= 0x58) + mana = Constants::MTG_UNCOLORED; + } + return mana; +} + diff --git a/projects/mtg/src/WResourceManager.cpp b/projects/mtg/src/WResourceManager.cpp index 2c4f4a1ed..ce3af67bc 100644 --- a/projects/mtg/src/WResourceManager.cpp +++ b/projects/mtg/src/WResourceManager.cpp @@ -21,6 +21,7 @@ namespace { const std::string kExtension_png(".png"); const std::string kExtension_gbk(".gbk"); + const std::string kExtension_sjis(".sjis"); } int WResourceManager::RetrieveError(){ @@ -857,6 +858,17 @@ void WResourceManager::InitFonts(const std::string& inLang) idOffset = Fonts::kSingleByteFontOffset; } + if (inLang.compare("jp") == 0) + { + mFontFileExtension = kExtension_sjis; + LoadWFont("simon", 12, Fonts::MAIN_FONT); + LoadWFont("f3", 16, Fonts::MENU_FONT); + LoadWFont("magic", 16, Fonts::MAGIC_FONT); + LoadWFont("smallface", 12, Fonts::SMALLFACE_FONT); + + idOffset = Fonts::kSingleByteFontOffset; + } + mFontFileExtension = kExtension_png; LoadWFont("simon", 11, Fonts::MAIN_FONT + idOffset); GetWFont(Fonts::MAIN_FONT)->SetTracking(-1); @@ -886,12 +898,15 @@ WFont* WResourceManager::LoadWFont(const string& inFontname, int inFontHeight, i string mFontName = inFontname + mFontFileExtension; string path = graphicsFile(mFontName); - if (path.size() > 4 ) path = path.substr(0, path.size() - 4); //some stupid manipulation because of the way Font works in JGE - if (mFontFileExtension == kExtension_gbk) - { - font = NEW WFBFont(inFontID, path.c_str(), inFontHeight, true); - } + if (mFontFileExtension == kExtension_gbk) + { + font = NEW WGBKFont(inFontID, path.c_str(), inFontHeight, true); + } + else if (mFontFileExtension == kExtension_sjis) + { + font = NEW WSJISFont(inFontID, path.c_str(), inFontHeight, true); + } else { font = NEW WLBFont(inFontID, path.c_str(), inFontHeight, true);