Aktionen.h 54 KB

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