78
7
namespace Trom.World.Fights.Effects
7
namespace Trom.World.Fights.Effects
8
{
8
{
9
    public sealed class BuffArmor : BuffEffect
9
    public sealed class BuffArmor : BuffEffect
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
 
 
 
27
        public BuffArmor(EffectCast CastInfos, Fighter Target)
11
        public BuffArmor(EffectCast CastInfos, Fighter Target)
28
            : base(CastInfos, Target, BuffActiveType.ACTIVE_ATTACKED_AFTER_JET, BuffDecrementType.TYPE_ENDTURN)
12
            : base(CastInfos, Target, BuffActiveType.ACTIVE_ATTACKED_AFTER_JET, BuffDecrementType.TYPE_ENDTURN)
29
        {
13
        {
30
        }
14
        }
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
 
 
 
60
        public override int RemoveEffect()
16
        public override int RemoveEffect()
61
        {
17
        {
62
            switch (this.CastInfos.SpellId)
18
            switch (this.CastInfos.SpellId)