New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Many DFC lack faceManaValue and/or faceConvertedManaCost used by Cockatrice #1121
Comments
This appears to be a Cockatrice issue, not a MTGJSON issue |
Indeed, it's Cockatrice/Cockatrice#4271 |
Going by that issue's PR, there does appear to be an issue with MTGJSON: |
It looks like the data in
Full card data from json (5.2.2+20231007)
|
@tooomm There is still only one instance of
And even single-faced regular cards lack the {"artist": "Alex Dos Diaz", "artistIds": ["d11a1b18-57ff-41d3-a3a5-9ac3914b42d1"], "availability": ["mtgo", "paper"], "borderColor": "borderless", "colorIdentity": ["R", "W"], "colors": ["R", "W"], "convertedManaCost": 7.0, "edhrecRank": 1110, "edhrecSaltiness": 0.85, "finishes": ["nonfoil", "foil"], "foreignData": [{"language": "German", "multiverseId": 629348, "name": "Sela Goldnachtschwert", "text": "Fliegend, Erstschlag\nFalls eine Quelle einem Gegner oder einer bleibenden Karte, die ein Gegner kontrolliert, Schaden zufügen würde, fügt sie jenem Spieler oder jener bleibenden Karte stattdessen doppelt so viele Schadenspunkte zu.\nFalls eine Quelle dir oder einer bleibenden Karte, die du kontrollierst, Schaden zufügen würde, verhindere die Hälfte jener Schadenspunkte, aufgerundet.", "type": "Legendäre Kreatur — Engel"}, {"language": "Spanish", "multiverseId": 629372, "name": "Gisela, Espada de la Noche Dorada", "text": "Vuela, daña primero.\nSi una fuente fuera a hacer daño a un oponente o a un permanente que controla un oponente, en vez de eso, esa fuente hace el doble de ese daño a ese jugador o permanente.\nSi una fuente fuera a hacerte daño a ti o a un permanente que controlas, prevén la mitad de ese daño, redondeando hacia arriba.", "type": "Criatura legendaria — Ángel"}, {"language": "French", "multiverseId": 629396, "name": "Gisela, lame d'Ornuit", "text": "Vol, initiative\nSi une source devait infliger des blessures à un adversaire ou à un permanent qu'un adversaire contrôle, cette source inflige le double de ces blessures à ce joueur ou à ce permanent à la place.\nSi une source devait infliger des blessures à vous ou à un permanent que vous contrôlez, prévenez la moitié de ces blessures, arrondie à l'unité supérieure.", "type": "Créature légendaire : ange"}, {"language": "Japanese", "multiverseId": 629444, "name": "黄金夜の刃、ギセラ", "text": "飛行、先制攻撃\n発生源1つが対戦相手や対戦相手がコントロールしているパーマネントにダメージを与えるなら、代わりにその発生源はそのプレイヤーやパーマネントにその点数の2倍のダメージを与える。\n発生源1つがあなたやあなたがコントロールしているパーマネントにダメージを与えるなら、そのダメージの端数を切り上げた半分を軽減する。", "type": "伝説のクリーチャー — 天使"}, {"language": "Portuguese (Brazil)", "multiverseId": 629468, "name": "Gisela, Espadachim dos Noite Dourada", "text": "Voar, iniciativa\nSe uma fonte for causar dano a um oponente ou a uma permanente que um oponente controla, em vez disso, ela causa o dobro do dano àquele jogador ou àquela permanente.\nSe uma fonte for causar dano a você ou a uma permanente que você controla, previna metade do dano, arredondada para cima.", "type": "Criatura Lendária — Anjo"}, {"language": "Chinese Simplified", "multiverseId": 629492, "name": "金夜之刃姬瑟拉", "text": "飞行,先攻\n如果某来源将向任一对手或由对手操控的永久物造成伤害,则改为该来源对该牌手或永久物造成两倍的伤害。\n如果某来源将对你或任一由你操控的永久物造成伤害,则防止该伤害的一半,小数点后进位。", "type": "传奇生物 ~天使"}], "frameEffects": ["legendary", "inverted"], "frameVersion": "2015", "hasFoil": true, "hasNonFoil": true, "identifiers": {"cardKingdomFoilId": "281139", "cardKingdomId": "279963", "cardsphereId": "106649", "mcmId": "723604", "mcmMetaId": "205316", "mtgjsonV4Id": "feab73f3-849b-594d-82ee-10de65224f21", "mtgoId": "113617", "multiverseId": "629324", "scryfallId": "477f06ee-b986-4de2-97e9-97ba7ec7c45d", "scryfallIllustrationId": "4ef2ca7f-5f26-4594-9240-caa8bee2207f", "scryfallOracleId": "66f9f325-5e8e-4ebf-b5b3-c6410d80f2c5", "tcgplayerProductId": "504706"}, "isReprint": true, "keywords": ["First strike", "Flying"], "language": "English", "layout": "normal", "leadershipSkills": {"brawl": false, "commander": true, "oathbreaker": false}, "legalities": {"commander": "Legal", "duel": "Legal", "legacy": "Legal", "modern": "Legal", "oathbreaker": "Legal", "vintage": "Legal"}, "manaCost": "{4}{R}{W}{W}", "manaValue": 7.0, "name": "Gisela, Blade of Goldnight", "number": "682", "originalText": "Flying, first strike\nIf a source would deal damage to an opponent or a permanent an opponent controls, that source deals double that damage to that player or permanent instead.\nIf a source would deal damage to you or a permanent you control, prevent half that damage, rounded up.", "originalType": "Legendary Creature — Angel", "power": "5", "printings": ["A25", "AVR", "C15", "CM2", "CMM", "PHEL", "PLIST", "SLD"], "promoTypes": ["boosterfun"], "purchaseUrls": {"cardKingdom": "https://mtgjson.com/links/0fab03d3d529a895", "cardKingdomFoil": "https://mtgjson.com/links/237ff4a5254eb309", "cardmarket": "https://mtgjson.com/links/475ec72e6b5aa3a9", "tcgplayer": "https://mtgjson.com/links/22cca8d0975639d0"}, "rarity": "rare", "rulings": [{"date": "2018-03-16", "text": "Gisela doubles damage dealt to opponents and permanents your opponents control from any source, including sources controlled by those opponents."}, {"date": "2018-03-16", "text": "If damage dealt by a source you control is being divided or assigned among multiple permanents an opponent controls or among an opponent and one or more permanents they control simultaneously, divide the original amount and double the results. For example, if you attack with a 5/5 creature with trample and your opponent blocks with a 2/2 creature, you can assign 2 damage to the blocker and 3 damage to the defending player. These amounts are then doubled to 4 and 6 damage, respectively. You can’t double the damage to 10 first and then assign 2 to the creature and 8 to the player."}, {"date": "2018-03-16", "text": "If multiple replacement effects would modify how damage would be dealt, the player being dealt damage (or the controller of the permanent being dealt damage) chooses the order in which to apply those effects."}], "securityStamp": "oval", "setCode": "CMM", "sourceProducts": {"foil": ["27cadb89-a295-5ce4-89e1-5854303185db", "b2bbfbd2-13ee-5cf9-9c3a-8cf33204a839", "b9f3d07f-8ad0-5def-8086-e5199e004d4d", "d03a0e5f-11c7-504a-a486-44179896f770"], "nonfoil": ["27cadb89-a295-5ce4-89e1-5854303185db", "b2bbfbd2-13ee-5cf9-9c3a-8cf33204a839", "b9f3d07f-8ad0-5def-8086-e5199e004d4d", "d03a0e5f-11c7-504a-a486-44179896f770"]}, "subtypes": ["Angel"], "supertypes": ["Legendary"], "text": "Flying, first strike\nIf a source would deal damage to an opponent or a permanent an opponent controls, that source deals double that damage to that player or permanent instead.\nIf a source would deal damage to you or a permanent you control, prevent half that damage, rounded up.", "toughness": "5", "type": "Legendary Creature — Angel", "types": ["Creature"], "uuid": "eee2a568-149d-5e9c-b596-17123eb5d492", "variations": ["89c6ba4d-0bd0-5b51-bf0c-42b63d74dfeb", "57cd427d-221a-5397-b8c6-e3eb7dfd908d"]} As noted in the other issue, the free edition of PyCharm can process the JSON. VS Code and IntelliJ can't unless you run your own parser in them. @ZeldaZach Please reopen this issue and/or approve the Cockatrice PR that uses |
The data you provided is difficult to read, I'm sorry. But I'm no MtG judge, and it's quite confusing. |
According to the docs,
I'm no MtG judge either, but https://mtg.fandom.com/wiki/Mana_value#:~:text=Modal has a nice overview of mana values and comprehensive rules. Looks like Commit and Memory of "Commit // Memory" are two separate names but only Memory is stored separately: {
"artist": "Ryan Alexander Lee",
"artistIds": [
"f4d194b4-958a-4830-8d87-1a84e0b9ffbc"
],
"availability": [
"arena"
],
"boosterTypes": [
"default"
],
"borderColor": "black",
"colorIdentity": [
"U"
],
"colors": [
"U"
],
"convertedManaCost": 10.0,
"edhrecRank": 1906,
"edhrecSaltiness": 0.26,
"faceConvertedManaCost": 6.0,
"faceManaValue": 6.0,
"faceName": "Memory",
"finishes": [
"nonfoil"
],
"foreignData": [],
"frameVersion": "2015",
"hasFoil": false,
"hasNonFoil": true,
"identifiers": {
"mtgArenaId": "73828",
"mtgjsonV4Id": "54fa229d-ad3d-5677-9cb9-67c800081963",
"multiverseId": "547521",
"scryfallId": "d8a99b6b-0ff6-4921-8ce4-eafe6c3493d0",
"scryfallIllustrationId": "f99e2092-e035-4043-b813-9dd1d32de0a0",
"scryfallOracleId": "56fd8895-3be2-4591-86fa-87567d9cdc14"
},
"isOnlineOnly": true,
"isReprint": true,
"keywords": [
"Aftermath"
],
"language": "English",
"layout": "aftermath",
"legalities": {
"commander": "Legal",
"duel": "Legal",
"explorer": "Legal",
"gladiator": "Legal",
"historic": "Legal",
"historicbrawl": "Legal",
"legacy": "Legal",
"modern": "Legal",
"oathbreaker": "Legal",
"penny": "Legal",
"pioneer": "Legal",
"vintage": "Legal"
},
"manaCost": "{4}{U}{U}",
"manaValue": 10.0,
"name": "Commit // Memory",
"number": "54",
"originalText": "Aftermath (Cast this spell only from your graveyard. Then exile it.)\nEach player shuffles his or her hand and graveyard into his or her library, then draws seven cards.",
"originalType": "Sorcery",
"otherFaceIds": [
"f071b478-3865-539b-9837-fe6793820a84"
],
"printings": [
"AKH",
"AKR",
"LCC",
"MB1",
"NCC",
"PAKH"
],
"purchaseUrls": {},
"rarity": "rare",
"rulings": [
{
"date": "2017-04-18",
"text": "A spell with aftermath cast from a graveyard will always be exiled afterward, whether it resolves, it's countered, or it leaves the stack in some other way."
},
{
"date": "2017-04-18",
"text": "All split cards have two card faces on a single card, and you put a split card onto the stack with only the half you're casting. The characteristics of the half of the card you didn't cast are ignored while the spell is on the stack. For example, if an effect prevents you from casting green spells, you can cast Destined of Destined // Lead, but not Lead."
},
{
"date": "2017-04-18",
"text": "Each split card has two names. If an effect instructs you to choose a card name, you may choose one, but not both."
},
{
"date": "2017-04-18",
"text": "Each split card is a single card. For example, if you discard one, you've discarded one card, not two. If an effect counts the number of instant and sorcery cards in your graveyard, Destined // Lead counts once, not twice."
},
{
"date": "2017-04-18",
"text": "If a copy of a spell or a token is put into its owner's library, it's moved there, then it will cease to exist as a state-based action."
},
{
"date": "2017-04-18",
"text": "If a spell is put into its owner's library, it's removed from the stack and thus will not resolve. The spell isn't countered; it just no longer exists. This works against a spell that can't be countered."
},
{
"date": "2017-04-18",
"text": "If another effect allows you to cast a split card with aftermath from a graveyard, you may cast either half. If you cast the half that has aftermath, you'll exile the card if it would leave the stack."
},
{
"date": "2017-04-18",
"text": "If another effect allows you to cast a split card with aftermath from any zone other than a graveyard, you can't cast the half with aftermath."
},
{
"date": "2017-04-18",
"text": "If the target's owner's library contains no cards, the target spell or permanent will be put into that player's library as the only card."
},
{
"date": "2017-04-18",
"text": "If you cast the first half of a split card with aftermath during your turn, you'll have priority immediately after it resolves. You can cast the half with aftermath from your graveyard before any player can take any other action if it's legal for you to do so."
},
{
"date": "2017-04-18",
"text": "Split cards with aftermath have a new frame treatment—the half you can cast from your hand is oriented the same as other cards you'd cast from your hand, while the half you can cast from your graveyard is a traditional split card half. This frame treatment is for your convenience and has no rules significance."
},
{
"date": "2017-04-18",
"text": "While not on the stack, the characteristics of a split card are the combination of its two halves. For example, Destined // Lead is a green and black card, it is both an instant card and a sorcery card, and its mana value is 6. This means that if an effect allows you to cast a card with mana value 2 from your hand, you can't cast Destined. This is a change from the previous rules for split cards."
},
{
"date": "2017-07-14",
"text": "Once you've started to cast a spell with aftermath from your graveyard, the card is immediately moved to the stack. Opponents can't try to stop the ability by exiling the card with an effect such as that of Crook of Condemnation."
}
],
"setCode": "AKR",
"side": "b",
"subtypes": [],
"supertypes": [],
"text": "Aftermath (Cast this spell only from your graveyard. Then exile it.)\nEach player shuffles their hand and graveyard into their library, then draws seven cards.",
"type": "Sorcery",
"types": [
"Sorcery"
],
"uuid": "ae3bbfe2-61cd-5231-a7c7-703124bd018d"
} In that case "faceManaValue" is only relevant on the stack. 2023-12-16 update: I see now that "faceManaValue" is correct as each face has its own entry, referenced via |
face cmc is missing from some entities, will address |
We should test this after the recent change and with the new data! But maybe better to keep the conversation here focused on missing and wrong data in MTGJSON, not specific issues in downstream tools.
Is that still the case? That sounds wrong. Thanks a lot @ZeldaZach for improving the data! |
Blex now has the proper data and shows correctly in Cockatrice. Thanks! Cockatrice/Cockatrice#4271 (comment) Meld cards like Bruna, the Fading Light have no
|
What's the MTGJSON version you checked? I assume I did create a new issue to discuss meld cards and what data they should have: #1165 |
Yes, 5.2.2+20231215. I assume "face" is an entire surface of a card, whereas "side" can be half a face as in split cards. If that is correct, then "faceManaValue" looks inconsistent to me. Cockatrice/Cockatrice#4271 (comment) |
#NotAllDFC according to Cockatrice/Cockatrice#4271 (comment) - Reopen this or create a new issue or two? |
Version(s) tested against
Whatever is in Cockatrice 2.9.0 (2023-09-14).
Description of Bug
Bruna, the Fading Light has
<manacost>5WW</manacost>
but<cmc></cmc>
.Gisela, the Broken Blade has
<manacost>2WW</manacost>
but<cmc></cmc>
.Likewise 193 other cards, like The Mightstone and Weakstone.
I don't know where to report for upstream fix, but isn't
cmc
a field calculated frommanacost
, anyway? Your service could then detect and/or fix those missing values.The text was updated successfully, but these errors were encountered: