listeners()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
dl 0
loc 3
ccs 1
cts 1
cp 1
crap 1
rs 10
1
/*
2
 * This file is part of Araknemu.
3
 *
4
 * Araknemu is free software: you can redistribute it and/or modify
5
 * it under the terms of the GNU Lesser General Public License as published by
6
 * the Free Software Foundation, either version 3 of the License, or
7
 * (at your option) any later version.
8
 *
9
 * Araknemu is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 * GNU Lesser General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU Lesser General Public License
15
 * along with Araknemu.  If not, see <https://www.gnu.org/licenses/>.
16
 *
17
 * Copyright (c) 2017-2019 Vincent Quatrevieux
18
 */
19
20
package fr.quatrevieux.araknemu.game.fight.module;
21
22
import fr.quatrevieux.araknemu.core.event.Listener;
23
import fr.quatrevieux.araknemu.data.constant.Characteristic;
24
import fr.quatrevieux.araknemu.game.fight.Fight;
25
import fr.quatrevieux.araknemu.game.fight.castable.effect.EffectsHandler;
26
import fr.quatrevieux.araknemu.game.fight.castable.effect.Element;
27
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.armor.HealOrMultiplyDamageHandler;
28
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.armor.ReduceDamageHandler;
29
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.armor.ReflectDamageHandler;
30
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.armor.SpellReturnHandler;
31
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.AddActionPointsHandler;
32
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.AddCharacteristicHandler;
33
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.AddCharacteristicOnDamageHandler;
34
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.AddMovementPointsHandler;
35
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.AddNotDispellableCharacteristicHandler;
36
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.AddVitalityHandler;
37
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.AddVitalityNotDispellableHandler;
38
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.AlterVitalityHook;
39
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.BoostCasterSightHandler;
40
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.DecreaseCasterSightHandler;
41
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.RemoveActionPointsHandler;
42
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.RemoveCharacteristicHandler;
43
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.RemoveMovementPointsHandler;
44
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.RemoveVitalityHandler;
45
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.StealCharacteristicHandler;
46
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.StealVitalityHandler;
47
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.point.ActionPointLostHandler;
48
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.point.MovementPointLostHandler;
49
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.point.StealActionPointHandler;
50
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.characteristic.point.StealMovementPointHandler;
51
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.damage.DamageHandler;
52
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.damage.DamageOnActionPointUseHandler;
53
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.damage.FixedCasterDamageHandler;
54
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.damage.FixedDamageHandler;
55
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.damage.FixedStealLifeHandler;
56
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.damage.IndirectPercentLifeDamageHandler;
57
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.damage.PercentLifeDamageHandler;
58
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.damage.PercentLifeLostDamageHandler;
59
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.damage.PunishmentHandler;
60
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.damage.StealLifeHandler;
61
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.heal.FixedHealHandler;
62
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.heal.GivePercentLifeHandler;
63
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.heal.HealHandler;
64
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.heal.HealOnAttackHandler;
65
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.heal.HealOnDamageHandler;
66
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.misc.ChangeAppearanceHandler;
67
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.misc.DispelHandler;
68
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.misc.InvisibilityHandler;
69
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.misc.KillHandler;
70
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.misc.NoEffectHandler;
71
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.misc.PushStateHandler;
72
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.misc.RemoveStateHandler;
73
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.misc.RevealInvisibleHandler;
74
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.misc.SkipTurnHandler;
75
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.modifier.MaximizeTargetEffectsHandler;
76
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.modifier.MinimizeCastedEffectsHandler;
77
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.modifier.MultiplyDamageHandler;
78
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.shifting.AvoidDamageByMovingBackHandler;
79
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.shifting.MoveBackHandler;
80
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.shifting.MoveFrontHandler;
81
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.shifting.MoveToTargetCellHandler;
82
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.shifting.SwitchPositionHandler;
83
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.shifting.SwitchPositionOnAttackHandler;
84
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.shifting.TeleportHandler;
85
import fr.quatrevieux.araknemu.game.fight.castable.effect.handler.modifier.BoostSpellHandler;
86
import fr.quatrevieux.araknemu.game.spell.boost.SpellsBoosts;
87
88
/**
89
 * Module for register common fight effects
90
 */
