ff7tk 0.80.25
Work with Final Fantasy 7 game data
FF7Materia.h
Go to the documentation of this file.
1/****************************************************************************/
2// copyright 2012 - 2020 Chris Rizzitello <sithlord48@gmail.com> //
3// //
4// This file is part of FF7tk //
5// //
6// FF7tk is free software: you can redistribute it and/or modify //
7// it under the terms of the GNU General Public License as published by //
8// the Free Software Foundation, either version 3 of the License, or //
9// (at your option) any later version. //
10// //
11// FF7tk is distributed in the hope that it will be useful, //
12// but WITHOUT ANY WARRANTY; without even the implied warranty of //
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
14// GNU General Public License for more details. //
15/****************************************************************************/
16#pragma once
17
18#include <QObject>
19#include <QIcon>
20
21#ifndef ff7tk_export_h
22 #include <ff7tk_export.h>
23#endif
24
25class FF7TK_EXPORT FF7Materia : public QObject
26{
27 Q_OBJECT
28public:
30 Unknown
31 , Magic
32 , Summon
33 , Independent
34 , Support
35 , Command
36 };
37 Q_ENUM(MateriaType)
38
40 MpPlus = 0x00, HpPlus = 0x01, SpeedPlus = 0x02, MagicPlus = 0x03, LuckPlus = 0x04, ExpPlus = 0x05, GilPlus = 0x06, EnemyAway = 0x07, EnemyLure = 0x08, ChocoboLure = 0x09, PreEmptive = 0x0A, LongRange = 0x0B, MegaAll = 0x0C, CounterAttack = 0x0D, SlashAll = 0x0E, DoubleCut = 0x0F
41 , Cover = 0x10, Underwater = 0x11, HPMP = 0x12, WMagic = 0x13, WSummon = 0x14, WItem = 0x15, All = 0x17, Counter = 0x18, MagicCounter = 0x19, MpTurbo = 0x1A, MpAbsorb = 0x1B, HpAbsorb = 0x1C, Elemental = 0x1D, AddedEffect = 0x1E, SneakAttack = 0x1F
42 , FinalAttack = 0x20, AddedCut = 0x21, StealAsWell = 0x22, QuadraMagic = 0x23, Steal = 0x24, Sense = 0x25, Throw = 0x27, Morph = 0x28, Deathblow = 0x29, Manipulate = 0x2A, Mime = 0x2B, EnemySkill = 0x2C
43 , MasterCommand = 0x30, Fire = 0x31, Ice = 0x32, Earth = 0x33, Lightning = 0x34, Restore = 0x35, Heal = 0x36, Revive = 0x37, Seal = 0x38, Mystify = 0x39, Transform = 0x3A, Exit = 0x3B, Poison = 0x3C, Demi = 0x3D, Barrier = 0x3E
44 , Comet = 0x40, Time = 0x41, Destruct = 0x44, Contain = 0x45, FullCure = 0x46, Shield = 0x47, Ultima = 0x48, MasterMagic = 0x49, ChocoMog = 0x4A, Shiva = 0x4B, Ifrit = 0x4C, Ramuh = 0x4D, Titan = 0x4E, Odin = 0x4F
45 , Leviathan = 0x50, Bahamut = 0x51, Kujata = 0x52, Alexander = 0x53, Phoenix = 0x54, NeoBahamut = 0x55, Hades = 0x56, Typhoon = 0x57, BahamutZERO = 0x58, KOTR = 0x59, MasterSummon = 0x5A
46 , EmptyId = 0xFF
47 , MaxMateriaAp = 0xFFFFFF
48 };
49 Q_ENUM(MateriaNames)
50
51 FF7Materia() = default;
52 ~FF7Materia() = default;
53 Q_INVOKABLE QString name(int id);
54 Q_INVOKABLE QString statString(int id);
55 Q_INVOKABLE QString enemySkill(int id);
56 Q_INVOKABLE QString masterCommandSkill(int id);
57 Q_INVOKABLE QString masterSummonSkill(int id);
58 Q_INVOKABLE QString masterMagicSkill(int id);
59 Q_INVOKABLE QString element(int id);
60 Q_INVOKABLE QStringList skills(int id);
61 Q_INVOKABLE QStringList status(int id);
62 Q_INVOKABLE qint32 ap(int id, int lvl);
63 Q_INVOKABLE inline qint8 statSTR(int id)
64 {
65 return Materias(id).str;
66 }
67 Q_INVOKABLE inline qint8 statVIT(int id)
68 {
69 return Materias(id).vit;
70 }
71 Q_INVOKABLE inline qint8 statMAG(int id)
72 {
73 return Materias(id).mag;
74 }
75 Q_INVOKABLE inline qint8 statSPI(int id)
76 {
77 return Materias(id).spi;
78 }
79 Q_INVOKABLE inline qint8 statDEX(int id)
80 {
81 return Materias(id).dex;
82 }
83 Q_INVOKABLE inline qint8 statLCK(int id)
84 {
85 return Materias(id).lck;
86 }
87 Q_INVOKABLE inline qint8 statHP(int id)
88 {
89 return Materias(id).hp;
90 }
91 Q_INVOKABLE inline qint8 statMP(int id)
92 {
93 return Materias(id).mp;
94 }
95 Q_INVOKABLE inline qint8 levels(int id)
96 {
97 return Materias(id).levels;
98 }
99 Q_INVOKABLE inline qint8 type(int id)
100 {
101 return Materias(id).type;
102 }
103 Q_INVOKABLE inline qint32 ap2num(quint8 ap[3])
104 {
105 return qint32(ap[0] | (ap[1] << 8) | (ap[2] << 16));
106 }
107 Q_INVOKABLE inline const QString &imageAllResource() const
108 {
109 return _resourceAllMateria;
110 }
111 Q_INVOKABLE QString iconResource(int id);
112 Q_INVOKABLE QString fullStarResource(int id);
113 Q_INVOKABLE QString emptyStartResource(int id);
114 //Image Functions
115 inline QIcon icon(int id)
116 {
117 return QIcon(QPixmap(Materias(id).imageString));
118 }
119 inline QPixmap pixmap(int id)
120 {
121 return QPixmap(Materias(id).imageString);
122 }
123 inline QImage image(int id)
124 {
125 return QImage(Materias(id).imageString);
126 }
127 inline QPixmap pixmapEmptyStar(int id)
128 {
129 return QPixmap(Materias(id).emptyStarString);
130 }
131 inline QImage imageEmptyStar(int id)
132 {
133 return QImage(Materias(id).emptyStarString);
134 }
135 inline QPixmap pixmapFullStar(int id)
136 {
137 return QPixmap(Materias(id).fullStarString);
138 }
139 inline QImage imageFullStar(int id)
140 {
141 return QImage(Materias(id).fullStarString);
142 }
143 inline QIcon iconAllMateria() const
144 {
145 return QIcon(QPixmap(":/materia/all"));
146 }
147 inline QImage imageAllMateria() const
148 {
149 return QImage(":/materia/all");
150 }
151private:
155 struct MATERIA {
156 QString name;
157 QStringList skills;
158 QString stats;
159 QString imageString;
160 QString emptyStarString;
161 QString fullStarString;
162 quint8 id;
163 qint8 hp;
164 qint8 mp;
165 qint8 str;
166 qint8 vit;
167 qint8 dex;
168 qint8 lck;
169 qint8 mag;
170 qint8 spi;
171 QList<qint32> ap; //ap needed for levels.
172 qint8 type; //1-magic,2-summon,3-independent,4-support,5-command,0-unknown
173 qint8 levels;
174 QString elemental;
175 QStringList status;
176 };
183 const FF7Materia::MATERIA &Materias(int id);
184 inline static const auto _resourceAllMateria = QStringLiteral("/materia/all");
185
186 inline static const MATERIA _emptyMateria{
187 QT_TR_NOOP("EMPTY")
188 , {QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?")}
189 , QStringLiteral("ID:0xFF"), QString(), QString(), QString()
190 , 0XFF, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0, QString(), {QString()}
191 };
192 inline static const QList<MATERIA> _materiaList{
193 {
194 QT_TR_NOOP("MP Plus")
195 , {QT_TR_NOOP("MP Plus +10%"), QT_TR_NOOP("MP Plus +20%"), QT_TR_NOOP("MP Plus +30%"), QT_TR_NOOP("MP Plus +40%"), QT_TR_NOOP("MP Plus +50%")}
196 , QT_TR_NOOP("MaxMp:+% depending on level"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
197 , 0x00, 0, 0, 0, 0, 0, 0, 0, 0, {0, 10000, 20000, 30000, 50000}, 3, 5, QString(), {QString()}
198 },
199 { QT_TR_NOOP("HP Plus")
200 , {QT_TR_NOOP("HP Plus +10%"), QT_TR_NOOP("HP Plus +20%"), QT_TR_NOOP("HP Plus +30%"), QT_TR_NOOP("HP Plus +40%"), QT_TR_NOOP("HP Plus +50%")}
201 , QT_TR_NOOP("MaxHp:+% depending on level"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
202 , 0x01, 0, 0, 0, 0, 0, 0, 0, 0, {0, 10000, 20000, 30000, 50000}, 3, 5, QString(), {QString()}
203 },
204 {
205 QT_TR_NOOP("Speed Plus")
206 , {QT_TR_NOOP("Speed Plus +10%"), QT_TR_NOOP("Speed Plus +20%"), QT_TR_NOOP("Speed Plus +30%"), QT_TR_NOOP("Speed Plus +40%"), QT_TR_NOOP("Speed Plus +50%")}
207 , QT_TR_NOOP("Dex:+% depending on level"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
208 , 0x02, 0, 0, 0, 0, 0, 0, 0, 0, {0, 15000, 30000, 60000, 100000}, 3, 5, QString(), {QString()}
209 },
210 {
211 QT_TR_NOOP("Magic Plus")
212 , {QT_TR_NOOP("Magic Plus +10%"), QT_TR_NOOP("Magic Plus +20%"), QT_TR_NOOP("Magic Plus +30%"), QT_TR_NOOP("Magic Plus +40%"), QT_TR_NOOP("Magic Plus +50%")}
213 , QT_TR_NOOP("Mag:+% depending on level"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
214 , 0x03, 0, 0, 0, 0, 0, 0, 0, 0, {0, 10000, 20000, 30000, 50000}, 3, 5, QString(), {QString()}
215 },
216 {
217 QT_TR_NOOP("Luck Plus")
218 , {QT_TR_NOOP("Luck Plus +10%"), QT_TR_NOOP("Luck Plus +20%"), QT_TR_NOOP("Luck Plus +30%"), QT_TR_NOOP("Luck Plus +40%"), QT_TR_NOOP("Luck Plus +50%")}
219 , QT_TR_NOOP("Lck:+% depending on level"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
220 , 0x04, 0, 0, 0, 0, 0, 0, 0, 0, {0, 15000, 30000, 60000, 100000}, 3, 5, QString(), {QString()}
221 },
222 {
223 QT_TR_NOOP("EXP Plus")
224 , {QT_TR_NOOP("Exp Plus +50%"), QT_TR_NOOP("Exp Plus +100%")}
225 , QT_TR_NOOP("Lck:+1"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
226 , 0x05, 0, 0, 0, 0, 0, +1, 0, 0, {0, 60000, 150000, 0, 0}, 3, 3, QString(), {QString()}
227 },
228 {
229 QT_TR_NOOP("Gil Plus")
230 , {QT_TR_NOOP("Gil Plus +50%"), QT_TR_NOOP("Gil Plus +100%")}
231 , QT_TR_NOOP("Lck:+1"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
232 , 0x06, 0, 0, 0, 0, 0, +1, 0, 0, {0, 80000, 150000, 0, 0}, 3, 3, QString(), {QString()}
233 },
234 {
235 QT_TR_NOOP("Enemy Away")
236 , {QT_TR_NOOP("Encounter Rate -50%"), QT_TR_NOOP("Encounter Rate -75%")}
237 , QT_TR_NOOP("Lck:+1"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
238 , 0x07, 0, 0, 0, 0, 0, +1, 0, 0, {0, 10000, 50000, 0, 0}, 3, 3, QString(), {QString()}
239 },
240 {
241 QT_TR_NOOP("Enemy Lure")
242 , {QT_TR_NOOP("Encounter Rate +50%"), QT_TR_NOOP("Encounter Rate +100%")}
243 , QT_TR_NOOP("Lck:-1"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
244 , 0x08, 0, 0, 0, 0, 0, -1, 0, 0, {0, 10000, 50000, 0, 0}, 3, 3, QString(), {QString()}
245 },
246 {
247 QT_TR_NOOP("Chocobo Lure")
248 , {QT_TR_NOOP("Chocobo Lure"), QT_TR_NOOP("Chocobo Lure +50%"), QT_TR_NOOP("Chocobo Lure +100%"), QT_TR_NOOP("Chocobo Lure +200%")}
249 , QT_TR_NOOP("Lck:+1"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
250 , 0x09, 0, 0, 0, 0, 0, +1, 0, 0, {0, 3000, 10000, 30000, 0}, 3, 4, QString(), {QString()}
251 },
252 {
253 QT_TR_NOOP("Pre-emptive")
254 , {QT_TR_NOOP("Pre-emptive +6%"), QT_TR_NOOP("Pre-emptive +12%"), QT_TR_NOOP("Pre-emptive +24%"), QT_TR_NOOP("Pre-emptive +36%"), QT_TR_NOOP("Pre-emptive +48%")}
255 , QT_TR_NOOP("Dex:+2"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
256 , 0x0A, 0, 0, 0, 0, +2, 0, 0, 0, {0, 8000, 20000, 40000, 80000}, 3, 5, QString(), {QString()}
257 },
258 {
259 QT_TR_NOOP("Long Range")
260 , {QT_TR_NOOP("Long Range")}
261 , QString(), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
262 , 0x0B, 0, 0, 0, 0, 0, 0, 0, 0, {0, 80000, 0, 0, 0}, 3, 2, QString(), {QString()}
263 },
264 {
265 QT_TR_NOOP("Mega All")
266 , {QT_TR_NOOP("Mega-all x1"), QT_TR_NOOP("Mega-all x2"), QT_TR_NOOP("Mega-all x3"), QT_TR_NOOP("Mega-all x4"), QT_TR_NOOP("Mega-all x5")}
267 , QString(), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
268 , 0x0C, 0, 0, 0, 0, 0, 0, 0, 0, {0, 20000, 40000, 80000, 160000}, 3, 5, QString(), {QString()}
269 },
270 {
271 QT_TR_NOOP("Counter Attack")
272 ,{QT_TR_NOOP("Counter Attack 20%"), QT_TR_NOOP("Counter Attack 40%"), QT_TR_NOOP("Counter Attack 60%"), QT_TR_NOOP("Counter Attack 80%"), QT_TR_NOOP("Counter Attack 100%")}
273 , QString(), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
274 , 0x0D, 0, 0, 0, 0, 0, 0, 0, 0, {0, 10000, 20000, 50000, 100000}, 3, 5, QString(), {QString()}
275 },
276 {
277 QT_TR_NOOP("Slash-All")
278 , {QT_TR_NOOP("Slash-All"), QT_TR_NOOP("Flash")}
279 , QString(), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
280 , 0x0E, 0, 0, 0, 0, 0, 0, 0, 0, {0, 130000, 150000, 0, 0}, 5, 3, QString(), {QString()}
281 },
282 {
283 QT_TR_NOOP("Double Cut")
284 , {QT_TR_NOOP("2x-Cut"), QT_TR_NOOP("4x-Cut")}
285 , QT_TR_NOOP("Dex:+2"), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
286 , 0x0F, 0, 0, 0, 0, +2, 0, 0, 0, {0, 100000, 150000, 0, 0}, 5, 3, QString(), {QString()}
287 },
288 {
289 QT_TR_NOOP("Cover")
290 , {QT_TR_NOOP("Cover +20%"), QT_TR_NOOP("Cover +40%"), QT_TR_NOOP("Cover +60%"), QT_TR_NOOP("Cover +80%"), QT_TR_NOOP("Cover +100%")}
291 , QT_TR_NOOP("Vit:+1"), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
292 , 0x10, 0, 0, 0, +1, 0, 0, 0, 0, {0, 2000, 10000, 25000, 40000}, 3, 5, QString(), {QString()}
293 },
294 {
295 QT_TR_NOOP("Underwater")
296 , {QT_TR_NOOP("Underwater")}
297 , QString(), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
298 , 0x11, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 3, 1, QString(), {QString()}
299 },
300 {
301 QT_TR_NOOP("HP <-> MP")
302 , {QT_TR_NOOP("HP <-> MP")}
303 , QString(), QStringLiteral(":/materia/independent"), QStringLiteral(":/materia/independent_star_empty"), QStringLiteral(":/materia/independent_star_full")
304 , 0x12, 0, 0, 0, 0, 0, 0, 0, 0, {0, 80000, 0, 0, 0}, 3, 2, QString(), {QString()}
305 },
306 {
307 QT_TR_NOOP("W-Magic")
308 , {QT_TR_NOOP("W-Magic")}
309 , QString(), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
310 , 0x13, 0, 0, 0, 0, 0, 0, 0, 0, {0, 250000, 0, 0, 0}, 5, 2, QString(), {QString()}
311 },
312 {
313 QT_TR_NOOP("W-Summon")
314 , {QT_TR_NOOP("W-Summon")}
315 , QString(), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
316 , 0x14, 0, 0, 0, 0, 0, 0, 0, 0, {0, 250000, 0, 0, 0}, 5, 2, QString(), {QString()}
317 },
318 {
319 QT_TR_NOOP("W-Item")
320 , {QT_TR_NOOP("W-Item")}
321 , QString(), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
322 , 0x15, 0, 0, 0, 0, 0, 0, 0, 0, {0, 250000, 0, 0, 0}, 5, 2, QString(), {QString()}
323 },
324 {
325 QT_TR_NOOP("DON'T USE")
326 , {QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?")}
327 , QStringLiteral("ID:0x16"), QString(), QString(), QString()
328 , 0X16, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0, QString(), {QString()}
329 },
330 {
331 QT_TR_NOOP("All")
332 , {QT_TR_NOOP("All x1"), QT_TR_NOOP("All x2"), QT_TR_NOOP("All x3"), QT_TR_NOOP("All x4"), QT_TR_NOOP("All x5")}
333 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
334 , 0x17, 0, 0, 0, 0, 0, 0, 0, 0, {0, 1500, 6000, 18000, 35000}, 4, 5, QString(), {QString()}
335 },
336 {
337 QT_TR_NOOP("Counter")
338 , {QT_TR_NOOP("Counter Rate 20%"), QT_TR_NOOP("Counter Rate 40%"), QT_TR_NOOP("Counter Rate 60%"), QT_TR_NOOP("Counter Rate 80%"), QT_TR_NOOP("Counter Rate 100%")}
339 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
340 , 0x18, 0, 0, 0, 0, 0, 0, 0, 0, {0, 20000, 40000, 60000, 100000}, 4, 5, QString(), {QString()}
341 },
342 {
343 QT_TR_NOOP("Magic Counter")
344 , {QT_TR_NOOP("Magic Counter Rate 30%"), QT_TR_NOOP("Magic Counter Rate 40%"), QT_TR_NOOP("Magic Counter Rate 60%"), QT_TR_NOOP("Magic Counter Rate 80%"), QT_TR_NOOP("Magic Counter Rate 100%")}
345 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
346 , 0x19, 0, 0, 0, 0, 0, 0, 0, 0, {0, 20000, 40000, 80000, 300000}, 4, 5, QString(), {QString()}
347 },
348 {
349 QT_TR_NOOP("MP Turbo")
350 , {QT_TR_NOOP("MP Turbo 10%"), QT_TR_NOOP("MP Turbo 20%"), QT_TR_NOOP("MP Turbo 30%"), QT_TR_NOOP("MP Turbo 40%"), QT_TR_NOOP("MP Turbo 50%")}
351 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
352 , 0x1A, 0, 0, 0, 0, 0, 0, 0, 0, {0, 10000, 30000, 60000, 120000}, 4, 5, QString(), {QString()}
353 },
354 {
355 QT_TR_NOOP("MP Absorb")
356 , {QT_TR_NOOP("MP Absorb")}
357 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
358 , 0x1B, 0, 0, 0, 0, 0, 0, 0, 0, {0, 100000, 0, 0, 0}, 4, 2, QString(), {QString()}
359 },
360 {
361 QT_TR_NOOP("HP Absorb")
362 , {QT_TR_NOOP("HP Absorb")}
363 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
364 , 0x1C, 0, 0, 0, 0, 0, 0, 0, 0, {0, 100000, 0, 0, 0}, 4, 2, QString(), {QString()}
365 },
366 {
367 QT_TR_NOOP("Elemental")
368 , {QT_TR_NOOP("Elemental 50%"), QT_TR_NOOP("Elemental 100%"), QT_TR_NOOP("Elemental 200%")}
369 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
370 , 0x1D, 0, 0, 0, 0, 0, 0, 0, 0, {0, 10000, 40000, 80000, 0}, 4, 4, QString(), {QString()}
371 },
372 {
373 QT_TR_NOOP("Added Effect")
374 , {QT_TR_NOOP("Added Effect")}
375 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
376 , 0x1E, 0, 0, 0, 0, 0, 0, 0, 0, {0, 100000, 0, 0, 0}, 4, 2, QString(), {QString()}
377 },
378 {
379 QT_TR_NOOP("Sneak Attack")
380 , {QT_TR_NOOP("Sneak Attack 20%"), QT_TR_NOOP("Sneak Attack 35%"), QT_TR_NOOP("Sneak Attack 50%"), QT_TR_NOOP("Sneak Attack 65%"), QT_TR_NOOP("Sneak Attack 80%")}
381 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
382 , 0x1F, 0, 0, 0, 0, 0, 0, 0, 0, {0, 20000, 60000, 100000, 150000}, 4, 5, QString(), {QString()}
383 },
384 {
385 QT_TR_NOOP("Final Attack")
386 , {QT_TR_NOOP("Final Attack x1"), QT_TR_NOOP("Final Attack x2"), QT_TR_NOOP("Final Attack x3"), QT_TR_NOOP("Final Attack x4"), QT_TR_NOOP("Final Attack x5")}
387 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
388 , 0x20, 0, 0, 0, 0, 0, 0, 0, 0, {0, 20000, 40000, 80000, 160000}, 4, 5, QString(), {QString()}
389 },
390 {
391 QT_TR_NOOP("Added Cut")
392 , {QT_TR_NOOP("Added Cut")}
393 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
394 , 0x21, 0, 0, 0, 0, 0, 0, 0, 0, {0, 200000, 0, 0, 0}, 4, 2, QString(), {QString()}
395 },
396 {
397 QT_TR_NOOP("Steal-As-Well")
398 , {QT_TR_NOOP("Steal as well")}
399 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
400 , 0x22, 0, 0, 0, 0, 0, 0, 0, 0, {0, 200000, 0, 0, 0}, 4, 2, QString(), {QString()}
401 },
402 {
403 QT_TR_NOOP("Quadra Magic")
404 , {QT_TR_NOOP("Quadra Magic x1"), QT_TR_NOOP("Quadra Magic x2"), QT_TR_NOOP("Quadra Magic x3"), QT_TR_NOOP("Quadra Magic x4"), QT_TR_NOOP("Quadra Magic x5")}
405 , QString(), QStringLiteral(":/materia/support"), QStringLiteral(":/materia/support_star_empty"), QStringLiteral(":/materia/support_star_full")
406 , 0x23, 0, 0, 0, 0, 0, 0, 0, 0, {0, 40000, 80000, 120000, 200000}, 4, 5, QString(), {QString()}
407 },
408 {
409 QT_TR_NOOP("Steal")
410 , {QT_TR_NOOP("Steal"), QT_TR_NOOP("Mug")}
411 , QT_TR_NOOP("Dex:+2"), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
412 , 0x24, 0, 0, 0, 0, +2, 0, 0, 0, {0, 40000, 50000, 0, 0}, 5, 3, QString(), {QString()}
413 },
414 {
415 QT_TR_NOOP("Sense")
416 , {QT_TR_NOOP("Sense")}
417 , QString(), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
418 , 0x25, 0, 0, 0, 0, 0, 0, 0, 0, {0, 40000, 0, 0, 0}, 5, 2, QString(), {QString()}
419 },
420 {
421 QT_TR_NOOP("DON'T USE")
422 , {QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?")}
423 , QStringLiteral("ID:0x26"), QString(), QString(), QString()
424 , 0X26, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0, QString(), {QString()}
425 },
426 {
427 QT_TR_NOOP("Throw")
428 , {QT_TR_NOOP("Throw"), QT_TR_NOOP("Coin")}
429 , QT_TR_NOOP("Vit:+1"), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
430 , 0x27, 0, 0, 0, +1, 0, 0, 0, 0, {0, 45000, 60000, 0, 0}, 5, 3, QString(), {QString()}
431 },
432 {
433 QT_TR_NOOP("Morph")
434 , {QT_TR_NOOP("Morph")}
435 , QString(), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
436 , 0x28, 0, 0, 0, 0, 0, 0, 0, 0, {0, 100000, 0, 0, 0}, 5, 2, QString(), {QString()}
437 },
438 {
439 QT_TR_NOOP("Deathblow")
440 , {QT_TR_NOOP("DeathBlow")}
441 , QT_TR_NOOP("Lck:+1"), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
442 , 0x29, 0, 0, 0, 0, 0, +1, 0, 0, {0, 40000, 0, 0, 0}, 5, 2, QString(), {QString()}
443 },
444 {
445 QT_TR_NOOP("Manipulate")
446 , {QT_TR_NOOP("Manipulate")}
447 , QString(), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
448 , 0x2A, 0, 0, 0, 0, 0, 0, 0, 0, {0, 40000, 0, 0, 0}, 5, 2, QString(), {QString()}
449 },
450 {
451 QT_TR_NOOP("Mime")
452 , {QT_TR_NOOP("Mime")}
453 , QString(), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
454 , 0x2B, 0, 0, 0, 0, 0, 0, 0, 0, {0, 100000, 0, 0, 0}, 5, 2, QString(), {QString()}
455 },
456 {
457 QT_TR_NOOP("Enemy Skill")
458 , {QT_TR_NOOP("Enemy Skill")}
459 , QString(), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
460 , 0x2C, 0, 0, 0, 0, 0, 0, 0, 0, {16777215, 0, 0, 0, 0}, 5, 1, QString(), {QString()}
461 },
462 {
463 QT_TR_NOOP("DON'T USE")
464 , {QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?")}
465 , QStringLiteral("ID:0x2D"), QString(), QString(), QString()
466 , 0X2D, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0, QString(), {QString()}
467 },
468 {
469 QT_TR_NOOP("DON'T USE")
470 , {QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?")}
471 , QStringLiteral("ID:0x2E"), QString(), QString(), QString()
472 , 0X2E, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0, QString(), {QString()}
473 },
474 {
475 QT_TR_NOOP("DON'T USE")
476 , {QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?")}
477 , QStringLiteral("ID:0x2F"), QString(), QString(), QString()
478 , 0X2F, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0, QString(), {QString()}
479 },
480 {
481 QT_TR_NOOP("Master Command")
482 , {QT_TR_NOOP("Master Command")}
483 , QString(), QStringLiteral(":/materia/command"), QStringLiteral(":/materia/command_star_empty"), QStringLiteral(":/materia/command_star_full")
484 , 0x30, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 5, 1, QString(), {QString()}
485 },
486 {
487 QT_TR_NOOP("Fire")
488 , {QT_TR_NOOP("Fire (4mp)"), QT_TR_NOOP("Fire2 (22mp)"), QT_TR_NOOP("Fire3 (52mp)")}
489 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
490 , 0x31, -2, +2, -1, 0, 0, 0, +1, 0, {0, 2000, 18000, 35000, 0}, 1, 4, QT_TR_NOOP("[Fire]"), {QString()}
491 },
492 {
493 QT_TR_NOOP("Ice")
494 , {QT_TR_NOOP("Ice (4mp)"), QT_TR_NOOP("Ice2 (22mp)"), QT_TR_NOOP("Ice3 (52mp)")}
495 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
496 , 0x32, -2, +2, -1, 0, 0, 0, +1, 0, {0, 2000, 18000, 35000, 0}, 1, 4, QT_TR_NOOP("[Ice]"), {QString()}
497 },
498 {
499 QT_TR_NOOP("Earth")
500 , {QT_TR_NOOP("Quake (6mp)"), QT_TR_NOOP("Quake2 (28mp)"), QT_TR_NOOP("Quake3 (68mp)")}
501 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
502 , 0x33, -2, +2, -1, 0, 0, 0, +1, 0, {0, 6000, 22000, 40000, 0}, 1, 4, QT_TR_NOOP("[Earth]"), {QString()}
503 },
504 {
505 QT_TR_NOOP("Lightning")
506 , {QT_TR_NOOP("Bolt (4mp)"), QT_TR_NOOP("Bolt2 (22mp)"), QT_TR_NOOP("Bolt3 (52mp)")}
507 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
508 , 0x34, -2, +2, -1, 0, 0, 0, +1, 0, {0, 2000, 18000, 35000, 0}, 1, 4, QT_TR_NOOP("[Lightning]"), {QString()}
509 },
510 {
511 QT_TR_NOOP("Restore")
512 , {QT_TR_NOOP("Cure (5mp)"), QT_TR_NOOP("Cure2 (24mp)"), QT_TR_NOOP("Regen (30mp)"), QT_TR_NOOP("Cure3 (64mp)")}
513 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
514 , 0x35, -2, +2, -1, 0, 0, 0, +1, 0, {0, 2500, 17000, 25000, 40000}, 1, 5, QString(), {QString()}
515 },
516 {
517 QT_TR_NOOP("Heal")
518 , {QT_TR_NOOP("Poisona (3mp)"), QT_TR_NOOP("Esuna (15mp)"), QT_TR_NOOP("Resist (120mp)")}
519 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
520 , 0x36, -2, +2, -1, 0, 0, 0, +1, 0, {0, 12000, 52000, 60000, 0}, 1, 4, QString(), {QString()}
521 },
522 {
523 QT_TR_NOOP("Revive")
524 , {QT_TR_NOOP("Life (34mp)"), QT_TR_NOOP("Life2 (100mp)")}
525 , QT_TR_NOOP("MaxHp:-5% MaxMp:+5% Str:-2 Vit:-1 Mag:+2 Spi:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
526 , 0x37, -5, +5, -2, -1, 0, 0, +2, +1, {0, 45000, 55000, 0, 0}, 1, 3, QString(), {QString()}
527 },
528 {
529 QT_TR_NOOP("Seal")
530 , {QT_TR_NOOP("Sleepel (8mp)"), QT_TR_NOOP("Silence (24mp)")}
531 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
532 , 0x38, -2, +2, -1, 0, 0, 0, +1, 0, {0, 10000, 20000, 0, 0}, 1, 3, QString(), {QT_TR_NOOP("[Sleep]"), QT_TR_NOOP("[Silence]")}
533 },
534 {
535 QT_TR_NOOP("Mystify")
536 , {QT_TR_NOOP("Confu (18mp)"), QT_TR_NOOP("Berserk (28mp)")}
537 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
538 , 0x39, -2, +2, -1, 0, 0, 0, +1, 0, {0, 12000, 25000, 0, 0}, 1, 3, QString(), {QT_TR_NOOP("[Confusion]"), QT_TR_NOOP("[Berserk]")}
539 },
540 {
541 QT_TR_NOOP("Transform")
542 , {QT_TR_NOOP("Mini (10mp)"), QT_TR_NOOP("Toad (14mp)")}
543 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
544 , 0x3A, -2, +2, -1, 0, 0, 0, +1, 0, {0, 8000, 24000, 0, 0}, 1, 3, QString(), {QT_TR_NOOP("[Mini]"), QT_TR_NOOP("[Frog]")}
545 },
546 {
547 QT_TR_NOOP("Exit")
548 , {QT_TR_NOOP("Exit (16mp)"), QT_TR_NOOP("Remove (99mp)")}
549 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
550 , 0x3B, -2, +2, -1, 0, 0, 0, +1, 0, {0, 10000, 30000, 0, 0}, 1, 3, QString(), {QString()}
551 },
552 {
553 QT_TR_NOOP("Poison")
554 , {QT_TR_NOOP("Bio (8mp)"), QT_TR_NOOP("Bio2 (36mp)"), QT_TR_NOOP("Bio3 (80mp)")}
555 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
556 , 0x3C, -2, +2, -1, 0, 0, 0, +1, 0, {0, 5000, 20000, 38000, 0}, 1, 4, QT_TR_NOOP("[Poison]"), {QT_TR_NOOP("[Poison]")}
557 },
558 {
559 QT_TR_NOOP("Gravity")
560 , {QT_TR_NOOP("Demi (14mp)"), QT_TR_NOOP("Demi2 (33mp)"), QT_TR_NOOP("Demi3 (48mp)")}
561 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Str:-1 Mag:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
562 , 0x3D, -2, +2, -1, 0, 0, 0, +1, 0, {0, 10000, 20000, 40000, 0}, 1, 4, QT_TR_NOOP("[Gravity]"), {QString()}
563 },
564 {
565 QT_TR_NOOP("Barrier")
566 , {QT_TR_NOOP("Barrier (16mp)"), QT_TR_NOOP("M-Barrier (24mp)"), QT_TR_NOOP("Reflect (30mp)"), QT_TR_NOOP("Wall (58mp)")}
567 , QT_TR_NOOP("MaxHp:-5% MaxMp:+5% Str:-2 Vit:-1 Mag:+2 Spi:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
568 , 0x3E, -5, +5, -2, -1, 0, 0, +2, +1, {0, 5000, 15000, 30000, 45000}, 1, 5, QString(), {QString()}
569 },
570 {
571 QT_TR_NOOP("DON'T USE")
572 , {QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?")}
573 , QStringLiteral("ID:0x3F"), QString(), QString(), QString()
574 , 0X3F, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0, QString(), {QString()}
575 },
576 {
577 QT_TR_NOOP("Comet")
578 , {QT_TR_NOOP("Comet (70mp)"), QT_TR_NOOP("Comet2 (110mp)")}
579 , QT_TR_NOOP("MaxHp:-5% MaxMp:+5% Str:-2 Vit:-1 Mag:+2 Spi:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
580 , 0x40, -5, +5, -2, -1, 0, 0, +2, +1, {0, 12000, 60000, 0, 0}, 1, 3, QString(), {QString()}
581 },
582 {
583 QT_TR_NOOP("Time")
584 , {QT_TR_NOOP("Haste (18mp)"), QT_TR_NOOP("Slow (20mp)"), QT_TR_NOOP("Stop (34mp)")}
585 , QT_TR_NOOP("MaxHp:-5% MaxMp:+5% Str:-2 Vit:-1 Mag:+2 Spi:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
586 , 0x41, -5, +5, -2, -1, 0, 0, +2, +1, {0, 10000, 20000, 42000, 0}, 1, 4, QString(), {QT_TR_NOOP("[Slow]"), QT_TR_NOOP("[Stop]")}
587 },
588 {
589 QT_TR_NOOP("DON'T USE")
590 , {QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?")}
591 , QStringLiteral("ID:0x42"), QString(), QString(), QString()
592 , 0X42, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0, QString(), {QString()}
593 },
594 {
595 QT_TR_NOOP("DON'T USE")
596 , {QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?"), QStringLiteral("?")}
597 , QStringLiteral("ID:0x43"), QString(), QString(), QString()
598 , 0X43, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 0, 0, QString(), {QString()}
599 },
600 {
601 QT_TR_NOOP("Destruct")
602 , {QT_TR_NOOP("DeBarrier (12mp)"), QT_TR_NOOP("DeSpell (20mp)"), QT_TR_NOOP("Death (30mp)")}
603 , QT_TR_NOOP("MaxHp:-5% MaxMp:+5% Str:-2 Vit:-1 Mag:+2 Spi:+1"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
604 , 0x44, -5, +5, -2, -1, 0, 0, +2, +1, {0, 6000, 10000, 45000, 0}, 1, 4, QString(), {QT_TR_NOOP("[Death]")}
605 },
606 {
607 QT_TR_NOOP("Contain")
608 , {QT_TR_NOOP("Freeze (82mp)"), QT_TR_NOOP("Break (86mp)"), QT_TR_NOOP("Tornado (90mp)"), QT_TR_NOOP("Flare (100mp)")}
609 , QT_TR_NOOP("MaxHp:-10% MaxMp:+10% Str:-4 Vit:-2 Mag:+4 Spi:+2"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
610 , 0x45, -10, +10, -4, -2, 0, 0, +4, +2, {0, 5000, 10000, 15000, 60000}, 1, 5, QString(), {QT_TR_NOOP("[Confusion]"), QT_TR_NOOP("[Petrify]"), QT_TR_NOOP("[Stop]")}
611 },
612 {
613 QT_TR_NOOP("Full Cure")
614 , {QString(), QT_TR_NOOP("Full Cure (99mp)")}
615 , QT_TR_NOOP("MaxHp:-10% MaxMp:+10% Str:-4 Vit:-2 Mag:+4 Spi:+2"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
616 , 0x46, -10, +10, -4, -2, 0, 0, +4, +2, {0, 3000, 100000, 0, 0}, 1, 3, QString(), {QString()}
617 },
618 {
619 QT_TR_NOOP("Shield")
620 , {QString(), QT_TR_NOOP("Shield (180mp)")}
621 , QT_TR_NOOP("MaxHp:-10% MaxMp:+10% Str:-4 Vit:-2 Mag:+4 Spi:+2"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
622 , 0x47, -10, +10, -4, -2, 0, 0, +4, +2, {0, 10000, 100000, 0, 0}, 1, 3, QString(), {QString()}
623 },
624 {
625 QT_TR_NOOP("Ultima")
626 , {QString(), QT_TR_NOOP("Ultima (130mp)")}
627 , QT_TR_NOOP("MaxHp:-10% MaxMp:+10% Str:-4 Vit:-2 Mag:+4 Spi:+2"), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
628 , 0x48, -10, +10, -4, -2, 0, 0, +4, +2, {0, 5000, 100000, 0, 0}, 1, 3, QString(), {QString()}
629 },
630 {
631 QT_TR_NOOP("Master Magic")
632 , {QT_TR_NOOP("Master Magic")}
633 , QString(), QStringLiteral(":/materia/magic"), QStringLiteral(":/materia/magic_star_empty"), QStringLiteral(":/materia/magic_star_full")
634 , 0x49, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 1, 1, QString(), {QString()}
635 },
636 {
637 QT_TR_NOOP("Choco/Mog")
638 , {QT_TR_NOOP("Choco/Mog x1 (14mp)"), QT_TR_NOOP("Choco/Mog x2 (14mp)"), QT_TR_NOOP("Choco/Mog x3 (14mp)"), QT_TR_NOOP("Choco/Mog x4 (14mp)"), QT_TR_NOOP("Choco/Mog x5 (14mp)")}
639 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Mag:+1"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
640 , 0x4A, -2, +2, 0, 0, 0, 0, +1, 0, {0, 2000, 14000, 25000, 35000}, 2, 5, QT_TR_NOOP("[Wind]"), {QString()}
641 },
642 {
643 QT_TR_NOOP("Shiva")
644 , {QT_TR_NOOP("Shiva x1 (32mp)"), QT_TR_NOOP("Shiva x2 (32mp)"), QT_TR_NOOP("Shiva x3 (32mp)"), QT_TR_NOOP("Shiva x4 (32mp)"), QT_TR_NOOP("Shiva x5 (32mp)")}
645 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Mag:+1"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
646 , 0x4B, -2, +2, 0, 0, 0, 0, +1, 0, {0, 4000, 15000, 30000, 50000}, 2, 5, QT_TR_NOOP("[Ice]"), {QString()}
647 },
648 {
649 QT_TR_NOOP("Ifrit")
650 , {QT_TR_NOOP("Ifrit x1 (34mp)"), QT_TR_NOOP("Ifrit x2 (34mp)"), QT_TR_NOOP("Ifrit x3 (34mp)"), QT_TR_NOOP("Ifrit x4 (34mp)"), QT_TR_NOOP("Ifrit x5 (34mp)")}
651 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Mag:+1"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
652 , 0x4C, -2, +2, 0, 0, 0, 0, +1, 0, {0, 5000, 20000, 35000, 60000}, 2, 5, QT_TR_NOOP("[Fire]"), {QString()}
653 },
654 {
655 QT_TR_NOOP("Ramuh")
656 , {QT_TR_NOOP("Ramuh x1 (40mp)"), QT_TR_NOOP("Ramuh x2 (40mp)"), QT_TR_NOOP("Ramuh x3 (40mp)"), QT_TR_NOOP("Ramuh x4 (40mp)"), QT_TR_NOOP("Ramuh x5 (40mp)")}
657 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Mag:+1"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
658 , 0x4D, -2, +2, 0, 0, 0, 0, +1, 0, {0, 10000, 25000, 50000, 70000}, 2, 5, QT_TR_NOOP("[Lightning]"), {QString()}
659 },
660 {
661 QT_TR_NOOP("Titan")
662 , {QT_TR_NOOP("Titan x1 (46mp)"), QT_TR_NOOP("Titan x2 (46mp)"), QT_TR_NOOP("Titan x3 (46mp)"), QT_TR_NOOP("Titan x4 (46mp)"), QT_TR_NOOP("Titan x5 (46mp)")}
663 , QT_TR_NOOP("MaxHp:-2% MaxMp:+2% Mag:+1"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
664 , 0x4E, -2, +2, 0, 0, 0, 0, +1, 0, {0, 15000, 30000, 60000, 80000}, 2, 5, QT_TR_NOOP("[Earth]"), {QString()}
665 },
666 {
667 QT_TR_NOOP("Odin")
668 , {QT_TR_NOOP("Odin x1 (80mp)"), QT_TR_NOOP("Odin x2 (80mp)"), QT_TR_NOOP("Odin x3 (80mp)"), QT_TR_NOOP("Odin x4 (80mp)"), QT_TR_NOOP("Odin x5 (80mp)")}
669 , QT_TR_NOOP("MaxHp:-5% MaxMp:+5% Mag:+1 Spi:+1"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
670 , 0x4F, -5, +5, 0, 0, 0, 0, +1, +1, {0, 16000, 32000, 65000, 90000}, 2, 5, QString(), {QT_TR_NOOP("[Death]")}
671 },
672 {
673 QT_TR_NOOP("Leviathan")
674 , {QT_TR_NOOP("Leviathan x1 (78mp)"), QT_TR_NOOP("Leviathan x2 (78mp)"), QT_TR_NOOP("Leviathan x3 (78mp)"), QT_TR_NOOP("Leviathan x4 (78mp)"), QT_TR_NOOP("Leviathan x5 (78mp)")}
675 , QT_TR_NOOP("MaxHp:-5% MaxMp:+5% Mag:+1 Spi:+1"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
676 , 0x50, -5, +5, 0, 0, 0, 0, +1, +1, {0, 18000, 38000, 70000, 100000}, 2, 5, QT_TR_NOOP("[Water]"), {QString()}
677 },
678 {
679 QT_TR_NOOP("Bahamut")
680 , {QT_TR_NOOP("Bahamut x1 (100mp)"), QT_TR_NOOP("Bahamut x2 (100mp)"), QT_TR_NOOP("Bahamut x3 (100mp)"), QT_TR_NOOP("Bahamut x4 (100mp)"), QT_TR_NOOP("Bahamut x5 (100mp)")}
681 , QT_TR_NOOP("MaxHp:-5% MaxMp:+5% Mag:+1 Spi:+1"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
682 , 0x51, -5, +5, 0, 0, 0, 0, +1, +1, {0, 20000, 50000, 80000, 120000}, 2, 5, QString(), {QString()}
683 },
684 {
685 QT_TR_NOOP("Kujata")
686 , {QT_TR_NOOP("Kujata x1 (110mp)"), QT_TR_NOOP("Kujata x2 (110mp)"), QT_TR_NOOP("Kujata x3 (110mp)"), QT_TR_NOOP("Kujata x4 (110mp)"), QT_TR_NOOP("Kujata x5 (110mp)")}
687 , QT_TR_NOOP("MaxHp:-5% MaxMp:+5% Mag:+1 Spi:+1"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
688 , 0x52, -5, +5, 0, 0, 0, 0, +1, +1, {0, 22000, 60000, 90000, 140000}, 2, 5, QString(), {QString()}
689 },
690 {
691 QT_TR_NOOP("Alexander")
692 , {QT_TR_NOOP("Alexander x1 (120mp)"), QT_TR_NOOP("Alexander x2 (120mp)"), QT_TR_NOOP("Alexander x3 (120mp)"), QT_TR_NOOP("Alexander x4 (120mp)"), QT_TR_NOOP("Alexander x5 (120mp)")}
693 , QT_TR_NOOP("MaxHp:-5% MaxMp:+5% Mag:+1 Spi:+1"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
694 , 0x53, -5, +5, 0, 0, 0, 0, +1, +1, {0, 25000, 65000, 100000, 150000}, 2, 5, QT_TR_NOOP("[Holy]"), {QString()}
695 },
696 {
697 QT_TR_NOOP("Phoenix")
698 , {QT_TR_NOOP("Phoenix x1 (180mp)"), QT_TR_NOOP("Phoenix x2 (180mp)"), QT_TR_NOOP("Phoenix x3 (180mp)"), QT_TR_NOOP("Phoenix x4 (180mp)"), QT_TR_NOOP("Phoenix x5 (180mp)")}
699 , QT_TR_NOOP("MaxHp:-10% MaxMp:+10% Mag:+2 Spi:+2"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
700 , 0x54, -10, +10, 0, 0, 0, 0, +2, +2, {0, 28000, 70000, 120000, 180000}, 2, 5, QT_TR_NOOP("[Fire]"), {QString()}
701 },
702 {
703 QT_TR_NOOP("Neo Bahamut")
704 , {QT_TR_NOOP("Neo Bahamut x1 (140mp)"), QT_TR_NOOP("Neo Bahamut x2 (140mp)"), QT_TR_NOOP("Neo Bahamut x3 (140mp)"), QT_TR_NOOP("Neo Bahamut x4 (140mp)"), QT_TR_NOOP("Neo Bahamut x5 (140mp)")}
705 , QT_TR_NOOP("MaxHp:-10% MaxMp:+10% Mag:+2 Spi:+2"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
706 , 0x55, -10, +10, 0, 0, 0, 0, +2, +2, {0, 30000, 80000, 140000, 200000}, 2, 5, QString(), {QString()}
707 },
708 {
709 QT_TR_NOOP("Hades")
710 , {QT_TR_NOOP("Hades x1 (150mp)"), QT_TR_NOOP("Hades x2 (150mp)"), QT_TR_NOOP("Hades x3 (150mp)"), QT_TR_NOOP("Hades x4 (150mp)"), QT_TR_NOOP("Hades x5 (150mp)")}
711 , QT_TR_NOOP("MaxHp:-10% MaxMp:+15% Mag:+4 Spi:+4"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
712 , 0x56, -10, +15, 0, 0, 0, 0, +4, +4, {0, 35000, 120000, 150000, 250000}, 2, 5, QString(), {QT_TR_NOOP("[Sleep]"), QT_TR_NOOP("[Poison]"), QT_TR_NOOP("[Confusion]"), QT_TR_NOOP("[Silence]"), QT_TR_NOOP("[Frog]"), QT_TR_NOOP("[Mini]")}
713 },
714 {
715 QT_TR_NOOP("Typhon")
716 , {QT_TR_NOOP("Typhon x1 (160mp)"), QT_TR_NOOP("Typhon x2 (160mp)"), QT_TR_NOOP("Typhon x3 (160mp)"), QT_TR_NOOP("Typhon x4 (160mp)"), QT_TR_NOOP("Typhon x5 (160mp)")}
717 , QT_TR_NOOP("MaxHp:-10% MaxMp:+15% Mag:+4 Spi:+4"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
718 , 0x57, -10, +15, 0, 0, 0, 0, +4, +4, {0, 35000, 120000, 150000, 250000}, 2, 5, QT_TR_NOOP("[Wind]"), {QString()}
719 },
720 {
721 QT_TR_NOOP("Bahamut ZERO")
722 , {QT_TR_NOOP("Bahamut ZERO x1 (180mp)"), QT_TR_NOOP("Bahamut ZERO x2 (180mp)"), QT_TR_NOOP("Bahamut ZERO x3 (180mp)"), QT_TR_NOOP("Bahamut ZERO x4 (180mp)"), QT_TR_NOOP("Bahamut ZERO x5 (180mp)")}
723 , QT_TR_NOOP("MaxHp:-10% MaxMp:+15% Mag:+4 Spi:+4"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
724 ,0x58, -10, +15, 0, 0, 0, 0, +4, +4, {0, 35000, 120000, 150000, 250000}, 2, 5, QString(), {QString()}
725 },
726 {
727 QT_TR_NOOP("Knights of the Round")
728 , {QT_TR_NOOP("Knights of the Round x1 (250mp)"), QT_TR_NOOP("Knights of the Round x2 (250mp)"), QT_TR_NOOP("Knights of the Round x3 (250mp)"), QT_TR_NOOP("Knights of the Round x4 (250mp)"), QT_TR_NOOP("Knights of the Round x5 (250mp)")}
729 , QT_TR_NOOP("MaxHp:-10% MaxMp:+20% Mag:+8 Spi:+8"), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
730 , 0x59, -10, +20, 0, 0, 0, 0, +8, +8, {0, 50000, 200000, 300000, 500000}, 2, 5, QString(), {QString()}
731 },
732 {
733 QT_TR_NOOP("Master Summon")
734 , {QT_TR_NOOP("Master Summon")}
735 , QString(), QStringLiteral(":/materia/summon"), QStringLiteral(":/materia/summon_star_empty"), QStringLiteral(":/materia/summon_star_full")
736 , 0x5A, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0}, 2, 1, QString(), {QString()}
737 }
738 };
739 inline static const QStringList _enemySkills{
740 QT_TR_NOOP("Frog Song")
741 , QT_TR_NOOP("L4 Suicide")
742 , QT_TR_NOOP("Magic Hammer")
743 , QT_TR_NOOP("White Wind")
744 , QT_TR_NOOP("Big Guard")
745 , QT_TR_NOOP("Angel Whisper")
746 , QT_TR_NOOP("Dragon Force")
747 , QT_TR_NOOP("Death Force")
748 , QT_TR_NOOP("Flame Thrower")
749 , QT_TR_NOOP("Laser")
750 , QT_TR_NOOP("Matra Magic")
751 , QT_TR_NOOP("Bad Breath")
752 , QT_TR_NOOP("Beta")
753 , QT_TR_NOOP("Aqualung")
754 , QT_TR_NOOP("Trine")
755 , QT_TR_NOOP("Magic Breath")
756 , QT_TR_NOOP("????")
757 , QT_TR_NOOP("Goblin Punch")
758 , QT_TR_NOOP("Chocobuckle")
759 , QT_TR_NOOP("L5 Death")
760 , QT_TR_NOOP("Death Sentence")
761 , QT_TR_NOOP("Roulette")
762 , QT_TR_NOOP("Shadow Flare")
763 , QT_TR_NOOP("Pandora's Box")
764 };
765
766 inline static const QStringList _masterCommandList{
767 QT_TR_NOOP("DeathBlow")
768 , QT_TR_NOOP("Manipulate")
769 , QT_TR_NOOP("Mime")
770 , QT_TR_NOOP("Throw")
771 , QT_TR_NOOP("Coin")
772 , QT_TR_NOOP("Steal")
773 , QT_TR_NOOP("Sense")
774 , QT_TR_NOOP("Morph")
775 };
776
777 inline static const QStringList _masterSummonList{
778 QT_TR_NOOP("Choco/Mog (14mp)")
779 , QT_TR_NOOP("Shiva (32mp)")
780 , QT_TR_NOOP("Ifrit (34mp)")
781 , QT_TR_NOOP("Ramuh (40mp)")
782 , QT_TR_NOOP("Titan (46mp)")
783 , QT_TR_NOOP("Odin (80mp)")
784 , QT_TR_NOOP("Leviathan (78mp)")
785 , QT_TR_NOOP("Bahamut (100mp)")
786 , QT_TR_NOOP("Kujata (110mp)")
787 , QT_TR_NOOP("Alexander (120mp)")
788 , QT_TR_NOOP("Phoenix (180mp)")
789 , QT_TR_NOOP("Neo Bahamut (140mp)")
790 , QT_TR_NOOP("Hades (150mp)")
791 , QT_TR_NOOP("Typhon (160mp)")
792 , QT_TR_NOOP("Bahamut ZERO (180mp)")
793 , QT_TR_NOOP("Knights Of The Round (250mp)")
794 };
795
796 inline static const QStringList _masterMagicList{
797 QT_TR_NOOP("Cure (5mp)")
798 , QT_TR_NOOP("Cure2 (24mp)")
799 , QT_TR_NOOP("Regen (30mp)")
800 , QT_TR_NOOP("Cure3 (64mp)")
801 , QT_TR_NOOP("Life (34mp)")
802 , QT_TR_NOOP("Life2 (100mp)")
803 , QT_TR_NOOP("Poisona (3mp)")
804 , QT_TR_NOOP("Esuna (15mp)")
805 , QT_TR_NOOP("Resist (120mp)")
806 , QT_TR_NOOP("Haste (18mp)")
807 , QT_TR_NOOP("Slow (20mp)")
808 , QT_TR_NOOP("Stop (34mp)")
809 , QT_TR_NOOP("Barrier (16mp)")
810 , QT_TR_NOOP("M-Barrier (24mp)")
811 , QT_TR_NOOP("Reflect (30mp)")
812 , QT_TR_NOOP("Wall (58mp)")
813 , QT_TR_NOOP("DeBarrier (12mp)")
814 , QT_TR_NOOP("DeSpell (20mp)")
815 , QT_TR_NOOP("Death (30mp)")
816 , QT_TR_NOOP("Sleepel (8mp)")
817 , QT_TR_NOOP("Silence (24mp)")
818 , QT_TR_NOOP("Confu (18mp)")
819 , QT_TR_NOOP("Berserk (28mp)")
820 , QT_TR_NOOP("Mini (10mp)")
821 , QT_TR_NOOP("Toad (14mp)")
822 , QT_TR_NOOP("Exit (16mp)")
823 , QT_TR_NOOP("Remove (99mp)")
824 , QT_TR_NOOP("Fire (4mp)")
825 , QT_TR_NOOP("Fire2 (22mp)")
826 , QT_TR_NOOP("Fire3 (52mp)")
827 , QT_TR_NOOP("Ice (4mp)")
828 , QT_TR_NOOP("Ice2 (22mp)")
829 , QT_TR_NOOP("Ice3 (52mp)")
830 , QT_TR_NOOP("Quake (6mp)")
831 , QT_TR_NOOP("Quake2 (28mp)")
832 , QT_TR_NOOP("Quake3 (68mp)")
833 , QT_TR_NOOP("Bolt (4mp)")
834 , QT_TR_NOOP("Bolt2 (22mp)")
835 , QT_TR_NOOP("Bolt3 (52mp)")
836 , QT_TR_NOOP("Bio (8mp)")
837 , QT_TR_NOOP("Bio2 (36mp)")
838 , QT_TR_NOOP("Bio3 (80mp)")
839 , QT_TR_NOOP("Demi (14mp)")
840 , QT_TR_NOOP("Demi2 (33mp)")
841 , QT_TR_NOOP("Demi3 (48mp)")
842 , QT_TR_NOOP("Comet (70mp)")
843 , QT_TR_NOOP("Comet2 (110mp)")
844 , QT_TR_NOOP("Freeze (82mp)")
845 , QT_TR_NOOP("Break (86mp)")
846 , QT_TR_NOOP("Tornado (90mp)")
847 , QT_TR_NOOP("Flare (100mp)")
848 , QT_TR_NOOP("Full Cure (99mp)")
849 , QT_TR_NOOP("Shield (180mp)")
850 , QT_TR_NOOP("Ultima (130mp)")
851 };
852};
Definition: FF7Materia.h:26
QImage imageFullStar(int id)
Definition: FF7Materia.h:139
QImage image(int id)
Definition: FF7Materia.h:123
QIcon iconAllMateria() const
Definition: FF7Materia.h:143
QPixmap pixmapEmptyStar(int id)
Definition: FF7Materia.h:127
Q_INVOKABLE qint8 type(int id)
Definition: FF7Materia.h:99
Q_INVOKABLE qint8 levels(int id)
Definition: FF7Materia.h:95
QIcon icon(int id)
Definition: FF7Materia.h:115
Q_INVOKABLE qint8 statHP(int id)
Definition: FF7Materia.h:87
QImage imageAllMateria() const
Definition: FF7Materia.h:147
Q_INVOKABLE qint8 statVIT(int id)
Definition: FF7Materia.h:67
Q_INVOKABLE qint8 statLCK(int id)
Definition: FF7Materia.h:83
MateriaNames
Definition: FF7Materia.h:39
QImage imageEmptyStar(int id)
Definition: FF7Materia.h:131
Q_INVOKABLE qint8 statSPI(int id)
Definition: FF7Materia.h:75
MateriaType
Definition: FF7Materia.h:29
Q_INVOKABLE qint8 statMP(int id)
Definition: FF7Materia.h:91
Q_INVOKABLE qint32 ap2num(quint8 ap[3])
Definition: FF7Materia.h:103
QPixmap pixmap(int id)
Definition: FF7Materia.h:119
Q_INVOKABLE qint8 statMAG(int id)
Definition: FF7Materia.h:71
Q_INVOKABLE qint8 statDEX(int id)
Definition: FF7Materia.h:79
Q_INVOKABLE const QString & imageAllResource() const
Definition: FF7Materia.h:107
QPixmap pixmapFullStar(int id)
Definition: FF7Materia.h:135