Aktionen.h 54 KB

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