91
public final class CommonEffectsModule implements FightModule {
92
    private final Fight fight;
93
94 1
    public CommonEffectsModule(Fight fight) {
95 1
        this.fight = fight;
96 1
    }
97
98
    @Override
0 ignored issues
show
introduced by
NCSS for this method is 130 (max allowed is 50).
Loading history...
99
    public void effects(EffectsHandler handler) {
100 1
        handler.register(4, new TeleportHandler(fight));
101 1
        handler.register(5, new MoveBackHandler(fight));
102 1
        handler.register(6, new MoveFrontHandler(fight));
103 1
        handler.register(8, new SwitchPositionHandler(fight));
104 1
        handler.register(9, new AvoidDamageByMovingBackHandler(fight));
105 1
        handler.register(765, new SwitchPositionOnAttackHandler(fight));
106 1
        handler.register(783, new MoveToTargetCellHandler(fight));
107
108 1
        handler.register(132, new DispelHandler(fight));
109
110 1
        handler.register(91, new StealLifeHandler(Element.WATER, fight));
111 1
        handler.register(92, new StealLifeHandler(Element.EARTH, fight));
112 1
        handler.register(93, new StealLifeHandler(Element.AIR, fight));
113 1
        handler.register(94, new StealLifeHandler(Element.FIRE, fight));
114 1
        handler.register(95, new StealLifeHandler(Element.NEUTRAL, fight));
115
116 1
        handler.register(96,  new DamageHandler(Element.WATER, fight));
117 1
        handler.register(97,  new DamageHandler(Element.EARTH, fight));
118 1
        handler.register(98,  new DamageHandler(Element.AIR, fight));
119 1
        handler.register(99,  new DamageHandler(Element.FIRE, fight));
120 1
        handler.register(100, new DamageHandler(Element.NEUTRAL, fight));
121
122 1
        handler.register(85, new PercentLifeDamageHandler(Element.WATER, fight));
123 1
        handler.register(86, new PercentLifeDamageHandler(Element.EARTH, fight));
124 1
        handler.register(87, new PercentLifeDamageHandler(Element.AIR, fight));
125 1
        handler.register(88, new PercentLifeDamageHandler(Element.FIRE, fight));
126 1
        handler.register(89, new PercentLifeDamageHandler(Element.NEUTRAL, fight));
127
128 1
        handler.register(131, new DamageOnActionPointUseHandler(fight));
129 1
        handler.register(671, new IndirectPercentLifeDamageHandler(Element.NEUTRAL, fight));
130
131 1
        handler.register(276, new PercentLifeLostDamageHandler(Element.EARTH, fight));
132 1
        handler.register(279, new PercentLifeLostDamageHandler(Element.NEUTRAL, fight));
133
134 1
        handler.register(82, new FixedStealLifeHandler());
135 1
        handler.register(109, new FixedCasterDamageHandler());
136 1
        handler.register(144, new FixedDamageHandler());
137 1
        handler.register(672, new PunishmentHandler(fight));
138
139 1
        handler.register(81, new HealOnDamageHandler());
140 1
        handler.register(90, new GivePercentLifeHandler());
141 1
        handler.register(108, new HealHandler());
142 1
        handler.register(143, new FixedHealHandler());
143 1
        handler.register(786, new HealOnAttackHandler());
144
145 1
        handler.register(140, new SkipTurnHandler(fight));
146 1
        handler.register(149, new ChangeAppearanceHandler(fight));
147 1
        handler.register(950, new PushStateHandler(fight));
148 1
        handler.register(951, new RemoveStateHandler());
149 1
        handler.register(141, new KillHandler());
150 1
        handler.register(150, new InvisibilityHandler(fight));
151 1
        handler.register(202, new RevealInvisibleHandler());
152
153 1
        handler.register(79,  new HealOrMultiplyDamageHandler());
154 1
        handler.register(105, new ReduceDamageHandler());
155 1
        handler.register(106, new SpellReturnHandler(fight));
156 1
        handler.register(107, new ReflectDamageHandler());
157 1
        handler.register(265, new ReduceDamageHandler());
158
159 1
        handler.register(114, new MultiplyDamageHandler());
160 1
        handler.register(781, new MinimizeCastedEffectsHandler());
161 1
        handler.register(782, new MaximizeTargetEffectsHandler());
162
163 1
        handler.register(111, new AddActionPointsHandler(fight));
164 1
        handler.register(120, new AddActionPointsHandler(fight));
165 1
        handler.register(168, new RemoveActionPointsHandler(fight));
166
167 1
        handler.register(78,  new AddMovementPointsHandler(fight));
168 1
        handler.register(128, new AddMovementPointsHandler(fight));
169 1
        handler.register(169, new RemoveMovementPointsHandler(fight));
170
171 1
        handler.register(77, new StealMovementPointHandler(fight, 127, 128));
172 1
        handler.register(84, new StealActionPointHandler(fight, 101, 111));
173 1
        handler.register(101, new ActionPointLostHandler(fight));
174 1
        handler.register(127, new MovementPointLostHandler(fight));
175
176 1
        handler.register(110, new AddVitalityHandler(fight)); // Not sure for this effect
177 1
        handler.register(112, new AddCharacteristicHandler(fight, Characteristic.FIXED_DAMAGE));
178 1
        handler.register(115, new AddCharacteristicHandler(fight, Characteristic.CRITICAL_BONUS));
179 1
        handler.register(117, new AddCharacteristicHandler(fight, Characteristic.SIGHT_BOOST));
180 1
        handler.register(118, new AddCharacteristicHandler(fight, Characteristic.STRENGTH));
181 1
        handler.register(119, new AddCharacteristicHandler(fight, Characteristic.AGILITY));
182 1
        handler.register(122, new AddCharacteristicHandler(fight, Characteristic.FAIL_MALUS));
183 1
        handler.register(123, new AddCharacteristicHandler(fight, Characteristic.LUCK));
184 1
        handler.register(124, new AddCharacteristicHandler(fight, Characteristic.WISDOM));
185 1
        handler.register(125, new AddVitalityHandler(fight));
186 1
        handler.register(126, new AddCharacteristicHandler(fight, Characteristic.INTELLIGENCE));
187 1
        handler.register(138, new AddCharacteristicHandler(fight, Characteristic.PERCENT_DAMAGE));
188 1
        handler.register(178, new AddCharacteristicHandler(fight, Characteristic.HEALTH_BOOST));
189 1
        handler.register(182, new AddCharacteristicHandler(fight, Characteristic.MAX_SUMMONED_CREATURES));
190 1
        handler.register(220, new AddCharacteristicHandler(fight, Characteristic.COUNTER_DAMAGE));
191
192 1
        handler.register(606, new AddNotDispellableCharacteristicHandler(fight, Characteristic.WISDOM));
193 1
        handler.register(607, new AddNotDispellableCharacteristicHandler(fight, Characteristic.STRENGTH));
194 1
        handler.register(608, new AddNotDispellableCharacteristicHandler(fight, Characteristic.LUCK));
195 1
        handler.register(609, new AddNotDispellableCharacteristicHandler(fight, Characteristic.AGILITY));
196 1
        handler.register(610, new AddVitalityNotDispellableHandler(fight));
197 1
        handler.register(611, new AddNotDispellableCharacteristicHandler(fight, Characteristic.INTELLIGENCE));
198
199 1
        handler.register(116, new RemoveCharacteristicHandler(fight, Characteristic.SIGHT_BOOST));
200 1
        handler.register(145, new RemoveCharacteristicHandler(fight, Characteristic.FIXED_DAMAGE));
201 1
        handler.register(152, new RemoveCharacteristicHandler(fight, Characteristic.LUCK));
202 1
        handler.register(153, new RemoveVitalityHandler(fight));
203 1
        handler.register(154, new RemoveCharacteristicHandler(fight, Characteristic.AGILITY));
204 1
        handler.register(155, new RemoveCharacteristicHandler(fight, Characteristic.INTELLIGENCE));
205 1
        handler.register(156, new RemoveCharacteristicHandler(fight, Characteristic.WISDOM));
206 1
        handler.register(157, new RemoveCharacteristicHandler(fight, Characteristic.STRENGTH));
207 1
        handler.register(171, new RemoveCharacteristicHandler(fight, Characteristic.CRITICAL_BONUS));
208 1
        handler.register(179, new RemoveCharacteristicHandler(fight, Characteristic.HEALTH_BOOST));
209 1
        handler.register(186, new RemoveCharacteristicHandler(fight, Characteristic.PERCENT_DAMAGE));
210
211 1
        handler.register(160, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_ACTION_POINT));
212 1
        handler.register(161, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_MOVEMENT_POINT));
213 1
        handler.register(210, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_PERCENT_EARTH));
214 1
        handler.register(211, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_PERCENT_WATER));
215 1
        handler.register(212, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_PERCENT_AIR));
216 1
        handler.register(213, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_PERCENT_FIRE));
217 1
        handler.register(214, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_PERCENT_NEUTRAL));
218 1
        handler.register(240, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_EARTH));
219 1
        handler.register(241, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_WATER));
220 1
        handler.register(242, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_AIR));
221 1
        handler.register(243, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_FIRE));
222 1
        handler.register(244, new AddCharacteristicHandler(fight, Characteristic.RESISTANCE_NEUTRAL));
223
224 1
        handler.register(162, new RemoveCharacteristicHandler(fight, Characteristic.RESISTANCE_ACTION_POINT));
225 1
        handler.register(163, new RemoveCharacteristicHandler(fight, Characteristic.RESISTANCE_MOVEMENT_POINT));
226 1
        handler.register(215, new RemoveCharacteristicHandler(fight, Characteristic.RESISTANCE_PERCENT_EARTH));
227 1
        handler.register(216, new RemoveCharacteristicHandler(fight, Characteristic.RESISTANCE_PERCENT_WATER));
228 1
        handler.register(217, new RemoveCharacteristicHandler(fight, Characteristic.RESISTANCE_PERCENT_AIR));
