Aktionen.h 51 KB

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