-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAbstractBattleEntity.h
441 lines (342 loc) · 11.2 KB
/
AbstractBattleEntity.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
//
// AbstractBattleEntity.h
// TEORBattleTest
//
// Created by Zach Babb on 5/25/11.
// Copyright 2011 InstantLazer. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Global.h"
@class GameController;
@class TouchManager;
@class InputManager;
@class Image;
@class BitmapFont;
@interface AbstractBattleEntity : NSObject {
GameController *sharedGameController;
TouchManager *sharedTouchManager;
InputManager *sharedInputManager;
int whichCharacter;
int state;
float level;
float levelModifier;
float hp;
float maxHP;
float essence;
float maxEssence;
float endurance;
float maxEndurance;
float strength;
float strengthModifier;
float agility;
float agilityModifier;
float stamina;
float staminaModifier;
float dexterity;
float dexterityModifier;
float power;
float powerModifier;
float affinity;
float affinityModifier;
float luck;
float luckModifier;
int criticalChance;
int bleeders;
float bleederTimers[10];
BOOL isAlive;
BOOL hasSelectorImage;
CGRect rect;
CGPoint renderPoint;
NSMutableArray *statuses;
Image *selectorImage;
float battleTimer;
//Elemental Affinities
float waterAffinity;
float skyAffinity;
float fireAffinity;
float stoneAffinity;
float lifeAffinity;
float deathAffinity;
float woodAffinity;
float poisonAffinity;
float divineAffinity;
float rageAffinity;
//Flags for elements
int isProtectedFromWater;
int isProtectedFromSky;
int isProtectedFromFire;
int isProtectedFromStone;
int isProtectedFromLife;
int isProtectedFromDeath;
int isProtectedFromWood;
int isProtectedFromPoison;
int isProtectedFromDivine;
int isProtectedFromRage;
BOOL waterProtectionEquipped;
BOOL skyProtectionEquipped;
BOOL fireProtectionEquipped;
BOOL stoneProtectionEquipped;
BOOL lifeProtectionEquipped;
BOOL rageProtectionEquipped;
BOOL woodProtectionEquipped;
BOOL poisonProtectionEquipped;
BOOL divineProtectionEquipped;
BOOL deathProtectionEquipped;
int waterAttack;
int skyAttack;
int fireAttack;
int stoneAttack;
int lifeAttack;
int rageAttack;
int woodAttack;
int poisonAttack;
int deathAttack;
int divineAttack;
BOOL waterAttackEquipped;
BOOL skyAttackEquipped;
BOOL fireAttackEquipped;
BOOL stoneAttackEquipped;
BOOL lifeAttackEquipped;
BOOL rageAttackEquipped;
BOOL woodAttackEquipped;
BOOL poisonAttackEquipped;
BOOL deathAttackEquipped;
BOOL divineAttackEquipped;
//Bools and timers for statuses;
BOOL isBlind;
float blindTimer;
BOOL isParalyzed;
float paralyzeTimer;
BOOL isFatigued;
float fatigueTimer;
BOOL isMotivated;
float motivatedTimer;
BOOL isDrauraed;
float drauraTimer;
BOOL isAuraed;
float auraTimer;
BOOL isDisoriented;
float disorientedTimer;
BOOL isHexed;
float hexTimer;
BOOL isSlothed;
float slothTimer;
BOOL fatigueAttack;
BOOL drauraAttack;
BOOL disorientedAttack;
BOOL hexAttack;
BOOL slothAttack;
BOOL fatigueProtection;
BOOL drauraProtection;
BOOL disorientedProtection;
BOOL hexProtection;
BOOL slothProtection;
BOOL deathProtection;
//Flags and ints for battle effects
int essenceHelper; // for Ansuz weapon equip
BOOL geboPotential;
BOOL othalaPotential;
int numberOfAttacks;
int doubleAttack;
BOOL cannotBeHealed;
BOOL attacksRefillItemTimers;
BOOL essenceDrain;
BOOL mayCounterAttack;
BOOL receiveDoubleHealing;
BOOL doubleHealingGiven;
BOOL attacksAddToRageMeter;
BOOL attacksAddToStatusTimers;
BOOL protectedFromBleeders;
BOOL willTakeDoubleDamage;
uint attackModifier;
uint effectModifier;
BOOL doubleEffect;
BOOL enduranceAttack;
BOOL enduranceDoesNotDeplete;
BOOL halfEnduranceExpenditure;
BOOL attackAttacksAllEnemies;
BOOL enhanceBleederDamage;
BOOL damageEssence;
BOOL rainIsHealingYou;
BOOL damageEndurance;
BOOL attacksCauseBleeders;
BOOL attackAddsSkeletonsToWunjo;
BOOL boneShield;
BOOL attackEnhancesFavor;
BOOL hpAttack;
BOOL autoRaise;
BOOL drainAttack;
BOOL drainAttackEquipped;
//Variables for rendering effects. Probably change to font render manager eventually
BitmapFont *battleFont;
CGPoint fontRenderPoint;
BOOL renderDamage;
CGPoint damageRenderPoint;
int damage;
int healing;
BOOL renderHealing;
CGPoint healingRenderPoint;
BOOL renderEssenceGain;
int essenceGain;
CGPoint essenceRenderPoint;
//Properties for animations
Color4f essenceColor;
//For flashes
Color4f flashColor;
BOOL isFlashing;
int flashes;
float flashTimer;
BOOL active;
BOOL wait;
float waitTimer;
}
@property (nonatomic, assign) int whichCharacter;
@property (nonatomic, assign) int state;
@property (nonatomic, assign) float level;
@property (nonatomic, assign) float levelModifier;
@property (nonatomic, assign) float hp;
@property (nonatomic, assign) float maxHP;
@property (nonatomic, assign) float essence;
@property (nonatomic, assign) float maxEssence;
@property (nonatomic, assign) float endurance;
@property (nonatomic, assign) float maxEndurance;
@property (nonatomic, assign) float strength;
@property (nonatomic, assign) float strengthModifier;
@property (nonatomic, assign) float agility;
@property (nonatomic, assign) float agilityModifier;
@property (nonatomic, assign) float stamina;
@property (nonatomic, assign) float staminaModifier;
@property (nonatomic, assign) float dexterity;
@property (nonatomic, assign) float dexterityModifier;
@property (nonatomic, assign) float power;
@property (nonatomic, assign) float powerModifier;
@property (nonatomic, assign) float affinity;
@property (nonatomic, assign) float affinityModifier;
@property (nonatomic, assign) float luck;
@property (nonatomic, assign) float luckModifier;
@property (nonatomic, readonly) int criticalChance;
@property (nonatomic, assign) float waterAffinity;
@property (nonatomic, assign) float skyAffinity;
@property (nonatomic, assign) float lifeAffinity;
@property (nonatomic, assign) float rageAffinity;
@property (nonatomic, assign) float fireAffinity;
@property (nonatomic, assign) float stoneAffinity;
@property (nonatomic, assign) float woodAffinity;
@property (nonatomic, assign) float poisonAffinity;
@property (nonatomic, assign) float divineAffinity;
@property (nonatomic, assign) float deathAffinity;
@property (nonatomic, readonly) int isProtectedFromSky;
@property (nonatomic, readonly) int isProtectedFromWater;
@property (nonatomic, readonly) int isProtectedFromRage;
@property (nonatomic, readonly) int isProtectedFromLife;
@property (nonatomic, readonly) int isProtectedFromFire;
@property (nonatomic, readonly) int isProtectedFromStone;
@property (nonatomic, readonly) int isProtectedFromWood;
@property (nonatomic, readonly) int isProtectedFromPoison;
@property (nonatomic, readonly) int isProtectedFromDeath;
@property (nonatomic, readonly) int isProtectedFromDivine;
@property (nonatomic, assign) int essenceHelper;
@property (nonatomic, assign) BOOL isAlive;
@property (nonatomic, assign) CGRect rect;
@property (nonatomic, assign) CGPoint renderPoint;
@property (nonatomic, assign) float battleTimer;
@property (nonatomic, assign) Color4f essenceColor;
@property (nonatomic, assign) BOOL isBlind;
@property (nonatomic, assign) BOOL isParalyzed;
@property (nonatomic, assign) BOOL isFatigued;
@property (nonatomic, assign) BOOL isMotivated;
@property (nonatomic, assign) BOOL isDrauraed;
@property (nonatomic, assign) BOOL isAuraed;
@property (nonatomic, assign) BOOL isDisoriented;
@property (nonatomic, assign) BOOL isHexed;
@property (nonatomic, assign) BOOL isSlothed;
@property (nonatomic, assign) BOOL cannotBeHealed;
@property (nonatomic, assign) BOOL enhanceBleederDamage;
@property (nonatomic, assign) BOOL active;
@property (nonatomic, assign) BOOL wait;
@property (nonatomic, assign) float waitTimer;
@property (nonatomic, assign) BOOL waterProtectionEquipped;
@property (nonatomic, assign) BOOL skyProtectionEquipped;
@property (nonatomic, assign) BOOL rageProtectionEquipped;
@property (nonatomic, assign) BOOL lifeProtectionEquipped;
@property (nonatomic, assign) BOOL fireProtectionEquipped;
@property (nonatomic, assign) BOOL stoneProtectionEquipped;
@property (nonatomic, assign) BOOL woodProtectionEquipped;
@property (nonatomic, assign) BOOL poisonProtectionEquipped;
@property (nonatomic, assign) BOOL divineProtectionEquipped;
@property (nonatomic, assign) BOOL deathProtectionEquipped;
- (void)updateWithDelta:(float)aDelta;
- (void)render;
- (void)takeDamage:(int)aDamage;
- (BOOL)isDead;
- (void)resetBattleTimer;
- (CGRect)getRect; //Override for different entities based on their size.
- (void)addSelectorImage;
- (void)removeSelectorImage;
- (void)relinquishPriority;
- (void)youHaveDied;
- (void)youWereRaised;
- (void)addBleeder;
- (void)removeBleeder;
- (BOOL)hasBleeders;
- (int)calculateBleederDamage;
- (void)youTookDamage:(int)aDamage;
- (void)youTookCriticalDamage:(int)aDamage;
- (void)youTookEssenceDamage:(int)aEssenceDamage;
- (void)youWereHealed:(int)aHealing;
- (void)youWereGivenEssence:(int)aEssence;
- (void)youWereGivenEndurance:(int)aEndurance;
- (void)gainPriority;
- (void)flashColor:(Color4f)aColor;
- (void)increaseLevelModifierBy:(int)aMod;
- (void)decreaseLevelModifierBy:(int)aMod;
- (void)increaseStrengthModifierBy:(int)aMod;
- (void)decreaseStrengthModifierBy:(int)aMod;
- (void)increaseAgilityModifierBy:(int)aMod;
- (void)decreaseAgilityModifierBy:(int)aMod;
- (void)increaseStaminaModifierBy:(int)aMod;
- (void)decreaseStaminaModifierBy:(int)aMod;
- (void)increaseDexterityModifierBy:(int)aMod;
- (void)decreaseDexterityModifierBy:(int)aMod;
- (void)increasePowerModifierBy:(int)aMod;
- (void)decreasePowerModifierBy:(int)aMod;
- (void)increaseAffinityModifierBy:(int)aMod;
- (void)decreaseAffinityModifierBy:(int)aMod;
- (void)increaseLuckModifierBy:(int)aMod;
- (void)decreaseLuckModifierBy:(int)aMod;
- (void)youWereBlinded:(int)aBlindRoll;
- (void)youWereFatigued:(int)aFatigueRoll;
- (void)youWereMotivated:(int)aMotivationRoll;
- (void)youWereDrauraed:(int)aDrauraRoll;
- (void)youWereAuraed:(int)aAuraRoll;
- (void)youWereDisoriented:(int)aDisorientedRoll;
- (void)youWereHexed:(int)aHexRoll;
- (void)youWereSlothed:(int)aSlothRoll;
- (void)unlockGeboPotential;
- (void)unlockOthalaPotential;
- (void)unlockOthalaEquippedPotential;
- (void)enduranceDoesNotDeplete;
- (void)enduranceDoesDeplete;
- (void)gainElementalAttack:(int)aElement;
- (void)loseElementalAttack:(int)aElement;
- (void)gainElementalProtection:(int)aElement;
- (void)loseElementalProtection:(int)aElement;
- (void)youGainedDoubleHealing;
- (void)youLostDoubleHealing;
- (void)youWereBerkanoed;
- (void)gainProtectionFromDying;
- (void)loseProtectionFromDying;
- (void)addToStatusDurations:(float)aDuration;
- (void)youWillTakeDoubleDamage;
- (void)gainDoubleEffect;
- (void)youWillNotLoseEndurance;
- (void)youWillLoseEndurance;
- (void)youWillLoseHalfEndurance;
- (void)youWillNotLoseHalfEndurance;
- (void)attacksWillCauseBleeders;
- (void)attacksWillNotCauseBleeders;
- (void)gainAutoRaise;
- (void)loseAutoRaise;
- (void)gainDrainAttack;
- (void)loseDrainAttack;
@end