Skip to content
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

Is it possible to improve Mana Vault & Co? #2656

Open
improti opened this issue Dec 5, 2016 · 8 comments
Open

Is it possible to improve Mana Vault & Co? #2656

improti opened this issue Dec 5, 2016 · 8 comments

Comments

@improti
Copy link

improti commented Dec 5, 2016

ManaVault (https://github.com/magefree/mage/blob/39eaaf727491e998ba6137a18fcdd18fde95b558/Mage.Sets/src/mage/cards/m/ManaVault.java) can be manually tapped and doesn't automatically untap. Instead it may be untapped at the beginning of ones upkeep. Also it will deal 1 damage to its owner if it is tapped at the beginning of ones upkeep.

The annoying thing about the current implementation is, that it will ask you whether to untap even if the card is not tapped. I have probably clicked a hundred times that I do not want to untap although it isn't even tapped. I therefore looked into the code and noticed that the damage function of the card uses ConditionalTriggeredAbility() to only deal damage if the card is actually tapped. I therefore tried to change the code of the untapping-functionality to use this same condition-checking. Commit improti@bad2323 has this implemented. I tested that and it worked as I expected, i.e. it only asks for the untapping if the card is tapped.

Now, while I intended to refactor this into a proper change-request, @spjspj commented this change already (thx again mate), see improti#1 (comment). He pointed out there are mechanisms/combinations that would not work with this kind of implementation anymore. As I do not know all mechanisms/combinations (I'm rather a newbie to this), my first take was to simply remove Mana Vault from all decks I play ;)

However, if you guys could point out what a proper implementation would look like, I'd go and work towards a proper implementation. Is there any proper logic in sight? I am completely lost on how to investigate this and would need someone to at least point out where to look or something. Is where any similar functionality implemented properly on another card maybe? Any ideas/hints here?

There are other cards with different names but the same functionality iirc. If we find a proper solution to this we should check which cards that are and implement the change on those as well.

@JRHerlehy
Copy link
Member

What do you mean by "proper implementation"? The card is implemented correctly. It is just an older card that has a really weird template. Nothing in it's ability cares about if the card is tapped. And it will let you do some weird ramp shenanigans if you sequence things correctly.

@spjspj
Copy link
Contributor

spjspj commented Dec 5, 2016

Maybe a way around it would be adding a conditional "always answer this way" option to the 'right-click-on-no(or yes)-button' menu to say - 'if permanent is tapped(or untapped), always answer no(or yes)'. That doesn't break the functionality of the card but speeds up the response and would lessen the annoyance factor.

@improti
Copy link
Author

improti commented Dec 5, 2016

Yeah, something like that was what I was looking for. I'll check how those dialogues are done and if I can hack something together. Thx 4 your input!

@ghost
Copy link

ghost commented Dec 15, 2016

I'm not understanding the referenced comment on how having it be a conditional upkeep allows a player to do something they aren't supposed to be able to do.

@improti
Copy link
Author

improti commented Dec 20, 2016

@MTGfan not sure what you are after here? I just want to lessen the annoyance if not playing special combos because that got me fed up several times when playing. And after witnessing in public games how people play endless-combos, I can imagine there is stuff one might be able to do. I think there is a combo by enchanting the card with something allowing tapping + untapping while still gaining mana overall (see improti#1 (comment)). Of course XMage should allow such stuff to be played if it is according to the rules. So I was looking for a compromise allowing all legal actions but also allowing to play without having to click without need. I think the suggestion above (#2656 (comment)) would provide this.

If you have any better idea, please let us know.

@ghost
Copy link

ghost commented Dec 20, 2016

@inpromti What I'm saying is I am not seeing how making this cost to untap conditional to only trigger if the card is tapped creates a possibility for a player to do something they would otherwise not be able to do. In other words, I think the card should have the condition because if the card is tapped there is no reason the ability should trigger to ask to be untapped.

EDIT: last sentence should read " because if the card is untapped"

@sjholden
Copy link

sjholden commented Dec 21, 2016

When Mana Vault is untapped you can respond to the trigger pay four to untap is to tap it and then pay 4 to untap it. That would not be possible if the trigger is skipped.

That's legal according to the rules and would net mana if Mana Reflection was in play, would allow self milling with Mesmeric Orb in play, and I'm sure many other interactions that change the game state.

Not allowing those would be an error.

@ghost
Copy link

ghost commented Dec 21, 2016

Ok now that I understand the scenario I see why the condition was a problem. I thought that the trigger resolved before it could be tapped for mana. So I was thinking why would you pay 4 if it didn't need to be untapped.

Is it possible to make the remember my choice toggle not be part of right click and be like a check box with label "remember my choice" that is visible when the question is asked? I tried to find where the code is for where editing would need to be done but can't locate it.

Then a readily available spot to change the toggle when you need to change the answer would be nice too since after trying the always answer option I couldn't figure out how to undo it.

Other than that the only thing I can come up with is coding card combination conditions. But that is probably a lot more work than improving the remember my choice toggle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants