Aktionen.h 65 KB

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