Aktionen.h 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484
  1. #pragma once
  2. #include "Variablen.h"
  3. #include <Array.h>
  4. class Spiel;
  5. class Ereignis;
  6. class ProgramCounter;
  7. class LocalMemory;
  8. enum AktionTyp
  9. {
  10. BARIERE_BEWEGUNG,
  11. BARIERE_SET_EINGESCHALTET,
  12. BARIERE_SET_POSITION,
  13. BARIERE_SET_TEAM,
  14. BARIERE_ZUFALL,
  15. BARIERE_ZULETZT_AUSGESCHALTET,
  16. BARIERE_ZULETZT_BEWEGT,
  17. BARIERE_ZULETZT_EINGESCHALTET,
  18. BASE_SET_POSITION,
  19. BASE_SET_TEAM,
  20. BASE_ZUFALL,
  21. BASE_ZULETZT_BESITZER_GEWECHSELT,
  22. BOOLEAN_AUS_TEXT,
  23. BOOLEAN_BARIERE_BEWEGT_SICH,
  24. BOOLEAN_BARIERE_IST_AKTIV,
  25. BOOLEAN_BARIERE_IST_SCHALTEND,
  26. BOOLEAN_BASE_IST_NEUTRAL,
  27. BOOLEAN_GLEICH,
  28. BOOLEAN_NICHT,
  29. BOOLEAN_ODER,
  30. BOOLEAN_SCHALTER_IST_AKTIV,
  31. BOOLEAN_SPIELER_AM_LEBEN,
  32. BOOLEAN_SPIELER_HAT_GEGENSTAND,
  33. BOOLEAN_SPIELER_IN_TEAM,
  34. BOOLEAN_SPIELER_IST_VERWUNDBAR,
  35. BOOLEAN_SPIELER_KANN_ITEM_BENUTZEN,
  36. BOOLEAN_SPIEL_PAUSIERT,
  37. BOOLEAN_TIMER_IS_RUNNING,
  38. BOOLEAN_TIMER_IST_SICHTBAR,
  39. BOOLEAN_TRIGGER_IST_AKTIV,
  40. BOOLEAN_TUNNEL_IST_AKTIV,
  41. BOOLEAN_UMLENKUNG_HAT_ABK,
  42. BOOLEAN_UMLENKUNG_IST_DREHEND,
  43. BOOLEAN_UND,
  44. BOOLEAN_ZUFALL,
  45. DISPLAY_TEXT,
  46. DROP_DO_DROP,
  47. DROP_SET_AREA,
  48. DROP_SET_MAX_TIME,
  49. DROP_SET_TIME,
  50. DROP_ZUFALL,
  51. DROP_ZULETZT_GEDROPT,
  52. GESCHOSS_NEU,
  53. GESCHOSS_SET_PLAYER,
  54. GESCHOSS_SET_POSITION,
  55. GESCHOSS_SET_RICHTUNG,
  56. GESCHOSS_SET_SPEED,
  57. GESCHOSS_SET_TYPE,
  58. GESCHOSS_ZUFALL,
  59. GESCHOSS_ZULETZT_ABGEFEUERT,
  60. GESCHOSS_ZULETZT_BARIERE_GETROFFEN,
  61. GESCHOSS_ZULETZT_GESCHOSS_GETROFFEN,
  62. GESCHOSS_ZULETZT_TUNNEL_BENUTZT,
  63. GESCHOSS_ZULETZT_UMGELENKT,
  64. INTEGER_AUS_TEXT,
  65. INTEGER_BARIERE_BREITE,
  66. INTEGER_BARIERE_HEIGHT,
  67. INTEGER_BARIERE_SCHALTUNGEN,
  68. INTEGER_BARIERE_VERSCHIEBUNGEN,
  69. INTEGER_DROP_MAX_ZEIT,
  70. INTEGER_DROP_ZEIT,
  71. INTEGER_MAX_X_VON_DROP,
  72. INTEGER_MAX_Y_VON_DROP,
  73. INTEGER_MIN_X_VON_DROP,
  74. INTEGER_MIN_Y_VON_DROP,
  75. INTEGER_RECHNEN,
  76. INTEGER_SCHALTER_AKTIVIERUNGEN,
  77. INTEGER_SPIELER_ABKLINGZEITVERRINGERUNG,
  78. INTEGER_SPIELER_ARMOR,
  79. INTEGER_SPIELER_ERFAHRUNG,
  80. INTEGER_SPIELER_ERLITTENER_SCHADEN,
  81. INTEGER_SPIELER_GEHEILTES_LEBEN,
  82. INTEGER_SPIELER_GESCHOSSEN,
  83. INTEGER_SPIELER_GESCHOSS_TEMPO,
  84. INTEGER_SPIELER_GETROFFEN,
  85. INTEGER_SPIELER_ITEMS_AUFGEHOBEN,
  86. INTEGER_SPIELER_ANZAHL_ITEMS_IN_INVENTAR,
  87. INTEGER_SPIELER_ANZAHL_ITEMS_VON_TYP,
  88. INTEGER_SPIELER_ITEMS_VERWENDET,
  89. INTEGER_SPIELER_KILLS,
  90. INTEGER_SPIELER_LEBEN,
  91. INTEGER_SPIELER_LEBENSRAUB,
  92. INTEGER_SPIELER_LEBENSREGENERATION,
  93. INTEGER_SPIELER_LEVEL,
  94. INTEGER_SPIELER_MAX_ERFAHRUNG,
  95. INTEGER_SPIELER_MAX_LEBEN,
  96. INTEGER_SPIELER_SCHADEN,
  97. INTEGER_SPIELER_SCHADEN_BONUS,
  98. INTEGER_SPIELER_SCHALTER_AKTIVIERT,
  99. INTEGER_SPIELER_TEMPO,
  100. INTEGER_SPIELER_TODE,
  101. INTEGER_SPIELER_TREFFER,
  102. INTEGER_SPIELER_TUNNEL_BENUTZT,
  103. INTEGER_TEAM_KILLS,
  104. INTEGER_TEAM_PUNKTE,
  105. INTEGER_TEAM_SPIELERANZAHL,
  106. INTEGER_TEAM_TODE,
  107. INTEGER_TEAM_WIEDERBELEBUNGSZEIT,
  108. INTEGER_TIMER_AKTUELLE_ZEIT,
  109. INTEGER_TIMER_MAX_ZEIT,
  110. INTEGER_TRIGGER_RUNNS,
  111. INTEGER_TUNNEL_BENUTZUNGEN,
  112. INTEGER_UMLENKUNG_BENUTZUNGEN,
  113. INTEGER_X_VON_BARIERE,
  114. INTEGER_X_VON_BASE,
  115. INTEGER_X_VON_GESCHOSS,
  116. INTEGER_X_VON_SCHALTER,
  117. INTEGER_X_VON_SPIELER,
  118. INTEGER_X_VON_TIMER,
  119. INTEGER_X_VON_TUNNEL,
  120. INTEGER_X_VON_TUNNEL_ZIEL,
  121. INTEGER_X_VON_UMLENKUNG,
  122. INTEGER_Y_VON_BARIERE,
  123. INTEGER_Y_VON_BASE,
  124. INTEGER_Y_VON_GESCHOSS,
  125. INTEGER_Y_VON_SCHALTER,
  126. INTEGER_Y_VON_SPIELER,
  127. INTEGER_Y_VON_TIMER,
  128. INTEGER_Y_VON_TUNNEL,
  129. INTEGER_Y_VON_TUNNEL_ZIEL,
  130. INTEGER_Y_VON_UMLENKUNG,
  131. INTEGER_ZUFALL,
  132. ITEM_SPIELER_INVENTAR,
  133. ITEM_ZULETZT_AUFGEHOBEN,
  134. ITEM_ZULETZT_GEDROPT,
  135. KONSTANT_BOOLEAN,
  136. KONSTANT_FLOAT,
  137. KONSTANT_INTEGER,
  138. KONSTANT_NICHTS,
  139. KONSTANT_STRING,
  140. KONSTANT_VARIABLE,
  141. RICHTUNG_VON_GESCHOSS,
  142. RICHTUNG_VON_UMLENKUNG,
  143. RICHTUNG_ZUFALL,
  144. SCHALTER_AKTIVIEREN,
  145. SCHALTER_SET_ERLAUBT,
  146. SCHALTER_SET_POSITION,
  147. SCHALTER_ZUFALL,
  148. SCHALTER_ZULETZT_AKTIVIERT,
  149. SET_VARIABLE,
  150. SPIEL_ENDE,
  151. SPIELER_GIVE_ITEM,
  152. SPIELER_NACHRICHT,
  153. SPIELER_REMOVE_ITEM,
  154. SPIELER_SET_ABKLINGZEITVERRINGERUNG,
  155. SPIELER_SET_ARMOR,
  156. SPIELER_SET_ERFAHRUNG,
  157. SPIELER_SET_LEBEN,
  158. SPIELER_SET_LEBENSRAUB,
  159. SPIELER_SET_LEBENSREGENERATION,
  160. SPIELER_SET_LEVEL,
  161. SPIELER_SET_MAX_ERFAHRUNG,
  162. SPIELER_SET_POSITION,
  163. SPIELER_SET_SCHADEN_BONUS,
  164. SPIELER_SET_TEMPO,
  165. SPIELER_SET_GESCHOSS_TEMPO,
  166. SPIELER_ZUFALL,
  167. SPIELER_ZUFALL_AUS_TEAM,
  168. SPIELER_ZULETZT_ERFAHRUNG_BEKOMMEN,
  169. SPIELER_ZULETZT_GEGENSTAND_AKTIVIERT,
  170. SPIELER_ZULETZT_GEGENSTAND_AUFGEHOBEN,
  171. SPIELER_ZULETZT_GEHEILT,
  172. SPIELER_ZULETZT_GESCHOSSEN,
  173. SPIELER_ZULETZT_GESTORBEN,
  174. SPIELER_ZULETZT_LEVEL_UP,
  175. SPIELER_ZULETZT_SCHADEN_GEMACHT,
  176. SPIELER_ZULETZT_SCHADEN_GENOMMEN,
  177. SPIELER_ZULETZT_SCHALTER_AKTIVIERT,
  178. SPIELER_ZULETZT_TUNNEL_BENUTZT,
  179. SPIELER_ZULETZT_WIEDERBELEBT,
  180. SPIEL_PAUSE,
  181. TEAM_SET_PUNKTE,
  182. TEAM_VON_BARIERE,
  183. TEAM_VON_SPIELER,
  184. TEAM_ZUFALL,
  185. TEXT_AUS_BOOLEAN,
  186. TEXT_AUS_RICHTUNG,
  187. TEXT_AUS_ZAHL,
  188. TEXT_CONCAT,
  189. TEXT_ITEM_NAME,
  190. TEXT_SPIELER_NAME,
  191. TEXT_TEIL_VON_TEXT,
  192. TEXT_TRIGGER_NAME,
  193. TIMER_SET_PAUSE,
  194. TIMER_SET_POSITION,
  195. TIMER_SET_SICHTBAR,
  196. TIMER_SET_ZEIT,
  197. TIMER_START,
  198. TIMER_ZUFALL,
  199. TIMER_ZULETZT_ABGELAUFEN,
  200. TIMER_ZULETZT_FOTOGRAFIERT,
  201. TIMER_ZULETZT_GESTARTET,
  202. TIMER_ZULETZT_PAUSIERT,
  203. TRIGGER_AKTION,
  204. TRIGGER_LAST_RUNNED,
  205. TRIGGER_RUN_START,
  206. TRIGGER_SET_ENABLED,
  207. TRIGGER_ZUFALL,
  208. TUNNEL_SET_ERLAUBT,
  209. TUNNEL_SET_POSITION,
  210. TUNNEL_SET_ZIEL_POSITION,
  211. TUNNEL_ZUFALL,
  212. TUNNEL_ZULETZT_BENUTZT,
  213. UMLENKUNG_SET_ERLAUBT,
  214. UMLENKUNG_SET_MAX_ABK,
  215. UMLENKUNG_SET_POSITION,
  216. UMLENKUNG_SET_RICHTUNG,
  217. UMLENKUNG_ZUFALL,
  218. UMLENKUNG_ZULETZT_BENUTZT,
  219. WARTEN,
  220. WENN_DANN_SONST,
  221. SEQUENZ
  222. };
  223. class Aktion : public Variable
  224. {
  225. private:
  226. AktionTyp typ;
  227. public:
  228. Aktion( AktionTyp typ );
  229. virtual ~Aktion();
  230. // gibt 1 zurück, wenn die aktion vollständig ausgeführt wurde
  231. virtual bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) = 0;
  232. };
  233. class KonstantNichts : public Aktion
  234. {
  235. public:
  236. KonstantNichts();
  237. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  238. };
  239. class KonstantInteger : public Aktion
  240. {
  241. private:
  242. int value;
  243. public:
  244. KonstantInteger( int val );
  245. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  246. };
  247. class KonstantBoolean : public Aktion
  248. {
  249. private:
  250. bool value;
  251. public:
  252. KonstantBoolean( bool val );
  253. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  254. };
  255. class KonstantString : public Aktion
  256. {
  257. private:
  258. Text value;
  259. public:
  260. KonstantString( Text val );
  261. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  262. };
  263. class KonstantFloat : public Aktion
  264. {
  265. private:
  266. float value;
  267. public:
  268. KonstantFloat( float val );
  269. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  270. };
  271. class KonstantVariable : public Aktion
  272. {
  273. private:
  274. Text name;
  275. public:
  276. KonstantVariable( Text name );
  277. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  278. };
  279. class Warten : public Aktion
  280. {
  281. private:
  282. Aktion *seconds;
  283. public:
  284. Warten( Aktion *seconds );
  285. ~Warten();
  286. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  287. };
  288. class WennDannSonst : public Aktion
  289. {
  290. private:
  291. Aktion *wenn;
  292. Aktion *dann;
  293. Aktion *sonst;
  294. public:
  295. WennDannSonst( Aktion *wenn, Aktion *dann, Aktion *sonst );
  296. ~WennDannSonst();
  297. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  298. };
  299. class SetVariable : public Aktion
  300. {
  301. private:
  302. Text name;
  303. Aktion *value;
  304. public:
  305. SetVariable( Text name, Aktion *value );
  306. ~SetVariable();
  307. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  308. };
  309. class TriggerAktion : public Aktion
  310. {
  311. private:
  312. Aktion *number;
  313. Aktion *trigger;
  314. public:
  315. TriggerAktion( Aktion *number, Aktion *triggerName );
  316. ~TriggerAktion();
  317. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  318. };
  319. class SpielerNachricht : public Aktion
  320. {
  321. private:
  322. Aktion *spieler;
  323. Aktion *nachricht;
  324. public:
  325. SpielerNachricht( Aktion *spieler, Aktion *nachricht );
  326. ~SpielerNachricht();
  327. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  328. };
  329. class DisplayText : public Aktion
  330. {
  331. private:
  332. Aktion *x;
  333. Aktion *y;
  334. Aktion *color;
  335. Aktion *dauer;
  336. Aktion *nachricht;
  337. public:
  338. DisplayText( Aktion *x, Aktion *y, Aktion *f, Aktion *dauer, Aktion *nachricht );
  339. ~DisplayText();
  340. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  341. };
  342. class SpielPause : public Aktion
  343. {
  344. private:
  345. Aktion *paused;
  346. public:
  347. SpielPause( Aktion *paused );
  348. ~SpielPause();
  349. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  350. };
  351. class SpielEnde : public Aktion
  352. {
  353. private:
  354. Aktion *gewinnerTeam;
  355. public:
  356. SpielEnde( Aktion *gewinnerTeam );
  357. ~SpielEnde();
  358. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  359. };
  360. class SpielerSetLevel : public Aktion
  361. {
  362. private:
  363. Aktion *level;
  364. Aktion *spieler;
  365. public:
  366. SpielerSetLevel( Aktion *level, Aktion *spieler );
  367. ~SpielerSetLevel();
  368. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  369. };
  370. class SpielerGiveItem : public Aktion
  371. {
  372. private:
  373. Aktion *item;
  374. Aktion *anzahl;
  375. Aktion *spieler;
  376. public:
  377. SpielerGiveItem( Aktion *item, Aktion *anzahl, Aktion *spieler );
  378. ~SpielerGiveItem();
  379. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  380. };
  381. class SpielerRemoveItem : public Aktion
  382. {
  383. private:
  384. Aktion *item;
  385. Aktion *anzahl;
  386. Aktion *spieler;
  387. public:
  388. SpielerRemoveItem( Aktion *item, Aktion *anzahl, Aktion *spieler );
  389. ~SpielerRemoveItem();
  390. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  391. };
  392. class SpielerSetPosition : public Aktion
  393. {
  394. private:
  395. Aktion *x;
  396. Aktion *y;
  397. Aktion *spieler;
  398. public:
  399. SpielerSetPosition( Aktion *x, Aktion *y, Aktion *spieler );
  400. ~SpielerSetPosition();
  401. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  402. };
  403. class SpielerSetLeben : public Aktion
  404. {
  405. private:
  406. Aktion *leben;
  407. Aktion *spieler;
  408. public:
  409. SpielerSetLeben( Aktion *leben, Aktion *spieler );
  410. ~SpielerSetLeben();
  411. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  412. };
  413. class SpielerSetMaxLeben : public Aktion
  414. {
  415. private:
  416. Aktion *leben;
  417. Aktion *spieler;
  418. public:
  419. SpielerSetMaxLeben( Aktion *leben, Aktion *spieler );
  420. ~SpielerSetMaxLeben();
  421. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  422. };
  423. class SpielerSetErfahrung : public Aktion
  424. {
  425. private:
  426. Aktion *erfahrung;
  427. Aktion *spieler;
  428. public:
  429. SpielerSetErfahrung( Aktion *erfahrung, Aktion *spieler );
  430. ~SpielerSetErfahrung();
  431. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  432. };
  433. class SpielerSetMaxErfahrung : public Aktion
  434. {
  435. private:
  436. Aktion *erfahrung;
  437. Aktion *spieler;
  438. public:
  439. SpielerSetMaxErfahrung( Aktion *erfahrung, Aktion *spieler );
  440. ~SpielerSetMaxErfahrung();
  441. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  442. };
  443. class SpielerSetTempo : public Aktion
  444. {
  445. private:
  446. Aktion *tempo;
  447. Aktion *spieler;
  448. public:
  449. SpielerSetTempo( Aktion *tempo, Aktion *spieler );
  450. ~SpielerSetTempo();
  451. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  452. };
  453. class SpielerSetWaffenTempo : public Aktion
  454. {
  455. private:
  456. Aktion *tempo;
  457. Aktion *spieler;
  458. public:
  459. SpielerSetWaffenTempo( Aktion *tempo, Aktion *spieler );
  460. ~SpielerSetWaffenTempo();
  461. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  462. };
  463. class SpielerSetArmor : public Aktion
  464. {
  465. private:
  466. Aktion *armor;
  467. Aktion *spieler;
  468. public:
  469. SpielerSetArmor( Aktion *armor, Aktion *spieler );
  470. ~SpielerSetArmor();
  471. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  472. };
  473. class SpielerSetSchadenBonus : public Aktion
  474. {
  475. private:
  476. Aktion *bonus;
  477. Aktion *spieler;
  478. public:
  479. SpielerSetSchadenBonus( Aktion *bonus, Aktion *spieler );
  480. ~SpielerSetSchadenBonus();
  481. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  482. };
  483. class SpielerSetLebensraub : public Aktion
  484. {
  485. private:
  486. Aktion *lebensraub;
  487. Aktion *spieler;
  488. public:
  489. SpielerSetLebensraub( Aktion *lebensraub, Aktion *spieler );
  490. ~SpielerSetLebensraub();
  491. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  492. };
  493. class SpielerSetLebensregeneration : public Aktion
  494. {
  495. private:
  496. Aktion *regeneration;
  497. Aktion *spieler;
  498. public:
  499. SpielerSetLebensregeneration( Aktion *regeneration, Aktion *spieler );
  500. ~SpielerSetLebensregeneration();
  501. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  502. };
  503. class SpielerSetAbklingzeitverringerung : public Aktion
  504. {
  505. private:
  506. Aktion *verringerung;
  507. Aktion *spieler;
  508. public:
  509. SpielerSetAbklingzeitverringerung( Aktion *verringerung, Aktion *spieler );
  510. ~SpielerSetAbklingzeitverringerung();
  511. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  512. };
  513. class DropSetTime : public Aktion
  514. {
  515. private:
  516. Aktion *time;
  517. Aktion *drop;
  518. public:
  519. DropSetTime( Aktion *time, Aktion *drop );
  520. ~DropSetTime();
  521. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  522. };
  523. class DropSetMaxTime : public Aktion
  524. {
  525. private:
  526. Aktion *time;
  527. Aktion *drop;
  528. public:
  529. DropSetMaxTime( Aktion *time, Aktion *drop );
  530. ~DropSetMaxTime();
  531. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  532. };
  533. class DropSetArea : public Aktion
  534. {
  535. private:
  536. Aktion *minX;
  537. Aktion *maxX;
  538. Aktion *minY;
  539. Aktion *maxY;
  540. Aktion *drop;
  541. public:
  542. DropSetArea( Aktion *minX, Aktion *maxX, Aktion *minY, Aktion *maxY, Aktion *drop );
  543. ~DropSetArea();
  544. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  545. };
  546. class DropDoDrop : public Aktion
  547. {
  548. private:
  549. Aktion *drop;
  550. public:
  551. DropDoDrop( Aktion *drop );
  552. ~DropDoDrop();
  553. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  554. };
  555. class BariereBewegung : public Aktion
  556. {
  557. private:
  558. Aktion *bariere;
  559. public:
  560. BariereBewegung( Aktion *bariere );
  561. ~BariereBewegung();
  562. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  563. };
  564. class BariereSetEingeschaltet : public Aktion
  565. {
  566. private:
  567. Aktion *eingeschaltet;
  568. Aktion *bariere;
  569. public:
  570. BariereSetEingeschaltet( Aktion *eingeschaltet, Aktion *bariere );
  571. ~BariereSetEingeschaltet();
  572. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  573. };
  574. class BariereSetPosition : public Aktion
  575. {
  576. private:
  577. Aktion *x;
  578. Aktion *y;
  579. Aktion *bariere;
  580. public:
  581. BariereSetPosition( Aktion *x, Aktion *y, Aktion *bariere );
  582. ~BariereSetPosition();
  583. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  584. };
  585. class BariereSetTeam : public Aktion
  586. {
  587. private:
  588. Aktion *team;
  589. Aktion *bariere;
  590. public:
  591. BariereSetTeam( Aktion *team, Aktion *bariere );
  592. ~BariereSetTeam();
  593. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  594. };
  595. class SchalterSetPosition : public Aktion
  596. {
  597. private:
  598. Aktion *x;
  599. Aktion *y;
  600. Aktion *schalter;
  601. public:
  602. SchalterSetPosition( Aktion *x, Aktion *y, Aktion *schalter );
  603. ~SchalterSetPosition();
  604. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  605. };
  606. class SchalterSetErlaubt : public Aktion
  607. {
  608. private:
  609. Aktion *erlaubt;
  610. Aktion *schalter;
  611. public:
  612. SchalterSetErlaubt( Aktion *erlaubt, Aktion *schalter );
  613. ~SchalterSetErlaubt();
  614. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  615. };
  616. class SchalterAktivieren : public Aktion
  617. {
  618. private:
  619. Aktion *schalter;
  620. public:
  621. SchalterAktivieren( Aktion *schalter );
  622. ~SchalterAktivieren();
  623. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  624. };
  625. class TunnelSetPosition : public Aktion
  626. {
  627. private:
  628. Aktion *x;
  629. Aktion *y;
  630. Aktion *tunnel;
  631. public:
  632. TunnelSetPosition( Aktion *x, Aktion *y, Aktion *tunnel );
  633. ~TunnelSetPosition();
  634. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  635. };
  636. class TunnelSetZielPosition : public Aktion
  637. {
  638. private:
  639. Aktion *x;
  640. Aktion *y;
  641. Aktion *tunnel;
  642. public:
  643. TunnelSetZielPosition( Aktion *x, Aktion *y, Aktion *tunnel );
  644. ~TunnelSetZielPosition();
  645. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  646. };
  647. class TunnelSetErlaubt : public Aktion
  648. {
  649. private:
  650. Aktion *erlaubt;
  651. Aktion *tunnel;
  652. public:
  653. TunnelSetErlaubt( Aktion *erlaubt, Aktion *tunnel );
  654. ~TunnelSetErlaubt();
  655. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  656. };
  657. class UmlenkungSetPosition : public Aktion
  658. {
  659. private:
  660. Aktion *x;
  661. Aktion *y;
  662. Aktion *umlenkung;
  663. public:
  664. UmlenkungSetPosition( Aktion *x, Aktion *y, Aktion *umlenkung );
  665. ~UmlenkungSetPosition();
  666. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  667. };
  668. class UmlenkungSetRichtung : public Aktion
  669. {
  670. private:
  671. Aktion *richtung;
  672. Aktion *umlenkung;
  673. public:
  674. UmlenkungSetRichtung( Aktion *richtung, Aktion *umlenkung );
  675. ~UmlenkungSetRichtung();
  676. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  677. };
  678. class UmlenkungSetMaxAbk : public Aktion
  679. {
  680. private:
  681. Aktion *abk;
  682. Aktion *umlenkung;
  683. public:
  684. UmlenkungSetMaxAbk( Aktion *abk, Aktion *umlenkung );
  685. ~UmlenkungSetMaxAbk();
  686. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  687. };
  688. class UmlenkungSetEnabled : public Aktion
  689. {
  690. private:
  691. Aktion *enabled;
  692. Aktion *umlenkung;
  693. public:
  694. UmlenkungSetEnabled( Aktion *enabled, Aktion *umlenkung );
  695. ~UmlenkungSetEnabled();
  696. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  697. };
  698. class BaseSetPosition : public Aktion
  699. {
  700. private:
  701. Aktion *x;
  702. Aktion *y;
  703. Aktion *base;
  704. public:
  705. BaseSetPosition( Aktion *x, Aktion *y, Aktion *base );
  706. ~BaseSetPosition();
  707. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  708. };
  709. class BaseSetTeam : public Aktion
  710. {
  711. private:
  712. Aktion *team;
  713. Aktion *base;
  714. public:
  715. BaseSetTeam( Aktion *team, Aktion *base );
  716. ~BaseSetTeam();
  717. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  718. };
  719. class TriggerRunStart : public Aktion
  720. {
  721. private:
  722. Aktion *trigger;
  723. public:
  724. TriggerRunStart( Aktion *base );
  725. ~TriggerRunStart();
  726. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  727. };
  728. class TriggerSetEnabled : public Aktion
  729. {
  730. private:
  731. Aktion *enabled;
  732. Aktion *trigger;
  733. public:
  734. TriggerSetEnabled( Aktion *enabled, Aktion *trigger );
  735. ~TriggerSetEnabled();
  736. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  737. };
  738. class TeamSetPunkte : public Aktion
  739. {
  740. private:
  741. Aktion *punkte;
  742. Aktion *team;
  743. public:
  744. TeamSetPunkte( Aktion *punkte, Aktion *team );
  745. ~TeamSetPunkte();
  746. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  747. };
  748. class TimerSetPosition : public Aktion
  749. {
  750. private:
  751. Aktion *x;
  752. Aktion *y;
  753. Aktion *timer;
  754. public:
  755. TimerSetPosition( Aktion *x, Aktion *y, Aktion *timer );
  756. ~TimerSetPosition();
  757. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  758. };
  759. class TimerSetPause : public Aktion
  760. {
  761. private:
  762. Aktion *pause;
  763. Aktion *timer;
  764. public:
  765. TimerSetPause( Aktion *pause, Aktion *timer );
  766. ~TimerSetPause();
  767. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  768. };
  769. class TimerStart : public Aktion
  770. {
  771. private:
  772. Aktion *timer;
  773. public:
  774. TimerStart( Aktion *timer );
  775. ~TimerStart();
  776. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  777. };
  778. class TimerSetZeit : public Aktion
  779. {
  780. private:
  781. Aktion *zeit;
  782. Aktion *timer;
  783. public:
  784. TimerSetZeit( Aktion *zeit, Aktion *timer );
  785. ~TimerSetZeit();
  786. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  787. };
  788. class TimerSetSichtbar : public Aktion
  789. {
  790. private:
  791. Aktion *sichtbar;
  792. Aktion *timer;
  793. public:
  794. TimerSetSichtbar( Aktion *sichtbar, Aktion *timer );
  795. ~TimerSetSichtbar();
  796. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  797. };
  798. class GeschossNeu : public Aktion
  799. {
  800. private:
  801. Aktion *x;
  802. Aktion *y;
  803. Aktion *typ;
  804. Aktion *richtung;
  805. public:
  806. GeschossNeu( Aktion *x, Aktion *y, Aktion *typ, Aktion *richtung );
  807. ~GeschossNeu();
  808. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  809. };
  810. class GeschossSetPosition : public Aktion
  811. {
  812. private:
  813. Aktion *x;
  814. Aktion *y;
  815. Aktion *geschoss;
  816. public:
  817. GeschossSetPosition( Aktion *x, Aktion *y, Aktion *geschoss );
  818. ~GeschossSetPosition();
  819. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  820. };
  821. class GeschossSetSpeed : public Aktion
  822. {
  823. private:
  824. Aktion *speed;
  825. Aktion *geschoss;
  826. public:
  827. GeschossSetSpeed( Aktion *speed, Aktion *geschoss );
  828. ~GeschossSetSpeed();
  829. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  830. };
  831. class GeschossSetPlayer : public Aktion
  832. {
  833. private:
  834. Aktion *player;
  835. Aktion *geschoss;
  836. public:
  837. GeschossSetPlayer( Aktion *player, Aktion *geschoss );
  838. ~GeschossSetPlayer();
  839. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  840. };
  841. class GeschossSetRichtung : public Aktion
  842. {
  843. private:
  844. Aktion *richtung;
  845. Aktion *geschoss;
  846. public:
  847. GeschossSetRichtung( Aktion *richtung, Aktion *geschoss );
  848. ~GeschossSetRichtung();
  849. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  850. };
  851. class GeschossSetType : public Aktion
  852. {
  853. private:
  854. Aktion *type;
  855. Aktion *geschoss;
  856. public:
  857. GeschossSetType( Aktion *type, Aktion *geschoss );
  858. ~GeschossSetType();
  859. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  860. };
  861. class TriggerZufall : public Aktion
  862. {
  863. public:
  864. TriggerZufall();
  865. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  866. };
  867. class TriggerLastRunned : public Aktion
  868. {
  869. public:
  870. TriggerLastRunned();
  871. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  872. };
  873. class BariereZufall : public Aktion
  874. {
  875. public:
  876. BariereZufall();
  877. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  878. };
  879. class BariereZuletztEingeschaltet : public Aktion
  880. {
  881. public:
  882. BariereZuletztEingeschaltet();
  883. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  884. };
  885. class BariereZuletztAusgeschaltet : public Aktion
  886. {
  887. public:
  888. BariereZuletztAusgeschaltet();
  889. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  890. };
  891. class BariereZuletztBewegt : public Aktion
  892. {
  893. public:
  894. BariereZuletztBewegt();
  895. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  896. };
  897. class BaseZufall : public Aktion
  898. {
  899. public:
  900. BaseZufall();
  901. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  902. };
  903. class BaseZuletztBesitzerGewechselt : public Aktion
  904. {
  905. public:
  906. BaseZuletztBesitzerGewechselt();
  907. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  908. };
  909. class DropZufall : public Aktion
  910. {
  911. public:
  912. DropZufall();
  913. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  914. };
  915. class DropZuletztGedropt : public Aktion
  916. {
  917. public:
  918. DropZuletztGedropt();
  919. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  920. };
  921. class IntegerRechnen : public Aktion
  922. {
  923. private:
  924. Aktion *left;
  925. Aktion *right;
  926. char op;
  927. public:
  928. IntegerRechnen( Aktion *left, Aktion *right, char op );
  929. ~IntegerRechnen();
  930. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  931. };
  932. class IntegerZufall : public Aktion
  933. {
  934. private:
  935. Aktion *min;
  936. Aktion *max;
  937. public:
  938. IntegerZufall( Aktion *min, Aktion *max );
  939. ~IntegerZufall();
  940. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  941. };
  942. class IntegerAusText : public Aktion
  943. {
  944. private:
  945. Aktion *text;
  946. public:
  947. IntegerAusText( Aktion *text );
  948. ~IntegerAusText();
  949. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  950. };
  951. class IntegerXVonSpieler : public Aktion
  952. {
  953. private:
  954. Aktion *spieler;
  955. public:
  956. IntegerXVonSpieler( Aktion *spieler );
  957. ~IntegerXVonSpieler();
  958. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  959. };
  960. class IntegerYVonSpieler : public Aktion
  961. {
  962. private:
  963. Aktion *spieler;
  964. public:
  965. IntegerYVonSpieler( Aktion *spieler );
  966. ~IntegerYVonSpieler();
  967. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  968. };
  969. class IntegerXVonBariere : public Aktion
  970. {
  971. private:
  972. Aktion *bariere;
  973. public:
  974. IntegerXVonBariere( Aktion *bariere );
  975. ~IntegerXVonBariere();
  976. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  977. };
  978. class IntegerYVonBariere : public Aktion
  979. {
  980. private:
  981. Aktion *bariere;
  982. public:
  983. IntegerYVonBariere( Aktion *bariere );
  984. ~IntegerYVonBariere();
  985. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  986. };
  987. class IntegerXVonSchalter : public Aktion
  988. {
  989. private:
  990. Aktion *schalter;
  991. public:
  992. IntegerXVonSchalter( Aktion *schalter );
  993. ~IntegerXVonSchalter();
  994. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  995. };
  996. class IntegerYVonSchalter : public Aktion
  997. {
  998. private:
  999. Aktion *schalter;
  1000. public:
  1001. IntegerYVonSchalter( Aktion *schalter );
  1002. ~IntegerYVonSchalter();
  1003. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1004. };
  1005. class IntegerXVonTunnel : public Aktion
  1006. {
  1007. private:
  1008. Aktion *tunnel;
  1009. public:
  1010. IntegerXVonTunnel( Aktion *tunnel );
  1011. ~IntegerXVonTunnel();
  1012. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1013. };
  1014. class IntegerYVonTunnel : public Aktion
  1015. {
  1016. private:
  1017. Aktion *tunnel;
  1018. public:
  1019. IntegerYVonTunnel( Aktion *tunnel );
  1020. ~IntegerYVonTunnel();
  1021. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1022. };
  1023. class IntegerXVonTunnelZiel : public Aktion
  1024. {
  1025. private:
  1026. Aktion *tunnel;
  1027. public:
  1028. IntegerXVonTunnelZiel( Aktion *tunnel );
  1029. ~IntegerXVonTunnelZiel();
  1030. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1031. };
  1032. class IntegerYVonTunnelZiel : public Aktion
  1033. {
  1034. private:
  1035. Aktion *tunnel;
  1036. public:
  1037. IntegerYVonTunnelZiel( Aktion *tunnel );
  1038. ~IntegerYVonTunnelZiel();
  1039. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1040. };
  1041. class IntegerXVonUmlenkung : public Aktion
  1042. {
  1043. private:
  1044. Aktion *umlenkung;
  1045. public:
  1046. IntegerXVonUmlenkung( Aktion *umlenkung );
  1047. ~IntegerXVonUmlenkung();
  1048. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1049. };
  1050. class IntegerYVonUmlenkung : public Aktion
  1051. {
  1052. private:
  1053. Aktion *umlenkung;
  1054. public:
  1055. IntegerYVonUmlenkung( Aktion *umlenkung );
  1056. ~IntegerYVonUmlenkung();
  1057. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1058. };
  1059. class IntegerMinXVonDrop : public Aktion
  1060. {
  1061. private:
  1062. Aktion *drop;
  1063. public:
  1064. IntegerMinXVonDrop( Aktion *drop );
  1065. ~IntegerMinXVonDrop();
  1066. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1067. };
  1068. class IntegerMinYVonDrop : public Aktion
  1069. {
  1070. private:
  1071. Aktion *drop;
  1072. public:
  1073. IntegerMinYVonDrop( Aktion *drop );
  1074. ~IntegerMinYVonDrop();
  1075. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1076. };
  1077. class IntegerMaxXVonDrop : public Aktion
  1078. {
  1079. private:
  1080. Aktion *drop;
  1081. public:
  1082. IntegerMaxXVonDrop( Aktion *drop );
  1083. ~IntegerMaxXVonDrop();
  1084. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1085. };
  1086. class IntegerMaxYVonDrop : public Aktion
  1087. {
  1088. private:
  1089. Aktion *drop;
  1090. public:
  1091. IntegerMaxYVonDrop( Aktion *drop );
  1092. ~IntegerMaxYVonDrop();
  1093. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1094. };
  1095. class IntegerXVonBase : public Aktion
  1096. {
  1097. private:
  1098. Aktion *base;
  1099. public:
  1100. IntegerXVonBase( Aktion *base );
  1101. ~IntegerXVonBase();
  1102. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1103. };
  1104. class IntegerYVonBase : public Aktion
  1105. {
  1106. private:
  1107. Aktion *base;
  1108. public:
  1109. IntegerYVonBase( Aktion *base );
  1110. ~IntegerYVonBase();
  1111. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1112. };
  1113. class IntegerXVonTimer : public Aktion
  1114. {
  1115. private:
  1116. Aktion *timer;
  1117. public:
  1118. IntegerXVonTimer( Aktion *timer );
  1119. ~IntegerXVonTimer();
  1120. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1121. };
  1122. class IntegerYVonTimer : public Aktion
  1123. {
  1124. private:
  1125. Aktion *timer;
  1126. public:
  1127. IntegerYVonTimer( Aktion *timer );
  1128. ~IntegerYVonTimer();
  1129. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1130. };
  1131. class IntegerXVonGeschoss : public Aktion
  1132. {
  1133. private:
  1134. Aktion *geschoss;
  1135. public:
  1136. IntegerXVonGeschoss( Aktion *geschoss );
  1137. ~IntegerXVonGeschoss();
  1138. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1139. };
  1140. class IntegerYVonGeschoss : public Aktion
  1141. {
  1142. private:
  1143. Aktion *geschoss;
  1144. public:
  1145. IntegerYVonGeschoss( Aktion *geschoss );
  1146. ~IntegerYVonGeschoss();
  1147. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1148. };
  1149. class IntegerSpielerLevel : public Aktion
  1150. {
  1151. private:
  1152. Aktion *spieler;
  1153. public:
  1154. IntegerSpielerLevel( Aktion *spieler );
  1155. ~IntegerSpielerLevel();
  1156. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1157. };
  1158. class IntegerSpielerLeben : public Aktion
  1159. {
  1160. private:
  1161. Aktion *spieler;
  1162. public:
  1163. IntegerSpielerLeben( Aktion *spieler );
  1164. ~IntegerSpielerLeben();
  1165. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1166. };
  1167. class IntegerSpielerMaxLeben : public Aktion
  1168. {
  1169. private:
  1170. Aktion *spieler;
  1171. public:
  1172. IntegerSpielerMaxLeben( Aktion *spieler );
  1173. ~IntegerSpielerMaxLeben();
  1174. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1175. };
  1176. class IntegerSpielerErfahrung : public Aktion
  1177. {
  1178. private:
  1179. Aktion *spieler;
  1180. public:
  1181. IntegerSpielerErfahrung( Aktion *spieler );
  1182. ~IntegerSpielerErfahrung();
  1183. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1184. };
  1185. class IntegerSpielerMaxErfahrung : public Aktion
  1186. {
  1187. private:
  1188. Aktion *spieler;
  1189. public:
  1190. IntegerSpielerMaxErfahrung( Aktion *spieler );
  1191. ~IntegerSpielerMaxErfahrung();
  1192. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1193. };
  1194. class IntegerSpielerTempo : public Aktion
  1195. {
  1196. private:
  1197. Aktion *spieler;
  1198. public:
  1199. IntegerSpielerTempo( Aktion *spieler );
  1200. ~IntegerSpielerTempo();
  1201. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1202. };
  1203. class IntegerSpielerGeschossTempo : public Aktion
  1204. {
  1205. private:
  1206. Aktion *spieler;
  1207. public:
  1208. IntegerSpielerGeschossTempo( Aktion *spieler );
  1209. ~IntegerSpielerGeschossTempo();
  1210. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1211. };
  1212. class IntegerSpielerArmor : public Aktion
  1213. {
  1214. private:
  1215. Aktion *spieler;
  1216. public:
  1217. IntegerSpielerArmor( Aktion *spieler );
  1218. ~IntegerSpielerArmor();
  1219. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1220. };
  1221. class IntegerSpielerSchadenBonus : public Aktion
  1222. {
  1223. private:
  1224. Aktion *spieler;
  1225. public:
  1226. IntegerSpielerSchadenBonus( Aktion *spieler );
  1227. ~IntegerSpielerSchadenBonus();
  1228. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1229. };
  1230. class IntegerSpielerLebensraub : public Aktion
  1231. {
  1232. private:
  1233. Aktion *spieler;
  1234. public:
  1235. IntegerSpielerLebensraub( Aktion *spieler );
  1236. ~IntegerSpielerLebensraub();
  1237. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1238. };
  1239. class IntegerSpielerLebensregeneration : public Aktion
  1240. {
  1241. private:
  1242. Aktion *spieler;
  1243. public:
  1244. IntegerSpielerLebensregeneration( Aktion *spieler );
  1245. ~IntegerSpielerLebensregeneration();
  1246. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1247. };
  1248. class IntegerSpielerAbklingzeitVerringerung : public Aktion
  1249. {
  1250. private:
  1251. Aktion *spieler;
  1252. public:
  1253. IntegerSpielerAbklingzeitVerringerung( Aktion *spieler );
  1254. ~IntegerSpielerAbklingzeitVerringerung();
  1255. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1256. };
  1257. class IntegerSpielerTode : public Aktion
  1258. {
  1259. private:
  1260. Aktion *spieler;
  1261. public:
  1262. IntegerSpielerTode( Aktion *spieler );
  1263. ~IntegerSpielerTode();
  1264. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1265. };
  1266. class IntegerSpielerKills : public Aktion
  1267. {
  1268. private:
  1269. Aktion *spieler;
  1270. public:
  1271. IntegerSpielerKills( Aktion *spieler );
  1272. ~IntegerSpielerKills();
  1273. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1274. };
  1275. class IntegerSpielerTreffer : public Aktion
  1276. {
  1277. private:
  1278. Aktion *spieler;
  1279. public:
  1280. IntegerSpielerTreffer( Aktion *spieler );
  1281. ~IntegerSpielerTreffer();
  1282. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1283. };
  1284. class IntegerSpielerGetroffen : public Aktion
  1285. {
  1286. private:
  1287. Aktion *spieler;
  1288. public:
  1289. IntegerSpielerGetroffen( Aktion *spieler );
  1290. ~IntegerSpielerGetroffen();
  1291. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1292. };
  1293. class IntegerSpielerErlittenerSchaden : public Aktion
  1294. {
  1295. private:
  1296. Aktion *spieler;
  1297. public:
  1298. IntegerSpielerErlittenerSchaden( Aktion *spieler );
  1299. ~IntegerSpielerErlittenerSchaden();
  1300. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1301. };
  1302. class IntegerSpielerSchaden : public Aktion
  1303. {
  1304. private:
  1305. Aktion *spieler;
  1306. public:
  1307. IntegerSpielerSchaden( Aktion *spieler );
  1308. ~IntegerSpielerSchaden();
  1309. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1310. };
  1311. class IntegerSpielerGeheiltesLeben : public Aktion
  1312. {
  1313. private:
  1314. Aktion *spieler;
  1315. public:
  1316. IntegerSpielerGeheiltesLeben( Aktion *spieler );
  1317. ~IntegerSpielerGeheiltesLeben();
  1318. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1319. };
  1320. class IntegerSpielerItemsAufgehoben : public Aktion
  1321. {
  1322. private:
  1323. Aktion *spieler;
  1324. public:
  1325. IntegerSpielerItemsAufgehoben( Aktion *spieler );
  1326. ~IntegerSpielerItemsAufgehoben();
  1327. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1328. };
  1329. class IntegerSpielerItemsVerwendet : public Aktion
  1330. {
  1331. private:
  1332. Aktion *spieler;
  1333. public:
  1334. IntegerSpielerItemsVerwendet( Aktion *spieler );
  1335. ~IntegerSpielerItemsVerwendet();
  1336. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1337. };
  1338. class IntegerSpielerItemsInInventar : public Aktion
  1339. {
  1340. private:
  1341. Aktion *spieler;
  1342. public:
  1343. IntegerSpielerItemsInInventar( Aktion *spieler );
  1344. ~IntegerSpielerItemsInInventar();
  1345. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1346. };
  1347. class IntegerSpielerItemsTypeInInventar : public Aktion
  1348. {
  1349. private:
  1350. Aktion *spieler;
  1351. Aktion *item;
  1352. public:
  1353. IntegerSpielerItemsTypeInInventar( Aktion *item, Aktion *spieler );
  1354. ~IntegerSpielerItemsTypeInInventar();
  1355. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1356. };
  1357. class IntegerSpielerTunnelBenutzt : public Aktion
  1358. {
  1359. private:
  1360. Aktion *spieler;
  1361. public:
  1362. IntegerSpielerTunnelBenutzt( Aktion *spieler );
  1363. ~IntegerSpielerTunnelBenutzt();
  1364. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1365. };
  1366. class IntegerSpielerSchalterAktiviert : public Aktion
  1367. {
  1368. private:
  1369. Aktion *spieler;
  1370. public:
  1371. IntegerSpielerSchalterAktiviert( Aktion *spieler );
  1372. ~IntegerSpielerSchalterAktiviert();
  1373. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1374. };
  1375. class IntegerSpielerGeschossen : public Aktion
  1376. {
  1377. private:
  1378. Aktion *spieler;
  1379. public:
  1380. IntegerSpielerGeschossen( Aktion *spieler );
  1381. ~IntegerSpielerGeschossen();
  1382. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1383. };
  1384. class IntegerDropZeit : public Aktion
  1385. {
  1386. private:
  1387. Aktion *drop;
  1388. public:
  1389. IntegerDropZeit( Aktion *drop );
  1390. ~IntegerDropZeit();
  1391. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1392. };
  1393. class IntegerDropMaxZeit : public Aktion
  1394. {
  1395. private:
  1396. Aktion *drop;
  1397. public:
  1398. IntegerDropMaxZeit( Aktion *drop );
  1399. ~IntegerDropMaxZeit();
  1400. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1401. };
  1402. class IntegerBariereBreite : public Aktion
  1403. {
  1404. private:
  1405. Aktion *bariere;
  1406. public:
  1407. IntegerBariereBreite( Aktion *bariere );
  1408. ~IntegerBariereBreite();
  1409. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1410. };
  1411. class IntegerBariereHeight : public Aktion
  1412. {
  1413. private:
  1414. Aktion *bariere;
  1415. public:
  1416. IntegerBariereHeight( Aktion *bariere );
  1417. ~IntegerBariereHeight();
  1418. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1419. };
  1420. class IntegerBariereVerschiebungen : public Aktion
  1421. {
  1422. private:
  1423. Aktion *bariere;
  1424. public:
  1425. IntegerBariereVerschiebungen( Aktion *bariere );
  1426. ~IntegerBariereVerschiebungen();
  1427. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1428. };
  1429. class IntegerBariereSchaltungen : public Aktion
  1430. {
  1431. private:
  1432. Aktion *bariere;
  1433. public:
  1434. IntegerBariereSchaltungen( Aktion *bariere );
  1435. ~IntegerBariereSchaltungen();
  1436. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1437. };
  1438. class IntegerSchalterAktivierungen : public Aktion
  1439. {
  1440. private:
  1441. Aktion *schalter;
  1442. public:
  1443. IntegerSchalterAktivierungen( Aktion *schalter );
  1444. ~IntegerSchalterAktivierungen();
  1445. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1446. };
  1447. class IntegerTunnelBenutzungen : public Aktion
  1448. {
  1449. private:
  1450. Aktion *tunnel;
  1451. public:
  1452. IntegerTunnelBenutzungen( Aktion *tunnel );
  1453. ~IntegerTunnelBenutzungen();
  1454. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1455. };
  1456. class IntegerUmlenkungBenutzungen : public Aktion
  1457. {
  1458. private:
  1459. Aktion *umlenkung;
  1460. public:
  1461. IntegerUmlenkungBenutzungen( Aktion *umlenkung );
  1462. ~IntegerUmlenkungBenutzungen();
  1463. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1464. };
  1465. class IntegerTeamPunkte : public Aktion
  1466. {
  1467. private:
  1468. Aktion *team;
  1469. public:
  1470. IntegerTeamPunkte( Aktion *team );
  1471. ~IntegerTeamPunkte();
  1472. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1473. };
  1474. class IntegerTeamKills : public Aktion
  1475. {
  1476. private:
  1477. Aktion *team;
  1478. public:
  1479. IntegerTeamKills( Aktion *team );
  1480. ~IntegerTeamKills();
  1481. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1482. };
  1483. class IntegerTeamTode : public Aktion
  1484. {
  1485. private:
  1486. Aktion *team;
  1487. public:
  1488. IntegerTeamTode( Aktion *team );
  1489. ~IntegerTeamTode();
  1490. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1491. };
  1492. class IntegerTeamWiederbelegungszeit : public Aktion
  1493. {
  1494. private:
  1495. Aktion *team;
  1496. public:
  1497. IntegerTeamWiederbelegungszeit( Aktion *team );
  1498. ~IntegerTeamWiederbelegungszeit();
  1499. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1500. };
  1501. class IntegerTeamSpieleranzahl : public Aktion
  1502. {
  1503. private:
  1504. Aktion *team;
  1505. public:
  1506. IntegerTeamSpieleranzahl( Aktion *team );
  1507. ~IntegerTeamSpieleranzahl();
  1508. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1509. };
  1510. class IntegerTimerAktuelleZeit : public Aktion
  1511. {
  1512. private:
  1513. Aktion *timer;
  1514. public:
  1515. IntegerTimerAktuelleZeit( Aktion *timer );
  1516. ~IntegerTimerAktuelleZeit();
  1517. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1518. };
  1519. class IntegerTimerMaxZeit : public Aktion
  1520. {
  1521. private:
  1522. Aktion *timer;
  1523. public:
  1524. IntegerTimerMaxZeit( Aktion *timer );
  1525. ~IntegerTimerMaxZeit();
  1526. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1527. };
  1528. class IntegerTriggerRunns : public Aktion
  1529. {
  1530. private:
  1531. Aktion *trigger;
  1532. public:
  1533. IntegerTriggerRunns( Aktion *trigger );
  1534. ~IntegerTriggerRunns();
  1535. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1536. };
  1537. class ItemSpielerInventar : public Aktion
  1538. {
  1539. private:
  1540. Aktion *spieler;
  1541. Aktion *index;
  1542. public:
  1543. ItemSpielerInventar( Aktion *index, Aktion *spieler );
  1544. ~ItemSpielerInventar();
  1545. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1546. };
  1547. class ItemZuletztAufgehoben : public Aktion
  1548. {
  1549. public:
  1550. ItemZuletztAufgehoben();
  1551. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1552. };
  1553. class ItemZuletztAktiviert : public Aktion
  1554. {
  1555. public:
  1556. ItemZuletztAktiviert();
  1557. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1558. };
  1559. class ItemZuletztGedropt : public Aktion
  1560. {
  1561. public:
  1562. ItemZuletztGedropt();
  1563. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1564. };
  1565. class ItemZufall : public Aktion
  1566. {
  1567. public:
  1568. ItemZufall();
  1569. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1570. };
  1571. class GeschossZufall : public Aktion
  1572. {
  1573. public:
  1574. GeschossZufall();
  1575. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1576. };
  1577. class GeschossZuletztAbgefeuert : public Aktion
  1578. {
  1579. public:
  1580. GeschossZuletztAbgefeuert();
  1581. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1582. };
  1583. class GeschossZuletztUmgelenkt : public Aktion
  1584. {
  1585. public:
  1586. GeschossZuletztUmgelenkt();
  1587. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1588. };
  1589. class GeschossZuletztBarjereGetroffen : public Aktion
  1590. {
  1591. public:
  1592. GeschossZuletztBarjereGetroffen();
  1593. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1594. };
  1595. class GeschossZuletztTunnelBenutzt : public Aktion
  1596. {
  1597. public:
  1598. GeschossZuletztTunnelBenutzt();
  1599. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1600. };
  1601. class GeschossZuletztGeschossGetroffen : public Aktion
  1602. {
  1603. public:
  1604. GeschossZuletztGeschossGetroffen();
  1605. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1606. };
  1607. class RichtungZufall : public Aktion
  1608. {
  1609. public:
  1610. RichtungZufall();
  1611. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1612. };
  1613. class RichtungVonUmlenkung : public Aktion
  1614. {
  1615. private:
  1616. Aktion *umlenkung;
  1617. public:
  1618. RichtungVonUmlenkung( Aktion *umlenkung );
  1619. ~RichtungVonUmlenkung();
  1620. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1621. };
  1622. class RichtungVonGeschoss : public Aktion
  1623. {
  1624. private:
  1625. Aktion *geschoss;
  1626. public:
  1627. RichtungVonGeschoss( Aktion *geschoss );
  1628. ~RichtungVonGeschoss();
  1629. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1630. };
  1631. class SchalterZufall : public Aktion
  1632. {
  1633. public:
  1634. SchalterZufall();
  1635. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1636. };
  1637. class SchalterZuletztAktiviert : public Aktion
  1638. {
  1639. public:
  1640. SchalterZuletztAktiviert();
  1641. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1642. };
  1643. class SpielerZufall : public Aktion
  1644. {
  1645. public:
  1646. SpielerZufall();
  1647. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1648. };
  1649. class SpielerZufallAusTeam : public Aktion
  1650. {
  1651. private:
  1652. Aktion *team;
  1653. public:
  1654. SpielerZufallAusTeam( Aktion *team );
  1655. ~SpielerZufallAusTeam();
  1656. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1657. };
  1658. class SpielerZuletztSchadenGemacht : public Aktion
  1659. {
  1660. public:
  1661. SpielerZuletztSchadenGemacht();
  1662. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1663. };
  1664. class SpielerZuletztSchadenGenommen : public Aktion
  1665. {
  1666. public:
  1667. SpielerZuletztSchadenGenommen();
  1668. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1669. };
  1670. class SpielerZuletztGeheilt : public Aktion
  1671. {
  1672. public:
  1673. SpielerZuletztGeheilt();
  1674. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1675. };
  1676. class SpielerZuletztLevelUp : public Aktion
  1677. {
  1678. public:
  1679. SpielerZuletztLevelUp();
  1680. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1681. };
  1682. class SpielerZuletztErfahrungBekommen : public Aktion
  1683. {
  1684. public:
  1685. SpielerZuletztErfahrungBekommen();
  1686. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1687. };
  1688. class SpielerZuletztGegenstandAktiviert : public Aktion
  1689. {
  1690. public:
  1691. SpielerZuletztGegenstandAktiviert();
  1692. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1693. };
  1694. class SpielerZuletztGegenstandAufgehoben : public Aktion
  1695. {
  1696. public:
  1697. SpielerZuletztGegenstandAufgehoben();
  1698. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1699. };
  1700. class SpielerZuletztSchalterAktiviert : public Aktion
  1701. {
  1702. public:
  1703. SpielerZuletztSchalterAktiviert();
  1704. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1705. };
  1706. class SpielerZuletztTunnelBenutzt : public Aktion
  1707. {
  1708. public:
  1709. SpielerZuletztTunnelBenutzt();
  1710. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1711. };
  1712. class SpielerZuletztGestorben : public Aktion
  1713. {
  1714. public:
  1715. SpielerZuletztGestorben();
  1716. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1717. };
  1718. class SpielerZuletztWiederbelebent : public Aktion
  1719. {
  1720. public:
  1721. SpielerZuletztWiederbelebent();
  1722. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1723. };
  1724. class SpielerZuletztGeschossGeschossen : public Aktion
  1725. {
  1726. public:
  1727. SpielerZuletztGeschossGeschossen();
  1728. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1729. };
  1730. class TextConcat : public Aktion
  1731. {
  1732. private:
  1733. Aktion *t1;
  1734. Aktion *t2;
  1735. public:
  1736. TextConcat( Aktion *t1, Aktion *t2 );
  1737. ~TextConcat();
  1738. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1739. };
  1740. class TextAusZahl : public Aktion
  1741. {
  1742. private:
  1743. Aktion *zahl;
  1744. public:
  1745. TextAusZahl( Aktion *zahl );
  1746. ~TextAusZahl();
  1747. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1748. };
  1749. class TextAusRichtung : public Aktion
  1750. {
  1751. private:
  1752. Aktion *richtung;
  1753. public:
  1754. TextAusRichtung( Aktion *richtung );
  1755. ~TextAusRichtung();
  1756. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1757. };
  1758. class TextAusBoolean : public Aktion
  1759. {
  1760. private:
  1761. Aktion *boolean;
  1762. public:
  1763. TextAusBoolean( Aktion *boolean );
  1764. ~TextAusBoolean();
  1765. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1766. };
  1767. class TextSpielerName : public Aktion
  1768. {
  1769. private:
  1770. Aktion *spieler;
  1771. public:
  1772. TextSpielerName( Aktion *spieler );
  1773. ~TextSpielerName();
  1774. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1775. };
  1776. class TextItemName : public Aktion
  1777. {
  1778. private:
  1779. Aktion *item;
  1780. public:
  1781. TextItemName( Aktion *item );
  1782. ~TextItemName();
  1783. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1784. };
  1785. class TextTriggerName : public Aktion
  1786. {
  1787. private:
  1788. Aktion *trigger;
  1789. public:
  1790. TextTriggerName( Aktion *trigger );
  1791. ~TextTriggerName();
  1792. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1793. };
  1794. class TextTeilVonText : public Aktion
  1795. {
  1796. private:
  1797. Aktion *start;
  1798. Aktion *ende;
  1799. Aktion *text;
  1800. public:
  1801. TextTeilVonText( Aktion *start, Aktion *ende, Aktion *text );
  1802. ~TextTeilVonText();
  1803. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1804. };
  1805. class TeamZufall : public Aktion
  1806. {
  1807. public:
  1808. TeamZufall();
  1809. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1810. };
  1811. class TeamVonSpieler : public Aktion
  1812. {
  1813. private:
  1814. Aktion *spieler;
  1815. public:
  1816. TeamVonSpieler( Aktion *spieler );
  1817. ~TeamVonSpieler();
  1818. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1819. };
  1820. class TeamVonBariere : public Aktion
  1821. {
  1822. private:
  1823. Aktion *bariere;
  1824. public:
  1825. TeamVonBariere( Aktion *bariere );
  1826. ~TeamVonBariere();
  1827. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1828. };
  1829. class TimerZufall : public Aktion
  1830. {
  1831. public:
  1832. TimerZufall();
  1833. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1834. };
  1835. class TimerZuletztAbgelaufen : public Aktion
  1836. {
  1837. public:
  1838. TimerZuletztAbgelaufen();
  1839. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1840. };
  1841. class TimerZuletztGestartet : public Aktion
  1842. {
  1843. public:
  1844. TimerZuletztGestartet();
  1845. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1846. };
  1847. class TimerZuletztPausiert : public Aktion
  1848. {
  1849. public:
  1850. TimerZuletztPausiert();
  1851. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1852. };
  1853. class TimerZuletztFortgesetzt : public Aktion
  1854. {
  1855. public:
  1856. TimerZuletztFortgesetzt();
  1857. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1858. };
  1859. class TunnelZufall : public Aktion
  1860. {
  1861. public:
  1862. TunnelZufall();
  1863. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1864. };
  1865. class TunnelZuletztBenutzt : public Aktion
  1866. {
  1867. public:
  1868. TunnelZuletztBenutzt();
  1869. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1870. };
  1871. class UmlenkungZufall : public Aktion
  1872. {
  1873. public:
  1874. UmlenkungZufall();
  1875. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1876. };
  1877. class UmlenkungZuletztBenutzt : public Aktion
  1878. {
  1879. public:
  1880. UmlenkungZuletztBenutzt();
  1881. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1882. };
  1883. class BooleanZufall : public Aktion
  1884. {
  1885. public:
  1886. BooleanZufall();
  1887. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1888. };
  1889. class BooleanSpielPausiert : public Aktion
  1890. {
  1891. public:
  1892. BooleanSpielPausiert();
  1893. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1894. };
  1895. class BooleanSpielerAmLeben : public Aktion
  1896. {
  1897. private:
  1898. Aktion *spieler;
  1899. public:
  1900. BooleanSpielerAmLeben( Aktion *spieler );
  1901. ~BooleanSpielerAmLeben();
  1902. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1903. };
  1904. class BooleanSpielerHatGegenstand : public Aktion
  1905. {
  1906. private:
  1907. Aktion *spieler;
  1908. Aktion *item;
  1909. public:
  1910. BooleanSpielerHatGegenstand( Aktion *item, Aktion *spieler );
  1911. ~BooleanSpielerHatGegenstand();
  1912. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1913. };
  1914. class BooleanSpielerInTeam : public Aktion
  1915. {
  1916. private:
  1917. Aktion *spieler;
  1918. Aktion *team;
  1919. public:
  1920. BooleanSpielerInTeam( Aktion *team, Aktion *spieler );
  1921. ~BooleanSpielerInTeam();
  1922. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1923. };
  1924. class BooleanSpielerIstVerwundbar : public Aktion
  1925. {
  1926. private:
  1927. Aktion *spieler;
  1928. public:
  1929. BooleanSpielerIstVerwundbar( Aktion *spieler );
  1930. ~BooleanSpielerIstVerwundbar();
  1931. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1932. };
  1933. class BooleanSpielerKannItemBenutzen : public Aktion
  1934. {
  1935. private:
  1936. Aktion *spieler;
  1937. Aktion *item;
  1938. public:
  1939. BooleanSpielerKannItemBenutzen( Aktion *item, Aktion *spieler );
  1940. ~BooleanSpielerKannItemBenutzen();
  1941. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1942. };
  1943. class BooleanUmlenkungHatAbk : public Aktion
  1944. {
  1945. private:
  1946. Aktion *umlenkung;
  1947. public:
  1948. BooleanUmlenkungHatAbk( Aktion *umlenkung );
  1949. ~BooleanUmlenkungHatAbk();
  1950. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1951. };
  1952. class BooleanUmlenkungIstDrehend : public Aktion
  1953. {
  1954. private:
  1955. Aktion *umlenkung;
  1956. public:
  1957. BooleanUmlenkungIstDrehend( Aktion *umlenkung );
  1958. ~BooleanUmlenkungIstDrehend();
  1959. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1960. };
  1961. class BooleanBariereBewegtSich : public Aktion
  1962. {
  1963. private:
  1964. Aktion *bariere;
  1965. public:
  1966. BooleanBariereBewegtSich( Aktion *bariere );
  1967. ~BooleanBariereBewegtSich();
  1968. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1969. };
  1970. class BooleanBariereIstSchaltend : public Aktion
  1971. {
  1972. private:
  1973. Aktion *bariere;
  1974. public:
  1975. BooleanBariereIstSchaltend( Aktion *bariere );
  1976. ~BooleanBariereIstSchaltend();
  1977. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1978. };
  1979. class BooleanBariereIstAktiv : public Aktion
  1980. {
  1981. private:
  1982. Aktion *bariere;
  1983. public:
  1984. BooleanBariereIstAktiv( Aktion *bariere );
  1985. ~BooleanBariereIstAktiv();
  1986. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1987. };
  1988. class BooleanSchalterIstAktiv : public Aktion
  1989. {
  1990. private:
  1991. Aktion *schalter;
  1992. public:
  1993. BooleanSchalterIstAktiv( Aktion *schalter );
  1994. ~BooleanSchalterIstAktiv();
  1995. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1996. };
  1997. class BooleanTunnelIstAktiv : public Aktion
  1998. {
  1999. private:
  2000. Aktion *tunnel;
  2001. public:
  2002. BooleanTunnelIstAktiv( Aktion *tunnel );
  2003. ~BooleanTunnelIstAktiv();
  2004. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2005. };
  2006. class BooleanBaseIstNeutral : public Aktion
  2007. {
  2008. private:
  2009. Aktion *base;
  2010. public:
  2011. BooleanBaseIstNeutral( Aktion *base );
  2012. ~BooleanBaseIstNeutral();
  2013. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2014. };
  2015. class BooleanTimerIsRunning : public Aktion
  2016. {
  2017. private:
  2018. Aktion *timer;
  2019. public:
  2020. BooleanTimerIsRunning( Aktion *timer );
  2021. ~BooleanTimerIsRunning();
  2022. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2023. };
  2024. class BooleanTimerIstSichtbar : public Aktion
  2025. {
  2026. private:
  2027. Aktion *timer;
  2028. public:
  2029. BooleanTimerIstSichtbar( Aktion *timer );
  2030. ~BooleanTimerIstSichtbar();
  2031. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2032. };
  2033. class BooleanAusText : public Aktion
  2034. {
  2035. private:
  2036. Aktion *text;
  2037. public:
  2038. BooleanAusText( Aktion *text );
  2039. ~BooleanAusText();
  2040. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2041. };
  2042. class BooleanTriggerIstAktiv : public Aktion
  2043. {
  2044. private:
  2045. Aktion *trigger;
  2046. public:
  2047. BooleanTriggerIstAktiv( Aktion *trigger );
  2048. ~BooleanTriggerIstAktiv();
  2049. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2050. };
  2051. class BooleanGleich : public Aktion
  2052. {
  2053. private:
  2054. Aktion *v1;
  2055. Aktion *v2;
  2056. public:
  2057. BooleanGleich( Aktion *v1, Aktion *v2 );
  2058. ~BooleanGleich();
  2059. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2060. };
  2061. class BooleanNicht : public Aktion
  2062. {
  2063. private:
  2064. Aktion *boolean;
  2065. public:
  2066. BooleanNicht( Aktion *boolean );
  2067. ~BooleanNicht();
  2068. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2069. };
  2070. class BooleanUnd : public Aktion
  2071. {
  2072. private:
  2073. Aktion *v1;
  2074. Aktion *v2;
  2075. public:
  2076. BooleanUnd( Aktion *v1, Aktion *v2 );
  2077. ~BooleanUnd();
  2078. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2079. };
  2080. class BooleanOder : public Aktion
  2081. {
  2082. private:
  2083. Aktion *v1;
  2084. Aktion *v2;
  2085. public:
  2086. BooleanOder( Aktion *v1, Aktion *v2 );
  2087. ~BooleanOder();
  2088. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2089. };
  2090. class Sequenz : public Aktion
  2091. {
  2092. private:
  2093. RCArray< Aktion > *aktions;
  2094. public:
  2095. Sequenz( RCArray< Aktion > *aktions );
  2096. ~Sequenz();
  2097. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  2098. };