mirror of
https://github.com/correl/mage.git
synced 2025-03-07 20:53:18 -10:00
* Fixed a bug in calculation of available mana that can be a source of heavy server load.
This commit is contained in:
parent
fcd1d89137
commit
0722276ca4
3 changed files with 43 additions and 4 deletions
|
@ -128,6 +128,42 @@ public class ManaOptionsTest extends CardTestPlayerBase {
|
|||
Assert.assertEquals("{W}{W}{Any}{Any}", getManaOption(0, manaOptions));
|
||||
}
|
||||
|
||||
// Crystal Quarry
|
||||
// {T}: {1} Add to your mana pool.
|
||||
// {5}, {T}: Add {W}{U}{B}{R}{G} to your mana pool.
|
||||
@Test
|
||||
public void testCrystalQuarry() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Plains", 2);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Forest", 2);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Crystal Quarry", 1);
|
||||
|
||||
setStopAt(1, PhaseStep. UPKEEP);
|
||||
execute();
|
||||
|
||||
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
|
||||
|
||||
Assert.assertEquals("mana variations don't fit",1, manaOptions.size());
|
||||
Assert.assertEquals("{1}{G}{G}{W}{W}", getManaOption(0, manaOptions));
|
||||
}
|
||||
// Crystal Quarry
|
||||
// {T}: {1} Add to your mana pool.
|
||||
// {5}, {T}: Add {W}{U}{B}{R}{G} to your mana pool.
|
||||
@Test
|
||||
public void testCrystalQuarry2() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Plains", 2);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Crystal Quarry", 1);
|
||||
|
||||
setStopAt(1, PhaseStep. UPKEEP);
|
||||
execute();
|
||||
|
||||
ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame);
|
||||
|
||||
Assert.assertEquals("mana variations don't fit",2, manaOptions.size());
|
||||
Assert.assertEquals("{1}{G}{G}{G}{W}{W}", getManaOption(0, manaOptions));
|
||||
Assert.assertEquals("{R}{G}{U}{W}{B}", getManaOption(1, manaOptions));
|
||||
}
|
||||
|
||||
private String getManaOption(int index, ManaOptions manaOptions) {
|
||||
if (manaOptions.size() < index + 1) {
|
||||
return "";
|
||||
|
|
|
@ -170,11 +170,11 @@ public class ManaOptions extends ArrayList<Mana> {
|
|||
for (Mana mana: copy) {
|
||||
Mana newMana = new Mana();
|
||||
newMana.add(mana);
|
||||
if (mana.contains(ability.getManaCosts().getMana())) {
|
||||
if (mana.includesMana(ability.getManaCosts().getMana())) {
|
||||
newMana.subtractCost(ability.getManaCosts().getMana());
|
||||
newMana.add(netMana);
|
||||
}
|
||||
this.add(newMana);
|
||||
this.add(newMana);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -228,7 +228,7 @@ public class ManaOptions extends ArrayList<Mana> {
|
|||
boolean repeatable = false;
|
||||
if (addMana.getAny() == 1 && addMana.count() == 1 && onlyManaCosts) {
|
||||
// deactivated because it does cause loops TODO: Find reason
|
||||
//repeatable = true; // only replace to any with mana costs only will be repeated if able
|
||||
repeatable = true; // only replace to any with mana costs only will be repeated if able
|
||||
}
|
||||
for (Mana mana: this) {
|
||||
while (mana.includesMana(cost)) {
|
||||
|
|
|
@ -96,6 +96,9 @@ git log e0b17eacc7b3abff4f6a6e878c01ebfab577df9e..HEAD --diff-filter=A --name-st
|
|||
since 1.3.0-2015-02-07v3
|
||||
git log ba1fb775b2efd63d4de60786ab9d7857e00c3a57..HEAD --diff-filter=A --name-status | sed -ne "s/^A[^u]Mage.Sets\/src\/mage\/sets\///p" | sort > added_cards.txt
|
||||
|
||||
since 1.3.0-2015-02-07v4
|
||||
git log 7d7afb60d6fbe6d3f15a8fae9af147df3d3f31c6..HEAD --diff-filter=A --name-status | sed -ne "s/^A[^u]Mage.Sets\/src\/mage\/sets\///p" | sort > added_cards.txt
|
||||
|
||||
|
||||
3. Copy added_cards.txt to trunk\Utils folder
|
||||
4. Run script:
|
||||
|
|
Loading…
Add table
Reference in a new issue