Example #1
0
        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);
            }
        }
Example #2
0
        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;
                }
            }
        }
Example #3
0
        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;
                }

            }
        }