10 | { | 10 | { |
11 | private static Dictionary<EffectEnum, List<EffectEnum>> ArmorByEffect = new Dictionary<EffectEnum, List<EffectEnum>>() | | |
12 | { | | |
13 | { EffectEnum.AddArmorFeu, new List<EffectEnum>() { EffectEnum.DamageFeu , EffectEnum.VolFeu } }, | | |
14 | { EffectEnum.AddArmorTerre, new List<EffectEnum>() { EffectEnum.DamageTerre , EffectEnum.VolTerre , EffectEnum.DamageNeutre , EffectEnum.VolNeutre} }, | | |
15 | { EffectEnum.AddArmorAir, new List<EffectEnum>() { EffectEnum.DamageAir , EffectEnum.VolAir } }, | | |
16 | { EffectEnum.AddArmorEau, new List<EffectEnum>() { EffectEnum.DamageEau , EffectEnum.VolEau } }, | | |
17 | { EffectEnum.AddArmor, new List<EffectEnum>() { EffectEnum.DamageFeu , | | |
18 | EffectEnum.VolFeu , | | |
19 | EffectEnum.DamageTerre , | | |
20 | EffectEnum.VolTerre , | | |
21 | EffectEnum.DamageNeutre , | | |
22 | EffectEnum.VolNeutre , | | |
23 | EffectEnum.DamageAir , | | |
24 | EffectEnum.VolAir } } | | |
25 | }; | | |
26 | | | |
31 | | 15 | |
32 | public override int ApplyEffect(ref int DamageValue, EffectCast DamageInfos = null) | | |
33 | { | | |
34 | // Si aucun dommage | | |
35 | if (DamageValue == 0) | | |
36 | return -1; | | |
37 | | | |
38 | // Recupere le type d'armure par les dommages | | |
39 | if (!BuffArmor.ArmorByEffect[this.CastInfos.SubEffect].Contains(DamageInfos.EffectType)) | | |
40 | return -1; | | |
41 | | | |
42 | // Calcul armure par l'effect | | |
43 | var Armor = this.Target.CalculArmor(this.CastInfos.SubEffect); | | |
44 | | | |
45 | // Aucune armure | | |
46 | if (Armor == 0) | | |
47 | return -1; | | |
48 | | | |
49 | // Reduction des dommages | | |
50 | this.Target.Fight.SendToFight(new GameActionMessage((int)GameActionTypeEnum.FIGHT_ARMOR, this.Target.ActorId, this.Target.ActorId + "," + Armor)); | | |
51 | | | |
52 | DamageValue -= Armor; | | |
53 | | | |
54 | if (DamageValue < 0) | | |
55 | DamageValue = 0; | | |
56 | | | |
57 | return base.ApplyEffect(ref DamageValue, DamageInfos); | | |
58 | } | | |
59 | | | |