public static void RemoveExtraStatus(ActiveChar character, string name, bool sendInfo) { if (!character.VolatileStatus.ContainsKey(name)) { return; } ExtraStatus statusToRemove = character.VolatileStatus[name]; if (statusToRemove != null) { bool forme = false, sprite = false, type = false, ability = false, atkSpeed = false, confusion = false, speedLimit = false, mobility = false, visibility = false, darkness = false, swapLock = false, moves = false, extraStatus = false; //switch (name) { // case "Confusion": { // //if (sendInfo) hitlist.AddPacketToMap(map, PacketBuilder.CreateBattleMsg(character.Name + " is no longer confused!")); // confusion = true; // extraStatus = true; // } // break; //} character.VolatileStatus.Remove(name); RefreshCharacterTraits(character, forme, sprite, type, ability, atkSpeed, confusion, speedLimit, mobility, visibility, darkness, swapLock, moves, extraStatus); } }
public static void AddExtraStatus(ActiveChar character, ActiveChar attacker, string name, int counter, int target, List <int> tag, bool msg) { if (CheckStatusProtection(character, attacker, name, counter, tag, true)) { return; } if (character.VolatileStatus.ContainsKey(name) && name == "MovementSpeed") { RemoveExtraStatus(character, name, false); } if (!character.VolatileStatus.ContainsKey(name)) { ExtraStatus newStatus = new ExtraStatus { Name = name, Emoticon = -1, Counter = counter, Target = target, Args = tag }; character.VolatileStatus.Add(name, newStatus); //announce to map switch (name) { case "MovementSpeed": { int oldSpeed = character.MovementSpeed; RefreshCharacterSpeed(character); ExtraStatus addedStatus = newStatus; switch (character.MovementSpeed) { case -3: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at quarter speed!")); } break; case -2: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at one-third speed!")); } break; case -1: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at half speed!")); } break; case 0: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at normal speed!")); RemoveExtraStatus(character, name, false); } break; case 1: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at double speed!")); } break; case 2: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at triple speed!")); } break; case 3: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at quadruple speed!")); } break; } } break; } } }
public static void AddExtraStatus(ActiveChar character, ActiveChar attacker, string name, int counter, int target, List<int> tag, bool msg) { if (CheckStatusProtection(character, attacker, name, counter, tag, true)) { return; } if (character.VolatileStatus.ContainsKey(name) && name == "MovementSpeed") { RemoveExtraStatus(character, name, false); } if (!character.VolatileStatus.ContainsKey(name)) { ExtraStatus newStatus = new ExtraStatus(); newStatus.Name = name; newStatus.Emoticon = -1; newStatus.Counter = counter; newStatus.Target = target; newStatus.Args = tag; character.VolatileStatus.Add(name, newStatus); //announce to map switch (name) { case "MovementSpeed": { int oldSpeed = character.MovementSpeed; RefreshCharacterSpeed(character); ExtraStatus addedStatus = newStatus; switch (character.MovementSpeed) { case -3: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at quarter speed!")); } break; case -2: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at one-third speed!")); } break; case -1: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at half speed!")); } break; case 0: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at normal speed!")); RemoveExtraStatus(character, name, false); } break; case 1: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at double speed!")); } break; case 2: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at triple speed!")); } break; case 3: { Display.Screen.AddResult(new Results.BattleMsg(character.Name + " is at quadruple speed!")); } break; } } break; } } }