using System; using System.Collections.Generic; using System.Linq; using System.Text; using GenericNetplayImplementation; using System.IO; namespace DIGIEVO { public class Client : GNIClient { public Client(string url = "vdzserver.org" /*"127.0.0.1"*/, int port = 5847) { this.StartClient(url, port); this.AutoPoll(); } public void SendSerialization(byte[] bytes) { GNIData data = new GNIData("serialize", 0); data.valueType = GNIDataType.ByteArray; data.valueBytes = bytes; SendSignal(this.tcpClient, data); } public void AskPass() { SendSignal(tcpClient, new GNIData("getpass", 0)); } public void AskCode() { SendSignal(tcpClient, new GNIData("getcode", 0)); } public void AskCreature(byte[] pass) { GNIData data = new GNIData("enterpass", 0); data.valueType = GNIDataType.ByteArray; data.valueBytes = pass; SendSignal(this.tcpClient, data); } public void AskCreature(string code) { GNIData data = new GNIData("entercode", code); SendSignal(this.tcpClient, data); } public void EvolutionNotice(string otherCode) { SendSignal(this.tcpClient, new GNIData("evolvedfrom", otherCode)); } public void RequestRandomBattle(int powerRating) { SendSignal(tcpClient, new GNIData("randombattle", powerRating)); } public override void OnDataReceived(GNIData data, uint source = 0) { switch (data.keyString) { case "freepass": Main.creature.pass = data.valueBytes; string toWrite = ""; for (int i = 0; i < data.valueBytes.Length; i++) { toWrite += Convert.ToString(data.valueBytes[i]) + " "; } StreamWriter writer = new StreamWriter("accessfile"); writer.WriteLine(toWrite); writer.Close(); SendSerialization(Main.creature.Serialize()); Main.accessStatus = 1; break; case "freecode": Main.creature.code = data.valueString; break; case "yourcreature": Main.creature = new Creature(data.valueBytes); Main.accessStatus = 1; break; case "thatcreature": Menu.presentedCreature = new Creature(data.valueBytes); Menu.creatureRequestStatus = 1; break; case "donotexist": Menu.creatureRequestStatus = 0; break; case "donothave": Main.accessStatus = 0; //Major problem, player's creature does not exist on server break; case "mayevolve": //if (data.valueInt == 0) Menu.mayEvolve = false; //else Menu.mayEvolve = true; Menu.mayEvolve = true; break; case "randomenemy": Combat.StartCombat(new Creature(data.valueBytes)); break; } base.OnDataReceived(data, source); } } }