Aktionen.h 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827
  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_START_TEAM_CHANGE,
  21. BASE_ZUFALL,
  22. BASE_ZULETZT_BESITZER_GEWECHSELT,
  23. BOOLEAN_AUS_TEXT,
  24. BOOLEAN_BARIERE_BEWEGT_SICH,
  25. BOOLEAN_BARIERE_IST_AKTIV,
  26. BOOLEAN_BARIERE_IST_SCHALTEND,
  27. BOOLEAN_BASE_IST_NEUTRAL,
  28. BOOLEAN_RECHNUNG,
  29. BOOLEAN_SCHALTER_IST_AKTIV,
  30. BOOLEAN_SPIELER_AM_LEBEN,
  31. BOOLEAN_SPIELER_HAT_GEGENSTAND,
  32. BOOLEAN_SPIELER_IST_VERWUNDBAR,
  33. BOOLEAN_SPIELER_KANN_ITEM_BENUTZEN,
  34. BOOLEAN_SPIEL_PAUSIERT,
  35. BOOLEAN_TIMER_IS_RUNNING,
  36. BOOLEAN_TIMER_IST_SICHTBAR,
  37. BOOLEAN_TRIGGER_IST_AKTIV,
  38. BOOLEAN_TUNNEL_IST_AKTIV,
  39. BOOLEAN_UMLENKUNG_HAT_ABK,
  40. BOOLEAN_UMLENKUNG_IST_DREHEND,
  41. BOOLEAN_ZUFALL,
  42. DISPLAY_TEXT,
  43. DROP_DO_DROP,
  44. DROP_SET_AREA,
  45. DROP_SET_MAX_TIME,
  46. DROP_SET_TIME,
  47. DROP_ZUFALL,
  48. DROP_ZULETZT_GEDROPT,
  49. GESCHOSS_NEU,
  50. GESCHOSS_SET_PLAYER,
  51. GESCHOSS_SET_RICHTUNG,
  52. GESCHOSS_SET_SPEED,
  53. GESCHOSS_SET_TYPE,
  54. GESCHOSS_ZUFALL,
  55. GESCHOSS_ZULETZT_ABGEFEUERT,
  56. GESCHOSS_ZULETZT_BARIERE_GETROFFEN,
  57. GESCHOSS_ZULETZT_GESCHOSS_GETROFFEN,
  58. GESCHOSS_ZULETZT_TUNNEL_BENUTZT,
  59. GESCHOSS_ZULETZT_UMGELENKT,
  60. INTEGER_AUS_TEXT,
  61. FLOAT_GAME_OBJEKT_BREITE,
  62. FLOAT_GAME_OBJEKT_HEIGHT,
  63. INTEGER_BARIERE_SCHALTUNGEN,
  64. INTEGER_BARIERE_VERSCHIEBUNGEN,
  65. INTEGER_DROP_MAX_ZEIT,
  66. FLOAT_DROP_ZEIT,
  67. INTEGER_MAX_X_VON_DROP,
  68. INTEGER_MAX_Y_VON_DROP,
  69. INTEGER_MIN_X_VON_DROP,
  70. INTEGER_MIN_Y_VON_DROP,
  71. INTEGER_RECHNEN,
  72. INTEGER_SCHALTER_AKTIVIERUNGEN,
  73. FLOAT_SPIELER_ABKLINGZEITVERRINGERUNG,
  74. FLOAT_SPIELER_ARMOR,
  75. FLOAT_SPIELER_ERFAHRUNG,
  76. FLOAT_SPIELER_ERLITTENER_SCHADEN,
  77. FLOAT_SPIELER_GEHEILTES_LEBEN,
  78. INTEGER_SPIELER_GESCHOSSEN,
  79. FLOAT_SPIELER_GESCHOSS_TEMPO,
  80. INTEGER_SPIELER_GETROFFEN,
  81. INTEGER_SPIELER_ITEMS_AUFGEHOBEN,
  82. INTEGER_SPIELER_ANZAHL_ITEMS_IN_INVENTAR,
  83. INTEGER_SPIELER_ANZAHL_ITEMS_VON_TYP,
  84. INTEGER_SPIELER_ITEMS_VERWENDET,
  85. INTEGER_SPIELER_KILLS,
  86. FLOAT_SPIELER_LEBEN,
  87. FLOAT_SPIELER_LEBENSRAUB,
  88. FLOAT_SPIELER_LEBENSREGENERATION,
  89. INTEGER_SPIELER_LEVEL,
  90. INTEGER_SPIELER_MAX_ERFAHRUNG,
  91. INTEGER_SPIELER_MAX_LEBEN,
  92. FLOAT_SPIELER_SCHADEN,
  93. FLOAT_SPIELER_SCHADEN_BONUS,
  94. INTEGER_SPIELER_SCHALTER_AKTIVIERT,
  95. FLOAT_SPIELER_TEMPO,
  96. INTEGER_SPIELER_TODE,
  97. INTEGER_SPIELER_TREFFER,
  98. INTEGER_SPIELER_TUNNEL_BENUTZT,
  99. INTEGER_TEAM_KILLS,
  100. INTEGER_TEAM_PUNKTE,
  101. INTEGER_TEAM_SPIELERANZAHL,
  102. INTEGER_TEAM_TODE,
  103. FLOAT_TEAM_WIEDERBELEBUNGSZEIT,
  104. FLOAT_TIMER_AKTUELLE_ZEIT,
  105. INTEGER_TIMER_MAX_ZEIT,
  106. INTEGER_TRIGGER_RUNNS,
  107. INTEGER_TUNNEL_BENUTZUNGEN,
  108. INTEGER_UMLENKUNG_BENUTZUNGEN,
  109. FLOAT_X_VON_GAME_OBJEKT,
  110. FLOAT_Y_VON_GAME_OBJEKT,
  111. INTEGER_X_VON_TUNNEL_ZIEL,
  112. INTEGER_Y_VON_TUNNEL_ZIEL,
  113. INTEGER_ZUFALL,
  114. ITEM_SPIELER_INVENTAR,
  115. ITEM_ZULETZT_AUFGEHOBEN,
  116. ITEM_ZULETZT_AKTIVIERT,
  117. ITEM_ZULETZT_GEDROPT,
  118. ITEM_ZUFALL,
  119. KONSTANT_BOOLEAN,
  120. KONSTANT_FLOAT,
  121. KONSTANT_INTEGER,
  122. KONSTANT_NICHTS,
  123. KONSTANT_STRING,
  124. KONSTANT_VARIABLE,
  125. RICHTUNG_VON_GESCHOSS,
  126. RICHTUNG_VON_UMLENKUNG,
  127. RICHTUNG_ZUFALL,
  128. SCHALTER_AKTIVIEREN,
  129. SCHALTER_SET_ERLAUBT,
  130. SCHALTER_ZUFALL,
  131. SCHALTER_ZULETZT_AKTIVIERT,
  132. SET_VARIABLE,
  133. SPIEL_ENDE,
  134. SPIELER_GIVE_ITEM,
  135. SPIELER_NACHRICHT,
  136. SPIELER_REMOVE_ITEM,
  137. SPIELER_SET_ABKLINGZEITVERRINGERUNG,
  138. SPIELER_SET_ARMOR,
  139. SPIELER_SET_ERFAHRUNG,
  140. SPIELER_SET_LEBEN,
  141. SPIELER_SET_LEBENSRAUB,
  142. SPIELER_SET_LEBENSREGENERATION,
  143. SPIELER_SET_LEVEL,
  144. SPIELER_SET_MAX_ERFAHRUNG,
  145. SPIELER_SET_SCHADEN_BONUS,
  146. SPIELER_SET_TEMPO,
  147. SPIELER_SET_GESCHOSS_TEMPO,
  148. SPIELER_ZUFALL,
  149. SPIELER_ZUFALL_AUS_TEAM,
  150. SPIELER_ZULETZT_ERFAHRUNG_BEKOMMEN,
  151. SPIELER_ZULETZT_GEGENSTAND_AKTIVIERT,
  152. SPIELER_ZULETZT_GEGENSTAND_AUFGEHOBEN,
  153. SPIELER_ZULETZT_GEHEILT,
  154. SPIELER_ZULETZT_GESCHOSSEN,
  155. SPIELER_ZULETZT_GESTORBEN,
  156. SPIELER_ZULETZT_LEVEL_UP,
  157. SPIELER_ZULETZT_SCHADEN_GEMACHT,
  158. SPIELER_ZULETZT_SCHADEN_GENOMMEN,
  159. SPIELER_ZULETZT_SCHALTER_AKTIVIERT,
  160. SPIELER_ZULETZT_TUNNEL_BENUTZT,
  161. SPIELER_ZULETZT_WIEDERBELEBT,
  162. SPIEL_PAUSE,
  163. TEAM_SET_PUNKTE,
  164. TEAM_VON_BARIERE,
  165. TEAM_VON_SPIELER,
  166. TEAM_ZUFALL,
  167. TEXT_AUS_BOOLEAN,
  168. TEXT_AUS_RICHTUNG,
  169. TEXT_AUS_INTEGER,
  170. TEXT_CONCAT,
  171. TEXT_ITEM_NAME,
  172. TEXT_SPIELER_NAME,
  173. TEXT_TEIL_VON_TEXT,
  174. TEXT_TRIGGER_NAME,
  175. TIMER_SET_PAUSE,
  176. TIMER_SET_SICHTBAR,
  177. TIMER_SET_ZEIT,
  178. TIMER_START,
  179. TIMER_ZUFALL,
  180. TIMER_ZULETZT_ABGELAUFEN,
  181. TIMER_ZULETZT_FOTOGRAFIERT,
  182. TIMER_ZULETZT_GESTARTET,
  183. TIMER_ZULETZT_PAUSIERT,
  184. TRIGGER_AKTION,
  185. TRIGGER_LAST_RUNNED,
  186. TRIGGER_RUN_START,
  187. TRIGGER_SET_ENABLED,
  188. TRIGGER_ZUFALL,
  189. TUNNEL_SET_ERLAUBT,
  190. TUNNEL_SET_ZIEL_POSITION,
  191. TUNNEL_ZUFALL,
  192. TUNNEL_ZULETZT_BENUTZT,
  193. UMLENKUNG_SET_ERLAUBT,
  194. UMLENKUNG_SET_MAX_ABK,
  195. UMLENKUNG_SET_RICHTUNG,
  196. UMLENKUNG_ZUFALL,
  197. UMLENKUNG_ZULETZT_BENUTZT,
  198. WARTEN,
  199. WENN_DANN_SONST,
  200. SEQUENZ,
  201. FLOAT_RECHNUNG,
  202. FLOAT_AUS_INTEGER,
  203. FLOAT_AUS_TEXT,
  204. TEXT_AUS_FLOAT,
  205. FLOAT_ZUFALL,
  206. INTEGER_AUS_FLOAT,
  207. KONSTANT_TASTE
  208. };
  209. enum Operator
  210. {
  211. PLUS,
  212. MINUS,
  213. MAHL,
  214. GETEILT,
  215. HOCH,
  216. WURZEL,
  217. BIT_ODER,
  218. BIT_UND,
  219. BIT_XOR,
  220. BIT_FLIP,
  221. BIT_SHIFT_LEFT,
  222. BIT_SHIFT_RIGHT,
  223. INVERT_SIGN,
  224. PLUS_PLUS_LEFT,
  225. PLUS_PLUS_RIGHT,
  226. MINUS_MINUS_LEFT,
  227. MINUS_MINUS_RIGHT,
  228. LOGARITHM,
  229. MODULO,
  230. UND,
  231. ODER,
  232. GLEICH,
  233. UNGLEICH,
  234. GREATER,
  235. SMALLER,
  236. GREATER_OR_EQUAL,
  237. SMALLER_OR_EQUAL,
  238. INVERT_BOOL
  239. };
  240. bool isBinary( Operator op );
  241. class Aktion : public Variable
  242. {
  243. protected:
  244. RCArray< Aktion > *subActions;
  245. Array< VariableTyp > erlaubteTypen;
  246. AktionTyp typ;
  247. Variable *zEvaluatedParam( int number, LocalMemory *zMemory, ProgramCounter *zPC );
  248. Variable *getEvaluatedParam( int number, LocalMemory *zMemory, ProgramCounter *zPC );
  249. public:
  250. Aktion( AktionTyp typ, RCArray< Aktion > *subActions );
  251. virtual ~Aktion();
  252. // gibt 1 zurück, wenn die aktion vollständig ausgeführt wurde
  253. virtual bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount );
  254. virtual void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount );
  255. };
  256. class KonstantNichts : public Aktion
  257. {
  258. public:
  259. KonstantNichts();
  260. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  261. };
  262. class KonstantInteger : public Aktion
  263. {
  264. private:
  265. int value;
  266. public:
  267. KonstantInteger( int val );
  268. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  269. };
  270. class KonstantTaste : public Aktion
  271. {
  272. private:
  273. unsigned char value;
  274. public:
  275. KonstantTaste( unsigned char taste );
  276. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  277. };
  278. class KonstantBoolean : public Aktion
  279. {
  280. private:
  281. bool value;
  282. public:
  283. KonstantBoolean( bool val );
  284. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  285. };
  286. class KonstantString : public Aktion
  287. {
  288. private:
  289. Text value;
  290. public:
  291. KonstantString( Text val );
  292. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  293. };
  294. class KonstantFloat : public Aktion
  295. {
  296. private:
  297. float value;
  298. public:
  299. KonstantFloat( float val );
  300. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  301. };
  302. class KonstantVariable : public Aktion
  303. {
  304. private:
  305. Text name;
  306. public:
  307. KonstantVariable( Text name );
  308. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  309. };
  310. class Warten : public Aktion
  311. {
  312. public:
  313. // zeit
  314. Warten( RCArray< Aktion > *subActions );
  315. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  316. };
  317. class WennDannSonst : public Aktion
  318. {
  319. public:
  320. // wenn, dann, sonst
  321. WennDannSonst( RCArray< Aktion > *subActions );
  322. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  323. };
  324. class SetVariable : public Aktion
  325. {
  326. private:
  327. Text name;
  328. public:
  329. // value
  330. SetVariable( Text name, RCArray< Aktion > *subActions );
  331. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  332. };
  333. class TriggerAktion : public Aktion
  334. {
  335. public:
  336. // number, triggerName
  337. TriggerAktion( RCArray< Aktion > *subActions );
  338. bool runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  339. };
  340. class SpielerNachricht : public Aktion
  341. {
  342. public:
  343. // Spieler, Nachricht
  344. SpielerNachricht( RCArray< Aktion > *subActions );
  345. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  346. };
  347. class DisplayText : public Aktion
  348. {
  349. public:
  350. // x, y, color, dauer, nachricht
  351. DisplayText( RCArray< Aktion > *subActions );
  352. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  353. };
  354. class SpielPause : public Aktion
  355. {
  356. public:
  357. // paused
  358. SpielPause( RCArray< Aktion > *subActions );
  359. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  360. };
  361. class SpielEnde : public Aktion
  362. {
  363. public:
  364. // gewinner team
  365. SpielEnde( RCArray< Aktion > *subActions );
  366. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  367. };
  368. class SpielerSetLevel : public Aktion
  369. {
  370. public:
  371. // level, spieler
  372. SpielerSetLevel( RCArray< Aktion > *subActions );
  373. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  374. };
  375. class SpielerGiveItem : public Aktion
  376. {
  377. public:
  378. // item, anzahl, spieler
  379. SpielerGiveItem( RCArray< Aktion > *subActions );
  380. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  381. };
  382. class SpielerRemoveItem : public Aktion
  383. {
  384. public:
  385. // item, anzahl, spieler
  386. SpielerRemoveItem( RCArray< Aktion > *subActions );
  387. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  388. };
  389. class SpielerSetLeben : public Aktion
  390. {
  391. public:
  392. // leben, spieler
  393. SpielerSetLeben( RCArray< Aktion > *subActions );
  394. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  395. };
  396. class SpielerSetMaxLeben : public Aktion
  397. {
  398. public:
  399. // leben, spieler
  400. SpielerSetMaxLeben( RCArray< Aktion > *subActions );
  401. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  402. };
  403. class SpielerSetErfahrung : public Aktion
  404. {
  405. public:
  406. // erfahrung, spieler
  407. SpielerSetErfahrung( RCArray< Aktion > *subActions );
  408. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  409. };
  410. class SpielerSetMaxErfahrung : public Aktion
  411. {
  412. public:
  413. // erfahrung, spieler
  414. SpielerSetMaxErfahrung( RCArray< Aktion > *subActions );
  415. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  416. };
  417. class SpielerSetTempo : public Aktion
  418. {
  419. public:
  420. // tempo, spieler
  421. SpielerSetTempo( RCArray< Aktion > *subActions );
  422. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  423. };
  424. class SpielerSetWaffenTempo : public Aktion
  425. {
  426. public:
  427. // tempo, spieler
  428. SpielerSetWaffenTempo( RCArray< Aktion > *subActions );
  429. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  430. };
  431. class SpielerSetArmor : public Aktion
  432. {
  433. public:
  434. // armor, spieler
  435. SpielerSetArmor( RCArray< Aktion > *subActions );
  436. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  437. };
  438. class SpielerSetSchadenBonus : public Aktion
  439. {
  440. public:
  441. // bonus, spieler
  442. SpielerSetSchadenBonus( RCArray< Aktion > *subActions );
  443. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  444. };
  445. class SpielerSetLebensraub : public Aktion
  446. {
  447. public:
  448. // lebensrauf, spieler
  449. SpielerSetLebensraub( RCArray< Aktion > *subActions );
  450. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  451. };
  452. class SpielerSetLebensregeneration : public Aktion
  453. {
  454. public:
  455. // regeneration, spieler
  456. SpielerSetLebensregeneration( RCArray< Aktion > *subActions );
  457. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  458. };
  459. class SpielerSetAbklingzeitverringerung : public Aktion
  460. {
  461. public:
  462. // verringerung, spieler
  463. SpielerSetAbklingzeitverringerung( RCArray< Aktion > *subActions );
  464. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  465. };
  466. class DropSetTime : public Aktion
  467. {
  468. public:
  469. // time, drop
  470. DropSetTime( RCArray< Aktion > *subActions );
  471. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  472. };
  473. class DropSetMaxTime : public Aktion
  474. {
  475. public:
  476. // time, drop
  477. DropSetMaxTime( RCArray< Aktion > *subActions );
  478. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  479. };
  480. class DropSetArea : public Aktion
  481. {
  482. public:
  483. // minX, maxX, minY, maxY, drop
  484. DropSetArea( RCArray< Aktion > *subActions );
  485. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  486. };
  487. class DropDoDrop : public Aktion
  488. {
  489. public:
  490. // drop
  491. DropDoDrop( RCArray< Aktion > *subActions );
  492. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  493. };
  494. class BariereBewegung : public Aktion
  495. {
  496. public:
  497. // bariere
  498. BariereBewegung( RCArray< Aktion > *subActions );
  499. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  500. };
  501. class BariereSetEingeschaltet : public Aktion
  502. {
  503. public:
  504. // eingeschaltet, bariere
  505. BariereSetEingeschaltet( RCArray< Aktion > *subActions );
  506. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  507. };
  508. class GameObjektSetPosition : public Aktion
  509. {
  510. public:
  511. // x, y, objekt
  512. GameObjektSetPosition( RCArray< Aktion > *subActions );
  513. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  514. };
  515. class GameObjektSetSize : public Aktion
  516. {
  517. public:
  518. // x, y, objekt
  519. GameObjektSetSize( RCArray< Aktion > *subActions );
  520. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  521. };
  522. class BariereSetTeam : public Aktion
  523. {
  524. public:
  525. // team, bariere
  526. BariereSetTeam( RCArray< Aktion > *subActions );
  527. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  528. };
  529. class SchalterSetErlaubt : public Aktion
  530. {
  531. public:
  532. // erlaubt, schalter
  533. SchalterSetErlaubt( RCArray< Aktion > *subActions );
  534. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  535. };
  536. class SchalterAktivieren : public Aktion
  537. {
  538. public:
  539. // schalter
  540. SchalterAktivieren( RCArray< Aktion > *subActions );
  541. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  542. };
  543. class TunnelSetZielPosition : public Aktion
  544. {
  545. public:
  546. // x, y, tunnel
  547. TunnelSetZielPosition( RCArray< Aktion > *subActions );
  548. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  549. };
  550. class TunnelSetErlaubt : public Aktion
  551. {
  552. public:
  553. // erlaubt, tunnel
  554. TunnelSetErlaubt( RCArray< Aktion > *subActions );
  555. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  556. };
  557. class UmlenkungSetRichtung : public Aktion
  558. {
  559. public:
  560. // richtung, umlenkung
  561. UmlenkungSetRichtung( RCArray< Aktion > *subActions );
  562. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  563. };
  564. class UmlenkungSetMaxAbk : public Aktion
  565. {
  566. public:
  567. // abk, umlenkung
  568. UmlenkungSetMaxAbk( RCArray< Aktion > *subActions );
  569. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  570. };
  571. class UmlenkungSetEnabled : public Aktion
  572. {
  573. public:
  574. // enabled, umlenkung
  575. UmlenkungSetEnabled( RCArray< Aktion > *subActions );
  576. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  577. };
  578. class BaseSetTeam : public Aktion
  579. {
  580. public:
  581. // team, base
  582. BaseSetTeam( RCArray< Aktion > *subActions );
  583. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  584. };
  585. class BaseStartTeamChange : public Aktion
  586. {
  587. public:
  588. // team, base
  589. BaseStartTeamChange( RCArray< Aktion > *subActions );
  590. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  591. };
  592. class TriggerRunStart : public Aktion
  593. {
  594. public:
  595. // trigger
  596. TriggerRunStart( RCArray< Aktion > *subActions );
  597. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  598. };
  599. class TriggerSetEnabled : public Aktion
  600. {
  601. public:
  602. // enabled, trigger
  603. TriggerSetEnabled( RCArray< Aktion > *subActions );
  604. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  605. };
  606. class TeamSetPunkte : public Aktion
  607. {
  608. public:
  609. // punkte, team
  610. TeamSetPunkte( RCArray< Aktion > *subActions );
  611. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  612. };
  613. class TimerSetPause : public Aktion
  614. {
  615. public:
  616. // pause, timer
  617. TimerSetPause( RCArray< Aktion > *subActions );
  618. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  619. };
  620. class TimerStart : public Aktion
  621. {
  622. public:
  623. // timer
  624. TimerStart( RCArray< Aktion > *subActions );
  625. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  626. };
  627. class TimerSetZeit : public Aktion
  628. {
  629. public:
  630. // zeit, timer
  631. TimerSetZeit( RCArray< Aktion > *subActions );
  632. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  633. };
  634. class TimerSetSichtbar : public Aktion
  635. {
  636. public:
  637. // sichtbar, timer
  638. TimerSetSichtbar( RCArray< Aktion > *subActions );
  639. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  640. };
  641. class GeschossNeu : public Aktion
  642. {
  643. public:
  644. // x, y, typ, richtung
  645. GeschossNeu( RCArray< Aktion > *subActions );
  646. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  647. };
  648. class GeschossSetSpeed : public Aktion
  649. {
  650. public:
  651. // speed, geschoss
  652. GeschossSetSpeed( RCArray< Aktion > *subActions );
  653. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  654. };
  655. class GeschossSetPlayer : public Aktion
  656. {
  657. public:
  658. // player, geschoss
  659. GeschossSetPlayer( RCArray< Aktion > *subActions );
  660. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  661. };
  662. class GeschossSetRichtung : public Aktion
  663. {
  664. public:
  665. // richtung, geschoss
  666. GeschossSetRichtung( RCArray< Aktion > *subActions );
  667. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  668. };
  669. class GeschossSetType : public Aktion
  670. {
  671. public:
  672. // typ, geschoss
  673. GeschossSetType( RCArray< Aktion > *subActions );
  674. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  675. };
  676. class TriggerZufall : public Aktion
  677. {
  678. public:
  679. TriggerZufall();
  680. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  681. };
  682. class TriggerLastRunned : public Aktion
  683. {
  684. public:
  685. TriggerLastRunned();
  686. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  687. };
  688. class BariereZufall : public Aktion
  689. {
  690. public:
  691. BariereZufall();
  692. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  693. };
  694. class BariereZuletztEingeschaltet : public Aktion
  695. {
  696. public:
  697. BariereZuletztEingeschaltet();
  698. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  699. };
  700. class BariereZuletztAusgeschaltet : public Aktion
  701. {
  702. public:
  703. BariereZuletztAusgeschaltet();
  704. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  705. };
  706. class BariereZuletztBewegt : public Aktion
  707. {
  708. public:
  709. BariereZuletztBewegt();
  710. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  711. };
  712. class BaseZufall : public Aktion
  713. {
  714. public:
  715. BaseZufall();
  716. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  717. };
  718. class BaseZuletztBesitzerGewechselt : public Aktion
  719. {
  720. public:
  721. BaseZuletztBesitzerGewechselt();
  722. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  723. };
  724. class DropZufall : public Aktion
  725. {
  726. public:
  727. DropZufall();
  728. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  729. };
  730. class DropZuletztGedropt : public Aktion
  731. {
  732. public:
  733. DropZuletztGedropt();
  734. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  735. };
  736. class IntegerRechnen : public Aktion
  737. {
  738. private:
  739. Operator op;
  740. public:
  741. // left, right
  742. IntegerRechnen( RCArray< Aktion > *subActions, Operator op );
  743. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  744. };
  745. class IntegerZufall : public Aktion
  746. {
  747. public:
  748. // min, max
  749. IntegerZufall( RCArray< Aktion > *subActions );
  750. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  751. };
  752. class IntegerAusText : public Aktion
  753. {
  754. public:
  755. // text
  756. IntegerAusText( RCArray< Aktion > *subActions );
  757. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  758. };
  759. class FloatXVonGameObjekt : public Aktion
  760. {
  761. public:
  762. // objekt
  763. FloatXVonGameObjekt( RCArray< Aktion > *subActions );
  764. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  765. };
  766. class FloatYVonGameObjekt : public Aktion
  767. {
  768. public:
  769. // objekt
  770. FloatYVonGameObjekt( RCArray< Aktion > *subActions );
  771. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  772. };
  773. class IntegerXVonTunnelZiel : public Aktion
  774. {
  775. public:
  776. // tunnel
  777. IntegerXVonTunnelZiel( RCArray< Aktion > *subActions );
  778. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  779. };
  780. class IntegerYVonTunnelZiel : public Aktion
  781. {
  782. public:
  783. // tunnel
  784. IntegerYVonTunnelZiel( RCArray< Aktion > *subActions );
  785. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  786. };
  787. class IntegerMinXVonDrop : public Aktion
  788. {
  789. public:
  790. // drop
  791. IntegerMinXVonDrop( RCArray< Aktion > *subActions );
  792. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  793. };
  794. class IntegerMinYVonDrop : public Aktion
  795. {
  796. public:
  797. // drop
  798. IntegerMinYVonDrop( RCArray< Aktion > *subActions );
  799. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  800. };
  801. class IntegerMaxXVonDrop : public Aktion
  802. {
  803. public:
  804. // drop
  805. IntegerMaxXVonDrop( RCArray< Aktion > *subActions );
  806. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  807. };
  808. class IntegerMaxYVonDrop : public Aktion
  809. {
  810. public:
  811. // drop
  812. IntegerMaxYVonDrop( RCArray< Aktion > *subActions );
  813. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  814. };
  815. class IntegerSpielerLevel : public Aktion
  816. {
  817. public:
  818. // spieler
  819. IntegerSpielerLevel( RCArray< Aktion > *subActions );
  820. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  821. };
  822. class FloatSpielerLeben : public Aktion
  823. {
  824. public:
  825. // spieler
  826. FloatSpielerLeben( RCArray< Aktion > *subActions );
  827. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  828. };
  829. class IntegerSpielerMaxLeben : public Aktion
  830. {
  831. public:
  832. // spieler
  833. IntegerSpielerMaxLeben( RCArray< Aktion > *subActions );
  834. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  835. };
  836. class FloatSpielerErfahrung : public Aktion
  837. {
  838. public:
  839. // spieler
  840. FloatSpielerErfahrung( RCArray< Aktion > *subActions );
  841. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  842. };
  843. class IntegerSpielerMaxErfahrung : public Aktion
  844. {
  845. public:
  846. // spieler
  847. IntegerSpielerMaxErfahrung( RCArray< Aktion > *subActions );
  848. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  849. };
  850. class FloatSpielerTempo : public Aktion
  851. {
  852. public:
  853. // spieler
  854. FloatSpielerTempo( RCArray< Aktion > *subActions );
  855. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  856. };
  857. class FloatSpielerGeschossTempo : public Aktion
  858. {
  859. public:
  860. // spieler
  861. FloatSpielerGeschossTempo( RCArray< Aktion > *subActions );
  862. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  863. };
  864. class FloatSpielerArmor : public Aktion
  865. {
  866. public:
  867. // spieler
  868. FloatSpielerArmor( RCArray< Aktion > *subActions );
  869. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  870. };
  871. class FloatSpielerSchadenBonus : public Aktion
  872. {
  873. public:
  874. // spieler
  875. FloatSpielerSchadenBonus( RCArray< Aktion > *subActions );
  876. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  877. };
  878. class FloatSpielerLebensraub : public Aktion
  879. {
  880. public:
  881. // spieler
  882. FloatSpielerLebensraub( RCArray< Aktion > *subActions );
  883. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  884. };
  885. class FloatSpielerLebensregeneration : public Aktion
  886. {
  887. public:
  888. // spieler
  889. FloatSpielerLebensregeneration( RCArray< Aktion > *subActions );
  890. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  891. };
  892. class FloatSpielerAbklingzeitVerringerung : public Aktion
  893. {
  894. public:
  895. // spieler
  896. FloatSpielerAbklingzeitVerringerung( RCArray< Aktion > *subActions );
  897. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  898. };
  899. class IntegerSpielerTode : public Aktion
  900. {
  901. public:
  902. // spieler
  903. IntegerSpielerTode( RCArray< Aktion > *subActions );
  904. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  905. };
  906. class IntegerSpielerKills : public Aktion
  907. {
  908. public:
  909. // spieler
  910. IntegerSpielerKills( RCArray< Aktion > *subActions );
  911. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  912. };
  913. class IntegerSpielerTreffer : public Aktion
  914. {
  915. public:
  916. // spieler
  917. IntegerSpielerTreffer( RCArray< Aktion > *subActions );
  918. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  919. };
  920. class IntegerSpielerGetroffen : public Aktion
  921. {
  922. public:
  923. // spieler
  924. IntegerSpielerGetroffen( RCArray< Aktion > *subActions );
  925. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  926. };
  927. class FloatSpielerErlittenerSchaden : public Aktion
  928. {
  929. public:
  930. // spieler
  931. FloatSpielerErlittenerSchaden( RCArray< Aktion > *subActions );
  932. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  933. };
  934. class FloatSpielerSchaden : public Aktion
  935. {
  936. public:
  937. // spieler
  938. FloatSpielerSchaden( RCArray< Aktion > *subActions );
  939. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  940. };
  941. class FloatSpielerGeheiltesLeben : public Aktion
  942. {
  943. public:
  944. // spieler
  945. FloatSpielerGeheiltesLeben( RCArray< Aktion > *subActions );
  946. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  947. };
  948. class IntegerSpielerItemsAufgehoben : public Aktion
  949. {
  950. public:
  951. // spieler
  952. IntegerSpielerItemsAufgehoben( RCArray< Aktion > *subActions );
  953. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  954. };
  955. class IntegerSpielerItemsVerwendet : public Aktion
  956. {
  957. public:
  958. // spieler
  959. IntegerSpielerItemsVerwendet( RCArray< Aktion > *subActions );
  960. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  961. };
  962. class IntegerSpielerItemsInInventar : public Aktion
  963. {
  964. public:
  965. // spieler
  966. IntegerSpielerItemsInInventar( RCArray< Aktion > *subActions );
  967. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  968. };
  969. class IntegerSpielerItemsTypeInInventar : public Aktion
  970. {
  971. public:
  972. // item, spieler
  973. IntegerSpielerItemsTypeInInventar( RCArray< Aktion > *subActions );
  974. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  975. };
  976. class IntegerSpielerTunnelBenutzt : public Aktion
  977. {
  978. public:
  979. // spieler
  980. IntegerSpielerTunnelBenutzt( RCArray< Aktion > *subActions );
  981. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  982. };
  983. class IntegerSpielerSchalterAktiviert : public Aktion
  984. {
  985. public:
  986. // spieler
  987. IntegerSpielerSchalterAktiviert( RCArray< Aktion > *subActions );
  988. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  989. };
  990. class IntegerSpielerGeschossen : public Aktion
  991. {
  992. public:
  993. // spieler
  994. IntegerSpielerGeschossen( RCArray< Aktion > *subActions );
  995. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  996. };
  997. class FloatDropZeit : public Aktion
  998. {
  999. public:
  1000. // drop
  1001. FloatDropZeit( RCArray< Aktion > *subActions );
  1002. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1003. };
  1004. class IntegerDropMaxZeit : public Aktion
  1005. {
  1006. public:
  1007. // drop
  1008. IntegerDropMaxZeit( RCArray< Aktion > *subActions );
  1009. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1010. };
  1011. class FloatGameObjektBreite : public Aktion
  1012. {
  1013. public:
  1014. // objekt
  1015. FloatGameObjektBreite( RCArray< Aktion > *subActions );
  1016. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1017. };
  1018. class FloatGameObjektHeight : public Aktion
  1019. {
  1020. public:
  1021. // objekt
  1022. FloatGameObjektHeight( RCArray< Aktion > *subActions );
  1023. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1024. };
  1025. class IntegerBariereVerschiebungen : public Aktion
  1026. {
  1027. public:
  1028. // bariere
  1029. IntegerBariereVerschiebungen( RCArray< Aktion > *subActions );
  1030. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1031. };
  1032. class IntegerBariereSchaltungen : public Aktion
  1033. {
  1034. public:
  1035. // bariere
  1036. IntegerBariereSchaltungen( RCArray< Aktion > *subActions );
  1037. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1038. };
  1039. class IntegerSchalterAktivierungen : public Aktion
  1040. {
  1041. public:
  1042. // schalter
  1043. IntegerSchalterAktivierungen( RCArray< Aktion > *subActions );
  1044. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1045. };
  1046. class IntegerTunnelBenutzungen : public Aktion
  1047. {
  1048. public:
  1049. // tunnel
  1050. IntegerTunnelBenutzungen( RCArray< Aktion > *subActions );
  1051. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1052. };
  1053. class IntegerUmlenkungBenutzungen : public Aktion
  1054. {
  1055. public:
  1056. // umlenkung
  1057. IntegerUmlenkungBenutzungen( RCArray< Aktion > *subActions );
  1058. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1059. };
  1060. class IntegerTeamPunkte : public Aktion
  1061. {
  1062. public:
  1063. // team
  1064. IntegerTeamPunkte( RCArray< Aktion > *subActions );
  1065. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1066. };
  1067. class IntegerTeamKills : public Aktion
  1068. {
  1069. public:
  1070. // team
  1071. IntegerTeamKills( RCArray< Aktion > *subActions );
  1072. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1073. };
  1074. class IntegerTeamTode : public Aktion
  1075. {
  1076. public:
  1077. // team
  1078. IntegerTeamTode( RCArray< Aktion > *subActions );
  1079. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1080. };
  1081. class FloatTeamWiederbelegungszeit : public Aktion
  1082. {
  1083. public:
  1084. // team
  1085. FloatTeamWiederbelegungszeit( RCArray< Aktion > *subActions );
  1086. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1087. };
  1088. class IntegerTeamSpieleranzahl : public Aktion
  1089. {
  1090. public:
  1091. // team
  1092. IntegerTeamSpieleranzahl( RCArray< Aktion > *subActions );
  1093. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1094. };
  1095. class FloatTimerAktuelleZeit : public Aktion
  1096. {
  1097. public:
  1098. // timer
  1099. FloatTimerAktuelleZeit( RCArray< Aktion > *subActions );
  1100. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1101. };
  1102. class IntegerTimerMaxZeit : public Aktion
  1103. {
  1104. public:
  1105. // timer
  1106. IntegerTimerMaxZeit( RCArray< Aktion > *subActions );
  1107. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1108. };
  1109. class IntegerTriggerRunns : public Aktion
  1110. {
  1111. public:
  1112. // trigger
  1113. IntegerTriggerRunns( RCArray< Aktion > *subActions );
  1114. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1115. };
  1116. class ItemSpielerInventar : public Aktion
  1117. {
  1118. public:
  1119. // index, spieler
  1120. ItemSpielerInventar( RCArray< Aktion > *subActions );
  1121. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1122. };
  1123. class ItemZuletztAufgehoben : public Aktion
  1124. {
  1125. public:
  1126. ItemZuletztAufgehoben();
  1127. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1128. };
  1129. class ItemZuletztAktiviert : public Aktion
  1130. {
  1131. public:
  1132. ItemZuletztAktiviert();
  1133. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1134. };
  1135. class ItemZuletztGedropt : public Aktion
  1136. {
  1137. public:
  1138. ItemZuletztGedropt();
  1139. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1140. };
  1141. class ItemZufall : public Aktion
  1142. {
  1143. public:
  1144. ItemZufall();
  1145. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1146. };
  1147. class GeschossZufall : public Aktion
  1148. {
  1149. public:
  1150. GeschossZufall();
  1151. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1152. };
  1153. class GeschossZuletztAbgefeuert : public Aktion
  1154. {
  1155. public:
  1156. GeschossZuletztAbgefeuert();
  1157. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1158. };
  1159. class GeschossZuletztUmgelenkt : public Aktion
  1160. {
  1161. public:
  1162. GeschossZuletztUmgelenkt();
  1163. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1164. };
  1165. class GeschossZuletztBarjereGetroffen : public Aktion
  1166. {
  1167. public:
  1168. GeschossZuletztBarjereGetroffen();
  1169. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1170. };
  1171. class GeschossZuletztTunnelBenutzt : public Aktion
  1172. {
  1173. public:
  1174. GeschossZuletztTunnelBenutzt();
  1175. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1176. };
  1177. class GeschossZuletztGeschossGetroffen : public Aktion
  1178. {
  1179. public:
  1180. GeschossZuletztGeschossGetroffen();
  1181. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1182. };
  1183. class RichtungZufall : public Aktion
  1184. {
  1185. public:
  1186. RichtungZufall();
  1187. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1188. };
  1189. class RichtungVonUmlenkung : public Aktion
  1190. {
  1191. public:
  1192. // umlenkung
  1193. RichtungVonUmlenkung( RCArray< Aktion > *subActions );
  1194. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1195. };
  1196. class RichtungVonGeschoss : public Aktion
  1197. {
  1198. public:
  1199. // geschoss
  1200. RichtungVonGeschoss( RCArray< Aktion > *subActions );
  1201. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1202. };
  1203. class SchalterZufall : public Aktion
  1204. {
  1205. public:
  1206. SchalterZufall();
  1207. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1208. };
  1209. class SchalterZuletztAktiviert : public Aktion
  1210. {
  1211. public:
  1212. SchalterZuletztAktiviert();
  1213. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1214. };
  1215. class SpielerZufall : public Aktion
  1216. {
  1217. public:
  1218. SpielerZufall();
  1219. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1220. };
  1221. class SpielerZufallAusTeam : public Aktion
  1222. {
  1223. public:
  1224. // team
  1225. SpielerZufallAusTeam( RCArray< Aktion > *subActions );
  1226. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1227. };
  1228. class SpielerZuletztSchadenGemacht : public Aktion
  1229. {
  1230. public:
  1231. SpielerZuletztSchadenGemacht();
  1232. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1233. };
  1234. class SpielerZuletztSchadenGenommen : public Aktion
  1235. {
  1236. public:
  1237. SpielerZuletztSchadenGenommen();
  1238. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1239. };
  1240. class SpielerZuletztGeheilt : public Aktion
  1241. {
  1242. public:
  1243. SpielerZuletztGeheilt();
  1244. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1245. };
  1246. class SpielerZuletztLevelUp : public Aktion
  1247. {
  1248. public:
  1249. SpielerZuletztLevelUp();
  1250. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1251. };
  1252. class SpielerZuletztErfahrungBekommen : public Aktion
  1253. {
  1254. public:
  1255. SpielerZuletztErfahrungBekommen();
  1256. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1257. };
  1258. class SpielerZuletztGegenstandAktiviert : public Aktion
  1259. {
  1260. public:
  1261. SpielerZuletztGegenstandAktiviert();
  1262. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1263. };
  1264. class SpielerZuletztGegenstandAufgehoben : public Aktion
  1265. {
  1266. public:
  1267. SpielerZuletztGegenstandAufgehoben();
  1268. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1269. };
  1270. class SpielerZuletztSchalterAktiviert : public Aktion
  1271. {
  1272. public:
  1273. SpielerZuletztSchalterAktiviert();
  1274. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1275. };
  1276. class SpielerZuletztTunnelBenutzt : public Aktion
  1277. {
  1278. public:
  1279. SpielerZuletztTunnelBenutzt();
  1280. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1281. };
  1282. class SpielerZuletztGestorben : public Aktion
  1283. {
  1284. public:
  1285. SpielerZuletztGestorben();
  1286. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1287. };
  1288. class SpielerZuletztWiederbelebent : public Aktion
  1289. {
  1290. public:
  1291. SpielerZuletztWiederbelebent();
  1292. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1293. };
  1294. class SpielerZuletztGeschossGeschossen : public Aktion
  1295. {
  1296. public:
  1297. SpielerZuletztGeschossGeschossen();
  1298. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1299. };
  1300. class TextConcat : public Aktion
  1301. {
  1302. public:
  1303. // t1, t2
  1304. TextConcat( RCArray< Aktion > *subActions );
  1305. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1306. };
  1307. class TextAusInteger : public Aktion
  1308. {
  1309. public:
  1310. // integer
  1311. TextAusInteger( RCArray< Aktion > *subActions );
  1312. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1313. };
  1314. class TextAusRichtung : public Aktion
  1315. {
  1316. public:
  1317. // richtung
  1318. TextAusRichtung( RCArray< Aktion > *subActions );
  1319. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1320. };
  1321. class TextAusBoolean : public Aktion
  1322. {
  1323. public:
  1324. // boolean
  1325. TextAusBoolean( RCArray< Aktion > *subActions );
  1326. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1327. };
  1328. class TextSpielerName : public Aktion
  1329. {
  1330. public:
  1331. // spieler
  1332. TextSpielerName( RCArray< Aktion > *subActions );
  1333. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1334. };
  1335. class TextItemName : public Aktion
  1336. {
  1337. public:
  1338. // item
  1339. TextItemName( RCArray< Aktion > *subActions );
  1340. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1341. };
  1342. class TextTriggerName : public Aktion
  1343. {
  1344. public:
  1345. // trigger
  1346. TextTriggerName( RCArray< Aktion > *subActions );
  1347. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1348. };
  1349. class TextTeilVonText : public Aktion
  1350. {
  1351. public:
  1352. // start, ende, text
  1353. TextTeilVonText( RCArray< Aktion > *subActions );
  1354. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1355. };
  1356. class TeamZufall : public Aktion
  1357. {
  1358. public:
  1359. TeamZufall();
  1360. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1361. };
  1362. class TeamVonSpieler : public Aktion
  1363. {
  1364. public:
  1365. // spieler
  1366. TeamVonSpieler( RCArray< Aktion > *subActions );
  1367. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1368. };
  1369. class TeamVonBariere : public Aktion
  1370. {
  1371. public:
  1372. // bariere
  1373. TeamVonBariere( RCArray< Aktion > *subActions );
  1374. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1375. };
  1376. class TimerZufall : public Aktion
  1377. {
  1378. public:
  1379. TimerZufall();
  1380. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1381. };
  1382. class TimerZuletztAbgelaufen : public Aktion
  1383. {
  1384. public:
  1385. TimerZuletztAbgelaufen();
  1386. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1387. };
  1388. class TimerZuletztGestartet : public Aktion
  1389. {
  1390. public:
  1391. TimerZuletztGestartet();
  1392. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1393. };
  1394. class TimerZuletztPausiert : public Aktion
  1395. {
  1396. public:
  1397. TimerZuletztPausiert();
  1398. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1399. };
  1400. class TimerZuletztFortgesetzt : public Aktion
  1401. {
  1402. public:
  1403. TimerZuletztFortgesetzt();
  1404. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1405. };
  1406. class TunnelZufall : public Aktion
  1407. {
  1408. public:
  1409. TunnelZufall();
  1410. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1411. };
  1412. class TunnelZuletztBenutzt : public Aktion
  1413. {
  1414. public:
  1415. TunnelZuletztBenutzt();
  1416. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1417. };
  1418. class UmlenkungZufall : public Aktion
  1419. {
  1420. public:
  1421. UmlenkungZufall();
  1422. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1423. };
  1424. class UmlenkungZuletztBenutzt : public Aktion
  1425. {
  1426. public:
  1427. UmlenkungZuletztBenutzt();
  1428. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1429. };
  1430. class BooleanZufall : public Aktion
  1431. {
  1432. public:
  1433. BooleanZufall();
  1434. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1435. };
  1436. class BooleanSpielPausiert : public Aktion
  1437. {
  1438. public:
  1439. BooleanSpielPausiert();
  1440. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1441. };
  1442. class BooleanSpielerAmLeben : public Aktion
  1443. {
  1444. public:
  1445. // spieler
  1446. BooleanSpielerAmLeben( RCArray< Aktion > *subActions );
  1447. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1448. };
  1449. class BooleanSpielerHatGegenstand : public Aktion
  1450. {
  1451. public:
  1452. // item, spieler
  1453. BooleanSpielerHatGegenstand( RCArray< Aktion > *subActions );
  1454. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1455. };
  1456. class BooleanSpielerIstVerwundbar : public Aktion
  1457. {
  1458. public:
  1459. // richtung, spieler
  1460. BooleanSpielerIstVerwundbar( RCArray< Aktion > *subActions );
  1461. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1462. };
  1463. class BooleanSpielerKannItemBenutzen : public Aktion
  1464. {
  1465. public:
  1466. // item, spieler
  1467. BooleanSpielerKannItemBenutzen( RCArray< Aktion > *subActions );
  1468. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1469. };
  1470. class BooleanUmlenkungHatAbk : public Aktion
  1471. {
  1472. public:
  1473. // umlenkung
  1474. BooleanUmlenkungHatAbk( RCArray< Aktion > *subActions );
  1475. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1476. };
  1477. class BooleanUmlenkungIstDrehend : public Aktion
  1478. {
  1479. public:
  1480. // umlenkung
  1481. BooleanUmlenkungIstDrehend( RCArray< Aktion > *subActions );
  1482. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1483. };
  1484. class BooleanBariereBewegtSich : public Aktion
  1485. {
  1486. public:
  1487. // bariere
  1488. BooleanBariereBewegtSich( RCArray< Aktion > *subActions );
  1489. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1490. };
  1491. class BooleanBariereIstSchaltend : public Aktion
  1492. {
  1493. public:
  1494. // bariere
  1495. BooleanBariereIstSchaltend( RCArray< Aktion > *subActions );
  1496. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1497. };
  1498. class BooleanBariereIstAktiv : public Aktion
  1499. {
  1500. public:
  1501. // bariere
  1502. BooleanBariereIstAktiv( RCArray< Aktion > *subActions );
  1503. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1504. };
  1505. class BooleanSchalterIstAktiv : public Aktion
  1506. {
  1507. public:
  1508. // schalter
  1509. BooleanSchalterIstAktiv( RCArray< Aktion > *subActions );
  1510. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1511. };
  1512. class BooleanTunnelIstAktiv : public Aktion
  1513. {
  1514. public:
  1515. // tunnel
  1516. BooleanTunnelIstAktiv( RCArray< Aktion > *subActions );
  1517. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1518. };
  1519. class BooleanBaseIstNeutral : public Aktion
  1520. {
  1521. public:
  1522. // base
  1523. BooleanBaseIstNeutral( RCArray< Aktion > *subActions );
  1524. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1525. };
  1526. class BooleanTimerIsRunning : public Aktion
  1527. {
  1528. public:
  1529. BooleanTimerIsRunning( RCArray< Aktion > *subActions );
  1530. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1531. };
  1532. class BooleanTimerIstSichtbar : public Aktion
  1533. {
  1534. public:
  1535. // timer
  1536. BooleanTimerIstSichtbar( RCArray< Aktion > *subActions );
  1537. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1538. };
  1539. class BooleanAusText : public Aktion
  1540. {
  1541. public:
  1542. // text
  1543. BooleanAusText( RCArray< Aktion > *subActions );
  1544. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1545. };
  1546. class BooleanTriggerIstAktiv : public Aktion
  1547. {
  1548. public:
  1549. // trigger
  1550. BooleanTriggerIstAktiv( RCArray< Aktion > *subActions );
  1551. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1552. };
  1553. class BooleanRechnung : public Aktion
  1554. {
  1555. private:
  1556. Operator op;
  1557. public:
  1558. // v1, v2
  1559. BooleanRechnung( RCArray< Aktion > *subActions, Operator op );
  1560. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1561. };
  1562. class Sequenz : public Aktion
  1563. {
  1564. public:
  1565. Sequenz( RCArray< Aktion > *aktions );
  1566. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1567. };
  1568. class FloatRechnung : public Aktion
  1569. {
  1570. private:
  1571. Operator op;
  1572. public:
  1573. // left, right
  1574. FloatRechnung( RCArray< Aktion > *subActions, Operator op );
  1575. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1576. };
  1577. class FloatAusInteger : public Aktion
  1578. {
  1579. public:
  1580. // integer
  1581. FloatAusInteger( RCArray< Aktion > *subActions );
  1582. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1583. };
  1584. class FloatAusText : public Aktion
  1585. {
  1586. public:
  1587. // text
  1588. FloatAusText( RCArray< Aktion > *subActions );
  1589. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1590. };
  1591. class TextAusFloat : public Aktion
  1592. {
  1593. public:
  1594. // f
  1595. TextAusFloat( RCArray< Aktion > *subActions );
  1596. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1597. };
  1598. class FloatZufall : public Aktion
  1599. {
  1600. public:
  1601. // min, max
  1602. FloatZufall( RCArray< Aktion > *subActions );
  1603. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1604. };
  1605. class IntegerAusFloat : public Aktion
  1606. {
  1607. public:
  1608. // f
  1609. IntegerAusFloat( RCArray< Aktion > *subActions );
  1610. void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
  1611. };