229 1
        handler.register(218, new RemoveCharacteristicHandler(fight, Characteristic.RESISTANCE_PERCENT_FIRE));
230 1
        handler.register(219, new RemoveCharacteristicHandler(fight, Characteristic.RESISTANCE_PERCENT_NEUTRAL));
231 1
        handler.register(248, new RemoveCharacteristicHandler(fight, Characteristic.RESISTANCE_FIRE));
232 1
        handler.register(249, new RemoveCharacteristicHandler(fight, Characteristic.RESISTANCE_NEUTRAL));
233
234 1
        handler.register(267, new StealVitalityHandler(fight, 125, 153));
235 1
        handler.register(268, new StealCharacteristicHandler(fight, Characteristic.AGILITY, 119, 154));
236 1
        handler.register(269, new StealCharacteristicHandler(fight, Characteristic.INTELLIGENCE, 126, 155));
237 1
        handler.register(271, new StealCharacteristicHandler(fight, Characteristic.STRENGTH, 118, 157));
238 1
        handler.register(320, new StealCharacteristicHandler(fight, Characteristic.SIGHT_BOOST, 117, 116));
239
240 1
        handler.register(135, new DecreaseCasterSightHandler(fight));
241 1
        handler.register(136, new BoostCasterSightHandler(fight));
242
243 1
        handler.register(284, new BoostSpellHandler(SpellsBoosts.Modifier.HEAL));
244 1
        handler.register(285, new BoostSpellHandler(SpellsBoosts.Modifier.AP_COST));
245 1
        handler.register(286, new BoostSpellHandler(SpellsBoosts.Modifier.REDUCE_DELAY));
246 1
        handler.register(287, new BoostSpellHandler(SpellsBoosts.Modifier.CRITICAL));
247 1
        handler.register(290, new BoostSpellHandler(SpellsBoosts.Modifier.LAUNCH_PER_TURN));
248 1
        handler.register(293, new BoostSpellHandler(SpellsBoosts.Modifier.BASE_DAMAGE));
249
250 1
        handler.register(788, new AddCharacteristicOnDamageHandler(fight)
251 1
            .register(108, AlterVitalityHook.add(fight))
252 1
            .register(118, Characteristic.STRENGTH)
253 1
            .register(119, Characteristic.AGILITY)
254 1
            .register(123, Characteristic.LUCK)
255 1
            .register(126, Characteristic.INTELLIGENCE)
256 1
            .register(138, Characteristic.PERCENT_DAMAGE)
257
        );
258
259 1
        handler.register(666, new NoEffectHandler());
260 1
    }
261
262
    @Override
263
    public Listener[] listeners() {
264 1
        return new Listener[0];
265
    }
266
}
267