22#ifndef MM1_GAME_SPELLS_MONSTERS
23#define MM1_GAME_SPELLS_MONSTERS
25#include "mm/mm1/game/game_logic.h"
26#include "mm/mm1/data/character.h"
27#include "mm/mm1/data/monsters.h"
28#include "mm/mm1/messages.h"
29#include "common/str.h"
35#define MAX_COMBAT_MONSTERS 15
36#define MONSTER_SPELLS_COUNT 32
39typedef void (SpellsMonsters::*SpellMonstersSpell)();
43 static const SpellMonstersSpell SPELLS[MONSTER_SPELLS_COUNT];
46 void spell02_energyBlast();
48 void spell04_blindness();
49 void spell05_sprayPoison();
50 void spell06_sprayAcid();
52 void spell08_paralyze();
53 void spell09_dispel();
54 void spell10_lightningBolt();
55 void spell11_strangeGas();
56 void spell12_explode();
57 void spell13_fireball();
58 void spell14_fireBreath();
60 void spell16_acidArrow();
61 void spell17_elements();
62 void spell18_coldBeam();
63 void spell19_dancingSword();
64 void spell20_magicDrain();
65 void spell21_fingerOfDeath();
66 void spell22_sunRay();
67 void spell23_disintegration();
68 void spell24_commandsEnergy();
69 void spell25_poison();
70 void spell26_lightning();
72 void spell28_spikes();
75 void spell31_energy();
86 void damageRandomChar();
91 void chooseCharacter();
109 bool randomThreshold(
int threshold)
const {
111 return v < 3 || v >= threshold;
121 bool testElementalResistance();
126 void writeConditionEffect();
131 void handlePartyEffects();
136 int _damage = 0, _displayedDamage = 0;
138 virtual bool canMonsterCast()
const = 0;
139 virtual int getMonsterIndex()
const = 0;
140 virtual void dispelParty() = 0;
141 virtual void removeMonster() = 0;
181 _lines.
back()._text += msg;
184 _lines.
back()._text += c;
T & back()
Definition: array.h:230
Definition: game_logic.h:29
static int getRandomNumber(int minNumber, int maxNumber)
Definition: spells_monsters.h:41
void castMonsterSpell(const Common::String &monsterName, int spellNum)
void setCondition(byte newCondition)
const LineArray & getMonsterSpellMessage() const
Definition: spells_monsters.h:204
virtual Common::String subtractDamageFromChar()=0
bool isCharAffected() const
void add(const Common::String &msg)
Definition: spells_monsters.h:180
Definition: detection.h:27