From 26210d7b73f37e30d1b5ca88e2275fd01caf5d72 Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Mon, 14 Oct 2013 19:33:05 +0200 Subject: Initial commit with the Mono Rot Bot --- Entelect.BattleCity.Challenge/AiAgent.cs | 98 ++ Entelect.BattleCity.Challenge/App.config | 21 + .../ChallengeService.wsdl | 316 ++++++ .../Entelect.BattleCity.Challenge.csproj | 109 ++ Entelect.BattleCity.Challenge/GameInProgress.cs | 64 ++ Entelect.BattleCity.Challenge/Move.cs | 19 + Entelect.BattleCity.Challenge/Program.cs | 16 + .../Properties/AssemblyInfo.cs | 36 + .../ChallengeService/ChallengeService.wsdl | 294 ++++++ ...ity.Challenge.ChallengeService.delta.datasource | 10 + ...City.Challenge.ChallengeService.game.datasource | 10 + ...e.ChallengeService.getStatusResponse.datasource | 10 + ...lenge.ChallengeService.loginResponse.datasource | 10 + ...e.ChallengeService.setActionResponse.datasource | 10 + ....ChallengeService.setActionsResponse.datasource | 10 + ...ity.Challenge.ChallengeService.state.datasource | 10 + .../ChallengeService/Reference.cs | 1104 ++++++++++++++++++++ .../ChallengeService/Reference.svcmap | 31 + .../ChallengeService/configuration.svcinfo | 10 + .../ChallengeService/configuration91.svcinfo | 201 ++++ Entelect.BattleCity.Challenge/compile.bat | 1 + Entelect.BattleCity.Challenge/start.bat | 1 + 22 files changed, 2391 insertions(+) create mode 100644 Entelect.BattleCity.Challenge/AiAgent.cs create mode 100644 Entelect.BattleCity.Challenge/App.config create mode 100644 Entelect.BattleCity.Challenge/ChallengeService.wsdl create mode 100644 Entelect.BattleCity.Challenge/Entelect.BattleCity.Challenge.csproj create mode 100644 Entelect.BattleCity.Challenge/GameInProgress.cs create mode 100644 Entelect.BattleCity.Challenge/Move.cs create mode 100644 Entelect.BattleCity.Challenge/Program.cs create mode 100644 Entelect.BattleCity.Challenge/Properties/AssemblyInfo.cs create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/ChallengeService.wsdl create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.delta.datasource create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.game.datasource create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse.datasource create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.loginResponse.datasource create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionResponse.datasource create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse.datasource create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.state.datasource create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.cs create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.svcmap create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration.svcinfo create mode 100644 Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration91.svcinfo create mode 100644 Entelect.BattleCity.Challenge/compile.bat create mode 100644 Entelect.BattleCity.Challenge/start.bat (limited to 'Entelect.BattleCity.Challenge') diff --git a/Entelect.BattleCity.Challenge/AiAgent.cs b/Entelect.BattleCity.Challenge/AiAgent.cs new file mode 100644 index 0000000..e577bcb --- /dev/null +++ b/Entelect.BattleCity.Challenge/AiAgent.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; + +namespace Entelect.BattleCity.Challenge +{ + class AiAgent + { + private int _tankId; + + public AiAgent() + { + + } + + public AiAgent(int tankId) + { + _tankId = tankId; + } + + public Move GetBestMove(ChallengeService.state?[][] state, ChallengeService.game game, int tankIndex) + { + ChallengeService.player me = null; + ChallengeService.player enemy = null; + ChallengeService.unit tank = null; + bool bulletInAir = false; + + string playerName = game.playerName; + foreach (ChallengeService.player player in game.players) + { + if (player.name.Equals(playerName)) + { + me = player; + } + else + { + enemy = player; + } + } + if (me.units.Length <= tankIndex) + { + return null; + } + tank = me.units[tankIndex]; + + if (me.bullets != null) + { + foreach (var bullet in me.bullets) + { + if (Math.Abs(bullet.x - tank.x) < state.Length / 4) + { + bulletInAir = true; + } + } + } + + var enemyBase = enemy.@base; + + ChallengeService.direction chosenDirection = + tank.y != enemyBase.y ? + ( + tank.y > enemyBase.y ? + ChallengeService.direction.UP : + ChallengeService.direction.DOWN + ) : + ( + tank.x > enemyBase.x ? + ChallengeService.direction.LEFT : + ChallengeService.direction.RIGHT + ); + + if (chosenDirection != tank.direction || bulletInAir) + { + return MoveInDirection(tank.id, chosenDirection); + } + else + { + return new Move(tank.id, ChallengeService.action.FIRE); + } + } + + public Move MoveInDirection(int tankId, ChallengeService.direction direction) + { + switch (direction) + { + case ChallengeService.direction.UP: + return new Move(tankId, ChallengeService.action.UP); + case ChallengeService.direction.DOWN: + return new Move(tankId, ChallengeService.action.DOWN); + case ChallengeService.direction.LEFT: + return new Move(tankId, ChallengeService.action.LEFT); + case ChallengeService.direction.RIGHT: + return new Move(tankId, ChallengeService.action.RIGHT); + default: + return new Move(tankId, ChallengeService.action.NONE); + } + } + } +} diff --git a/Entelect.BattleCity.Challenge/App.config b/Entelect.BattleCity.Challenge/App.config new file mode 100644 index 0000000..ef162fd --- /dev/null +++ b/Entelect.BattleCity.Challenge/App.config @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/ChallengeService.wsdl b/Entelect.BattleCity.Challenge/ChallengeService.wsdl new file mode 100644 index 0000000..225faee --- /dev/null +++ b/Entelect.BattleCity.Challenge/ChallengeService.wsdl @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Entelect.BattleCity.Challenge/Entelect.BattleCity.Challenge.csproj b/Entelect.BattleCity.Challenge/Entelect.BattleCity.Challenge.csproj new file mode 100644 index 0000000..83bc159 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Entelect.BattleCity.Challenge.csproj @@ -0,0 +1,109 @@ + + + + + Debug + AnyCPU + {B9BDD8BB-6AB8-47A9-810C-F689C5CE3259} + Exe + Properties + Entelect.BattleCity.Challenge + Entelect.BattleCity.Challenge + v4.5 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + True + True + Reference.svcmap + + + + + + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + + + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + + + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/GameInProgress.cs b/Entelect.BattleCity.Challenge/GameInProgress.cs new file mode 100644 index 0000000..61fa436 --- /dev/null +++ b/Entelect.BattleCity.Challenge/GameInProgress.cs @@ -0,0 +1,64 @@ +using System; +using System.Windows; +using System.Collections.Generic; +using System.Threading; + +namespace Entelect.BattleCity.Challenge +{ + class GameInProgress + { + public static void run(ChallengeService.ChallengeClient service, ChallengeService.state?[][] state) + { + AiAgent agent = new AiAgent(); + + while (true) + { + var game = service.getStatus(); + long currentTick = DateTime.Now.Ticks; + long nextTick = game.nextTickTime.Ticks; + if (currentTick > nextTick) + { + continue; + } + + // AI logic here + Move tank1Move = agent.GetBestMove(state, game, 0); + Move tank2Move = agent.GetBestMove(state, game, 1); + + if (tank1Move != null) + { + service.setActionAsync(tank1Move.Tank, tank1Move.Action); + } + if (tank2Move != null) + { + service.setActionAsync(tank2Move.Tank, tank2Move.Action); + } + + currentTick = DateTime.Now.Ticks; + + long sleepTime = nextTick - currentTick; + if (sleepTime < 0L) + { + Console.Error.WriteLine("ERROR: Gone passed the next tick time"); + } + else + { + Console.WriteLine("Sleeping until {1} for {0}ms", sleepTime, game.nextTickTime.ToString()); + } + + try + { + Thread.Sleep(TimeSpan.FromTicks(sleepTime)); + } + catch (Exception) + { + continue; + } + //while (startTick < nextTick) + //{ + // startTick += (DateTime.Now.Ticks - startTick); + //} + } + } + } +} diff --git a/Entelect.BattleCity.Challenge/Move.cs b/Entelect.BattleCity.Challenge/Move.cs new file mode 100644 index 0000000..1813c59 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Move.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Entelect.BattleCity.Challenge +{ + class Move + { + public int Tank { get; private set; } + public ChallengeService.action Action { get; private set; } + + public Move(int tank, ChallengeService.action action) + { + Tank = tank; + Action = action; + } + } +} diff --git a/Entelect.BattleCity.Challenge/Program.cs b/Entelect.BattleCity.Challenge/Program.cs new file mode 100644 index 0000000..5764426 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Program.cs @@ -0,0 +1,16 @@ +using System.ServiceModel; + +namespace Entelect.BattleCity.Challenge +{ + class Program + { + static void Main(string[] args) + { + var endpointConfigurationName = "ChallengePort"; + var address = new EndpointAddress(args[0]); + var service = new ChallengeService.ChallengeClient(endpointConfigurationName, address); + var state = service.login(); + GameInProgress.run(service, state); + } + } +} diff --git a/Entelect.BattleCity.Challenge/Properties/AssemblyInfo.cs b/Entelect.BattleCity.Challenge/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..97397b4 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Entelect.BattleCity.Challenge")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("Entelect.BattleCity.Challenge")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("8e9e513d-3232-4b92-83dd-13ec54131857")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/ChallengeService.wsdl b/Entelect.BattleCity.Challenge/Service References/ChallengeService/ChallengeService.wsdl new file mode 100644 index 0000000..0d7d4a9 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/ChallengeService.wsdl @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.delta.datasource b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.delta.datasource new file mode 100644 index 0000000..ba30593 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.delta.datasource @@ -0,0 +1,10 @@ + + + + Entelect.BattleCity.Challenge.ChallengeService.delta, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.game.datasource b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.game.datasource new file mode 100644 index 0000000..295ea08 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.game.datasource @@ -0,0 +1,10 @@ + + + + Entelect.BattleCity.Challenge.ChallengeService.game, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse.datasource b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse.datasource new file mode 100644 index 0000000..6701b3e --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse.datasource @@ -0,0 +1,10 @@ + + + + Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.loginResponse.datasource b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.loginResponse.datasource new file mode 100644 index 0000000..edbecd4 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.loginResponse.datasource @@ -0,0 +1,10 @@ + + + + Entelect.BattleCity.Challenge.ChallengeService.loginResponse, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionResponse.datasource b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionResponse.datasource new file mode 100644 index 0000000..4992e1b --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionResponse.datasource @@ -0,0 +1,10 @@ + + + + Entelect.BattleCity.Challenge.ChallengeService.setActionResponse, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse.datasource b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse.datasource new file mode 100644 index 0000000..4ea2b14 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse.datasource @@ -0,0 +1,10 @@ + + + + Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.state.datasource b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.state.datasource new file mode 100644 index 0000000..caa94f3 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.state.datasource @@ -0,0 +1,10 @@ + + + + Entelect.BattleCity.Challenge.ChallengeService.state, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.cs b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.cs new file mode 100644 index 0000000..f7fda50 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.cs @@ -0,0 +1,1104 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18051 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Entelect.BattleCity.Challenge.ChallengeService { + + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class EndOfGameException : object, System.ComponentModel.INotifyPropertyChanged { + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class delta : object, System.ComponentModel.INotifyPropertyChanged { + + private long millisecondsToNextTickField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public long millisecondsToNextTick { + get { + return this.millisecondsToNextTickField; + } + set { + this.millisecondsToNextTickField = value; + this.RaisePropertyChanged("millisecondsToNextTick"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class @base : object, System.ComponentModel.INotifyPropertyChanged { + + private int xField; + + private int yField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int x { + get { + return this.xField; + } + set { + this.xField = value; + this.RaisePropertyChanged("x"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public int y { + get { + return this.yField; + } + set { + this.yField = value; + this.RaisePropertyChanged("y"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class player : object, System.ComponentModel.INotifyPropertyChanged { + + private @base baseField; + + private bullet[] bulletsField; + + private string nameField; + + private unit[] unitsField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public @base @base { + get { + return this.baseField; + } + set { + this.baseField = value; + this.RaisePropertyChanged("base"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("bullets", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true, Order=1)] + public bullet[] bullets { + get { + return this.bulletsField; + } + set { + this.bulletsField = value; + this.RaisePropertyChanged("bullets"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("units", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true, Order=3)] + public unit[] units { + get { + return this.unitsField; + } + set { + this.unitsField = value; + this.RaisePropertyChanged("units"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class bullet : object, System.ComponentModel.INotifyPropertyChanged { + + private direction directionField; + + private bool directionFieldSpecified; + + private int idField; + + private int xField; + + private int yField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public direction direction { + get { + return this.directionField; + } + set { + this.directionField = value; + this.RaisePropertyChanged("direction"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool directionSpecified { + get { + return this.directionFieldSpecified; + } + set { + this.directionFieldSpecified = value; + this.RaisePropertyChanged("directionSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public int id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("id"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)] + public int x { + get { + return this.xField; + } + set { + this.xField = value; + this.RaisePropertyChanged("x"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)] + public int y { + get { + return this.yField; + } + set { + this.yField = value; + this.RaisePropertyChanged("y"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public enum direction { + + /// + NONE, + + /// + UP, + + /// + DOWN, + + /// + LEFT, + + /// + RIGHT, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class unit : object, System.ComponentModel.INotifyPropertyChanged { + + private action actionField; + + private bool actionFieldSpecified; + + private direction directionField; + + private bool directionFieldSpecified; + + private int idField; + + private int xField; + + private int yField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public action action { + get { + return this.actionField; + } + set { + this.actionField = value; + this.RaisePropertyChanged("action"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool actionSpecified { + get { + return this.actionFieldSpecified; + } + set { + this.actionFieldSpecified = value; + this.RaisePropertyChanged("actionSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public direction direction { + get { + return this.directionField; + } + set { + this.directionField = value; + this.RaisePropertyChanged("direction"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool directionSpecified { + get { + return this.directionFieldSpecified; + } + set { + this.directionFieldSpecified = value; + this.RaisePropertyChanged("directionSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)] + public int id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("id"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)] + public int x { + get { + return this.xField; + } + set { + this.xField = value; + this.RaisePropertyChanged("x"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)] + public int y { + get { + return this.yField; + } + set { + this.yField = value; + this.RaisePropertyChanged("y"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public enum action { + + /// + NONE, + + /// + UP, + + /// + DOWN, + + /// + LEFT, + + /// + RIGHT, + + /// + FIRE, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class unitEvent : object, System.ComponentModel.INotifyPropertyChanged { + + private bullet bulletField; + + private int tickTimeField; + + private unit unitField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public bullet bullet { + get { + return this.bulletField; + } + set { + this.bulletField = value; + this.RaisePropertyChanged("bullet"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public int tickTime { + get { + return this.tickTimeField; + } + set { + this.tickTimeField = value; + this.RaisePropertyChanged("tickTime"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)] + public unit unit { + get { + return this.unitField; + } + set { + this.unitField = value; + this.RaisePropertyChanged("unit"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class point : object, System.ComponentModel.INotifyPropertyChanged { + + private int xField; + + private int yField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int x { + get { + return this.xField; + } + set { + this.xField = value; + this.RaisePropertyChanged("x"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public int y { + get { + return this.yField; + } + set { + this.yField = value; + this.RaisePropertyChanged("y"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class blockEvent : object, System.ComponentModel.INotifyPropertyChanged { + + private state newStateField; + + private bool newStateFieldSpecified; + + private point pointField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public state newState { + get { + return this.newStateField; + } + set { + this.newStateField = value; + this.RaisePropertyChanged("newState"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool newStateSpecified { + get { + return this.newStateFieldSpecified; + } + set { + this.newStateFieldSpecified = value; + this.RaisePropertyChanged("newStateSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public point point { + get { + return this.pointField; + } + set { + this.pointField = value; + this.RaisePropertyChanged("point"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public enum state { + + /// + FULL, + + /// + EMPTY, + + /// + OUT_OF_BOUNDS, + + /// + NONE, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class events : object, System.ComponentModel.INotifyPropertyChanged { + + private blockEvent[] blockEventsField; + + private unitEvent[] unitEventsField; + + /// + [System.Xml.Serialization.XmlElementAttribute("blockEvents", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true, Order=0)] + public blockEvent[] blockEvents { + get { + return this.blockEventsField; + } + set { + this.blockEventsField = value; + this.RaisePropertyChanged("blockEvents"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("unitEvents", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true, Order=1)] + public unitEvent[] unitEvents { + get { + return this.unitEventsField; + } + set { + this.unitEventsField = value; + this.RaisePropertyChanged("unitEvents"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class game : object, System.ComponentModel.INotifyPropertyChanged { + + private int currentTickField; + + private events eventsField; + + private long millisecondsToNextTickField; + + private System.DateTime nextTickTimeField; + + private bool nextTickTimeFieldSpecified; + + private string playerNameField; + + private player[] playersField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)] + public int currentTick { + get { + return this.currentTickField; + } + set { + this.currentTickField = value; + this.RaisePropertyChanged("currentTick"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)] + public events events { + get { + return this.eventsField; + } + set { + this.eventsField = value; + this.RaisePropertyChanged("events"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)] + public long millisecondsToNextTick { + get { + return this.millisecondsToNextTickField; + } + set { + this.millisecondsToNextTickField = value; + this.RaisePropertyChanged("millisecondsToNextTick"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)] + public System.DateTime nextTickTime { + get { + return this.nextTickTimeField; + } + set { + this.nextTickTimeField = value; + this.RaisePropertyChanged("nextTickTime"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool nextTickTimeSpecified { + get { + return this.nextTickTimeFieldSpecified; + } + set { + this.nextTickTimeFieldSpecified = value; + this.RaisePropertyChanged("nextTickTimeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)] + public string playerName { + get { + return this.playerNameField; + } + set { + this.playerNameField = value; + this.RaisePropertyChanged("playerName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("players", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true, Order=5)] + public player[] players { + get { + return this.playersField; + } + set { + this.playersField = value; + this.RaisePropertyChanged("players"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.18053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://challenge.entelect.co.za/")] + public partial class NoBlameException : object, System.ComponentModel.INotifyPropertyChanged { + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://challenge.entelect.co.za/", ConfigurationName="ChallengeService.Challenge")] + public interface Challenge { + + // CODEGEN: Parameter 'return' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [return: System.ServiceModel.MessageParameterAttribute(Name="return")] + Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse getStatus(Entelect.BattleCity.Challenge.ChallengeService.getStatus request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + System.Threading.Tasks.Task getStatusAsync(Entelect.BattleCity.Challenge.ChallengeService.getStatus request); + + // CODEGEN: Parameter 'return' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Entelect.BattleCity.Challenge.ChallengeService.EndOfGameException), Action="", Name="EndOfGameException")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [return: System.ServiceModel.MessageParameterAttribute(Name="return")] + Entelect.BattleCity.Challenge.ChallengeService.setActionResponse setAction(Entelect.BattleCity.Challenge.ChallengeService.setAction request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + System.Threading.Tasks.Task setActionAsync(Entelect.BattleCity.Challenge.ChallengeService.setAction request); + + // CODEGEN: Parameter 'return' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlArrayAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Entelect.BattleCity.Challenge.ChallengeService.NoBlameException), Action="", Name="NoBlameException")] + [System.ServiceModel.FaultContractAttribute(typeof(Entelect.BattleCity.Challenge.ChallengeService.EndOfGameException), Action="", Name="EndOfGameException")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [return: System.ServiceModel.MessageParameterAttribute(Name="return")] + Entelect.BattleCity.Challenge.ChallengeService.loginResponse login(Entelect.BattleCity.Challenge.ChallengeService.login request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + System.Threading.Tasks.Task loginAsync(Entelect.BattleCity.Challenge.ChallengeService.login request); + + // CODEGEN: Parameter 'return' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(Entelect.BattleCity.Challenge.ChallengeService.EndOfGameException), Action="", Name="EndOfGameException")] + [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)] + [return: System.ServiceModel.MessageParameterAttribute(Name="return")] + Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse setActions(Entelect.BattleCity.Challenge.ChallengeService.setActions request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + System.Threading.Tasks.Task setActionsAsync(Entelect.BattleCity.Challenge.ChallengeService.setActions request); + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="getStatus", WrapperNamespace="http://challenge.entelect.co.za/", IsWrapped=true)] + public partial class getStatus { + + public getStatus() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="getStatusResponse", WrapperNamespace="http://challenge.entelect.co.za/", IsWrapped=true)] + public partial class getStatusResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://challenge.entelect.co.za/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public Entelect.BattleCity.Challenge.ChallengeService.game @return; + + public getStatusResponse() { + } + + public getStatusResponse(Entelect.BattleCity.Challenge.ChallengeService.game @return) { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="setAction", WrapperNamespace="http://challenge.entelect.co.za/", IsWrapped=true)] + public partial class setAction { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://challenge.entelect.co.za/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public int arg0; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://challenge.entelect.co.za/", Order=1)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public Entelect.BattleCity.Challenge.ChallengeService.action arg1; + + public setAction() { + } + + public setAction(int arg0, Entelect.BattleCity.Challenge.ChallengeService.action arg1) { + this.arg0 = arg0; + this.arg1 = arg1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="setActionResponse", WrapperNamespace="http://challenge.entelect.co.za/", IsWrapped=true)] + public partial class setActionResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://challenge.entelect.co.za/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public Entelect.BattleCity.Challenge.ChallengeService.delta @return; + + public setActionResponse() { + } + + public setActionResponse(Entelect.BattleCity.Challenge.ChallengeService.delta @return) { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="login", WrapperNamespace="http://challenge.entelect.co.za/", IsWrapped=true)] + public partial class login { + + public login() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="loginResponse", WrapperNamespace="http://challenge.entelect.co.za/", IsWrapped=true)] + public partial class loginResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://challenge.entelect.co.za/", Order=0)] + [System.Xml.Serialization.XmlArrayAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + [System.Xml.Serialization.XmlArrayItemAttribute("states", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + [System.Xml.Serialization.XmlArrayItemAttribute("item", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, NestingLevel=1)] + public System.Nullable[][] @return; + + public loginResponse() { + } + + public loginResponse(System.Nullable[][] @return) { + this.@return = @return; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="setActions", WrapperNamespace="http://challenge.entelect.co.za/", IsWrapped=true)] + public partial class setActions { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://challenge.entelect.co.za/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public Entelect.BattleCity.Challenge.ChallengeService.action arg0; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://challenge.entelect.co.za/", Order=1)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public Entelect.BattleCity.Challenge.ChallengeService.action arg1; + + public setActions() { + } + + public setActions(Entelect.BattleCity.Challenge.ChallengeService.action arg0, Entelect.BattleCity.Challenge.ChallengeService.action arg1) { + this.arg0 = arg0; + this.arg1 = arg1; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + [System.ServiceModel.MessageContractAttribute(WrapperName="setActionsResponse", WrapperNamespace="http://challenge.entelect.co.za/", IsWrapped=true)] + public partial class setActionsResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://challenge.entelect.co.za/", Order=0)] + [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] + public Entelect.BattleCity.Challenge.ChallengeService.delta @return; + + public setActionsResponse() { + } + + public setActionsResponse(Entelect.BattleCity.Challenge.ChallengeService.delta @return) { + this.@return = @return; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface ChallengeChannel : Entelect.BattleCity.Challenge.ChallengeService.Challenge, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class ChallengeClient : System.ServiceModel.ClientBase, Entelect.BattleCity.Challenge.ChallengeService.Challenge { + + public ChallengeClient() { + } + + public ChallengeClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public ChallengeClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public ChallengeClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public ChallengeClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse Entelect.BattleCity.Challenge.ChallengeService.Challenge.getStatus(Entelect.BattleCity.Challenge.ChallengeService.getStatus request) { + return base.Channel.getStatus(request); + } + + public Entelect.BattleCity.Challenge.ChallengeService.game getStatus() { + Entelect.BattleCity.Challenge.ChallengeService.getStatus inValue = new Entelect.BattleCity.Challenge.ChallengeService.getStatus(); + Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse retVal = ((Entelect.BattleCity.Challenge.ChallengeService.Challenge)(this)).getStatus(inValue); + return retVal.@return; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Entelect.BattleCity.Challenge.ChallengeService.Challenge.getStatusAsync(Entelect.BattleCity.Challenge.ChallengeService.getStatus request) { + return base.Channel.getStatusAsync(request); + } + + public System.Threading.Tasks.Task getStatusAsync() { + Entelect.BattleCity.Challenge.ChallengeService.getStatus inValue = new Entelect.BattleCity.Challenge.ChallengeService.getStatus(); + return ((Entelect.BattleCity.Challenge.ChallengeService.Challenge)(this)).getStatusAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Entelect.BattleCity.Challenge.ChallengeService.setActionResponse Entelect.BattleCity.Challenge.ChallengeService.Challenge.setAction(Entelect.BattleCity.Challenge.ChallengeService.setAction request) { + return base.Channel.setAction(request); + } + + public Entelect.BattleCity.Challenge.ChallengeService.delta setAction(int arg0, Entelect.BattleCity.Challenge.ChallengeService.action arg1) { + Entelect.BattleCity.Challenge.ChallengeService.setAction inValue = new Entelect.BattleCity.Challenge.ChallengeService.setAction(); + inValue.arg0 = arg0; + inValue.arg1 = arg1; + Entelect.BattleCity.Challenge.ChallengeService.setActionResponse retVal = ((Entelect.BattleCity.Challenge.ChallengeService.Challenge)(this)).setAction(inValue); + return retVal.@return; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Entelect.BattleCity.Challenge.ChallengeService.Challenge.setActionAsync(Entelect.BattleCity.Challenge.ChallengeService.setAction request) { + return base.Channel.setActionAsync(request); + } + + public System.Threading.Tasks.Task setActionAsync(int arg0, Entelect.BattleCity.Challenge.ChallengeService.action arg1) { + Entelect.BattleCity.Challenge.ChallengeService.setAction inValue = new Entelect.BattleCity.Challenge.ChallengeService.setAction(); + inValue.arg0 = arg0; + inValue.arg1 = arg1; + return ((Entelect.BattleCity.Challenge.ChallengeService.Challenge)(this)).setActionAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Entelect.BattleCity.Challenge.ChallengeService.loginResponse Entelect.BattleCity.Challenge.ChallengeService.Challenge.login(Entelect.BattleCity.Challenge.ChallengeService.login request) { + return base.Channel.login(request); + } + + public System.Nullable[][] login() { + Entelect.BattleCity.Challenge.ChallengeService.login inValue = new Entelect.BattleCity.Challenge.ChallengeService.login(); + Entelect.BattleCity.Challenge.ChallengeService.loginResponse retVal = ((Entelect.BattleCity.Challenge.ChallengeService.Challenge)(this)).login(inValue); + return retVal.@return; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Entelect.BattleCity.Challenge.ChallengeService.Challenge.loginAsync(Entelect.BattleCity.Challenge.ChallengeService.login request) { + return base.Channel.loginAsync(request); + } + + public System.Threading.Tasks.Task loginAsync() { + Entelect.BattleCity.Challenge.ChallengeService.login inValue = new Entelect.BattleCity.Challenge.ChallengeService.login(); + return ((Entelect.BattleCity.Challenge.ChallengeService.Challenge)(this)).loginAsync(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse Entelect.BattleCity.Challenge.ChallengeService.Challenge.setActions(Entelect.BattleCity.Challenge.ChallengeService.setActions request) { + return base.Channel.setActions(request); + } + + public Entelect.BattleCity.Challenge.ChallengeService.delta setActions(Entelect.BattleCity.Challenge.ChallengeService.action arg0, Entelect.BattleCity.Challenge.ChallengeService.action arg1) { + Entelect.BattleCity.Challenge.ChallengeService.setActions inValue = new Entelect.BattleCity.Challenge.ChallengeService.setActions(); + inValue.arg0 = arg0; + inValue.arg1 = arg1; + Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse retVal = ((Entelect.BattleCity.Challenge.ChallengeService.Challenge)(this)).setActions(inValue); + return retVal.@return; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + System.Threading.Tasks.Task Entelect.BattleCity.Challenge.ChallengeService.Challenge.setActionsAsync(Entelect.BattleCity.Challenge.ChallengeService.setActions request) { + return base.Channel.setActionsAsync(request); + } + + public System.Threading.Tasks.Task setActionsAsync(Entelect.BattleCity.Challenge.ChallengeService.action arg0, Entelect.BattleCity.Challenge.ChallengeService.action arg1) { + Entelect.BattleCity.Challenge.ChallengeService.setActions inValue = new Entelect.BattleCity.Challenge.ChallengeService.setActions(); + inValue.arg0 = arg0; + inValue.arg1 = arg1; + return ((Entelect.BattleCity.Challenge.ChallengeService.Challenge)(this)).setActionsAsync(inValue); + } + } +} diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.svcmap b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.svcmap new file mode 100644 index 0000000..8cd1468 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.svcmap @@ -0,0 +1,31 @@ + + + + false + true + true + + false + false + false + + + true + Auto + true + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration.svcinfo b/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration.svcinfo new file mode 100644 index 0000000..6bbf9a9 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration.svcinfo @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration91.svcinfo b/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration91.svcinfo new file mode 100644 index 0000000..fea37b0 --- /dev/null +++ b/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration91.svcinfo @@ -0,0 +1,201 @@ + + + + + + + ChallengeServiceSoapBinding + + + + + + + + + + + + + + + + + + + + + StrongWildcard + + + + + + 65536 + + + + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + System.Text.UTF8Encoding + + + Buffered + + + + + + Text + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement + + + Never + + + TransportSelected + + + (Collection) + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Default + + + + + + + + + http://localhost:9090/ChallengePort + + + + + + basicHttpBinding + + + ChallengeServiceSoapBinding + + + ChallengeService.Challenge + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + ChallengePort + + + + + + + + + + + \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/compile.bat b/Entelect.BattleCity.Challenge/compile.bat new file mode 100644 index 0000000..4f3d152 --- /dev/null +++ b/Entelect.BattleCity.Challenge/compile.bat @@ -0,0 +1 @@ +MSBuild.exe /property:Configuration=Release Entelect.BattleCity.Challenge.csproj \ No newline at end of file diff --git a/Entelect.BattleCity.Challenge/start.bat b/Entelect.BattleCity.Challenge/start.bat new file mode 100644 index 0000000..521c376 --- /dev/null +++ b/Entelect.BattleCity.Challenge/start.bat @@ -0,0 +1 @@ +"bin/Release/Entelect.BattleCity.Challenge.exe" %1 \ No newline at end of file -- cgit v1.2.3