7 | 8 | ||
---|---|---|---|
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 | } |