First sanity fixes.

This commit is contained in:
marcins78@gmail.com
2011-09-11 17:10:43 +00:00
parent b9478b7229
commit becfdd4e56
6 changed files with 43 additions and 36 deletions

View File

@@ -1,6 +1,6 @@
package com.gempukku.lotro.cards.set1;
import com.gempukku.lotro.cards.AbstractLotroCardBlueprint;
import com.gempukku.lotro.cards.AbstractAttachable;
import com.gempukku.lotro.cards.effects.*;
import com.gempukku.lotro.cards.modifiers.StrengthModifier;
import com.gempukku.lotro.cards.modifiers.VitalityModifier;
@@ -8,6 +8,7 @@ import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.AbstractActionProxy;
import com.gempukku.lotro.game.PhysicalCard;
@@ -34,19 +35,14 @@ import java.util.List;
* Game Text: Response: If bearer is about to take a wound, he wears The One Ring until the regroup phase. While wearing
* The One Ring, each time the Ring-bearer is about to take a wound, add 2 burdens instead.
*/
public class Card1_001 extends AbstractLotroCardBlueprint {
public class Card1_001 extends AbstractAttachable {
public Card1_001() {
super(Side.RING, CardType.THE_ONE_RING, null, "The One Ring", true);
super(Side.RING, CardType.THE_ONE_RING, 0, null, null, "The One Ring", true);
}
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return false;
}
@Override
public Action getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return null;
protected Filter getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.none();
}
@Override
@@ -109,9 +105,4 @@ public class Card1_001 extends AbstractLotroCardBlueprint {
return null;
}
}
@Override
public int getTwilightCost() {
throw new UnsupportedOperationException("This method should not be called on this card");
}
}

View File

@@ -1,12 +1,13 @@
package com.gempukku.lotro.cards.set1;
import com.gempukku.lotro.cards.AbstractLotroCardBlueprint;
import com.gempukku.lotro.cards.AbstractAttachable;
import com.gempukku.lotro.cards.effects.*;
import com.gempukku.lotro.cards.modifiers.StrengthModifier;
import com.gempukku.lotro.common.CardType;
import com.gempukku.lotro.common.Keyword;
import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.common.Side;
import com.gempukku.lotro.filters.Filter;
import com.gempukku.lotro.filters.Filters;
import com.gempukku.lotro.game.AbstractActionProxy;
import com.gempukku.lotro.game.PhysicalCard;
@@ -33,19 +34,14 @@ import java.util.List;
* While wearing The One Ring, each time the Ring-bearer is about to take a wound during a skirmish, add a burden
* instead.
*/
public class Card1_002 extends AbstractLotroCardBlueprint {
public class Card1_002 extends AbstractAttachable {
public Card1_002() {
super(Side.RING, CardType.THE_ONE_RING, null, "The One Ring", true);
super(Side.RING, CardType.THE_ONE_RING, 0, null, null, "The One Ring", true);
}
@Override
public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return false;
}
@Override
public Action getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) {
return null;
protected Filter getValidTargetFilter(String playerId, LotroGame game, PhysicalCard self) {
return Filters.none();
}
@Override
@@ -106,9 +102,4 @@ public class Card1_002 extends AbstractLotroCardBlueprint {
return null;
}
}
@Override
public int getTwilightCost() {
throw new UnsupportedOperationException("This method should not be called on this card");
}
}

View File

@@ -308,6 +308,20 @@ public class GameState {
return false;
}
public boolean iterateActiveCards(String player, PhysicalCardVisitor physicalCardVisitor) {
for (int i = 1; i <= 9; i++) {
PhysicalCard site = getSite(i);
if (site != null)
physicalCardVisitor.visitPhysicalCard(site);
}
for (PhysicalCardImpl physicalCard : _inPlay.get(player)) {
if (isCardInPlayActive(physicalCard))
if (physicalCardVisitor.visitPhysicalCard(physicalCard))
return true;
}
return false;
}
private boolean iterateCards(List<PhysicalCardImpl> cards, PhysicalCardVisitor physicalCardVisitor) {
for (PhysicalCard card : cards)
if (physicalCardVisitor.visitPhysicalCard(card))

View File

@@ -93,7 +93,7 @@ public class DefaultActionsEnvironment implements ActionsEnvironment {
for (String playerId : players) {
GatherOptionalBeforeTriggers gatherActions = new GatherOptionalBeforeTriggers(playerId, effect, effectResult);
_lotroGame.getGameState().iterateActivableCards(playerId, gatherActions);
_lotroGame.getGameState().iterateActiveCards(playerId, gatherActions);
List<Action> gatheredActions = gatherActions.getActions();
@@ -135,7 +135,7 @@ public class DefaultActionsEnvironment implements ActionsEnvironment {
for (String playerId : players) {
GatherOptionalAfterTriggers gatherActions = new GatherOptionalAfterTriggers(playerId, effectResult);
_lotroGame.getGameState().iterateActivableCards(playerId, gatherActions);
_lotroGame.getGameState().iterateActiveCards(playerId, gatherActions);
List<Action> gatheredActions = gatherActions.getActions();

View File

@@ -44,7 +44,7 @@ public class RoamingRule {
@Override
public int getTwilightCost(GameState gameState, ModifiersQuerying modifiersLogic, PhysicalCard physicalCard, int result) {
return result + Math.min(0, modifiersLogic.getRoamingPenalty(gameState, physicalCard));
return result + Math.max(0, modifiersLogic.getRoamingPenalty(gameState, physicalCard));
}
});
}

View File

@@ -1,9 +1,20 @@
1. Introduce AbstractPermanent into Blueprint hierarchy.
2. Migrate Race (Orc, Elf, etc) into separate enum from Keyword.
TO DO:
3. Refactor Effect to return EffectResult upon playEffect, which will contain information about what actually
happened. Modify the Blueprints to have the "before" methods to take Effect parameter only and the "after" to
take the EffectResult parameter only. Effects which modify cards should take filters as parameters, use
overloaded constructor for single cards for backward compatibility, this constructor will call another constructor
with Filters.sameCard(...) filter.
4. Modify the Blueprint hierarchy to return possible return objects (PlayEventAction), TriggeredAction, etc. Use
final methods were possible to avoid implementation errors on new cards added.
final methods were possible to avoid implementation errors on new cards added.
5. Introduce move card operation in communication between the server and client to change the zone/params of the card.
6. Change how the assignments and skirmish are displayed in the user interface, to avoid using Dialogs.
7. Add chat.
8. Add checkbox option to auto-accept choices on the client, also allow to cancel selection to reset to none-selected
and go with different selection.
9. Add checkbox option to auto-pass if there is no actions to be played.
10. Add active/all cards switch to the user interface.
11. Merge Shadow and FP support area on the UI and extend the Shadow and FP characters window.
DONE:
1. Introduce AbstractPermanent into Blueprint hierarchy.
2. Migrate Race (Orc, Elf, etc) into separate enum from Keyword.