Horizon Official Technical Documentation
BonusesImpl.hpp
Go to the documentation of this file.
1/***************************************************
2 * _ _ _ *
3 * | | | | (_) *
4 * | |_| | ___ _ __ _ _______ _ __ *
5 * | _ |/ _ \| '__| |_ / _ \| '_ \ *
6 * | | | | (_) | | | |/ / (_) | | | | *
7 * \_| |_/\___/|_| |_/___\___/|_| |_| *
8 ***************************************************
9 * This file is part of Horizon (c).
10 *
11 * Copyright (c) 2019 Sagun K. (sagunxp@gmail.com).
12 * Copyright (c) 2019 Horizon Dev Team.
13 *
14 * Base Author - Sagun K. (sagunxp@gmail.com)
15 *
16 * This library is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation, either version 3 of the License, or
19 * (at your option) any later version.
20 *
21 * This library is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
25 *
26 * You should have received a copy of the GNU General Public License
27 * along with this library. If not, see <http://www.gnu.org/licenses/>.
28 **************************************************/
29
30#ifndef HORIZON_ZONE_GAME_TRAITS_BONUSESIMPL_HPP
31#define HORIZON_ZONE_GAME_TRAITS_BONUSESIMPL_HPP
32
33#include "Attribute.hpp"
38 // Linux
39
40namespace Horizon
41{
42namespace Zone
43{
44class Unit;
45class Player;
46namespace Bonuses
47{
48 class Bonus : public Traits::Attribute
49 {
50 public:
51 // default for the clear() method in BonusArray, which is used to clear all bonuses of a certain type.
52 // It shouldn't affect the copy and move semantics of Bonus.
53 Bonus() : Traits::Attribute(std::shared_ptr<Unit>(), STATUS_POINT_INVALID, 0, 0, 0), _unit(std::shared_ptr<Unit>()), _applied(false),
55
56 Bonus(std::shared_ptr<Unit> unit, status_point_type status_point_type, int bonus, int parameter_1 = 0, int parameter_2 = 0, int parameter_3 = 0)
57 : Traits::Attribute(unit, status_point_type, 0, bonus, 0), _unit(unit), _applied(false),
58 _parameter_1(parameter_1), _parameter_2(parameter_2), _parameter_3(parameter_3) { }
59
60 // create copy and move constructors for Bonus
62 Bonus(Bonus &&other) noexcept : Traits::Attribute(std::move(other)), _parameter_1(other._parameter_1), _parameter_2(other._parameter_2), _parameter_3(other._parameter_3) { }
63
64 // create copy and move assignment operators for Bonus
65 Bonus& operator=(Bonus &other) {
66 if (this != &other) {
71 _unit = other._unit;
72 _applied = other._applied;
73 }
74 return *this;
75 }
76 Bonus& operator=(Bonus &&other) noexcept {
77 if (this != &other) {
78 Traits::Attribute::operator=(std::move(other));
79 _parameter_1 = other._parameter_1;
80 _parameter_2 = other._parameter_2;
81 _parameter_3 = other._parameter_3;
82 _unit = std::move(other._unit);
83 _applied = other._applied;
84 }
85 return *this;
86 }
87
88 int32_t get() { return get_equip(); }
89 void set(int bonus, bool notify_client = true) { set_equip(bonus, notify_client); }
90
91 int32_t get_parameter_1() { return _parameter_1;}
92 void set_parameter_1(int parameter_1) { _parameter_1 = parameter_1; }
93
94 int32_t get_parameter_2() { return _parameter_2;}
95 void set_parameter_2(int parameter_2) { _parameter_2 = parameter_2; }
96
97 int32_t get_parameter_3() { return _parameter_3;}
98 void set_parameter_3(int parameter_3) { _parameter_3 = parameter_3; }
99
100 virtual void apply(int64_t &ret) { ret += get(); }
101 virtual void remove(int64_t &ret) { ret -= get(); }
102
103 std::shared_ptr<Unit> unit() { return _unit.lock(); }
104 void unit(std::shared_ptr<Unit> e) { _unit = e; }
105
106 void set_applied(bool applied) { _applied = applied; }
107 bool is_applied() { return _applied; }
108 private:
109 std::weak_ptr<Unit> _unit;
110 bool _applied{false};
114 };
115
117 {
118 public:
120 virtual ~IBonusArray() { }
121 virtual void clear() = 0;
122 virtual void clear(int type) = 0;
123
125 void set_type(status_point_type st_type) { _st_type = st_type; }
126
128 };
129
130 template <typename BONUSTYPE, int TYPEMAX>
131 class BonusArray : public IBonusArray
132 {
133 public:
134 BonusArray(std::shared_ptr<Unit> unit, status_point_type status_point_type)
136
137 // create copy and move constructors for BonusArray
138 BonusArray(const BonusArray &other) : _types(other._types) { }
139 BonusArray(BonusArray &&other) : _types(std::move(other._types)) { }
140
141 // create copy and move assignment operators for BonusArray
142 BonusArray& operator=(const BonusArray &other) { _types = other._types; return *this; }
143 BonusArray& operator=(BonusArray &&other) { _types = std::move(other._types); return *this; }
144
145 BONUSTYPE& operator[](int type) { return _types[type]; }
146 const BONUSTYPE& operator[](int type) const { return _types[type]; }
147
148 BONUSTYPE get(int type) { return _types[type]; }
149 void set(int type, BONUSTYPE bonus) { _types[type] = std::move(bonus); }
150
151 void clear()
152 {
153 for (int i = 0; i < TYPEMAX; i++)
154 clear(i);
155 }
156
157 void clear(int type)
158 {
159 _types[type] = BONUSTYPE();
160 }
161
162 std::array<BONUSTYPE, TYPEMAX> _types;
163 };
164
168 class BonusAllStatus : public Bonus
169 {
170 public:
171 BonusAllStatus(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ALLSTATUS, value) { }
172 };
173
175 {
176 public:
177 BonusAttackElement(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ATKELE, value) { }
178 };
179
181 {
182 public:
183 BonusDefenseElement(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_DEFELE, value) { }
184 };
185
186 class BonusCastPercent : public Bonus
187 {
188 public:
189 BonusCastPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_CASTRATE, value) { }
190 };
191
193 {
194 public:
195 BonusMaxHPPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_MAXHPRATE, value) { }
196 };
197
199 {
200 public:
201 BonusMaxSPPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_MAXSPRATE, value) { }
202 };
203
204 class BonusSPPercent : public Bonus
205 {
206 public:
207 BonusSPPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_SPRATE, value) { }
208 };
209
210 class BonusAttackRange : public Bonus
211 {
212 public:
213 BonusAttackRange(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ATTACKRANGE, value) { }
214 };
215
217 {
218 public:
219 BonusAttackRangePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ATTACKRANGE_RATE, value) { }
220 };
221
223 {
224 public:
225 BonusAddMovementSpeedPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ADD_SPEED_RATE, value) { }
226 };
227
229 {
230 public:
231 BonusAttackSpeedPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ASPD_RATE, value) { }
232 };
233
235 {
236 public:
237 BonusHPRecoveryPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_HP_RECOV_RATE, value) { }
238 };
239
241 {
242 public:
243 BonusSPRecoveryPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_SP_RECOV_RATE, value) { }
244 };
245
247 {
248 public:
249 BonusCriticalDefense(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_CRITICAL_DEF, value) { }
250 };
251
253 {
254 public:
255 BonusMeleeDefense(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_NEAR_DEF, value) { }
256 };
257
259 {
260 public:
261 BonusRangedDefense(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_LONG_DEF, value) { }
262 };
263
265 {
266 public:
267 BonusDoubleAttackPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_DOUBLE_RATE, value) { }
268 };
269
271 {
272 public:
273 BonusMagicAttackPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_MAGIC_ATK_RATE, value) { }
274 };
275
277 {
278 public:
279 BonusAttackPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ATK_RATE, value) { }
280 };
281
283 {
284 public:
285 BonusMagicDefensePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_MAGIC_DEF, value) { }
286 };
287
289 {
290 public:
291 BonusMiscDefensePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_MISC_DEF, value) { }
292 };
293
295 {
296 public:
297 BonusPerfectHitPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_PERFECT_HIT_RATE, value) { }
298 };
299
301 {
302 public:
303 BonusCriticalPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_CRITICAL_RATE, value) { }
304 };
305
306 class BonusGetZenyNum : public Bonus
307 {
308 public:
309 BonusGetZenyNum(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_GET_ZENY_NUM, value) { }
310 };
311
313 {
314 public:
315 BonusAttackOnDefenseRatioForElement(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_DEF_RATIO_ATK_ELE, value) { }
316 };
317
319 {
320 public:
321 BonusAttackOnDefenseRatioForRace(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_DEF_RATIO_ATK_RACE, value) { }
322 };
323
324 class BonusHitPercent : public Bonus
325 {
326 public:
327 BonusHitPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_HIT_RATE, value) { }
328 };
329
330 class BonusFleePercent : public Bonus
331 {
332 public:
333 BonusFleePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_FLEE_RATE, value) { }
334 };
335
337 {
338 public:
339 BonusPerfectDodgePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_FLEE2_RATE, value) { }
340 };
341
343 {
344 public:
345 BonusSoftDefensePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_DEF_RATE, value) { }
346 };
347
349 {
350 public:
351 BonusHardDefensePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_DEF2_RATE, value) { }
352 };
353
355 {
356 public:
357 BonusSoftMagicalDefensePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_MDEF_RATE, value) { }
358 };
359
361 {
362 public:
363 BonusHardMagicalDefensePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_MDEF2_RATE, value) { }
364 };
365
367 {
368 public:
369 BonusRestartWithFullRecovery(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_RESTART_FULL_RECORVER, value) { }
370 };
371
373 {
374 public:
375 BonusCastCancelImmunity(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_NO_CASTCANCEL, value) { }
376 };
377
379 {
380 public:
381 BonusSizeModifierImmunity(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_NO_SIZEFIX, value) { }
382 };
383
385 {
386 public:
387 BonusMagicDamageImmunity(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_NO_MAGIC_DAMAGE, value) { }
388 };
389
391 {
392 public:
393 BonusWeaponDamageImmunity(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_NO_WEAPON_DAMAGE, value) { }
394 };
395
397 {
398 public:
399 BonusGemstoneImmunity(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_NO_GEMSTONE, value) { }
400 };
401
403 {
404 public:
405 BonusGearFuelImmunity(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_NO_GEARFUEL, value) { }
406 };
407
409 {
410 public:
411 BonusInfiniteEndure(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_INFINITE_ENDURE, value) { }
412 };
413
415 {
416 public:
417 BonusUnbreakableWeapon(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_UNBREAKABLE_WEAPON, value) { }
418 };
419
421 {
422 public:
423 BonusUnbreakableArmor(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_UNBREAKABLE_ARMOR, value) { }
424 };
425
427 {
428 public:
429 BonusUnbreakableHelm(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_UNBREAKABLE_HELM, value) { }
430 };
431
433 {
434 public:
435 BonusUnbreakableShield(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_UNBREAKABLE_SHIELD, value) { }
436 };
437
439 {
440 public:
441 BonusSPGainOnMobKill(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_SP_GAIN_VALUE, value) { }
442 };
443
445 {
446 public:
447 BonusHPGainOnMobKill(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_HP_GAIN_VALUE, value) { }
448 };
449
451 {
452 public:
453 BonusDamageSplashRange(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_SPLASH_RANGE, value) { }
454 };
455
457 {
458 public:
460 };
461
463 {
464 public:
466 };
467
469 {
470 public:
471 BonusWeaponBreakPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_BREAK_WEAPON_RATE, value) { }
472 };
473
475 {
476 public:
477 BonusArmorBreakPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_BREAK_ARMOR_RATE, value) { }
478 };
479
481 {
482 public:
483 BonusAddStealPercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ADD_STEAL_RATE, value) { }
484 };
485
487 {
488 public:
489 BonusCriticalDamagePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_CRITICAL_DAMAGE_RATE, value) { }
490 };
491
493 {
494 public:
495 BonusDisableHPRecovery(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_HP_RECOV_STOP, value) { }
496 };
497
499 {
500 public:
501 BonusDisableSPRecovery(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_SP_RECOV_STOP, value) { }
502 };
503
505 {
506 public:
507 BonusMagicDamageReflectPercentOnSelf(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_MAGIC_DAMAGE_RETURN, value) { }
508 };
509
511 {
512 public:
513 BonusShortWeaponDamagePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ADD_SHORT_WEAPON_DAMAGE, value) { }
514 };
515
517 {
518 public:
519 BonusLongWeaponDamagePercent(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ADD_LONG_WEAPON_DAMAGE, value) { }
520 };
521
523 {
524 public:
525 BonusItemUsageImmunity(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_ITEM_NO_USE, value) { }
526 };
527
529 {
530 public:
531 BonusKnockBackImmunity(std::shared_ptr<Unit> unit, int value) : Bonus(unit, STATUS_NO_KNOCKBACK, value) { }
532 };
533
537 class BonusAddAttackPercentageToElement : public BonusArray<Bonus, ELE_MAX>
538 {
539 public:
541
542 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
543 };
544
545 class BonusAddAttackPercentageToRace : public BonusArray<Bonus, MONSTER_RACE_MAX>
546 {
547 public:
549
550 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
551 };
552
553 class BonusAddAttackPercentageToSize : public BonusArray<Bonus, ESZ_MAX>
554 {
555 public:
556 BonusAddAttackPercentageToSize(std::shared_ptr<Unit> unit) : BonusArray<Bonus, ESZ_MAX>(unit, STATUS_ADDSIZE) { }
557
558 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
559 };
560
561 class BonusSubAttackPercentageFromElement : public BonusArray<Bonus, ELE_MAX>
562 {
563 public:
565
566 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
567 };
568
569 class BonusSubAttackPercentageFromRace : public BonusArray<Bonus, MONSTER_RACE_MAX>
570 {
571 public:
573
574 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
575 };
576
578 {
580 ATF_SELF = 0x01,
582 ATF_SHORT = 0x04,
583 ATF_LONG = 0x08,
585 ATF_MAGIC = 0x20,
586 ATF_MISC = 0x40
587 };
588
589 int eff_id;
590 int16_t rate;
591 int16_t arrow_rate;
592 uint8_t tigger_type;
593 uint16_t duration;
594 };
595
596 class BonusAddEffectOnDamage : public BonusArray<s_add_effect, MAX_STATUS_EFFECT_BONUSES>
597 {
598 public:
600
601 void set(int type, s_add_effect bonus, bool notify_client = true) { _types[type] = bonus; }
602 };
603
604 class BonusAddEffectWhenDamaged : public BonusArray<s_add_effect, MAX_STATUS_EFFECT_BONUSES>
605 {
606 public:
608
609 void set(int type, s_add_effect bonus, bool notify_client = true) { _types[type] = bonus; }
610 };
611
612 class BonusRessistEffect : public BonusArray<s_add_effect, MAX_STATUS_EFFECT_BONUSES>
613 {
614 public:
616
617 void set(int type, s_add_effect bonus, bool notify_client = true) { _types[type] = bonus; }
618 };
619
621 {
622 public:
624
625 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
626 };
627
628 class BonusAddMagicAttackPercentageToRace : public BonusArray<Bonus, MONSTER_RACE_MAX>
629 {
630 public:
632
633 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
634 };
635
636 class BonusAddMagicAttackPercentageToSize : public BonusArray<Bonus, ESZ_MAX>
637 {
638 public:
640
641 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
642 };
643
644 class BonusAddEffectOnMagicAttack : public BonusArray<s_add_effect, MAX_STATUS_EFFECT_BONUSES>
645 {
646 public:
648
649 void set(int type, s_add_effect bonus, bool notify_client = true) { _types[type] = bonus; }
650 };
651
652 class BonusResistMagicAttackFromRace : public BonusArray<Bonus, MONSTER_RACE_MAX>
653 {
654 public:
656
657 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
658 };
659
660 class BonusAddDamageToClass : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
661 {
662 public:
664
665 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
666 };
667
668 class BonusAddMagicDamageToClass : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
669 {
670 public:
672
673 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
674 };
675
676 class BonusAddDefenseToClass : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
677 {
678 public:
680
681 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
682 };
683
684 class BonusAddMagicalDefenseToClass : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
685 {
686 public:
688
689 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
690 };
691
693 {
694 public:
695 BonusHPDrainPercent(std::shared_ptr<Unit> unit, int chance, int rate) : Bonus(unit, STATUS_HP_DRAIN_RATE, chance, rate) { }
696 };
697
699 {
700 public:
701 BonusHPDrainValue(std::shared_ptr<Unit> unit, int chance, int value) : Bonus(unit, STATUS_HP_DRAIN_VALUE, chance, value) { }
702 };
703
705 {
706 public:
707 BonusSPDrainPercent(std::shared_ptr<Unit> unit, int chance, int rate) : Bonus(unit, STATUS_SP_DRAIN_RATE, chance, rate) { }
708 };
709
711 {
712 public:
713 BonusSPDrainValue(std::shared_ptr<Unit> unit, int chance, int value) : Bonus(unit, STATUS_SP_DRAIN_VALUE, chance, value) { }
714 };
715
716 class BonusAddWeaponComaToElement : public BonusArray<Bonus, ELE_MAX>
717 {
718 public:
720
721 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
722 };
723
724 class BonusAddWeaponComaToRace : public BonusArray<Bonus, MONSTER_RACE_MAX>
725 {
726 public:
728
729 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
730 };
731
732 class BonusAddWeaponComaToSubElement : public BonusArray<Bonus, ELE_MAX>
733 {
734 public:
736
737 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
738 };
739
740 class BonusAddWeaponComaToSubRace : public BonusArray<Bonus, MONSTER_RACE2_MAX>
741 {
742 public:
744
745 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
746 };
747
748 class BonusAddAttack : public BonusArray<Bonus, IT_WT_MAX_WEAPON_TYPE>
749 {
750 public:
751 BonusAddAttack(std::shared_ptr<Unit> unit) : BonusArray<Bonus, IT_WT_MAX_WEAPON_TYPE>(unit, STATUS_WEAPON_ATK) { }
752
753 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
754 };
755
756 class BonusAddAttackPercent : public BonusArray<Bonus, IT_WT_MAX_WEAPON_TYPE>
757 {
758 public:
760
761 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
762 };
763
764 class BonusCriticalRace : public BonusArray<Bonus, MONSTER_RACE_MAX>
765 {
766 public:
767 BonusCriticalRace(std::shared_ptr<Unit> unit) : BonusArray<Bonus, MONSTER_RACE_MAX>(unit, STATUS_CRITICALRACE) { }
768
769 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
770 };
771
772 class BonusCriticalRacePercent : public BonusArray<Bonus, MONSTER_RACE_MAX>
773 {
774 public:
776
777 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
778 };
779
780 class BonusDamageReductionAgainstSize : public BonusArray<Bonus, ESZ_MAX>
781 {
782 public:
783 BonusDamageReductionAgainstSize(std::shared_ptr<Unit> unit) : BonusArray<Bonus, ESZ_MAX>(unit, STATUS_SUB_SIZE) { }
784
785 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
786 };
787
789 {
790 public:
792
793 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
794 };
795
796 class BonusExpPercentPerRace : public BonusArray<Bonus, MONSTER_RACE_MAX>
797 {
798 public:
799 BonusExpPercentPerRace(std::shared_ptr<Unit> unit) : BonusArray<Bonus, MONSTER_RACE_MAX>(unit, STATUS_EXP_RATE) { }
800
801 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
802 };
803
804 class BonusJobPercentPerRace : public BonusArray<Bonus, MONSTER_RACE_MAX>
805 {
806 public:
807 BonusJobPercentPerRace(std::shared_ptr<Unit> unit) : BonusArray<Bonus, MONSTER_RACE_MAX>(unit, STATUS_JOB_RATE) { }
808
809 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
810 };
811
812 class BonusSkillAttack : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
813 {
814 public:
816
817 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
818 };
819
820 class BonusReduceSPConsumptionOfSkillByPercent : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
821 {
822 public:
824
825 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
826 };
827
828 class BonusReduceSPConsumptionOfSkill : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
829 {
830 public:
832
833 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
834 };
835
836 class BonusLearnedSkillHeal : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
837 {
838 public:
840
841 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
842 };
843
844 class BonusHealOfSkillCastedOnSelf : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
845 {
846 public:
848
849 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
850 };
851
852 class BonusSkillKnockback : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
853 {
854 public:
856
857 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
858 };
859
860 class BonusSkillCastPercent : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
861 {
862 public:
864
865 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
866 };
867
868 class BonusSkillCooldown : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
869 {
870 public:
872
873 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
874 };
875
876 class BonusSkillFixCastPercent : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
877 {
878 public:
880
881 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
882 };
883
884 class BonusSkillVariableCastPercent : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
885 {
886 public:
888
889 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
890 };
891
892 class BonusResistSkillDamagePercent : public BonusArray<Bonus, MAX_PC_BONUSES_PER_GROUP>
893 {
894 public:
896
897 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
898 };
899
900 class BonusIgnoreDefenseFromElement : public BonusArray<Bonus, ELE_MAX>
901 {
902 public:
904
905 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
906 };
907
908 class BonusIgnoreDefenseFromRace : public BonusArray<Bonus, MONSTER_RACE_MAX>
909 {
910 public:
912
913 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
914 };
915
916 class BonusIgnoreMagicDefenseFromElement : public BonusArray<Bonus, ELE_MAX>
917 {
918 public:
920
921 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
922 };
923
924 class BonusIgnoreMagicDefenseFromRace : public BonusArray<Bonus, MONSTER_RACE_MAX>
925 {
926 public:
928
929 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
930 };
931
932 class BonusAddEleWeaponDamagePercent : public BonusArray<Bonus, ELE_MAX>
933 {
934 public:
936
937 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
938 };
939
940 class BonusAddEleMagicDamagePercent : public BonusArray<Bonus, ELE_MAX>
941 {
942 public:
944
945 void set(int type, int bonus, bool notify_client = true) { _types[type].set(bonus, notify_client); }
946 };
947
949 {
950 short lv;
951 short id;
952 short rate;
953 unsigned int flag;
954 short card_id;
955 short skill;
956 short count;
957 };
958
959 class BonusAutoSpellOnSkill : public BonusArray<s_autospell, MAX_AUTOSPELL>
960 {
961 public:
963
964 void set(int type, s_autospell bonus, bool notify_client = true) { _types[type] = bonus; }
965 };
966
967 class BonusAutoSpellOnAttack : public BonusArray<s_autospell, MAX_AUTOSPELL>
968 {
969 public:
971
972 void set(int type, s_autospell bonus, bool notify_client = true) { _types[type] = bonus; }
973 };
974
975 class BonusAutoSpellOnReceiveDamage : public BonusArray<s_autospell, MAX_AUTOSPELL>
976 {
977 public:
979
980 void set(int type, s_autospell bonus, bool notify_client = true) { _types[type] = bonus; }
981 };
982
983 class BonusAutoSpellOnSelf : public BonusArray<s_autospell, MAX_AUTOSPELL>
984 {
985 public:
987
988 void set(int type, s_autospell bonus, bool notify_client = true) { _types[type] = bonus; }
989 };
990
991
997 {
998 public:
999 BonusHPVanishPercent(std::shared_ptr<Unit> unit, int proc_rate, int /* (battle_attack_type) */ attack_trigger, int percent_vanish)
1000 : Bonus(unit, STATUS_HPVANISH, proc_rate, attack_trigger, percent_vanish) { }
1001 };
1002
1004 {
1005 public:
1006 BonusSPVanishPercent(std::shared_ptr<Unit> unit, int proc_rate, int /* (battle_attack_type) */ attack_trigger, int percent_vanish)
1007 : Bonus(unit, STATUS_SPVANISH, proc_rate, attack_trigger, percent_vanish) { }
1008 };
1009
1010 class BonusRaise : public Bonus
1011 {
1012 public:
1013 BonusRaise(std::shared_ptr<Unit> unit, int hp_rate, int sp_rate, int proc_rate) : Bonus(unit, STATUS_RAISE, hp_rate, sp_rate, proc_rate) { }
1014 };
1015
1017 {
1018 public:
1019 BonusAddItemDropOnMonsterKill(std::shared_ptr<Unit> unit, int item_id, int race, int count) : Bonus(unit, STATUS_ADD_MONSTER_DROP_ITEM, item_id, race, count) { }
1020 };
1021
1023 {
1024 public:
1025 BonusHPDrainOnMonsterKill(std::shared_ptr<Unit> unit, int race, int proc_rate, int value) : Bonus(unit, STATUS_DEF_HP_DRAIN_VALUE, race, proc_rate, value) { }
1026 };
1027
1029 {
1030 public:
1031 BonusSPDrainOnMonsterKill(std::shared_ptr<Unit> unit, int race, int proc_rate, int value) : Bonus(unit, STATUS_DEF_SP_DRAIN_VALUE, race, proc_rate, value) { }
1032 };
1033}
1034}
1035}
1036
1037#endif /* HORIZON_ZONE_GAME_TRAITS_BONUSESIMPL_HPP */
#define MAX_PC_BONUSES_PER_GROUP
Definition: Horizon.hpp:53
#define MAX_STATUS_EFFECT_BONUSES
Definition: Horizon.hpp:52
#define MAX_AUTOSPELL
Definition: Horizon.hpp:54
@ IT_WT_MAX_WEAPON_TYPE
Definition: ItemDefinitions.hpp:133
@ MONSTER_RACE2_MAX
Definition: MonsterDefinitions.hpp:85
@ MONSTER_RACE_MAX
Definition: MonsterDefinitions.hpp:65
@ ELE_MAX
Definition: UnitDefinitions.hpp:981
status_point_type
Definition: UnitDefinitions.hpp:87
@ STATUS_HP_DRAIN_RATE
Definition: UnitDefinitions.hpp:273
@ STATUS_DOUBLE_RATE
Definition: UnitDefinitions.hpp:235
@ STATUS_ADD_DAMAGE_CLASS
Definition: UnitDefinitions.hpp:255
@ STATUS_SPLASH_RANGE
Definition: UnitDefinitions.hpp:270
@ STATUS_SP_GAIN_VALUE
Definition: UnitDefinitions.hpp:344
@ STATUS_FLEE_RATE
Definition: UnitDefinitions.hpp:264
@ STATUS_RESEFF
Definition: UnitDefinitions.hpp:227
@ STATUS_SUBELE
Definition: UnitDefinitions.hpp:224
@ STATUS_ADD_STEAL_RATE
Definition: UnitDefinitions.hpp:282
@ STATUS_SP_RECOV_STOP
Definition: UnitDefinitions.hpp:297
@ STATUS_WEAPON_COMA_ELE
Definition: UnitDefinitions.hpp:277
@ STATUS_MAGIC_ADDRACE
Definition: UnitDefinitions.hpp:249
@ STATUS_NO_KNOCKBACK
Definition: UnitDefinitions.hpp:407
@ STATUS_HIT_RATE
Definition: UnitDefinitions.hpp:263
@ STATUS_ASPD_RATE
Definition: UnitDefinitions.hpp:228
@ STATUS_CASTRATE
Definition: UnitDefinitions.hpp:217
@ STATUS_UNBREAKABLE_WEAPON
Definition: UnitDefinitions.hpp:346
@ STATUS_AUTOSPELLONSELF
Definition: UnitDefinitions.hpp:423
@ STATUS_MAGIC_ATK_RATE
Definition: UnitDefinitions.hpp:236
@ STATUS_NO_SIZEFIX
Definition: UnitDefinitions.hpp:400
@ STATUS_AUTOSPELLONATK
Definition: UnitDefinitions.hpp:421
@ STATUS_UNBREAKABLE_SHIELD
Definition: UnitDefinitions.hpp:349
@ STATUS_MAXSPRATE
Definition: UnitDefinitions.hpp:219
@ STATUS_GET_ZENY_NUM
Definition: UnitDefinitions.hpp:254
@ STATUS_DEFELE
Definition: UnitDefinitions.hpp:216
@ STATUS_WEAPON_COMA_RACE2
Definition: UnitDefinitions.hpp:334
@ STATUS_NO_WEAPON_DAMAGE
Definition: UnitDefinitions.hpp:402
@ STATUS_CRITICALRACERATE
Definition: UnitDefinitions.hpp:299
@ STATUS_CRITICAL_DEF
Definition: UnitDefinitions.hpp:232
@ STATUS_AUTOSPELL
Definition: UnitDefinitions.hpp:272
@ STATUS_SKILL_COOLDOWN
Definition: UnitDefinitions.hpp:417
@ STATUS_FLEE2_RATE
Definition: UnitDefinitions.hpp:265
@ STATUS_ADD_MAGIC_DAMAGE_CLASS
Definition: UnitDefinitions.hpp:256
@ STATUS_IGNORE_DEF_ELE
Definition: UnitDefinitions.hpp:239
@ STATUS_DEF_RATIO_ATK_RACE
Definition: UnitDefinitions.hpp:261
@ STATUS_UNBREAKABLE_ARMOR
Definition: UnitDefinitions.hpp:347
@ STATUS_SUB_SIZE
Definition: UnitDefinitions.hpp:300
@ STATUS_ADD_MDEF_CLASS
Definition: UnitDefinitions.hpp:258
@ STATUS_PERFECT_HIT_RATE
Definition: UnitDefinitions.hpp:251
@ STATUS_AUTOSPELLHIT
Definition: UnitDefinitions.hpp:422
@ STATUS_ATKELE
Definition: UnitDefinitions.hpp:215
@ STATUS_IGNORE_MDEF_RACE
Definition: UnitDefinitions.hpp:247
@ STATUS_SKILL_USESP
Definition: UnitDefinitions.hpp:412
@ STATUS_ALLSTATUS
Definition: UnitDefinitions.hpp:396
@ STATUS_MAXHPRATE
Definition: UnitDefinitions.hpp:218
@ STATUS_NO_GEARFUEL
Definition: UnitDefinitions.hpp:404
@ STATUS_ADD_ELEMAGICDAMAGE_RATE
Definition: UnitDefinitions.hpp:391
@ STATUS_MISC_DEF
Definition: UnitDefinitions.hpp:245
@ STATUS_NEAR_DEF
Definition: UnitDefinitions.hpp:233
@ STATUS_NO_CASTCANCEL
Definition: UnitDefinitions.hpp:399
@ STATUS_JOB_RATE
Definition: UnitDefinitions.hpp:303
@ STATUS_ADD_LONG_WEAPON_DAMAGE
Definition: UnitDefinitions.hpp:332
@ STATUS_ADD_MONSTER_DROP_ITEM
Definition: UnitDefinitions.hpp:259
@ STATUS_HPVANISH
Definition: UnitDefinitions.hpp:318
@ STATUS_ADDEFFMAGIC
Definition: UnitDefinitions.hpp:383
@ STATUS_MAGIC_SUBRACE
Definition: UnitDefinitions.hpp:250
@ STATUS_NO_MAGIC_DAMAGE
Definition: UnitDefinitions.hpp:401
@ STATUS_HP_DRAIN_VALUE
Definition: UnitDefinitions.hpp:283
@ STATUS_WEAPON_ATK_RATE
Definition: UnitDefinitions.hpp:286
@ STATUS_SP_RECOV_RATE
Definition: UnitDefinitions.hpp:230
@ STATUS_ADDATKELE
Definition: UnitDefinitions.hpp:408
@ STATUS_CRITICAL_DAMAGE_RATE
Definition: UnitDefinitions.hpp:295
@ STATUS_ATTACKRANGE_RATE
Definition: UnitDefinitions.hpp:339
@ STATUS_SP_DRAIN_VALUE
Definition: UnitDefinitions.hpp:284
@ STATUS_SP_DRAIN_RATE
Definition: UnitDefinitions.hpp:274
@ STATUS_SKILL_BLOWN
Definition: UnitDefinitions.hpp:415
@ STATUS_MDEF2_RATE
Definition: UnitDefinitions.hpp:269
@ STATUS_MAGIC_ADDSIZE
Definition: UnitDefinitions.hpp:395
@ STATUS_SKILL_CAST
Definition: UnitDefinitions.hpp:416
@ STATUS_WEAPON_COMA_RACE
Definition: UnitDefinitions.hpp:278
@ STATUS_EXP_RATE
Definition: UnitDefinitions.hpp:302
@ STATUS_ADD_DEF_CLASS
Definition: UnitDefinitions.hpp:257
@ STATUS_WEAPON_COMA_ELE2
Definition: UnitDefinitions.hpp:333
@ STATUS_MAGIC_ADDELE
Definition: UnitDefinitions.hpp:248
@ STATUS_SKILL_ATK
Definition: UnitDefinitions.hpp:410
@ STATUS_BREAK_WEAPON_RATE
Definition: UnitDefinitions.hpp:280
@ STATUS_ADDEFF2
Definition: UnitDefinitions.hpp:279
@ STATUS_MAGIC_DAMAGE_RETURN
Definition: UnitDefinitions.hpp:330
@ STATUS_ITEM_NO_USE
Definition: UnitDefinitions.hpp:406
@ STATUS_SKILL_HEALPOWER_OF_SKILL
Definition: UnitDefinitions.hpp:414
@ STATUS_MAGIC_SUB_SIZE
Definition: UnitDefinitions.hpp:301
@ STATUS_SPVANISH
Definition: UnitDefinitions.hpp:319
@ STATUS_UNBREAKABLE_HELM
Definition: UnitDefinitions.hpp:348
@ STATUS_SKILL_USESPRATE
Definition: UnitDefinitions.hpp:411
@ STATUS_IGNORE_DEF_RACE
Definition: UnitDefinitions.hpp:240
@ STATUS_INFINITE_ENDURE
Definition: UnitDefinitions.hpp:405
@ STATUS_ADDATKRACE
Definition: UnitDefinitions.hpp:409
@ STATUS_SKILL_FIXCAST
Definition: UnitDefinitions.hpp:418
@ STATUS_MDEF_RATE
Definition: UnitDefinitions.hpp:268
@ STATUS_BREAK_ARMOR_RATE
Definition: UnitDefinitions.hpp:281
@ STATUS_DEF2_RATE
Definition: UnitDefinitions.hpp:267
@ STATUS_IGNORE_MDEF_ELE
Definition: UnitDefinitions.hpp:246
@ STATUS_ADD_SPEED_RATE
Definition: UnitDefinitions.hpp:262
@ STATUS_POINT_INVALID
Definition: UnitDefinitions.hpp:88
@ STATUS_ADD_ELEWEAPONDAMAGE_RATE
Definition: UnitDefinitions.hpp:390
@ STATUS_DEF_RATIO_ATK_ELE
Definition: UnitDefinitions.hpp:260
@ STATUS_ADDEFF
Definition: UnitDefinitions.hpp:226
@ STATUS_CRITICAL_RATE
Definition: UnitDefinitions.hpp:253
@ STATUS_SHORT_WEAPON_DAMAGE_RETURN
Definition: UnitDefinitions.hpp:275
@ STATUS_NO_GEMSTONE
Definition: UnitDefinitions.hpp:403
@ STATUS_SKILL_LEARNED_HEAL
Definition: UnitDefinitions.hpp:413
@ STATUS_RESTART_FULL_RECORVER
Definition: UnitDefinitions.hpp:398
@ STATUS_ATK_RATE
Definition: UnitDefinitions.hpp:241
@ STATUS_SKILL_RESIST
Definition: UnitDefinitions.hpp:420
@ STATUS_MAGIC_DEF
Definition: UnitDefinitions.hpp:244
@ STATUS_ATTACKRANGE
Definition: UnitDefinitions.hpp:213
@ STATUS_ADDSIZE
Definition: UnitDefinitions.hpp:223
@ STATUS_HP_RECOV_RATE
Definition: UnitDefinitions.hpp:229
@ STATUS_ADD_SHORT_WEAPON_DAMAGE
Definition: UnitDefinitions.hpp:331
@ STATUS_SUBRACE
Definition: UnitDefinitions.hpp:225
@ STATUS_RAISE
Definition: UnitDefinitions.hpp:322
@ STATUS_HP_RECOV_STOP
Definition: UnitDefinitions.hpp:296
@ STATUS_DEF_RATE
Definition: UnitDefinitions.hpp:266
@ STATUS_LONG_DEF
Definition: UnitDefinitions.hpp:234
@ STATUS_DEF_SP_DRAIN_VALUE
Definition: UnitDefinitions.hpp:305
@ STATUS_DEF_HP_DRAIN_VALUE
Definition: UnitDefinitions.hpp:304
@ STATUS_SKILL_VARCAST
Definition: UnitDefinitions.hpp:419
@ STATUS_WEAPON_ATK
Definition: UnitDefinitions.hpp:285
@ STATUS_HP_GAIN_VALUE
Definition: UnitDefinitions.hpp:345
@ STATUS_LONG_WEAPON_DAMAGE_RETURN
Definition: UnitDefinitions.hpp:276
@ STATUS_SPRATE
Definition: UnitDefinitions.hpp:220
@ STATUS_CRITICALRACE
Definition: UnitDefinitions.hpp:298
@ ESZ_MAX
Definition: UnitDefinitions.hpp:40
Definition: BonusesImpl.hpp:757
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:761
BonusAddAttackPercent(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:759
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:542
BonusAddAttackPercentageToElement(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:540
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:550
BonusAddAttackPercentageToRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:548
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:558
BonusAddAttackPercentageToSize(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:556
Definition: BonusesImpl.hpp:749
BonusAddAttack(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:751
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:753
Definition: BonusesImpl.hpp:661
BonusAddDamageToClass(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:663
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:665
Definition: BonusesImpl.hpp:677
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:681
BonusAddDefenseToClass(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:679
Definition: BonusesImpl.hpp:597
void set(int type, s_add_effect bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:601
BonusAddEffectOnDamage(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:599
BonusAddEffectOnMagicAttack(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:647
void set(int type, s_add_effect bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:649
void set(int type, s_add_effect bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:609
BonusAddEffectWhenDamaged(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:607
BonusAddEleMagicDamagePercent(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:943
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:945
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:937
BonusAddEleWeaponDamagePercent(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:935
BonusAddItemDropOnMonsterKill(std::shared_ptr< Unit > unit, int item_id, int race, int count)
Definition: BonusesImpl.hpp:1019
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:625
BonusAddMagicAttackPercentageToElement(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:623
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:633
BonusAddMagicAttackPercentageToRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:631
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:641
BonusAddMagicAttackPercentageToSize(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:639
BonusAddMagicDamageToClass(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:671
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:673
BonusAddMagicalDefenseToClass(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:687
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:689
BonusAddMovementSpeedPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:225
Definition: BonusesImpl.hpp:481
BonusAddStealPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:483
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:721
BonusAddWeaponComaToElement(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:719
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:729
BonusAddWeaponComaToRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:727
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:737
BonusAddWeaponComaToSubElement(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:735
BonusAddWeaponComaToSubRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:743
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:745
Bonus.
Definition: BonusesImpl.hpp:169
BonusAllStatus(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:171
Definition: BonusesImpl.hpp:475
BonusArmorBreakPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:477
Definition: BonusesImpl.hpp:132
BonusArray(const BonusArray &other)
Definition: BonusesImpl.hpp:138
const BONUSTYPE & operator[](int type) const
Definition: BonusesImpl.hpp:146
void set(int type, BONUSTYPE bonus)
Definition: BonusesImpl.hpp:149
void clear(int type)
Definition: BonusesImpl.hpp:157
BONUSTYPE & operator[](int type)
Definition: BonusesImpl.hpp:145
std::array< BONUSTYPE, TYPEMAX > _types
Definition: BonusesImpl.hpp:162
BonusArray(std::shared_ptr< Unit > unit, status_point_type status_point_type)
Definition: BonusesImpl.hpp:134
BonusArray & operator=(const BonusArray &other)
Definition: BonusesImpl.hpp:142
BonusArray(BonusArray &&other)
Definition: BonusesImpl.hpp:139
BONUSTYPE get(int type)
Definition: BonusesImpl.hpp:148
void clear()
Definition: BonusesImpl.hpp:151
BonusArray & operator=(BonusArray &&other)
Definition: BonusesImpl.hpp:143
Definition: BonusesImpl.hpp:175
BonusAttackElement(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:177
BonusAttackOnDefenseRatioForElement(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:315
BonusAttackOnDefenseRatioForRace(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:321
Definition: BonusesImpl.hpp:277
BonusAttackPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:279
BonusAttackRangePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:219
Definition: BonusesImpl.hpp:211
BonusAttackRange(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:213
BonusAttackSpeedPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:231
Definition: BonusesImpl.hpp:968
BonusAutoSpellOnAttack(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:970
void set(int type, s_autospell bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:972
BonusAutoSpellOnReceiveDamage(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:978
void set(int type, s_autospell bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:980
Definition: BonusesImpl.hpp:984
void set(int type, s_autospell bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:988
BonusAutoSpellOnSelf(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:986
Definition: BonusesImpl.hpp:960
BonusAutoSpellOnSkill(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:962
void set(int type, s_autospell bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:964
BonusCastCancelImmunity(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:375
Definition: BonusesImpl.hpp:187
BonusCastPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:189
BonusCriticalDamagePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:489
Definition: BonusesImpl.hpp:247
BonusCriticalDefense(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:249
Definition: BonusesImpl.hpp:301
BonusCriticalPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:303
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:777
BonusCriticalRacePercent(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:775
Definition: BonusesImpl.hpp:765
BonusCriticalRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:767
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:769
BonusDamageReductionAgainstSize(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:783
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:785
Definition: BonusesImpl.hpp:451
BonusDamageSplashRange(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:453
Definition: BonusesImpl.hpp:181
BonusDefenseElement(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:183
Definition: BonusesImpl.hpp:493
BonusDisableHPRecovery(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:495
Definition: BonusesImpl.hpp:499
BonusDisableSPRecovery(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:501
BonusDoubleAttackPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:267
Definition: BonusesImpl.hpp:797
BonusExpPercentPerRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:799
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:801
Definition: BonusesImpl.hpp:331
BonusFleePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:333
Definition: BonusesImpl.hpp:403
BonusGearFuelImmunity(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:405
Definition: BonusesImpl.hpp:397
BonusGemstoneImmunity(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:399
Definition: BonusesImpl.hpp:307
BonusGetZenyNum(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:309
BonusHPDrainOnMonsterKill(std::shared_ptr< Unit > unit, int race, int proc_rate, int value)
Definition: BonusesImpl.hpp:1025
Definition: BonusesImpl.hpp:693
BonusHPDrainPercent(std::shared_ptr< Unit > unit, int chance, int rate)
Definition: BonusesImpl.hpp:695
Definition: BonusesImpl.hpp:699
BonusHPDrainValue(std::shared_ptr< Unit > unit, int chance, int value)
Definition: BonusesImpl.hpp:701
Definition: BonusesImpl.hpp:445
BonusHPGainOnMobKill(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:447
Definition: BonusesImpl.hpp:235
BonusHPRecoveryPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:237
Bonus.
Definition: BonusesImpl.hpp:997
BonusHPVanishPercent(std::shared_ptr< Unit > unit, int proc_rate, int attack_trigger, int percent_vanish)
Definition: BonusesImpl.hpp:999
BonusHardDefensePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:351
BonusHardMagicalDefensePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:363
BonusHealOfSkillCastedOnSelf(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:847
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:849
Definition: BonusesImpl.hpp:325
BonusHitPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:327
BonusIgnoreDefenseFromElement(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:903
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:905
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:913
BonusIgnoreDefenseFromRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:911
BonusIgnoreMagicDefenseFromElement(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:919
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:921
BonusIgnoreMagicDefenseFromRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:927
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:929
Definition: BonusesImpl.hpp:409
BonusInfiniteEndure(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:411
Definition: BonusesImpl.hpp:523
BonusItemUsageImmunity(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:525
Definition: BonusesImpl.hpp:805
BonusJobPercentPerRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:807
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:809
Definition: BonusesImpl.hpp:529
BonusKnockBackImmunity(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:531
Definition: BonusesImpl.hpp:837
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:841
BonusLearnedSkillHeal(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:839
BonusLongWeaponDamagePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:519
BonusMagicAttackPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:273
BonusMagicDamageImmunity(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:387
BonusMagicDamageReductionAgainstSize(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:791
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:793
BonusMagicDamageReflectPercentOnSelf(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:507
BonusMagicDefensePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:285
Definition: BonusesImpl.hpp:193
BonusMaxHPPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:195
Definition: BonusesImpl.hpp:199
BonusMaxSPPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:201
Definition: BonusesImpl.hpp:253
BonusMeleeDefense(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:255
BonusMeleeWeaponDamageReflectPercentOnSelf(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:459
BonusMiscDefensePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:291
BonusPerfectDodgePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:339
Definition: BonusesImpl.hpp:295
BonusPerfectHitPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:297
Definition: BonusesImpl.hpp:1011
BonusRaise(std::shared_ptr< Unit > unit, int hp_rate, int sp_rate, int proc_rate)
Definition: BonusesImpl.hpp:1013
Definition: BonusesImpl.hpp:259
BonusRangedDefense(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:261
BonusRangedWeaponDamageReflectPercentOnSelf(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:465
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:825
BonusReduceSPConsumptionOfSkillByPercent(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:823
BonusReduceSPConsumptionOfSkill(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:831
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:833
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:657
BonusResistMagicAttackFromRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:655
BonusResistSkillDamagePercent(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:895
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:897
Definition: BonusesImpl.hpp:613
BonusRessistEffect(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:615
void set(int type, s_add_effect bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:617
BonusRestartWithFullRecovery(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:369
BonusSPDrainOnMonsterKill(std::shared_ptr< Unit > unit, int race, int proc_rate, int value)
Definition: BonusesImpl.hpp:1031
Definition: BonusesImpl.hpp:705
BonusSPDrainPercent(std::shared_ptr< Unit > unit, int chance, int rate)
Definition: BonusesImpl.hpp:707
Definition: BonusesImpl.hpp:711
BonusSPDrainValue(std::shared_ptr< Unit > unit, int chance, int value)
Definition: BonusesImpl.hpp:713
Definition: BonusesImpl.hpp:439
BonusSPGainOnMobKill(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:441
Definition: BonusesImpl.hpp:205
BonusSPPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:207
Definition: BonusesImpl.hpp:241
BonusSPRecoveryPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:243
Definition: BonusesImpl.hpp:1004
BonusSPVanishPercent(std::shared_ptr< Unit > unit, int proc_rate, int attack_trigger, int percent_vanish)
Definition: BonusesImpl.hpp:1006
BonusShortWeaponDamagePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:513
BonusSizeModifierImmunity(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:381
Definition: BonusesImpl.hpp:813
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:817
BonusSkillAttack(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:815
Definition: BonusesImpl.hpp:861
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:865
BonusSkillCastPercent(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:863
Definition: BonusesImpl.hpp:869
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:873
BonusSkillCooldown(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:871
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:881
BonusSkillFixCastPercent(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:879
Definition: BonusesImpl.hpp:853
BonusSkillKnockback(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:855
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:857
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:889
BonusSkillVariableCastPercent(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:887
BonusSoftDefensePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:345
BonusSoftMagicalDefensePercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:357
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:566
BonusSubAttackPercentageFromElement(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:564
BonusSubAttackPercentageFromRace(std::shared_ptr< Unit > unit)
Definition: BonusesImpl.hpp:572
void set(int type, int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:574
Definition: BonusesImpl.hpp:421
BonusUnbreakableArmor(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:423
Definition: BonusesImpl.hpp:427
BonusUnbreakableHelm(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:429
Definition: BonusesImpl.hpp:433
BonusUnbreakableShield(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:435
Definition: BonusesImpl.hpp:415
BonusUnbreakableWeapon(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:417
BonusWeaponBreakPercent(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:471
BonusWeaponDamageImmunity(std::shared_ptr< Unit > unit, int value)
Definition: BonusesImpl.hpp:393
Definition: BonusesImpl.hpp:49
bool _applied
Definition: BonusesImpl.hpp:110
virtual void remove(int64_t &ret)
Definition: BonusesImpl.hpp:101
int32_t get_parameter_1()
Definition: BonusesImpl.hpp:91
Bonus(std::shared_ptr< Unit > unit, status_point_type status_point_type, int bonus, int parameter_1=0, int parameter_2=0, int parameter_3=0)
Definition: BonusesImpl.hpp:56
Bonus(Bonus &other)
Definition: BonusesImpl.hpp:61
bool is_applied()
Definition: BonusesImpl.hpp:107
int32_t get_parameter_2()
Definition: BonusesImpl.hpp:94
Bonus()
Definition: BonusesImpl.hpp:53
void set_parameter_3(int parameter_3)
Definition: BonusesImpl.hpp:98
Bonus(Bonus &&other) noexcept
Definition: BonusesImpl.hpp:62
int32_t get()
Definition: BonusesImpl.hpp:88
int _parameter_1
Definition: BonusesImpl.hpp:111
std::weak_ptr< Unit > _unit
Definition: BonusesImpl.hpp:109
void set_parameter_2(int parameter_2)
Definition: BonusesImpl.hpp:95
virtual void apply(int64_t &ret)
Definition: BonusesImpl.hpp:100
Bonus & operator=(Bonus &other)
Definition: BonusesImpl.hpp:65
void unit(std::shared_ptr< Unit > e)
Definition: BonusesImpl.hpp:104
int32_t get_parameter_3()
Definition: BonusesImpl.hpp:97
void set_parameter_1(int parameter_1)
Definition: BonusesImpl.hpp:92
void set_applied(bool applied)
Definition: BonusesImpl.hpp:106
void set(int bonus, bool notify_client=true)
Definition: BonusesImpl.hpp:89
int _parameter_2
Definition: BonusesImpl.hpp:112
Bonus & operator=(Bonus &&other) noexcept
Definition: BonusesImpl.hpp:76
int _parameter_3
Definition: BonusesImpl.hpp:113
std::shared_ptr< Unit > unit()
Definition: BonusesImpl.hpp:103
Definition: BonusesImpl.hpp:117
IBonusArray(status_point_type type)
Definition: BonusesImpl.hpp:119
virtual ~IBonusArray()
Definition: BonusesImpl.hpp:120
void set_type(status_point_type st_type)
Definition: BonusesImpl.hpp:125
status_point_type _st_type
Definition: BonusesImpl.hpp:127
status_point_type get_type()
Definition: BonusesImpl.hpp:124
virtual void clear(int type)=0
Definition: Attribute.hpp:233
virtual void set_equip(int32_t val, bool notify=true)
Definition: Attribute.hpp:271
Attribute operator=(Attribute &right)
Definition: Attribute.hpp:327
virtual int32_t get_equip() const
Definition: Attribute.hpp:278
Definition: Unit.hpp:102
Definition: ReferenceListTest.cpp:114
size_t count(GridTypeListContainer< SPECIFIC_TYPE > const &elements, SPECIFIC_TYPE *)
Definition: GridReferenceContainer.hpp:100
Definition: Element.hpp:7
Definition: BonusesImpl.hpp:578
uint16_t duration
Optional, non-reducible duration in ms. If 0, the default, reducible effect's duration is used.
Definition: BonusesImpl.hpp:593
int16_t arrow_rate
Success rate for ranged attacks.
Definition: BonusesImpl.hpp:591
auto_trigger_type
Definition: BonusesImpl.hpp:579
@ ATF_WEAPON
Definition: BonusesImpl.hpp:584
@ ATF_MISC
Definition: BonusesImpl.hpp:586
@ ATF_SELF
Definition: BonusesImpl.hpp:580
@ ATF_SHORT
Definition: BonusesImpl.hpp:582
@ ATF_MAGIC
Definition: BonusesImpl.hpp:585
@ ATF_LONG
Definition: BonusesImpl.hpp:583
@ ATF_TARGET
Definition: BonusesImpl.hpp:581
uint8_t tigger_type
Trigger flag (.
Definition: BonusesImpl.hpp:592
int16_t rate
Base success rate.
Definition: BonusesImpl.hpp:590
int eff_id
Effect ID.
Definition: BonusesImpl.hpp:589
Definition: BonusesImpl.hpp:949
short id
Definition: BonusesImpl.hpp:951
short skill
Definition: BonusesImpl.hpp:955
short lv
Definition: BonusesImpl.hpp:950
short rate
Definition: BonusesImpl.hpp:952
short card_id
Definition: BonusesImpl.hpp:954
unsigned int flag
Definition: BonusesImpl.hpp:953
short count
Definition: BonusesImpl.hpp:956