Aktionen.h 53 KB

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