Aktionen.h 61 KB

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