Aktionen.h 57 KB

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