Removing effects reworked.

This commit is contained in:
marcins78@gmail.com
2011-10-27 10:03:44 +00:00
parent b8e8be5cfc
commit b3cb7a8d8a
8 changed files with 40 additions and 11 deletions

View File

@@ -14,4 +14,5 @@
6_125,6_39 6_125,6_39
6_126,6_49 6_126,6_49
6_127,6_68 6_127,6_68
6_128,6_103 6_128,6_103
7_1,1_2

View File

@@ -9,17 +9,23 @@ import java.util.Collection;
import java.util.Collections; import java.util.Collections;
public class TriggeringResultEffect extends AbstractSuccessfulEffect { public class TriggeringResultEffect extends AbstractSuccessfulEffect {
private Type _effectType;
private EffectResult _effectResult; private EffectResult _effectResult;
private String _text; private String _text;
public TriggeringResultEffect(EffectResult effectResult, String text) { public TriggeringResultEffect(EffectResult effectResult, String text) {
this(null, effectResult, text);
}
public TriggeringResultEffect(Effect.Type effectType, EffectResult effectResult, String text) {
_effectType = effectType;
_effectResult = effectResult; _effectResult = effectResult;
_text = text; _text = text;
} }
@Override @Override
public Effect.Type getType() { public Effect.Type getType() {
return null; return _effectType;
} }
@Override @Override

View File

@@ -8,7 +8,8 @@ public interface Effect {
public enum Type { public enum Type {
BEFORE_WOUND, BEFORE_EXERT, BEFORE_ADD_BURDENS, BEFORE_DISCARD_FROM_PLAY, BEFORE_WOUND, BEFORE_EXERT, BEFORE_ADD_BURDENS, BEFORE_DISCARD_FROM_PLAY,
BEFORE_ADD_TWILIGHT, BEFORE_KILLED, BEFORE_HEALED, BEFORE_ADD_TWILIGHT, BEFORE_KILLED, BEFORE_HEALED,
BEFORE_TAKE_CONTROL_OF_A_SITE BEFORE_TAKE_CONTROL_OF_A_SITE,
START_OF_PHASE, END_OF_PHASE, END_OF_TURN
} }
/** /**

View File

@@ -2,6 +2,7 @@ package com.gempukku.lotro.logic.timing.processes.turn;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.effects.TriggeringResultEffect; import com.gempukku.lotro.logic.effects.TriggeringResultEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.actions.SimpleEffectAction; import com.gempukku.lotro.logic.timing.actions.SimpleEffectAction;
import com.gempukku.lotro.logic.timing.processes.GameProcess; import com.gempukku.lotro.logic.timing.processes.GameProcess;
import com.gempukku.lotro.logic.timing.results.EndOfTurnResult; import com.gempukku.lotro.logic.timing.results.EndOfTurnResult;
@@ -15,7 +16,7 @@ public class EndOfTurnGameProcess implements GameProcess {
@Override @Override
public void process() { public void process() {
_game.getActionsEnvironment().addActionToStack(new SimpleEffectAction(new TriggeringResultEffect(new EndOfTurnResult(), "End of turn"), "End of turn")); _game.getActionsEnvironment().addActionToStack(new SimpleEffectAction(new TriggeringResultEffect(Effect.Type.END_OF_TURN, new EndOfTurnResult(), "End of turn"), "End of turn"));
} }
@Override @Override

View File

@@ -3,6 +3,7 @@ package com.gempukku.lotro.logic.timing.processes.turn.general;
import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.effects.TriggeringResultEffect; import com.gempukku.lotro.logic.effects.TriggeringResultEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.actions.SimpleEffectAction; import com.gempukku.lotro.logic.timing.actions.SimpleEffectAction;
import com.gempukku.lotro.logic.timing.processes.GameProcess; import com.gempukku.lotro.logic.timing.processes.GameProcess;
import com.gempukku.lotro.logic.timing.results.EndOfPhaseResult; import com.gempukku.lotro.logic.timing.results.EndOfPhaseResult;
@@ -20,7 +21,7 @@ public class EndOfPhaseGameProcess implements GameProcess {
@Override @Override
public void process() { public void process() {
_game.getActionsEnvironment().addActionToStack(new SimpleEffectAction(new TriggeringResultEffect(new EndOfPhaseResult(_phase), "End of " + _phase + " phase"), "End of " + _phase + " phase")); _game.getActionsEnvironment().addActionToStack(new SimpleEffectAction(new TriggeringResultEffect(Effect.Type.END_OF_PHASE, new EndOfPhaseResult(_phase), "End of " + _phase + " phase"), "End of " + _phase + " phase"));
} }
@Override @Override

View File

@@ -3,6 +3,7 @@ package com.gempukku.lotro.logic.timing.processes.turn.general;
import com.gempukku.lotro.common.Phase; import com.gempukku.lotro.common.Phase;
import com.gempukku.lotro.game.state.LotroGame; import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.logic.effects.TriggeringResultEffect; import com.gempukku.lotro.logic.effects.TriggeringResultEffect;
import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.actions.SimpleEffectAction; import com.gempukku.lotro.logic.timing.actions.SimpleEffectAction;
import com.gempukku.lotro.logic.timing.processes.GameProcess; import com.gempukku.lotro.logic.timing.processes.GameProcess;
import com.gempukku.lotro.logic.timing.results.StartOfPhaseResult; import com.gempukku.lotro.logic.timing.results.StartOfPhaseResult;
@@ -21,7 +22,7 @@ public class StartOfPhaseGameProcess implements GameProcess {
@Override @Override
public void process() { public void process() {
_game.getGameState().setCurrentPhase(_phase); _game.getGameState().setCurrentPhase(_phase);
_game.getActionsEnvironment().addActionToStack(new SimpleEffectAction(new TriggeringResultEffect(new StartOfPhaseResult(_phase), "Start of " + _phase + " phase"), "Start of " + _phase + " phase")); _game.getActionsEnvironment().addActionToStack(new SimpleEffectAction(new TriggeringResultEffect(Effect.Type.START_OF_PHASE, new StartOfPhaseResult(_phase), "Start of " + _phase + " phase"), "Start of " + _phase + " phase"));
} }
@Override @Override

View File

@@ -6,7 +6,7 @@ import com.gempukku.lotro.game.state.LotroGame;
import com.gempukku.lotro.game.state.actions.DefaultActionsEnvironment; import com.gempukku.lotro.game.state.actions.DefaultActionsEnvironment;
import com.gempukku.lotro.logic.modifiers.ModifiersLogic; import com.gempukku.lotro.logic.modifiers.ModifiersLogic;
import com.gempukku.lotro.logic.timing.Action; import com.gempukku.lotro.logic.timing.Action;
import com.gempukku.lotro.logic.timing.EffectResult; import com.gempukku.lotro.logic.timing.Effect;
import com.gempukku.lotro.logic.timing.UnrespondableEffect; import com.gempukku.lotro.logic.timing.UnrespondableEffect;
import com.gempukku.lotro.logic.timing.actions.SimpleEffectAction; import com.gempukku.lotro.logic.timing.actions.SimpleEffectAction;
@@ -26,8 +26,8 @@ public class EndEffectsAndActionsRule {
_actionsEnvironment.addAlwaysOnActionProxy( _actionsEnvironment.addAlwaysOnActionProxy(
new AbstractActionProxy() { new AbstractActionProxy() {
@Override @Override
public List<? extends Action> getRequiredAfterTriggers(LotroGame lotroGame, EffectResult effectResult) { public List<? extends Action> getRequiredBeforeTriggers(LotroGame game, Effect effect) {
if (effectResult.getType() == EffectResult.Type.START_OF_PHASE) if (effect.getType() == Effect.Type.START_OF_PHASE)
return Collections.<Action>singletonList(new SimpleEffectAction( return Collections.<Action>singletonList(new SimpleEffectAction(
new UnrespondableEffect() { new UnrespondableEffect() {
@Override @Override
@@ -38,7 +38,7 @@ public class EndEffectsAndActionsRule {
} }
}, "Remove effects" }, "Remove effects"
)); ));
else if (effectResult.getType() == EffectResult.Type.END_OF_PHASE) else if (effect.getType() == Effect.Type.END_OF_PHASE)
return Collections.<Action>singletonList(new SimpleEffectAction( return Collections.<Action>singletonList(new SimpleEffectAction(
new UnrespondableEffect() { new UnrespondableEffect() {
@Override @Override
@@ -49,7 +49,7 @@ public class EndEffectsAndActionsRule {
} }
}, "Remove effects" }, "Remove effects"
)); ));
else if (effectResult.getType() == EffectResult.Type.END_OF_TURN) else if (effect.getType() == Effect.Type.END_OF_TURN)
return Collections.<Action>singletonList(new SimpleEffectAction( return Collections.<Action>singletonList(new SimpleEffectAction(
new UnrespondableEffect() { new UnrespondableEffect() {
@Override @Override

View File

@@ -59,6 +59,24 @@ public class LotroServer extends AbstractServer {
} }
} }
if (test) {
for (int i = 7; i <= 7; i++) {
for (int j = 1; j <= 365; j++) {
String blueprintId = i + "_" + j;
try {
LotroCardBlueprint cardBlueprint = _lotroCardBlueprintLibrary.getLotroCardBlueprint(blueprintId);
CardType cardType = cardBlueprint.getCardType();
if (cardType == CardType.SITE || cardType == CardType.THE_ONE_RING)
_defaultCollection.addCards(blueprintId, cardBlueprint, 1);
else
_defaultCollection.addCards(blueprintId, cardBlueprint, 4);
} catch (IllegalArgumentException exp) {
}
}
}
}
_playerDao = new PlayerDAO(dbAccess); _playerDao = new PlayerDAO(dbAccess);
_deckDao = new DeckDAO(dbAccess); _deckDao = new DeckDAO(dbAccess);