Aktionen.h 57 KB

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