Horizon Official Technical Documentation
AttributesImpl.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_ATTRIBUTESIMPL_HPP
31#define HORIZON_ZONE_GAME_TRAITS_ATTRIBUTESIMPL_HPP
32
33#include "Attribute.hpp"
38 // Linux
39
40namespace Horizon
41{
42namespace Zone
43{
44class Unit;
45class Player;
46namespace Traits
47{
48 class Vitality;
49 class Intelligence;
50 class StatusATK;
51 class EquipATK;
52 class StatusMATK;
53 class SoftDEF;
54 class SoftMDEF;
55 class HardMDEF;
56 class HIT;
57 class CRIT;
58 class FLEE;
59 class StrengthPointCost;
60 class AgilityPointCost;
61 class VitalityPointCost;
62 class IntelligencePointCost;
63 class DexterityPointCost;
64 class LuckPointCost;
65 class BaseExperience;
66 class JobExperience;
67 class Zeny;
68 class Honor;
69 class Manner;
70 class Virtue;
71 class StatusPoint;
72 class SkillPoint;
73 class NextBaseExperience;
74 class NextJobExperience;
75 class MaxWeight;
76 class AttackSpeed;
77 class MovementSpeed;
78 class AttackMotion;
79 class AttackDelay;
80 class DamageMotion;
81 class SoftDEF;
82 class HardDEF;
83 class BaseAttack;
84 class HPRegeneration;
85 class SPRegeneration;
86 class MaxHP;
87 class MaxSP;
88
90 : public Attribute,
91 public ObservableStatus<BaseLevel *, StatusPoint *, MaxHP *, MaxSP*, NextBaseExperience *, StatusATK *, StatusMATK *, SoftDEF *, SoftMDEF *, HIT *, FLEE *, AttackSpeed *, BaseAttack *>
92 {
93 public:
94 BaseLevel(std::weak_ptr<Unit> unit, int32_t base = 0)
95 : Attribute(unit, STATUS_BASELEVEL, base, 0, 0),
96 ObservableStatus(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
97 { }
99
101 void notify();
102
103 void set_base(int32_t val, bool notify_client = true) override
104 {
105 Attribute::set_base(val, notify_client);
106 this->notify_observers();
107 }
108
109 void add_base(int32_t val, bool notify_client = true) override
110 {
111 Attribute::add_base(val, notify_client);
112 this->notify_observers();
113 }
114
115 void sub_base(int32_t val, bool notify_client = true) override
116 {
117 Attribute::sub_base(val, notify_client);
118 this->notify_observers();
119 }
120
121 void set_equip(int32_t val, bool notify_client = true) override
122 {
123 Attribute::set_equip(val, notify_client);
124 this->notify_observers();
125 }
126
127 void add_equip(int32_t val, bool notify_client = true) override
128 {
129 Attribute::add_equip(val, notify_client);
130 this->notify_observers();
131 }
132
133 void sub_equip(int32_t val, bool notify_client = true) override
134 {
135 Attribute::sub_equip(val, notify_client);
136 this->notify_observers();
137 }
138
139 void set_status(int32_t val, bool notify_client = true) override
140 {
141 Attribute::set_status(val, notify_client);
142 this->notify_observers();
143 }
144
145 void add_status(int32_t val, bool notify_client = true) override
146 {
147 Attribute::add_status(val, notify_client);
148 this->notify_observers();
149 }
150
151 void sub_status(int32_t val, bool notify_client = true) override
152 {
153 Attribute::sub_status(val, notify_client);
154 this->notify_observers();
155 }
156 };
157
159 : public Attribute,
160 public ObservableStatus<JobLevel *, SkillPoint *, NextJobExperience *>
161 {
162 public:
163 JobLevel(std::weak_ptr<Unit> unit, int32_t base = 0)
164 : Attribute(unit, STATUS_JOBLEVEL, base, 0, 0),
165 ObservableStatus(nullptr, nullptr)
166 { }
168
170
171 void set_base(int32_t val, bool notify_client = true) override
172 {
173 Attribute::set_base(val, notify_client);
174 this->notify_observers();
175 }
176
177 void add_base(int32_t val, bool notify_client = true) override
178 {
179 Attribute::add_base(val, notify_client);
180 this->notify_observers();
181 }
182
183 void sub_base(int32_t val, bool notify_client = true) override
184 {
185 Attribute::sub_base(val, notify_client);
186 this->notify_observers();
187 }
188
189 void set_equip(int32_t val, bool notify_client = true) override
190 {
191 Attribute::set_equip(val, notify_client);
192 this->notify_observers();
193 }
194
195 void add_equip(int32_t val, bool notify_client = true) override
196 {
197 Attribute::add_equip(val, notify_client);
198 this->notify_observers();
199 }
200
201 void sub_equip(int32_t val, bool notify_client = true) override
202 {
203 Attribute::sub_equip(val, notify_client);
204 this->notify_observers();
205 }
206
207 void set_status(int32_t val, bool notify_client = true) override
208 {
209 Attribute::set_status(val, notify_client);
210 this->notify_observers();
211 }
212
213 void add_status(int32_t val, bool notify_client = true) override
214 {
215 Attribute::add_status(val, notify_client);
216 this->notify_observers();
217 }
218
219 void sub_status(int32_t val, bool notify_client = true) override
220 {
221 Attribute::sub_status(val, notify_client);
222 this->notify_observers();
223 }
224 };
225
226 class MaxHP
227 : public Attribute,
228 public ObservableStatus<MaxHP *, HPRegeneration *>
229 {
230 public:
231 MaxHP(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
232 : Attribute(unit, STATUS_MAXHP, base, equip, status),
233 ObservableStatus(nullptr)
234 { }
235 ~MaxHP() { };
236
239
240 int32_t compute();
241
242 void set_base_level(BaseLevel *blvl) { _blvl = blvl; }
243 void set_vitality(Vitality *vit) { _vit = vit; }
244
245 void set_base(int32_t val, bool notify_client = true) override
246 {
247 Attribute::set_base(val, notify_client);
248 this->notify_observers();
249 }
250
251 void add_base(int32_t val, bool notify_client = true) override
252 {
253 Attribute::add_base(val, notify_client);
254 this->notify_observers();
255 }
256
257 void sub_base(int32_t val, bool notify_client = true) override
258 {
259 Attribute::sub_base(val, notify_client);
260 this->notify_observers();
261 }
262
263 void set_equip(int32_t val, bool notify_client = true) override
264 {
265 Attribute::set_equip(val, notify_client);
266 this->notify_observers();
267 }
268
269 void add_equip(int32_t val, bool notify_client = true) override
270 {
271 Attribute::add_equip(val, notify_client);
272 this->notify_observers();
273 }
274
275 void sub_equip(int32_t val, bool notify_client = true) override
276 {
277 Attribute::sub_equip(val, notify_client);
278 this->notify_observers();
279 }
280
281 void set_status(int32_t val, bool notify_client = true) override
282 {
283 Attribute::set_status(val, notify_client);
284 this->notify_observers();
285 }
286
287 void add_status(int32_t val, bool notify_client = true) override
288 {
289 Attribute::add_status(val, notify_client);
290 this->notify_observers();
291 }
292
293 void sub_status(int32_t val, bool notify_client = true) override
294 {
295 Attribute::sub_status(val, notify_client);
296 this->notify_observers();
297 }
298 private:
301 };
302
303 class MaxSP
304 : public Attribute,
305 public ObservableStatus<MaxSP *, SPRegeneration *>
306 {
307 public:
308 MaxSP(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
309 : Attribute(unit, STATUS_MAXSP, base, equip, status),
310 ObservableStatus(nullptr)
311 { }
312 ~MaxSP() { };
313
316
317 int32_t compute();
318
319 void set_intelligence(Intelligence *int_) { _int = int_; }
320 void set_base_level(BaseLevel *blvl) { _blvl = blvl; }
321
322 void set_base(int32_t val, bool notify_client = true) override
323 {
324 Attribute::set_base(val, notify_client);
325 this->notify_observers();
326 }
327
328 void add_base(int32_t val, bool notify_client = true) override
329 {
330 Attribute::add_base(val, notify_client);
331 this->notify_observers();
332 }
333
334 void sub_base(int32_t val, bool notify_client = true) override
335 {
336 Attribute::sub_base(val, notify_client);
337 this->notify_observers();
338 }
339
340 void set_equip(int32_t val, bool notify_client = true) override
341 {
342 Attribute::set_equip(val, notify_client);
343 this->notify_observers();
344 }
345
346 void add_equip(int32_t val, bool notify_client = true) override
347 {
348 Attribute::add_equip(val, notify_client);
349 this->notify_observers();
350 }
351
352 void sub_equip(int32_t val, bool notify_client = true) override
353 {
354 Attribute::sub_equip(val, notify_client);
355 this->notify_observers();
356 }
357
358 void set_status(int32_t val, bool notify_client = true) override
359 {
360 Attribute::set_status(val, notify_client);
361 this->notify_observers();
362 }
363
364 void add_status(int32_t val, bool notify_client = true) override
365 {
366 Attribute::add_status(val, notify_client);
367 this->notify_observers();
368 }
369
370 void sub_status(int32_t val, bool notify_client = true) override
371 {
372 Attribute::sub_status(val, notify_client);
373 this->notify_observers();
374 }
375
376 private:
379 };
380
382 : public Attribute
383 {
384 public:
385 CurrentHP(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
386 : Attribute(unit, STATUS_CURRENTHP, base, equip, status)
387 { }
389
390 void damage(int damage);
391 };
392
394 : public Attribute
395 {
396 public:
397 CurrentSP(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
398 : Attribute(unit, STATUS_CURRENTSP, base, equip, status)
399 { }
401
402 void reduce(int amount);
403 };
404
406 : public Attribute
407 {
408 public:
409 StatusPoint(std::weak_ptr<Unit> unit, int32_t base = 0)
410 : Attribute(unit, STATUS_STATUSPOINT, base, 0, 0)
411 { }
413
414 void on_observable_changed(BaseLevel *wblvl);
415 };
416
418 : public Attribute
419 {
420 public:
421 SkillPoint(std::weak_ptr<Unit> unit, int32_t base = 0)
422 : Attribute(unit, STATUS_SKILLPOINT, base, 0, 0)
423 { }
425
426 virtual void set_base(int32_t val, bool notify_client = true) override;
427
428 void on_observable_changed(JobLevel *wjlvl);
429 };
430
432 : public Attribute,
433 public ObservableStatus<Strength *, StrengthPointCost *, MaxWeight *, StatusATK *, EquipATK *, BaseAttack *>
434 {
435 public:
436 Strength(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
437 : Attribute(unit, STATUS_STRENGTH, base, equip, status),
438 ObservableStatus(nullptr, nullptr, nullptr, nullptr, nullptr)
439 { }
441
442 void set_base(int32_t val, bool notify_client = true) override
443 {
444 Attribute::set_base(val, notify_client);
445 this->notify_observers();
446 }
447
448 void add_base(int32_t val, bool notify_client = true) override
449 {
450 Attribute::add_base(val, notify_client);
451 this->notify_observers();
452 }
453
454 void sub_base(int32_t val, bool notify_client = true) override
455 {
456 Attribute::sub_base(val, notify_client);
457 this->notify_observers();
458 }
459
460 void set_equip(int32_t val, bool notify_client = true) override
461 {
462 Attribute::set_equip(val, notify_client);
463 this->notify_observers();
464 }
465
466 void add_equip(int32_t val, bool notify_client = true) override
467 {
468 Attribute::add_equip(val, notify_client);
469 this->notify_observers();
470 }
471
472 void sub_equip(int32_t val, bool notify_client = true) override
473 {
474 Attribute::sub_equip(val, notify_client);
475 this->notify_observers();
476 }
477
478 void set_status(int32_t val, bool notify_client = true) override
479 {
480 Attribute::set_status(val, notify_client);
481 this->notify_observers();
482 }
483
484 void add_status(int32_t val, bool notify_client = true) override
485 {
486 Attribute::add_status(val, notify_client);
487 this->notify_observers();
488 }
489
490 void sub_status(int32_t val, bool notify_client = true) override
491 {
492 Attribute::sub_status(val, notify_client);
493 this->notify_observers();
494 }
495 };
496
498 : public Attribute,
499 public ObservableStatus<Agility *, AgilityPointCost *, FLEE *, AttackSpeed *, SoftDEF *>
500 {
501 public:
502 Agility(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
503 : Attribute(unit, STATUS_AGILITY, base, equip, status),
504 ObservableStatus(nullptr, nullptr, nullptr, nullptr)
505 { }
506 ~Agility() { };
507
508 void set_base(int32_t val, bool notify_client = true) override
509 {
510 Attribute::set_base(val, notify_client);
511 this->notify_observers();
512 }
513
514 void add_base(int32_t val, bool notify_client = true) override
515 {
516 Attribute::add_base(val, notify_client);
517 this->notify_observers();
518 }
519
520 void sub_base(int32_t val, bool notify_client = true) override
521 {
522 Attribute::sub_base(val, notify_client);
523 this->notify_observers();
524 }
525
526 void set_equip(int32_t val, bool notify_client = true) override
527 {
528 Attribute::set_equip(val, notify_client);
529 this->notify_observers();
530 }
531
532 void add_equip(int32_t val, bool notify_client = true) override
533 {
534 Attribute::add_equip(val, notify_client);
535 this->notify_observers();
536 }
537
538 void sub_equip(int32_t val, bool notify_client = true) override
539 {
540 Attribute::sub_equip(val, notify_client);
541 this->notify_observers();
542 }
543
544 void set_status(int32_t val, bool notify_client = true) override
545 {
546 Attribute::set_status(val, notify_client);
547 this->notify_observers();
548 }
549
550 void add_status(int32_t val, bool notify_client = true) override
551 {
552 Attribute::add_status(val, notify_client);
553 this->notify_observers();
554 }
555
556 void sub_status(int32_t val, bool notify_client = true) override
557 {
558 Attribute::sub_status(val, notify_client);
559 this->notify_observers();
560 }
561 };
562
564 : public Attribute,
565 public ObservableStatus<Vitality *, VitalityPointCost *, SoftDEF *, SoftMDEF *, MaxHP *, HPRegeneration *>
566 {
567 public:
568 Vitality(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
569 : Attribute(unit, STATUS_VITALITY, base, equip, status),
570 ObservableStatus(nullptr, nullptr, nullptr, nullptr, nullptr)
571 { }
573
574 void set_base(int32_t val, bool notify_client = true) override
575 {
576 Attribute::set_base(val, notify_client);
577 this->notify_observers();
578 }
579
580 void add_base(int32_t val, bool notify_client = true) override
581 {
582 Attribute::add_base(val, notify_client);
583 this->notify_observers();
584 }
585
586 void sub_base(int32_t val, bool notify_client = true) override
587 {
588 Attribute::sub_base(val, notify_client);
589 this->notify_observers();
590 }
591
592 void set_equip(int32_t val, bool notify_client = true) override
593 {
594 Attribute::set_equip(val, notify_client);
595 this->notify_observers();
596 }
597
598 void add_equip(int32_t val, bool notify_client = true) override
599 {
600 Attribute::add_equip(val, notify_client);
601 this->notify_observers();
602 }
603
604 void sub_equip(int32_t val, bool notify_client = true) override
605 {
606 Attribute::sub_equip(val, notify_client);
607 this->notify_observers();
608 }
609
610 void set_status(int32_t val, bool notify_client = true) override
611 {
612 Attribute::set_status(val, notify_client);
613 this->notify_observers();
614 }
615
616 void add_status(int32_t val, bool notify_client = true) override
617 {
618 Attribute::add_status(val, notify_client);
619 this->notify_observers();
620 }
621
622 void sub_status(int32_t val, bool notify_client = true) override
623 {
624 Attribute::sub_status(val, notify_client);
625 this->notify_observers();
626 }
627 };
628
630 : public Attribute,
631 public ObservableStatus<Intelligence *, IntelligencePointCost *, MaxSP *, StatusMATK *, SoftMDEF *, SPRegeneration *>
632 {
633 public:
634 Intelligence(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
635 : Attribute(unit, STATUS_INTELLIGENCE, base, equip, status),
636 ObservableStatus(nullptr, nullptr, nullptr, nullptr, nullptr)
637 { }
639
640 void set_base(int32_t val, bool notify_client = true) override
641 {
642 Attribute::set_base(val, notify_client);
643 this->notify_observers();
644 }
645
646 void add_base(int32_t val, bool notify_client = true) override
647 {
648 Attribute::add_base(val, notify_client);
649 this->notify_observers();
650 }
651
652 void sub_base(int32_t val, bool notify_client = true) override
653 {
654 Attribute::sub_base(val, notify_client);
655 this->notify_observers();
656 }
657
658 void set_equip(int32_t val, bool notify_client = true) override
659 {
660 Attribute::set_equip(val, notify_client);
661 this->notify_observers();
662 }
663
664 void add_equip(int32_t val, bool notify_client = true) override
665 {
666 Attribute::add_equip(val, notify_client);
667 this->notify_observers();
668 }
669
670 void sub_equip(int32_t val, bool notify_client = true) override
671 {
672 Attribute::sub_equip(val, notify_client);
673 this->notify_observers();
674 }
675
676 void set_status(int32_t val, bool notify_client = true) override
677 {
678 Attribute::set_status(val, notify_client);
679 this->notify_observers();
680 }
681
682 void add_status(int32_t val, bool notify_client = true) override
683 {
684 Attribute::add_status(val, notify_client);
685 this->notify_observers();
686 }
687
688 void sub_status(int32_t val, bool notify_client = true) override
689 {
690 Attribute::sub_status(val, notify_client);
691 this->notify_observers();
692 }
693 };
694
696 : public Attribute,
697 public ObservableStatus<Dexterity *, DexterityPointCost *, StatusATK *, EquipATK *, StatusMATK *, SoftMDEF *, HIT *, AttackSpeed *, BaseAttack *>
698 {
699 public:
700 Dexterity(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
701 : Attribute(unit, STATUS_DEXTERITY, base, equip, status),
702 ObservableStatus(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
703 { }
705
706 void set_base(int32_t val, bool notify_client = true) override
707 {
708 Attribute::set_base(val, notify_client);
709 this->notify_observers();
710 }
711
712 void add_base(int32_t val, bool notify_client = true) override
713 {
714 Attribute::add_base(val, notify_client);
715 this->notify_observers();
716 }
717
718 void sub_base(int32_t val, bool notify_client = true) override
719 {
720 Attribute::sub_base(val, notify_client);
721 this->notify_observers();
722 }
723
724 void set_equip(int32_t val, bool notify_client = true) override
725 {
726 Attribute::set_equip(val, notify_client);
727 this->notify_observers();
728 }
729
730 void add_equip(int32_t val, bool notify_client = true) override
731 {
732 Attribute::add_equip(val, notify_client);
733 this->notify_observers();
734 }
735
736 void sub_equip(int32_t val, bool notify_client = true) override
737 {
738 Attribute::sub_equip(val, notify_client);
739 this->notify_observers();
740 }
741
742 void set_status(int32_t val, bool notify_client = true) override
743 {
744 Attribute::set_status(val, notify_client);
745 this->notify_observers();
746 }
747
748 void add_status(int32_t val, bool notify_client = true) override
749 {
750 Attribute::add_status(val, notify_client);
751 this->notify_observers();
752 }
753
754 void sub_status(int32_t val, bool notify_client = true) override
755 {
756 Attribute::sub_status(val, notify_client);
757 this->notify_observers();
758 }
759 };
760
761 class Luck
762 : public Attribute,
763 public ObservableStatus<Luck *, LuckPointCost *, StatusATK *, StatusMATK *, HIT *, CRIT *, FLEE *, BaseAttack *>
764 {
765 public:
766 Luck(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
767 : Attribute(unit, STATUS_LUCK, base, equip, status),
768 ObservableStatus(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)
769 { }
770 ~Luck() { };
771
772 void set_base(int32_t val, bool notify_client = true) override
773 {
774 Attribute::set_base(val, notify_client);
775 this->notify_observers();
776 }
777
778 void add_base(int32_t val, bool notify_client = true) override
779 {
780 Attribute::add_base(val, notify_client);
781 this->notify_observers();
782 }
783
784 void sub_base(int32_t val, bool notify_client = true) override
785 {
786 Attribute::sub_base(val, notify_client);
787 this->notify_observers();
788 }
789
790 void set_equip(int32_t val, bool notify_client = true) override
791 {
792 Attribute::set_equip(val, notify_client);
793 this->notify_observers();
794 }
795
796 void add_equip(int32_t val, bool notify_client = true) override
797 {
798 Attribute::add_equip(val, notify_client);
799 this->notify_observers();
800 }
801
802 void sub_equip(int32_t val, bool notify_client = true) override
803 {
804 Attribute::sub_equip(val, notify_client);
805 this->notify_observers();
806 }
807
808 void set_status(int32_t val, bool notify_client = true) override
809 {
810 Attribute::set_status(val, notify_client);
811 this->notify_observers();
812 }
813
814 void add_status(int32_t val, bool notify_client = true) override
815 {
816 Attribute::add_status(val, notify_client);
817 this->notify_observers();
818 }
819
820 void sub_status(int32_t val, bool notify_client = true) override
821 {
822 Attribute::sub_status(val, notify_client);
823 this->notify_observers();
824 }
825 };
826
828 : public Attribute
829 {
830 public:
831 StrengthPointCost(std::weak_ptr<Unit> unit, int32_t base = 0)
832 : Attribute(unit, STATUS_STRENGTH_COST, base, 0, 0)
833 { }
835
837 };
838
840 : public Attribute
841 {
842 public:
843 AgilityPointCost(std::weak_ptr<Unit> unit, int32_t base = 0)
844 : Attribute(unit, STATUS_AGILITY_COST, base, 0, 0)
845 { }
847
849 };
850
852 : public Attribute
853 {
854 public:
855 VitalityPointCost(std::weak_ptr<Unit> unit, int32_t base = 0)
856 : Attribute(unit, STATUS_VITALITY_COST, base, 0, 0)
857 { }
859
861 };
862
864 : public Attribute
865 {
866 public:
867 IntelligencePointCost(std::weak_ptr<Unit> unit, int32_t base = 0)
869 { }
871
873 };
874
876 : public Attribute
877 {
878 public:
879 DexterityPointCost(std::weak_ptr<Unit> unit, int32_t base = 0)
880 : Attribute(unit, STATUS_DEXTERITY_COST, base, 0, 0)
881 { }
883
885 };
886
888 : public Attribute
889 {
890 public:
891 LuckPointCost(std::weak_ptr<Unit> unit, int32_t base = 0)
892 : Attribute(unit, STATUS_LUCK_COST, base, 0, 0)
893 { }
895
897 };
898
900 : public Attribute,
901 public ObservableStatus<BaseExperience *, BaseLevel *>
902 {
903 public:
904 BaseExperience(std::weak_ptr<Unit> unit, int32_t base = 0)
905 : Attribute(unit, STATUS_BASEEXP, base, 0, 0),
906 ObservableStatus(nullptr)
907 { }
909
910 void set_base(int32_t val, bool notify_client = true) override
911 {
912 Attribute::set_base(val, notify_client);
913 this->notify_observers();
914 }
915
916 void add_base(int32_t val, bool notify_client = true) override
917 {
918 Attribute::add_base(val, notify_client);
919 this->notify_observers();
920 }
921
922 void sub_base(int32_t val, bool notify_client = true) override
923 {
924 Attribute::sub_base(val, notify_client);
925 this->notify_observers();
926 }
927
928 void set_equip(int32_t val, bool notify_client = true) override
929 {
930 Attribute::set_equip(val, notify_client);
931 this->notify_observers();
932 }
933
934 void add_equip(int32_t val, bool notify_client = true) override
935 {
936 Attribute::add_equip(val, notify_client);
937 this->notify_observers();
938 }
939
940 void sub_equip(int32_t val, bool notify_client = true) override
941 {
942 Attribute::sub_equip(val, notify_client);
943 this->notify_observers();
944 }
945
946 void set_status(int32_t val, bool notify_client = true) override
947 {
948 Attribute::set_status(val, notify_client);
949 this->notify_observers();
950 }
951
952 void add_status(int32_t val, bool notify_client = true) override
953 {
954 Attribute::add_status(val, notify_client);
955 this->notify_observers();
956 }
957
958 void sub_status(int32_t val, bool notify_client = true) override
959 {
960 Attribute::sub_status(val, notify_client);
961 this->notify_observers();
962 }
963 };
964
966 : public Attribute,
967 public ObservableStatus<JobExperience *, JobLevel *>
968 {
969 public:
970 JobExperience(std::weak_ptr<Unit> unit, int32_t base = 0)
971 : Attribute(unit, STATUS_JOBEXP, base, 0, 0),
972 ObservableStatus(nullptr)
973 { }
975
976 void set_base(int32_t val, bool notify_client = true) override
977 {
978 Attribute::set_base(val, notify_client);
979 this->notify_observers();
980 }
981
982 void add_base(int32_t val, bool notify_client = true) override
983 {
984 Attribute::add_base(val, notify_client);
985 this->notify_observers();
986 }
987
988 void sub_base(int32_t val, bool notify_client = true) override
989 {
990 Attribute::sub_base(val, notify_client);
991 this->notify_observers();
992 }
993
994 void set_equip(int32_t val, bool notify_client = true) override
995 {
996 Attribute::set_equip(val, notify_client);
997 this->notify_observers();
998 }
999
1000 void add_equip(int32_t val, bool notify_client = true) override
1001 {
1002 Attribute::add_equip(val, notify_client);
1003 this->notify_observers();
1004 }
1005
1006 void sub_equip(int32_t val, bool notify_client = true) override
1007 {
1008 Attribute::sub_equip(val, notify_client);
1009 this->notify_observers();
1010 }
1011
1012 void set_status(int32_t val, bool notify_client = true) override
1013 {
1014 Attribute::set_status(val, notify_client);
1015 this->notify_observers();
1016 }
1017
1018 void add_status(int32_t val, bool notify_client = true) override
1019 {
1020 Attribute::add_status(val, notify_client);
1021 this->notify_observers();
1022 }
1023
1024 void sub_status(int32_t val, bool notify_client = true) override
1025 {
1026 Attribute::sub_status(val, notify_client);
1027 this->notify_observers();
1028 }
1029 };
1030
1031 class Zeny
1032 : public Attribute
1033 {
1034 public:
1035 Zeny(std::weak_ptr<Unit> unit, int32_t base = 0)
1036 : Attribute(unit, STATUS_ZENY, base, 0, 0)
1037 { }
1038 ~Zeny() { };
1039
1040 void set_base(int32_t val, bool notify_client = true) override
1041 {
1042 Attribute::set_base(val, notify_client);
1043 }
1044 };
1045
1046 class Honor
1047 : public Attribute
1048 {
1049 public:
1050 Honor(std::weak_ptr<Unit> unit, int32_t base = 0)
1051 : Attribute(unit, STATUS_KARMA, base, 0, 0)
1052 { }
1053 ~Honor() { };
1054
1055 void set_base(int32_t val, bool notify_client = true) override
1056 {
1057 Attribute::set_base(val, notify_client);
1058 }
1059 };
1060
1062 : public Attribute
1063 {
1064 public:
1065 Manner(std::weak_ptr<Unit> unit, int32_t base = 0)
1066 : Attribute(unit, STATUS_MANNER, base, 0, 0)
1067 { }
1068 ~Manner() { };
1069
1070 void set_base(int32_t val, bool notify_client = true) override
1071 {
1072 Attribute::set_base(val, notify_client);
1073 }
1074 };
1075
1077 : public Attribute
1078 {
1079 public:
1080 Virtue(std::weak_ptr<Unit> unit, int32_t base = 0)
1081 : Attribute(unit, STATUS_VIRTUE, base, 0, 0)
1082 { }
1083 ~Virtue() { };
1084
1085 void set_base(int32_t val, bool notify_client = true) override
1086 {
1087 Attribute::set_base(val, notify_client);
1088 }
1089 };
1090
1092 : public Attribute
1093 {
1094 public:
1095 NextBaseExperience(std::weak_ptr<Unit> unit, int32_t base = 0)
1096 : Attribute(unit, STATUS_NEXTBASEEXP, base, 0, 0)
1097 { }
1099
1100 void on_observable_changed(BaseLevel *blvl);
1101 };
1102
1104 : public Attribute
1105 {
1106 public:
1107 NextJobExperience(std::weak_ptr<Unit> unit, int32_t base = 0)
1108 : Attribute(unit, STATUS_NEXTJOBEXP, base, 0, 0)
1109 { }
1111
1112 void on_observable_changed(JobLevel *jlvl);
1113 };
1114
1116 : public Attribute
1117 {
1118 public:
1119 MaxWeight(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
1120 : Attribute(unit, STATUS_MAX_WEIGHT, base, equip, status)
1121 { }
1122
1124
1125 int32_t compute();
1126
1127 void set_strength(Strength *str) { _str = str; }
1128
1129 private:
1130 Strength *_str{nullptr};
1131 };
1132
1134 : public Attribute
1135 {
1136 public:
1137 MovementSpeed(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
1138 : Attribute(unit, STATUS_MOVEMENT_SPEED, base, equip, status)
1139 { }
1141
1142 virtual void set_base(int32_t val, bool notify_client = true) override;
1143
1144 int32_t get_with_cost(int cost) { return (total() * cost) / 10; };
1145 };
1146
1148 : public Attribute
1149 {
1150 public:
1151 CurrentWeight(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
1152 : Attribute(unit, STATUS_CURRENT_WEIGHT, base, equip, status)
1153 { }
1155 };
1156
1158 : public Attribute
1159 {
1160 public:
1161 StatusATK(std::weak_ptr<Unit> unit)
1163 { }
1165
1170
1171 int32_t compute();
1172
1173 void set_base_level(BaseLevel *blvl) { _blvl = blvl; }
1174 void set_strength(Strength *str) { _str = str; }
1175 void set_dexterity(Dexterity *dex) { _dex = dex; }
1176 void set_luck(Luck *luk) { _luk = luk; }
1178
1179 private:
1180 BaseLevel *_blvl{nullptr};
1181 Strength *_str{nullptr};
1182 Dexterity *_dex{nullptr};
1183 Luck *_luk{nullptr};
1185 };
1186
1188 : public Attribute
1189 {
1190 public:
1191 EquipATK(std::weak_ptr<Unit> unit)
1193 { }
1195
1199
1200 void set_strength(Strength *str) { _str = str; }
1201 void set_dexterity(Dexterity *dex) { _dex = dex; }
1202
1203 int32_t compute();
1204 int32_t compute_variance(int8_t weapon_lvl, int32_t base_weapon_dmg);
1205
1206 //void notify_update() override { _notifier.notify_sum(); }
1207
1210
1211 private:
1212 Strength *_str{nullptr};
1213 Dexterity *_dex{nullptr};
1214 int32_t _left_hand_val{0};
1218 };
1219
1221 : public Attribute,
1222 public AttributeVariance
1223 {
1224 public:
1225 EquipMATK(std::weak_ptr<Unit> unit)
1227 { }
1229
1231
1232 int32_t compute();
1233 };
1234
1236 : public Attribute
1237 {
1238 public:
1239 StatusMATK(std::weak_ptr<Unit> unit)
1241 { }
1243
1248
1249 int32_t compute();
1250
1251 void set_base_level(BaseLevel *blvl) { _blvl = blvl; }
1252 void set_intelligence(Intelligence *int_) { _int = int_; }
1253 void set_dexterity(Dexterity *dex) { _dex = dex; }
1254 void set_luck(Luck *luk) { _luk = luk; }
1255
1256 private:
1257 BaseLevel *_blvl{nullptr};
1259 Dexterity *_dex{nullptr};
1260 Luck *_luk{nullptr};
1261 };
1262
1263 // def1
1265 : public Attribute
1266 {
1267 public:
1268 SoftDEF(std::weak_ptr<Unit> unit)
1270 { }
1271
1275
1276 int32_t compute();
1277
1278 void set_vitality(Vitality *vit) { _vit = vit; }
1279 void set_base_level(BaseLevel *blvl) { _blvl = blvl; }
1280 void set_agility(Agility *agi) { _agi = agi; }
1281
1282 private:
1283 Vitality *_vit{nullptr};
1284 BaseLevel *_blvl{nullptr};
1285 Agility *_agi{nullptr};
1286 };
1287
1289 : public Attribute
1290 {
1291 public:
1292 HardDEF(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
1293 : Attribute(unit, STATUS_HARD_DEF, base, equip, status)
1294 { }
1295
1297
1298 int32_t compute();
1299 };
1300
1301
1303 : public Attribute
1304 {
1305 public:
1306 SoftMDEF(std::weak_ptr<Unit> unit)
1308 { }
1310
1315
1316 int32_t compute();
1317
1318 void set_base_level(BaseLevel *blvl) { _blvl = blvl; }
1319 void set_intelligence(Intelligence *int_) { _int = int_; }
1320 void set_dexterity(Dexterity *dex) { _dex = dex; }
1321 void set_vitality(Vitality *vit) { _vit = vit; }
1322
1323 private:
1324 BaseLevel *_blvl{nullptr};
1326 Dexterity *_dex{nullptr};
1327 Vitality *_vit{nullptr};
1328 };
1329
1331 : public Attribute
1332 {
1333 public:
1334 HardMDEF(std::weak_ptr<Unit> unit, int32_t base = 0, int32_t equip = 0, int32_t status = 0)
1335 : Attribute(unit, STATUS_HARD_MDEF, base, equip, status)
1336 { }
1337
1339
1340 int32_t compute();
1341 };
1342
1343 class HIT
1344 : public Attribute
1345 {
1346 public:
1347 HIT(std::weak_ptr<Unit> unit)
1349 { }
1350 ~HIT() { }
1351
1355
1356 int32_t compute();
1357
1358 void set_base_level(BaseLevel *blvl) { _blvl = blvl; }
1359 void set_dexterity(Dexterity *dex) { _dex = dex; }
1360 void set_luck(Luck *luk) { _luk = luk; }
1361
1362 private:
1363 BaseLevel *_blvl{nullptr};
1364 Dexterity *_dex{nullptr};
1365 Luck *_luk{nullptr};
1366 };
1367
1368 class CRIT
1369 : public Attribute
1370 {
1371 public:
1372 CRIT(std::weak_ptr<Unit> unit)
1374 { }
1375 ~CRIT() { }
1376
1378
1379 int32_t compute();
1380
1381 void set_luck(Luck *luk) { _luk = luk; }
1382
1383 private:
1384 Luck *_luk{nullptr};
1385 };
1386
1387 class FLEE
1388 : public Attribute
1389 {
1390 public:
1391 FLEE(std::weak_ptr<Unit> unit)
1393 { }
1394 ~FLEE() { }
1395
1399
1400 int32_t compute();
1401
1402 void set_agility(Agility *agi) { _agi = agi; }
1403 void set_base_level(BaseLevel *blvl) { _blvl = blvl; }
1404 void set_luck(Luck *luk) { _luk = luk; }
1405
1406 private:
1407 Agility *_agi{nullptr};
1408 BaseLevel *_blvl{nullptr};
1409 Luck *_luk{nullptr};
1410 };
1411
1413 : public Attribute
1414 {
1415 public:
1416 HPRegeneration(std::weak_ptr<Unit> unit)
1418 { }
1420
1423
1424 int32_t compute();
1425
1426 void set_vitality(Vitality *vit) { _vit = vit; }
1427 void set_max_hp(MaxHP *mhp) { _max_hp = mhp; }
1428
1429 private:
1430 Vitality *_vit{nullptr};
1431 MaxHP *_max_hp{nullptr};
1432 };
1433
1435 : public Attribute
1436 {
1437 public:
1438 SPRegeneration(std::weak_ptr<Unit> unit)
1440 { }
1442
1445
1446 int32_t compute();
1447
1448 void set_intelligence(Intelligence *int_) { _int = int_; }
1449 void set_max_sp(MaxSP *msp) { _max_sp = msp; }
1450
1451 private:
1453 MaxSP *_max_sp{nullptr};
1454 };
1455
1457 : public Attribute,
1458 public ObservableStatus<AttackSpeed *, AttackDelay *>
1459 {
1460 public:
1461 AttackSpeed(std::weak_ptr<Unit> unit)
1463 ObservableStatus(nullptr)
1464 { }
1466
1471
1472 int32_t compute();
1473
1474 void set_agility(Agility *agi) { _agi = agi; }
1475 void set_dexterity(Dexterity *dex) { _dex = dex; }
1476 void set_base_level(BaseLevel *blvl) { _blvl = blvl; }
1477
1478 void set_base(int32_t val, bool notify_client = true) override
1479 {
1480 Attribute::set_base(val, notify_client);
1481 this->notify_observers();
1482 }
1483
1484 void add_base(int32_t val, bool notify_client = true) override
1485 {
1486 Attribute::add_base(val, notify_client);
1487 this->notify_observers();
1488 }
1489
1490 void sub_base(int32_t val, bool notify_client = true) override
1491 {
1492 Attribute::sub_base(val, notify_client);
1493 this->notify_observers();
1494 }
1495
1496 void set_equip(int32_t val, bool notify_client = true) override
1497 {
1498 Attribute::set_equip(val, notify_client);
1499 this->notify_observers();
1500 }
1501
1502 void add_equip(int32_t val, bool notify_client = true) override
1503 {
1504 Attribute::add_equip(val, notify_client);
1505 this->notify_observers();
1506 }
1507
1508 void sub_equip(int32_t val, bool notify_client = true) override
1509 {
1510 Attribute::sub_equip(val, notify_client);
1511 this->notify_observers();
1512 }
1513
1514 void set_status(int32_t val, bool notify_client = true) override
1515 {
1516 Attribute::set_status(val, notify_client);
1517 this->notify_observers();
1518 }
1519
1520 void add_status(int32_t val, bool notify_client = true) override
1521 {
1522 Attribute::add_status(val, notify_client);
1523 this->notify_observers();
1524 }
1525
1526 void sub_status(int32_t val, bool notify_client = true) override
1527 {
1528 Attribute::sub_status(val, notify_client);
1529 this->notify_observers();
1530 }
1531
1532 private:
1533 Agility *_agi{nullptr};
1534 Dexterity *_dex{nullptr};
1535 BaseLevel *_blvl{nullptr};
1536 };
1537
1539 : public Attribute
1540 {
1541 public:
1542 AttackRange(std::weak_ptr<Unit> unit)
1544 { }
1546
1548
1549 int32_t compute();
1550 };
1551
1553 : public Attribute
1554 {
1555 public:
1556 AttackDelay(std::weak_ptr<Unit> unit)
1558 { }
1560
1562
1563 int32_t compute();
1564
1565 void set_attack_speed(AttackSpeed *aspd) { _aspd = aspd; }
1566
1567 private:
1569 };
1570
1572 : public Attribute
1573 {
1574 public:
1575 DamageWalkDelay(std::weak_ptr<Unit> unit)
1577 { }
1579
1581
1582 int32_t compute();
1583
1584 void set_agility(Agility *agi) { _agi = agi; }
1585
1586 private:
1587 Agility *_agi{nullptr};
1588 };
1589
1591 : public Attribute
1592 {
1593 public:
1594 BaseAttack(std::weak_ptr<Unit> unit)
1596 { }
1598
1603
1605
1606 int32_t compute();
1607
1608 void set_strength(Strength *str) { _str = str; }
1609 void set_dexterity(Dexterity *dex) { _dex = dex; }
1610 void set_luck(Luck *luk) { _luk = luk; }
1611 void set_base_level(BaseLevel *blvl) { _blvl = blvl; }
1612
1613 private:
1614 Strength *_str{nullptr};
1615 Dexterity *_dex{nullptr};
1616 Luck *_luk{nullptr};
1617 BaseLevel *_blvl{nullptr};
1618 };
1619
1620 class WeaponAttackCombined;
1621
1623 : public Attribute,
1624 public ObservableStatus<WeaponAttackLeft *, WeaponAttackCombined *>
1625 {
1626 public:
1627 WeaponAttackLeft(std::weak_ptr<Unit> unit)
1629 ObservableStatus(nullptr)
1630 { }
1631
1633
1634 int32_t compute();
1635
1636 void set_base(int32_t val, bool notify_client = true) override
1637 {
1638 Attribute::set_base(val, notify_client);
1639 this->notify_observers();
1640 }
1641
1642 void add_base(int32_t val, bool notify_client = true) override
1643 {
1644 Attribute::add_base(val, notify_client);
1645 this->notify_observers();
1646 }
1647
1648 void sub_base(int32_t val, bool notify_client = true) override
1649 {
1650 Attribute::sub_base(val, notify_client);
1651 this->notify_observers();
1652 }
1653
1654 void set_equip(int32_t val, bool notify_client = true) override
1655 {
1656 Attribute::set_equip(val, notify_client);
1657 this->notify_observers();
1658 }
1659
1660 void add_equip(int32_t val, bool notify_client = true) override
1661 {
1662 Attribute::add_equip(val, notify_client);
1663 this->notify_observers();
1664 }
1665
1666 void sub_equip(int32_t val, bool notify_client = true) override
1667 {
1668 Attribute::sub_equip(val, notify_client);
1669 this->notify_observers();
1670 }
1671
1672 void set_status(int32_t val, bool notify_client = true) override
1673 {
1674 Attribute::set_status(val, notify_client);
1675 this->notify_observers();
1676 }
1677
1678 void add_status(int32_t val, bool notify_client = true) override
1679 {
1680 Attribute::add_status(val, notify_client);
1681 this->notify_observers();
1682 }
1683
1684 void sub_status(int32_t val, bool notify_client = true) override
1685 {
1686 Attribute::sub_status(val, notify_client);
1687 this->notify_observers();
1688 }
1689 };
1690
1692 : public Attribute,
1693 public ObservableStatus<WeaponAttackRight *, WeaponAttackCombined *>
1694 {
1695 public:
1696 WeaponAttackRight(std::weak_ptr<Unit> unit)
1698 ObservableStatus(nullptr)
1699 { }
1700
1702
1703 int32_t compute();
1704
1705 void set_base(int32_t val, bool notify_client = true) override
1706 {
1707 Attribute::set_base(val, notify_client);
1708 this->notify_observers();
1709 }
1710
1711 void add_base(int32_t val, bool notify_client = true) override
1712 {
1713 Attribute::add_base(val, notify_client);
1714 this->notify_observers();
1715 }
1716
1717 void sub_base(int32_t val, bool notify_client = true) override
1718 {
1719 Attribute::sub_base(val, notify_client);
1720 this->notify_observers();
1721 }
1722
1723 void set_equip(int32_t val, bool notify_client = true) override
1724 {
1725 Attribute::set_equip(val, notify_client);
1726 this->notify_observers();
1727 }
1728
1729 void add_equip(int32_t val, bool notify_client = true) override
1730 {
1731 Attribute::add_equip(val, notify_client);
1732 this->notify_observers();
1733 }
1734
1735 void sub_equip(int32_t val, bool notify_client = true) override
1736 {
1737 Attribute::sub_equip(val, notify_client);
1738 this->notify_observers();
1739 }
1740
1741 void set_status(int32_t val, bool notify_client = true) override
1742 {
1743 Attribute::set_status(val, notify_client);
1744 this->notify_observers();
1745 }
1746
1747 void add_status(int32_t val, bool notify_client = true) override
1748 {
1749 Attribute::add_status(val, notify_client);
1750 this->notify_observers();
1751 }
1752
1753 void sub_status(int32_t val, bool notify_client = true) override
1754 {
1755 Attribute::sub_status(val, notify_client);
1756 this->notify_observers();
1757 }
1758 };
1759
1761 : public Attribute
1762 {
1763 public:
1764 WeaponAttackCombined(std::weak_ptr<Unit> unit)
1766 { }
1768
1771
1772 int32_t compute();
1773
1776
1777 private:
1780 };
1781
1783 : public Attribute
1784 {
1785 public:
1786 UnitSize(std::weak_ptr<Unit> unit, int32_t size)
1787 : Attribute(unit, STATUS_SIZE, size)
1788 { }
1790 };
1791
1793 : public Attribute
1794 {
1795 public:
1796 MobWeaponAttack(std::weak_ptr<Unit> unit, int32_t val)
1798 { }
1800 };
1801
1803 : public Attribute,
1804 public AttributeVariance
1805 {
1806 public:
1807 MobAttackDamage(std::weak_ptr<Unit> unit)
1810 { }
1812
1816
1817 void set_strength(Strength* str) { _str = str; }
1818 void set_base_level(BaseLevel* blvl) { _blvl = blvl; }
1820
1821 int32_t compute();
1822
1823 private:
1824 Strength* _str{ nullptr };
1825 BaseLevel* _blvl{ nullptr };
1827 };
1828
1830 : public Attribute,
1831 public AttributeVariance
1832 {
1833 public:
1834 MobMagicAttackDamage(std::weak_ptr<Unit> unit)
1837 { }
1839
1843
1845 void set_base_level(BaseLevel* blvl) { _blvl = blvl; }
1847
1848 int32_t compute();
1849
1850 private:
1851 Intelligence* _int{ nullptr };
1852 BaseLevel* _blvl{ nullptr };
1854 };
1855
1857 : public Attribute
1858 {
1859 public:
1860 MobViewRange(std::weak_ptr<Unit> unit, int32_t val)
1863 };
1864
1866 : public Attribute
1867 {
1868 public:
1869 MobChaseRange(std::weak_ptr<Unit> unit, int32_t val) : Attribute(unit, STATUS_MOB_CHASE_RANGE, val) { }
1871 };
1872
1874 : public Attribute
1875 {
1876 public:
1877 MobPrimaryRace(std::weak_ptr<Unit> unit, int32_t val) : Attribute(unit, STATUS_MOB_PRIMARY_RACE, val) { }
1879 };
1880
1882 : public Attribute
1883 {
1884 public:
1885 MobSecondaryRace(std::weak_ptr<Unit> unit, int32_t val) : Attribute(unit, STATUS_MOB_SECONDARY_RACE, val) { }
1887 };
1888
1890 : public Attribute
1891 {
1892 public:
1893 MobElement(std::weak_ptr<Unit> unit, int32_t val) : Attribute(unit, STATUS_MOB_ELEMENT, val) { }
1895 };
1896
1898 : public Attribute
1899 {
1900 public:
1901 MobElementLevel(std::weak_ptr<Unit> unit, int32_t val) : Attribute(unit, STATUS_MOB_ELEMENT_LEVEL, val) { }
1903 };
1904
1906 : public Attribute
1907 {
1908 public:
1909 MobMode(std::weak_ptr<Unit> unit, int32_t val) : Attribute(unit, STATUS_MOB_MODE, val) { }
1911 };
1912}
1913}
1914}
1915
1916#endif /* HORIZON_ZONE_GAME_TRAITS_ATTRIBUTESIMPL_HPP */
uint8_t _intelligence
Definition: Client.hpp:55
item_weapon_type
Definition: ItemDefinitions.hpp:99
@ STATUS_MOB_PRIMARY_RACE
Definition: UnitDefinitions.hpp:435
@ STATUS_DEXTERITY
Definition: UnitDefinitions.hpp:106
@ STATUS_MOB_ELEMENT
Definition: UnitDefinitions.hpp:437
@ STATUS_AGILITY_COST
Definition: UnitDefinitions.hpp:122
@ STATUS_NEXTJOBEXP
Definition: UnitDefinitions.hpp:112
@ STATUS_JOBEXP
Definition: UnitDefinitions.hpp:91
@ STATUS_VIRTUE
Definition: UnitDefinitions.hpp:425
@ STATUS_BASEEXP
Definition: UnitDefinitions.hpp:90
@ STATUS_MOB_MAGIC_ATTACK_DAMAGE
Definition: UnitDefinitions.hpp:432
@ STATUS_MAXSP
Definition: UnitDefinitions.hpp:97
@ STATUS_VITALITY_COST
Definition: UnitDefinitions.hpp:123
@ STATUS_SKILLPOINT
Definition: UnitDefinitions.hpp:101
@ STATUS_CURRENTSP
Definition: UnitDefinitions.hpp:96
@ STATUS_EQUIP_ATK
Definition: UnitDefinitions.hpp:131
@ STATUS_STATUS_ATK
Definition: UnitDefinitions.hpp:130
@ STATUS_CREATE_ATTACK_DAMAGE
Definition: UnitDefinitions.hpp:431
@ STATUS_STRENGTH_COST
Definition: UnitDefinitions.hpp:121
@ STATUS_MOVEMENT_SPEED
Definition: UnitDefinitions.hpp:89
@ STATUS_ADELAY
Definition: UnitDefinitions.hpp:426
@ STATUS_MOB_WEAPON_ATK
Definition: UnitDefinitions.hpp:430
@ STATUS_SOFT_DEF
Definition: UnitDefinitions.hpp:134
@ STATUS_WATK_RIGHT
Definition: UnitDefinitions.hpp:441
@ STATUS_EQUIP_MATK
Definition: UnitDefinitions.hpp:132
@ STATUS_LUCK_COST
Definition: UnitDefinitions.hpp:126
@ STATUS_SIZE
Definition: UnitDefinitions.hpp:429
@ STATUS_ASPD
Definition: UnitDefinitions.hpp:142
@ STATUS_INTELLIGENCE_COST
Definition: UnitDefinitions.hpp:124
@ STATUS_CRITICAL
Definition: UnitDefinitions.hpp:141
@ STATUS_MAXHP
Definition: UnitDefinitions.hpp:95
@ STATUS_HP_REGEN
Definition: UnitDefinitions.hpp:443
@ STATUS_WATK_COMBINED
Definition: UnitDefinitions.hpp:442
@ STATUS_STATUSPOINT
Definition: UnitDefinitions.hpp:98
@ STATUS_AGILITY
Definition: UnitDefinitions.hpp:103
@ STATUS_DEXTERITY_COST
Definition: UnitDefinitions.hpp:125
@ STATUS_NEXTBASEEXP
Definition: UnitDefinitions.hpp:111
@ STATUS_STATUS_MATK
Definition: UnitDefinitions.hpp:133
@ STATUS_BASELEVEL
Definition: UnitDefinitions.hpp:100
@ STATUS_CURRENTHP
Definition: UnitDefinitions.hpp:94
@ STATUS_STRENGTH
Definition: UnitDefinitions.hpp:102
@ STATUS_BASE_ATK
Definition: UnitDefinitions.hpp:428
@ STATUS_MOB_SECONDARY_RACE
Definition: UnitDefinitions.hpp:436
@ STATUS_HARD_MDEF
Definition: UnitDefinitions.hpp:137
@ STATUS_WATK_LEFT
Definition: UnitDefinitions.hpp:440
@ STATUS_VITALITY
Definition: UnitDefinitions.hpp:104
@ STATUS_FLEE
Definition: UnitDefinitions.hpp:139
@ STATUS_MOB_CHASE_RANGE
Definition: UnitDefinitions.hpp:434
@ STATUS_CURRENT_WEIGHT
Definition: UnitDefinitions.hpp:113
@ STATUS_LUCK
Definition: UnitDefinitions.hpp:107
@ STATUS_DMOTION
Definition: UnitDefinitions.hpp:427
@ STATUS_KARMA
Definition: UnitDefinitions.hpp:92
@ STATUS_SOFT_MDEF
Definition: UnitDefinitions.hpp:136
@ STATUS_ATTACKRANGE
Definition: UnitDefinitions.hpp:213
@ STATUS_MOB_VIEW_RANGE
Definition: UnitDefinitions.hpp:433
@ STATUS_MOB_MODE
Definition: UnitDefinitions.hpp:439
@ STATUS_MOB_ELEMENT_LEVEL
Definition: UnitDefinitions.hpp:438
@ STATUS_HARD_DEF
Definition: UnitDefinitions.hpp:135
@ STATUS_ZENY
Definition: UnitDefinitions.hpp:109
@ STATUS_SP_REGEN
Definition: UnitDefinitions.hpp:444
@ STATUS_MAX_WEIGHT
Definition: UnitDefinitions.hpp:114
@ STATUS_MANNER
Definition: UnitDefinitions.hpp:93
@ STATUS_HIT
Definition: UnitDefinitions.hpp:138
@ STATUS_JOBLEVEL
Definition: UnitDefinitions.hpp:144
@ STATUS_INTELLIGENCE
Definition: UnitDefinitions.hpp:105
Definition: AttributesImpl.hpp:841
~AgilityPointCost()
Definition: AttributesImpl.hpp:846
AgilityPointCost(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:843
void on_observable_changed(Agility *)
Definition: Attribute.cpp:372
Definition: AttributesImpl.hpp:500
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:514
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:508
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:520
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:538
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:550
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:532
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:544
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:526
Agility(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:502
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:556
~Agility()
Definition: AttributesImpl.hpp:506
Definition: AttributesImpl.hpp:1554
AttackSpeed * _aspd
Definition: AttributesImpl.hpp:1568
void set_attack_speed(AttackSpeed *aspd)
Definition: AttributesImpl.hpp:1565
void on_observable_changed(AttackSpeed *)
Definition: AttributesImpl.hpp:1561
~AttackDelay()
Definition: AttributesImpl.hpp:1559
AttackDelay(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1556
int32_t compute()
Definition: Attribute.cpp:947
Definition: AttributesImpl.hpp:1540
AttackRange(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1542
int32_t compute()
Definition: Attribute.cpp:905
void on_equipment_changed()
Definition: AttributesImpl.hpp:1547
~AttackRange()
Definition: AttributesImpl.hpp:1545
Definition: AttributesImpl.hpp:1459
void on_observable_changed(BaseLevel *)
Definition: AttributesImpl.hpp:1469
BaseLevel * _blvl
Definition: AttributesImpl.hpp:1535
void on_observable_changed(Agility *)
Definition: AttributesImpl.hpp:1467
void on_equipment_changed()
Definition: AttributesImpl.hpp:1470
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1520
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1526
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1508
void set_agility(Agility *agi)
Definition: AttributesImpl.hpp:1474
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1484
int32_t compute()
Definition: Attribute.cpp:817
Dexterity * _dex
Definition: AttributesImpl.hpp:1534
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1496
void set_dexterity(Dexterity *dex)
Definition: AttributesImpl.hpp:1475
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1478
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1490
void on_observable_changed(Dexterity *)
Definition: AttributesImpl.hpp:1468
~AttackSpeed()
Definition: AttributesImpl.hpp:1465
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1514
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1502
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:1476
AttackSpeed(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1461
Agility * _agi
Definition: AttributesImpl.hpp:1533
Definition: Attribute.hpp:50
Definition: Attribute.hpp:233
virtual void set_equip(int32_t val, bool notify=true)
Definition: Attribute.hpp:271
virtual void sub_equip(int32_t val, bool notify=true)
Definition: Attribute.cpp:256
virtual void set_base(int32_t val, bool notify=true)
Definition: Attribute.hpp:262
virtual void set_status(int32_t val, bool notify=true)
Definition: Attribute.hpp:280
virtual void sub_status(int32_t val, bool notify=true)
Definition: Attribute.cpp:264
virtual void add_base(int32_t val, bool notify=true)
Definition: Attribute.cpp:244
std::shared_ptr< Unit > unit()
Definition: Attribute.hpp:259
virtual void sub_base(int32_t val, bool notify=true)
Definition: Attribute.cpp:248
virtual void add_equip(int32_t val, bool notify=true)
Definition: Attribute.cpp:252
virtual void add_status(int32_t val, bool notify=true)
Definition: Attribute.cpp:260
bool is_compute_ready() const
Definition: Attribute.hpp:412
virtual int32_t total() const
Definition: Attribute.hpp:289
Definition: AttributesImpl.hpp:1592
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:1611
BaseLevel * _blvl
Definition: AttributesImpl.hpp:1617
void on_observable_changed(Strength *)
Definition: AttributesImpl.hpp:1599
Luck * _luk
Definition: AttributesImpl.hpp:1616
void on_observable_changed(Luck *)
Definition: AttributesImpl.hpp:1601
void on_equipment_changed()
Definition: AttributesImpl.hpp:1604
Dexterity * _dex
Definition: AttributesImpl.hpp:1615
Strength * _str
Definition: AttributesImpl.hpp:1614
int32_t compute()
Definition: Attribute.cpp:998
void set_strength(Strength *str)
Definition: AttributesImpl.hpp:1608
void on_observable_changed(Dexterity *)
Definition: AttributesImpl.hpp:1600
void on_observable_changed(BaseLevel *)
Definition: AttributesImpl.hpp:1602
void set_dexterity(Dexterity *dex)
Definition: AttributesImpl.hpp:1609
void set_luck(Luck *luk)
Definition: AttributesImpl.hpp:1610
~BaseAttack()
Definition: AttributesImpl.hpp:1597
BaseAttack(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1594
Definition: AttributesImpl.hpp:902
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:916
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:928
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:940
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:910
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:922
BaseExperience(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:904
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:934
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:958
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:946
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:952
~BaseExperience()
Definition: AttributesImpl.hpp:908
Definition: AttributesImpl.hpp:92
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:115
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:133
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:139
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:151
BaseLevel(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:94
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:127
~BaseLevel()
Definition: AttributesImpl.hpp:98
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:121
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:109
void on_observable_changed(BaseExperience *wbexp)
Definition: Attribute.cpp:397
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:145
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:103
Definition: AttributesImpl.hpp:1370
int32_t compute()
Definition: Attribute.cpp:733
Luck * _luk
Definition: AttributesImpl.hpp:1384
~CRIT()
Definition: AttributesImpl.hpp:1375
void set_luck(Luck *luk)
Definition: AttributesImpl.hpp:1381
CRIT(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1372
void on_observable_changed(Luck *)
Definition: AttributesImpl.hpp:1377
Definition: AttributesImpl.hpp:383
CurrentHP(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:385
~CurrentHP()
Definition: AttributesImpl.hpp:388
void damage(int damage)
Definition: Attribute.cpp:490
Definition: AttributesImpl.hpp:395
void reduce(int amount)
Definition: Attribute.cpp:498
~CurrentSP()
Definition: AttributesImpl.hpp:400
CurrentSP(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:397
Definition: AttributesImpl.hpp:1149
CurrentWeight(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:1151
~CurrentWeight()
Definition: AttributesImpl.hpp:1154
Definition: AttributesImpl.hpp:1573
void on_observable_changed(Agility *)
Definition: AttributesImpl.hpp:1580
DamageWalkDelay(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1575
Agility * _agi
Definition: AttributesImpl.hpp:1587
int32_t compute()
Definition: Attribute.cpp:957
~DamageWalkDelay()
Definition: AttributesImpl.hpp:1578
void set_agility(Agility *agi)
Definition: AttributesImpl.hpp:1584
Definition: AttributesImpl.hpp:877
~DexterityPointCost()
Definition: AttributesImpl.hpp:882
void on_observable_changed(Dexterity *)
Definition: Attribute.cpp:387
DexterityPointCost(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:879
Definition: AttributesImpl.hpp:698
~Dexterity()
Definition: AttributesImpl.hpp:704
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:718
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:736
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:748
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:730
Dexterity(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:700
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:712
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:706
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:754
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:724
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:742
Definition: AttributesImpl.hpp:1189
int32_t get_lhw_overupgrade()
Definition: AttributesImpl.hpp:1208
void on_observable_changed(Dexterity *)
Definition: AttributesImpl.hpp:1197
int32_t _right_hand_val
Definition: AttributesImpl.hpp:1215
int32_t _left_hand_val
Definition: AttributesImpl.hpp:1214
void set_strength(Strength *str)
Definition: AttributesImpl.hpp:1200
void on_weapon_changed()
Definition: AttributesImpl.hpp:1198
Strength * _str
Definition: AttributesImpl.hpp:1212
Dexterity * _dex
Definition: AttributesImpl.hpp:1213
int32_t compute()
Computes the EquipATK property of physical attacks. EquipATK = floor[((BaseWeaponDamage + Variance + ...
Definition: Attribute.cpp:768
~EquipATK()
Definition: AttributesImpl.hpp:1194
int32_t compute_variance(int8_t weapon_lvl, int32_t base_weapon_dmg)
Definition: Attribute.cpp:810
int32_t _rhw_overupgrade
Definition: AttributesImpl.hpp:1217
EquipATK(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1191
int32_t get_rhw_overupgrade()
Definition: AttributesImpl.hpp:1209
int32_t _lhw_overupgrade
Definition: AttributesImpl.hpp:1216
void set_dexterity(Dexterity *dex)
Definition: AttributesImpl.hpp:1201
void on_observable_changed(Strength *)
Definition: AttributesImpl.hpp:1196
Definition: AttributesImpl.hpp:1223
void on_equipment_changed()
Definition: AttributesImpl.hpp:1230
~EquipMATK()
Definition: AttributesImpl.hpp:1228
EquipMATK(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1225
int32_t compute()
Definition: Attribute.cpp:597
Definition: AttributesImpl.hpp:1389
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:1403
void set_luck(Luck *luk)
Definition: AttributesImpl.hpp:1404
void on_observable_changed(Agility *)
Definition: AttributesImpl.hpp:1396
Luck * _luk
Definition: AttributesImpl.hpp:1409
void on_observable_changed(Luck *)
Definition: AttributesImpl.hpp:1398
BaseLevel * _blvl
Definition: AttributesImpl.hpp:1408
void on_observable_changed(BaseLevel *)
Definition: AttributesImpl.hpp:1397
~FLEE()
Definition: AttributesImpl.hpp:1394
FLEE(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1391
Agility * _agi
Definition: AttributesImpl.hpp:1407
void set_agility(Agility *agi)
Definition: AttributesImpl.hpp:1402
int32_t compute()
Computes FLEE status based on agility, luck and Base Level. FLEE = 100 + BaseLv + AGI + Floor(LUK ÷ 5...
Definition: Attribute.cpp:748
Definition: AttributesImpl.hpp:1345
void on_observable_changed(Luck *)
Definition: AttributesImpl.hpp:1353
BaseLevel * _blvl
Definition: AttributesImpl.hpp:1363
void set_luck(Luck *luk)
Definition: AttributesImpl.hpp:1360
int32_t compute()
Definition: Attribute.cpp:714
HIT(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1347
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:1358
void on_observable_changed(BaseLevel *)
Definition: AttributesImpl.hpp:1354
Dexterity * _dex
Definition: AttributesImpl.hpp:1364
void set_dexterity(Dexterity *dex)
Definition: AttributesImpl.hpp:1359
void on_observable_changed(Dexterity *)
Definition: AttributesImpl.hpp:1352
~HIT()
Definition: AttributesImpl.hpp:1350
Luck * _luk
Definition: AttributesImpl.hpp:1365
Definition: AttributesImpl.hpp:1414
MaxHP * _max_hp
Definition: AttributesImpl.hpp:1431
Vitality * _vit
Definition: AttributesImpl.hpp:1430
void on_observable_changed(MaxHP *)
Definition: AttributesImpl.hpp:1422
int32_t compute()
Definition: Attribute.cpp:881
~HPRegeneration()
Definition: AttributesImpl.hpp:1419
HPRegeneration(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1416
void on_observable_changed(Vitality *)
Definition: AttributesImpl.hpp:1421
void set_vitality(Vitality *vit)
Definition: AttributesImpl.hpp:1426
void set_max_hp(MaxHP *mhp)
Definition: AttributesImpl.hpp:1427
Definition: AttributesImpl.hpp:1290
int32_t compute()
Definition: Attribute.cpp:669
void on_equipment_changed()
Definition: AttributesImpl.hpp:1296
HardDEF(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:1292
Definition: AttributesImpl.hpp:1332
HardMDEF(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:1334
int32_t compute()
Definition: Attribute.cpp:687
void on_equipment_changed()
Definition: AttributesImpl.hpp:1338
Definition: AttributesImpl.hpp:1048
~Honor()
Definition: AttributesImpl.hpp:1053
Honor(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:1050
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1055
Definition: AttributesImpl.hpp:865
void on_observable_changed(Intelligence *)
Definition: Attribute.cpp:382
~IntelligencePointCost()
Definition: AttributesImpl.hpp:870
IntelligencePointCost(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:867
Definition: AttributesImpl.hpp:632
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:658
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:646
~Intelligence()
Definition: AttributesImpl.hpp:638
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:664
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:682
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:670
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:640
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:652
Intelligence(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:634
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:688
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:676
Definition: AttributesImpl.hpp:968
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1018
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:994
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:982
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1012
~JobExperience()
Definition: AttributesImpl.hpp:974
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1006
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:976
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1024
JobExperience(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:970
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1000
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:988
Definition: AttributesImpl.hpp:161
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:219
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:189
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:201
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:195
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:171
void on_observable_changed(JobExperience *wjexp)
Definition: Attribute.cpp:415
JobLevel(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:163
~JobLevel()
Definition: AttributesImpl.hpp:167
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:177
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:207
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:213
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:183
Definition: AttributesImpl.hpp:889
LuckPointCost(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:891
void on_observable_changed(Luck *)
Definition: Attribute.cpp:392
~LuckPointCost()
Definition: AttributesImpl.hpp:894
Definition: AttributesImpl.hpp:764
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:784
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:802
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:772
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:778
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:790
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:808
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:820
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:814
Luck(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:766
~Luck()
Definition: AttributesImpl.hpp:770
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:796
Definition: AttributesImpl.hpp:1063
~Manner()
Definition: AttributesImpl.hpp:1068
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1070
Manner(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:1065
Definition: AttributesImpl.hpp:229
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:242
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:251
void on_observable_changed(BaseLevel *blvl)
Definition: AttributesImpl.hpp:237
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:269
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:263
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:275
int32_t compute()
Definition: Attribute.cpp:433
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:293
Vitality * _vit
Definition: AttributesImpl.hpp:300
void set_vitality(Vitality *vit)
Definition: AttributesImpl.hpp:243
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:257
~MaxHP()
Definition: AttributesImpl.hpp:235
void on_observable_changed(Vitality *vit)
Definition: AttributesImpl.hpp:238
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:287
BaseLevel * _blvl
Definition: AttributesImpl.hpp:299
MaxHP(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:231
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:245
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:281
Definition: AttributesImpl.hpp:306
int32_t compute()
Definition: Attribute.cpp:464
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:346
MaxSP(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:308
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:322
BaseLevel * _blvl
Definition: AttributesImpl.hpp:378
void set_intelligence(Intelligence *int_)
Definition: AttributesImpl.hpp:319
void on_observable_changed(BaseLevel *blvl)
Definition: AttributesImpl.hpp:314
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:334
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:340
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:370
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:358
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:320
Intelligence * _int
Definition: AttributesImpl.hpp:377
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:364
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:352
void on_observable_changed(Intelligence *int_)
Definition: AttributesImpl.hpp:315
~MaxSP()
Definition: AttributesImpl.hpp:312
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:328
Definition: AttributesImpl.hpp:1117
Strength * _str
Definition: AttributesImpl.hpp:1130
int32_t compute()
Definition: Attribute.cpp:555
void set_strength(Strength *str)
Definition: AttributesImpl.hpp:1127
MaxWeight(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:1119
void on_observable_changed(Strength *wstr)
Definition: AttributesImpl.hpp:1123
Definition: AttributesImpl.hpp:1805
~MobAttackDamage()
Definition: AttributesImpl.hpp:1811
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:1818
void on_observable_changed(Strength *)
Definition: AttributesImpl.hpp:1813
MobWeaponAttack * _cw_atk
Definition: AttributesImpl.hpp:1826
void on_observable_changed(BaseLevel *)
Definition: AttributesImpl.hpp:1814
MobAttackDamage(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1807
BaseLevel * _blvl
Definition: AttributesImpl.hpp:1825
void set_strength(Strength *str)
Definition: AttributesImpl.hpp:1817
void on_observable_changed(MobWeaponAttack *)
Definition: AttributesImpl.hpp:1815
void set_creature_weapon_attack(MobWeaponAttack *cw_atk)
Definition: AttributesImpl.hpp:1819
Strength * _str
Definition: AttributesImpl.hpp:1824
int32_t compute()
Definition: Attribute.cpp:931
Definition: AttributesImpl.hpp:1867
MobChaseRange(std::weak_ptr< Unit > unit, int32_t val)
Definition: AttributesImpl.hpp:1869
~MobChaseRange()
Definition: AttributesImpl.hpp:1870
Definition: AttributesImpl.hpp:1899
MobElementLevel(std::weak_ptr< Unit > unit, int32_t val)
Definition: AttributesImpl.hpp:1901
~MobElementLevel()
Definition: AttributesImpl.hpp:1902
Definition: AttributesImpl.hpp:1891
MobElement(std::weak_ptr< Unit > unit, int32_t val)
Definition: AttributesImpl.hpp:1893
~MobElement()
Definition: AttributesImpl.hpp:1894
Definition: AttributesImpl.hpp:1832
int32_t compute()
Definition: Attribute.cpp:939
void on_observable_changed(BaseLevel *)
Definition: AttributesImpl.hpp:1841
void on_observable_changed(Intelligence *)
Definition: AttributesImpl.hpp:1840
void set_creature_weapon_attack(MobWeaponAttack *cw_atk)
Definition: AttributesImpl.hpp:1846
void on_observable_changed(MobWeaponAttack *)
Definition: AttributesImpl.hpp:1842
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:1845
MobWeaponAttack * _cw_atk
Definition: AttributesImpl.hpp:1853
MobMagicAttackDamage(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1834
void set_intelligence(Intelligence *_intelligence)
Definition: AttributesImpl.hpp:1844
Intelligence * _int
Definition: AttributesImpl.hpp:1851
BaseLevel * _blvl
Definition: AttributesImpl.hpp:1852
~MobMagicAttackDamage()
Definition: AttributesImpl.hpp:1838
Definition: AttributesImpl.hpp:1907
MobMode(std::weak_ptr< Unit > unit, int32_t val)
Definition: AttributesImpl.hpp:1909
~MobMode()
Definition: AttributesImpl.hpp:1910
Definition: AttributesImpl.hpp:1875
MobPrimaryRace(std::weak_ptr< Unit > unit, int32_t val)
Definition: AttributesImpl.hpp:1877
~MobPrimaryRace()
Definition: AttributesImpl.hpp:1878
Definition: AttributesImpl.hpp:1883
~MobSecondaryRace()
Definition: AttributesImpl.hpp:1886
MobSecondaryRace(std::weak_ptr< Unit > unit, int32_t val)
Definition: AttributesImpl.hpp:1885
Definition: AttributesImpl.hpp:1858
~MobViewRange()
Definition: AttributesImpl.hpp:1862
MobViewRange(std::weak_ptr< Unit > unit, int32_t val)
Definition: AttributesImpl.hpp:1860
Definition: AttributesImpl.hpp:1794
MobWeaponAttack(std::weak_ptr< Unit > unit, int32_t val)
Definition: AttributesImpl.hpp:1796
~MobWeaponAttack()
Definition: AttributesImpl.hpp:1799
Definition: AttributesImpl.hpp:1135
int32_t get_with_cost(int cost)
Definition: AttributesImpl.hpp:1144
~MovementSpeed()
Definition: AttributesImpl.hpp:1140
MovementSpeed(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:1137
virtual void set_base(int32_t val, bool notify_client=true) override
Definition: Attribute.cpp:567
Definition: AttributesImpl.hpp:1093
~NextBaseExperience()
Definition: AttributesImpl.hpp:1098
NextBaseExperience(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:1095
void on_observable_changed(BaseLevel *blvl)
Definition: Attribute.cpp:506
Definition: AttributesImpl.hpp:1105
~NextJobExperience()
Definition: AttributesImpl.hpp:1110
NextJobExperience(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:1107
void on_observable_changed(JobLevel *jlvl)
Definition: Attribute.cpp:520
Definition: AttributesImpl.hpp:1436
MaxSP * _max_sp
Definition: AttributesImpl.hpp:1453
~SPRegeneration()
Definition: AttributesImpl.hpp:1441
void on_observable_changed(MaxSP *)
Definition: AttributesImpl.hpp:1444
Intelligence * _int
Definition: AttributesImpl.hpp:1452
SPRegeneration(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1438
void on_observable_changed(Intelligence *)
Definition: AttributesImpl.hpp:1443
void set_max_sp(MaxSP *msp)
Definition: AttributesImpl.hpp:1449
void set_intelligence(Intelligence *int_)
Definition: AttributesImpl.hpp:1448
int32_t compute()
Definition: Attribute.cpp:892
Definition: AttributesImpl.hpp:419
~SkillPoint()
Definition: AttributesImpl.hpp:424
void on_observable_changed(JobLevel *wjlvl)
Definition: Attribute.cpp:542
virtual void set_base(int32_t val, bool notify_client=true) override
Definition: Attribute.cpp:550
SkillPoint(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:421
Definition: AttributesImpl.hpp:1266
void on_observable_changed(Vitality *)
Definition: AttributesImpl.hpp:1272
BaseLevel * _blvl
Definition: AttributesImpl.hpp:1284
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:1279
void on_observable_changed(BaseLevel *)
Definition: AttributesImpl.hpp:1273
Agility * _agi
Definition: AttributesImpl.hpp:1285
SoftDEF(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1268
Vitality * _vit
Definition: AttributesImpl.hpp:1283
int32_t compute()
Definition: Attribute.cpp:646
void on_observable_changed(Agility *)
Definition: AttributesImpl.hpp:1274
void set_vitality(Vitality *vit)
Definition: AttributesImpl.hpp:1278
void set_agility(Agility *agi)
Definition: AttributesImpl.hpp:1280
Definition: AttributesImpl.hpp:1304
void on_observable_changed(Dexterity *)
Definition: AttributesImpl.hpp:1312
int32_t compute()
Definition: Attribute.cpp:692
BaseLevel * _blvl
Definition: AttributesImpl.hpp:1324
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:1318
void on_observable_changed(Intelligence *)
Definition: AttributesImpl.hpp:1311
void on_observable_changed(Vitality *)
Definition: AttributesImpl.hpp:1313
Vitality * _vit
Definition: AttributesImpl.hpp:1327
Dexterity * _dex
Definition: AttributesImpl.hpp:1326
SoftMDEF(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1306
void on_observable_changed(BaseLevel *)
Definition: AttributesImpl.hpp:1314
~SoftMDEF()
Definition: AttributesImpl.hpp:1309
void set_intelligence(Intelligence *int_)
Definition: AttributesImpl.hpp:1319
Intelligence * _int
Definition: AttributesImpl.hpp:1325
void set_vitality(Vitality *vit)
Definition: AttributesImpl.hpp:1321
void set_dexterity(Dexterity *dex)
Definition: AttributesImpl.hpp:1320
Definition: AttributesImpl.hpp:1159
void set_weapon_type(item_weapon_type type)
Definition: AttributesImpl.hpp:1177
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:1173
void on_observable_changed(BaseLevel *)
Definition: AttributesImpl.hpp:1169
item_weapon_type _weapon_type
Definition: AttributesImpl.hpp:1184
void on_observable_changed(Strength *)
Definition: AttributesImpl.hpp:1166
void set_dexterity(Dexterity *dex)
Definition: AttributesImpl.hpp:1175
~StatusATK()
Definition: AttributesImpl.hpp:1164
StatusATK(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1161
BaseLevel * _blvl
Definition: AttributesImpl.hpp:1180
Strength * _str
Definition: AttributesImpl.hpp:1181
void on_observable_changed(Dexterity *)
Definition: AttributesImpl.hpp:1167
void on_observable_changed(Luck *)
Definition: AttributesImpl.hpp:1168
void set_strength(Strength *str)
Definition: AttributesImpl.hpp:1174
Dexterity * _dex
Definition: AttributesImpl.hpp:1182
Luck * _luk
Definition: AttributesImpl.hpp:1183
int32_t compute()
Definition: Attribute.cpp:572
void set_luck(Luck *luk)
Definition: AttributesImpl.hpp:1176
Definition: AttributesImpl.hpp:1237
void set_intelligence(Intelligence *int_)
Definition: AttributesImpl.hpp:1252
int32_t compute()
Definition: Attribute.cpp:624
void set_luck(Luck *luk)
Definition: AttributesImpl.hpp:1254
void on_observable_changed(Dexterity *)
Definition: AttributesImpl.hpp:1245
void set_dexterity(Dexterity *dex)
Definition: AttributesImpl.hpp:1253
BaseLevel * _blvl
Definition: AttributesImpl.hpp:1257
~StatusMATK()
Definition: AttributesImpl.hpp:1242
StatusMATK(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1239
Intelligence * _int
Definition: AttributesImpl.hpp:1258
void on_observable_changed(BaseLevel *)
Definition: AttributesImpl.hpp:1247
Dexterity * _dex
Definition: AttributesImpl.hpp:1259
void on_observable_changed(Intelligence *)
Definition: AttributesImpl.hpp:1244
void set_base_level(BaseLevel *blvl)
Definition: AttributesImpl.hpp:1251
void on_observable_changed(Luck *)
Definition: AttributesImpl.hpp:1246
Luck * _luk
Definition: AttributesImpl.hpp:1260
Definition: AttributesImpl.hpp:407
StatusPoint(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:409
~StatusPoint()
Definition: AttributesImpl.hpp:412
void on_observable_changed(BaseLevel *wblvl)
Definition: Attribute.cpp:534
Definition: AttributesImpl.hpp:829
StrengthPointCost(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:831
~StrengthPointCost()
Definition: AttributesImpl.hpp:834
void on_observable_changed(Strength *)
Definition: Attribute.cpp:367
Definition: AttributesImpl.hpp:434
Strength(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:436
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:454
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:484
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:448
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:490
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:466
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:478
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:460
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:472
~Strength()
Definition: AttributesImpl.hpp:440
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:442
Definition: AttributesImpl.hpp:1784
~UnitSize()
Definition: AttributesImpl.hpp:1789
UnitSize(std::weak_ptr< Unit > unit, int32_t size)
Definition: AttributesImpl.hpp:1786
Definition: AttributesImpl.hpp:1078
~Virtue()
Definition: AttributesImpl.hpp:1083
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1085
Virtue(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:1080
Definition: AttributesImpl.hpp:853
void on_observable_changed(Vitality *)
Definition: Attribute.cpp:377
VitalityPointCost(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:855
~VitalityPointCost()
Definition: AttributesImpl.hpp:858
Definition: AttributesImpl.hpp:566
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:580
Vitality(std::weak_ptr< Unit > unit, int32_t base=0, int32_t equip=0, int32_t status=0)
Definition: AttributesImpl.hpp:568
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:604
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:592
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:610
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:622
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:574
~Vitality()
Definition: AttributesImpl.hpp:572
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:586
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:598
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:616
Definition: AttributesImpl.hpp:1762
int32_t compute()
Definition: Attribute.cpp:979
void on_observable_changed(WeaponAttackLeft *)
Definition: AttributesImpl.hpp:1769
void on_observable_changed(WeaponAttackRight *)
Definition: AttributesImpl.hpp:1770
void set_weapon_attack_left(WeaponAttackLeft *watk)
Definition: AttributesImpl.hpp:1774
WeaponAttackLeft * _watk_left
Definition: AttributesImpl.hpp:1778
WeaponAttackCombined(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1764
WeaponAttackRight * _watk_right
Definition: AttributesImpl.hpp:1779
void set_weapon_attack_right(WeaponAttackRight *watk)
Definition: AttributesImpl.hpp:1775
~WeaponAttackCombined()
Definition: AttributesImpl.hpp:1767
Definition: AttributesImpl.hpp:1625
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1666
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1648
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1636
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1654
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1660
WeaponAttackLeft(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1627
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1672
void on_equipment_changed()
Definition: AttributesImpl.hpp:1632
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1678
int32_t compute()
Definition: Attribute.cpp:967
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1684
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1642
Definition: AttributesImpl.hpp:1694
void set_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1723
void sub_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1735
void add_equip(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1729
void add_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1747
int32_t compute()
Definition: Attribute.cpp:986
void add_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1711
void sub_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1753
void set_status(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1741
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1705
WeaponAttackRight(std::weak_ptr< Unit > unit)
Definition: AttributesImpl.hpp:1696
void on_equipment_changed()
Definition: AttributesImpl.hpp:1701
void sub_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1717
Definition: AttributesImpl.hpp:1033
Zeny(std::weak_ptr< Unit > unit, int32_t base=0)
Definition: AttributesImpl.hpp:1035
void set_base(int32_t val, bool notify_client=true) override
Definition: AttributesImpl.hpp:1040
~Zeny()
Definition: AttributesImpl.hpp:1038
Definition: ObservableStatus.hpp:37
Definition: ReferenceListTest.cpp:114
Definition: Element.hpp:7