using System;

using FilterBot.ZoneNetworking;

namespace FilterBot
{
    internal class Command
    {
        public static void Mobbreed(ZoneServer ServerSocket, String MobIndex, Byte MobAmount, Byte RegenSec, Boolean IsFamily, Byte RegenNumber) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&mobbreed {0} {1} {2} {3} {4}", MobIndex, MobAmount, RegenSec, Convert.ToByte(IsFamily), RegenNumber)); }

        public static void Mobbreed(ZoneServer ServerSocket, String MobIndex, Byte MobAmount, Byte RegenSec, Boolean IsFamily, Byte RegenNumber, Byte MobLevel) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&mobbreed {0} {1} {2} {3} {4} - - {5}", MobIndex, MobAmount, RegenSec, Convert.ToByte(IsFamily), RegenNumber, MobLevel)); }

        public static void Makeitem(ZoneServer ServerSocket, String ItemIndex) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&makeitem {0}", ItemIndex)); }

        public static void Makeitem(ZoneServer ServerSocket, String ItemIndex, Byte Amount) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&makeitem {0} -l{1}", ItemIndex, Amount)); }

        public static void Makeitem(ZoneServer ServerSocket, String ItemIndex, Boolean IsUpgrade, Byte Upgrade) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&makeitem {0} -u{1}", ItemIndex, Upgrade)); }

        public static void Makeitem(ZoneServer ServerSocket, String ItemIndex, Byte Amount, Byte Upgrade) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&makeitem {0} -l{1} -u{2}", ItemIndex, Amount, Upgrade)); }

        public static void Pfind(ZoneServer ServerSocket, String sID) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&pfind {0}", sID)); }

        public static void Psummon(ZoneServer ServerSocket, String sID) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&psummon {0}", sID)); }

        public static void Linkto(ZoneServer ServerSocket, String MapIndex) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&linkto {0}", MapIndex)); }

        public static void Linkto(ZoneServer ServerSocket, String MapIndex, Int32 X, Int32 Y) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&linkto {0} {1} {2}", MapIndex, X, Y)); }

        public static void Levelup(ZoneServer ServerSocket, Byte Amount) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&levelup {0}", Amount)); }

        public static void LearnSkill(ZoneServer ServerSocket, Int32 SkillID) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&learnskill {0}", SkillID)); }

        public static void LearnPassive(ZoneServer ServerSocket, Int32 PassiveID) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&learnpassive {0}", PassiveID)); }

        public static void SetAbstate(ZoneServer ServerSocket, String AbstateIndex) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&setabstate {0}", AbstateIndex)); }

        public static void SetAbstate(ZoneServer ServerSocket, String AbstateIndex, Int32 AbstateTime) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&setabstate {0} {1}", AbstateIndex, AbstateTime)); }

        public static void SetAbstate(ZoneServer ServerSocket, String AbstateIndex, Int32 AbstateTime, Byte EffectLevel) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&setabstate {0} {1} {2}", AbstateIndex, AbstateTime, EffectLevel)); }

        public static void ExpBonus(ZoneServer ServerSocket, String MapIndex, Int32 NewDropRate) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&expbonus {0} {1}", MapIndex, NewDropRate)); }

        public static void ItemBonus(ZoneServer ServerSocket, String MapIndex, Int32 NewItemRate) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&itembonus {0} {1}", MapIndex, NewItemRate)); }

        public static void KQReward(ZoneServer ServerSocket, Int32 KQID) { GlobalPacket.SendNormalMessageClient(ServerSocket, String.Format("&kqreward {0}", KQID)); }
    }
}
