Go to the documentation of this file.00001 #ifndef OSL_MOVE_GENERATOR_ADD_EFFECT8_H
00002 #define OSL_MOVE_GENERATOR_ADD_EFFECT8_H
00003 #include "osl/player.h"
00004 #include "osl/ptype.h"
00005 #include "osl/state/numEffectState.h"
00006 #include "osl/move_action/store.h"
00007 #include "osl/container/moveVector.h"
00008 #include "osl/misc/loki.h"
00009
00010 namespace osl
00011 {
00012 namespace move_generator
00013 {
00021 template<Player P>
00022 class AddEffect8
00023 {
00024 public:
00059 template<class Action>
00060 static void generate(const NumEffectState& state,Action& action);
00061 static void generate(const NumEffectState& state, MoveVector& out)
00062 {
00063 move_action::Store store(out);
00064 generate(state, store);
00065 }
00069 template<class Action>
00070 static void generateNotBigDrop(const NumEffectState& state,Action& action);
00074 template<class Action>
00075 static void generateBigDrop(const NumEffectState& state,Action& action);
00076 };
00077
00078 struct GenerateAddEffect8
00079 {
00084 static void generate(Player player, const NumEffectState& state,
00085 move_action::Store& store);
00086 static void generateBigDrop(Player player, const NumEffectState& state,
00087 move_action::Store& store);
00088 static void generateNotBigDrop(Player player, const NumEffectState& state,
00089 move_action::Store& store);
00090 };
00091 }
00092 }
00093 #endif
00094
00095
00096
00097