Aktionen.h 58 KB

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