78
19
        STATE_AFFAIBLI = 42,
19
        STATE_AFFAIBLI = 42,
20
        STATE_ALTRUISME = 50,
20
        STATE_ALTRUISME = 50,
21
        STATE_INVISIBLE = 600,
21
        STATE_INVISIBLE = 600,
 
 
22
        STATE_ENRACINER = 6,
22
    }
23
    }
23
 
24
 
24
    /// <summary>
25
    /// <summary>
...
 
...
 
26
    /// </summary>
27
    /// </summary>
27
    public sealed class FighterState
28
    public sealed class FighterState
28
    {
29
    {
 
 
30
        private Fighter myFighter;
29
        private Dictionary<FighterStateEnum, BuffEffect> myStates = new Dictionary<FighterStateEnum, BuffEffect>();
31
        private Dictionary<FighterStateEnum, BuffEffect> myStates = new Dictionary<FighterStateEnum, BuffEffect>();
30
 
32
 
 
 
33
        public FighterState(Fighter Fighter)
 
 
34
        {
 
 
35
            this.myFighter = Fighter;
 
 
36
        }
 
 
37
 
31
        public bool CanState(FighterStateEnum State)
38
        public bool CanState(FighterStateEnum State)
32
        {
39
        {
33
            switch (State)
40
            switch (State)
...
 
...
 
50
            switch (Buff.CastInfos.EffectType)
57
            switch (Buff.CastInfos.EffectType)
51
            {
58
            {
52
                case EffectEnum.Invisible:
59
                case EffectEnum.Invisible:
53
                    Buff.Target.Fight.SendToFight(new GameActionMessage((int)EffectEnum.Invisible, Buff.Target.ActorId, Buff.Target.ActorId + "," + Buff.Duration));
60
                    Buff.Target.Fight.SendToFight(new GameActionMessage((int)EffectEnum.Invisible, this.myFighter.ActorId, this.myFighter.ActorId + "," + Buff.Duration));
54
                    break;
61
                    this.myStates.Add(FighterStateEnum.STATE_INVISIBLE, Buff);
 
 
62
                    return;
55
 
63
 
56
                default:
64
                default:
57
                    Buff.Target.Fight.SendToFight(new GameActionMessage((int)EffectEnum.AddState, Buff.Target.ActorId, Buff.Target.ActorId + "," + Buff.CastInfos.Value3 + ",1"));
65
                    Buff.Target.Fight.SendToFight(new GameActionMessage((int)EffectEnum.AddState, this.myFighter.ActorId, this.myFighter.ActorId + "," + Buff.CastInfos.Value3 + ",1"));
58
                    break;
66
                    break;
59
            }
67
            }
60
 
68
 
...
 
...
 
66
            switch (Buff.CastInfos.EffectType)
74
            switch (Buff.CastInfos.EffectType)
67
            {
75
            {
68
                case EffectEnum.Invisible:
76
                case EffectEnum.Invisible:
69
                    Buff.Target.Fight.SendToFight(new GameActionMessage((int)EffectEnum.Invisible, Buff.Target.ActorId, Buff.Target.ActorId.ToString()));
77
                    Buff.Target.Fight.SendToFight(new GameActionMessage((int)EffectEnum.Invisible, this.myFighter.ActorId, this.myFighter.ActorId.ToString()));
70
                    Buff.Target.Fight.SendToFight(new GameActionMessage((int)GameActionTypeEnum.MAP_TELEPORT, Buff.Target.ActorId, Buff.Target.ActorId + "," + Buff.Target.CellId));
78
                    Buff.Target.Fight.SendToFight(new GameActionMessage((int)GameActionTypeEnum.MAP_TELEPORT, this.myFighter.ActorId, this.myFighter.ActorId + "," + this.myFighter.CellId));
71
                    break;
79
                    this.myStates.Remove(FighterStateEnum.STATE_INVISIBLE);
72
 
80
                    return;
 
 
81
                    
73
                default:
82
                default:
74
                    Buff.Target.Fight.SendToFight(new GameActionMessage((int)EffectEnum.AddState, Buff.Target.ActorId, Buff.Target.ActorId + "," + Buff.CastInfos.Value3 + ",0"));
83
                    Buff.Target.Fight.SendToFight(new GameActionMessage((int)EffectEnum.AddState, this.myFighter.ActorId, this.myFighter.ActorId + "," + Buff.CastInfos.Value3 + ",0"));
75
                    break;
84
                    break;
76
            }
85
            }
77
 
86
 
...
 
...
 
80
 
89
 
81
        public void RemoveState(FighterStateEnum State)
90
        public void RemoveState(FighterStateEnum State)
82
        {
91
        {
 
 
92
            if (this.HasState(State))            
 
 
93
                this.myStates[State].RemoveEffect();            
 
 
94
        }
 
 
95
 
 
 
96
        public BuffEffect FindState(FighterStateEnum State)
 
 
97
        {
83
            if (this.HasState(State))
98
            if (this.HasState(State))
84
            {
99
                return this.myStates[State];
85
                this.myStates[State].RemoveEffect();
100
            return null;
86
            }
 
 
87
        }
101
        }
 
 
102
 
 
 
103
        public void Debuff()
 
 
104
        {
 
 
105
            foreach (var State in this.myStates.Values)
 
 
106
                State.RemoveEffect();
 
 
107
 
 
 
108
            this.myStates.Clear();
 
 
109
        }
88
    }
110
    }
89
}
111
}