summaryrefslogtreecommitdiff
path: root/2013-battlecity/Entelect.BattleCity.Challenge
diff options
context:
space:
mode:
Diffstat (limited to '2013-battlecity/Entelect.BattleCity.Challenge')
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/AiAgent.cs196
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/App.config21
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/BoardCell.cs16
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Entelect.BattleCity.Challenge.csproj109
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/GameInProgress.cs157
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Move.cs24
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Program.cs27
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Properties/AssemblyInfo.cs36
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/ChallengeService.wsdl294
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.delta.datasource10
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.game.datasource10
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse.datasource10
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.loginResponse.datasource10
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionResponse.datasource10
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse.datasource10
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.state.datasource10
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.cs1104
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.svcmap31
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration.svcinfo10
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration91.svcinfo201
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/compile.bat1
-rw-r--r--2013-battlecity/Entelect.BattleCity.Challenge/start.bat1
22 files changed, 2298 insertions, 0 deletions
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/AiAgent.cs b/2013-battlecity/Entelect.BattleCity.Challenge/AiAgent.cs
new file mode 100644
index 0000000..a1ca0e5
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/AiAgent.cs
@@ -0,0 +1,196 @@
+using System;
+using System.Collections.Generic;
+
+namespace Entelect.BattleCity.Challenge
+{
+ class AiAgent
+ {
+ private int? _lastX;
+ private int? _lastY;
+ private ChallengeService.action _lastAction;
+ private bool _hasShotFromLastPosition;
+
+ private int _tankId;
+
+ private int? _targetX;
+
+ private bool _checkForOpenPathToMiddle;
+ private bool _headingToMiddle;
+
+ public AiAgent(int tankId, bool checkForOpenPathToMiddle)
+ {
+ _tankId = tankId;
+ _checkForOpenPathToMiddle = checkForOpenPathToMiddle;
+ _lastAction = ChallengeService.action.NONE;
+ _hasShotFromLastPosition = false;
+ _headingToMiddle = false;
+ }
+
+ public Move GetBestMove(ChallengeService.game game, BoardCell[][] board, ChallengeService.player me, ChallengeService.player enemy)
+ {
+ Move move = null;
+ ChallengeService.unit tank = findTankInPlayer(_tankId, me);
+
+ if (tank == null)
+ {
+ return null;
+ }
+
+ if (tank.x != _lastX || tank.y != _lastY)
+ {
+ _hasShotFromLastPosition = false;
+ }
+
+ var bulletInAir = checkIsBulletInAir(board, me, tank);
+ var stuckLastTurn = checkStuckLastTurn(tank);
+
+ var enemyBase = enemy.@base;
+
+ var pastMidpoint = (Math.Abs(enemyBase.y-tank.y) < (board[0].Length / 2));
+
+ if (stuckLastTurn && (tank.direction == ChallengeService.direction.UP || tank.direction == ChallengeService.direction.DOWN) && enemyBase.x != tank.x)
+ {
+ _targetX = tank.x + (pastMidpoint!=(tank.x > enemyBase.x) ? +1 : -1);
+ }
+
+ if (_checkForOpenPathToMiddle && !_headingToMiddle && tank.x != enemyBase.x)
+ {
+ _headingToMiddle = testPathToMiddleIsOpen(board, tank, enemyBase);
+ }
+ else if (_checkForOpenPathToMiddle && _headingToMiddle && tank.x == enemyBase.x)
+ {
+ _headingToMiddle = false;
+ }
+
+
+ ChallengeService.direction chosenDirection =
+ _headingToMiddle ?
+ (
+ tank.x > enemyBase.x ?
+ ChallengeService.direction.LEFT :
+ ChallengeService.direction.RIGHT
+ ) :
+ (
+ tank.y != enemyBase.y ?
+ (
+ _targetX.HasValue && _targetX != tank.x ?
+ (
+ tank.x > _targetX ?
+ ChallengeService.direction.LEFT :
+ ChallengeService.direction.RIGHT
+ ) :
+ (
+ 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 || _headingToMiddle)
+ {
+ move = MoveInDirection(tank.id, chosenDirection);
+ }
+ else
+ {
+ move = new Move(tank.id, ChallengeService.action.FIRE);
+ _hasShotFromLastPosition = true;
+ }
+
+ _lastX = tank.x;
+ _lastY = tank.y;
+ _lastAction = move.Action;
+
+ return move;
+ }
+
+ private bool testPathToMiddleIsOpen(BoardCell[][] board, ChallengeService.unit tank, ChallengeService.@base enemyBase)
+ {
+ var minY = tank.y - 2;
+ var maxY = tank.y + 2;
+ var minX = Math.Min(tank.x, enemyBase.x)-2;
+ var maxX = Math.Max(tank.x, enemyBase.x)+2;
+
+ bool insideRange = board.Length > maxX && board[maxX].Length > maxY && 0 <= minX && 0 <= minY;
+ if (!insideRange)
+ {
+ return false;
+ }
+
+ for (int x = minX; x <= maxX; ++x)
+ {
+ for (int y = minY; y <= maxY; ++y)
+ {
+ if (board[x][y] != BoardCell.EMPTY)
+ {
+ return false;
+ }
+
+ }
+ }
+
+ return true;
+ }
+
+ private ChallengeService.unit findTankInPlayer(int tankId, ChallengeService.player me)
+ {
+ if (me != null && me.units != null)
+ {
+ foreach (var unit in me.units)
+ {
+ if (unit.id == _tankId)
+ {
+ return unit;
+ }
+ }
+ }
+ return null;
+ }
+
+ 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);
+ }
+ }
+
+ private bool checkIsBulletInAir(BoardCell[][] board, ChallengeService.player me, ChallengeService.unit tank)
+ {
+ var bulletInAir = false;
+ if (me.bullets != null)
+ {
+ foreach (var bullet in me.bullets)
+ {
+ if (Math.Abs(bullet.x - tank.x) < board.Length / 6)
+ {
+ bulletInAir = true;
+ }
+ }
+ }
+
+ return bulletInAir;
+ }
+
+ private bool checkStuckLastTurn(ChallengeService.unit tank)
+ {
+ return !(_lastAction == ChallengeService.action.FIRE || _lastAction == ChallengeService.action.NONE)
+ && tank.x == _lastX && tank.y == _lastY
+ && _hasShotFromLastPosition;
+ }
+ }
+}
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/App.config b/2013-battlecity/Entelect.BattleCity.Challenge/App.config
new file mode 100644
index 0000000..ef162fd
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/App.config
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <startup>
+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+ </startup>
+ <system.serviceModel>
+ <bindings>
+ <basicHttpBinding>
+ <binding name="ChallengeServiceSoapBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
+ <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
+ maxArrayLength="16348" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+ </binding>
+ </basicHttpBinding>
+ </bindings>
+ <client>
+ <endpoint address="http://localhost:9090/ChallengePort" binding="basicHttpBinding"
+ bindingConfiguration="ChallengeServiceSoapBinding" contract="ChallengeService.Challenge"
+ name="ChallengePort" />
+ </client>
+ </system.serviceModel>
+</configuration> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/BoardCell.cs b/2013-battlecity/Entelect.BattleCity.Challenge/BoardCell.cs
new file mode 100644
index 0000000..bd7063e
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/BoardCell.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Entelect.BattleCity.Challenge
+{
+ public enum BoardCell
+ {
+ EMPTY,
+ WALL,
+ BASE,
+ OUT_OF_BOUNDS
+ }
+}
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Entelect.BattleCity.Challenge.csproj b/2013-battlecity/Entelect.BattleCity.Challenge/Entelect.BattleCity.Challenge.csproj
new file mode 100644
index 0000000..0a8cb97
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Entelect.BattleCity.Challenge.csproj
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{B9BDD8BB-6AB8-47A9-810C-F689C5CE3259}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Entelect.BattleCity.Challenge</RootNamespace>
+ <AssemblyName>Entelect.BattleCity.Challenge</AssemblyName>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Runtime.Serialization" />
+ <Reference Include="System.ServiceModel" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="AiAgent.cs" />
+ <Compile Include="BoardCell.cs" />
+ <Compile Include="GameInProgress.cs" />
+ <Compile Include="Move.cs" />
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Service References\ChallengeService\Reference.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Reference.svcmap</DependentUpon>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="App.config" />
+ <None Include="Service References\ChallengeService\ChallengeService.wsdl" />
+ <None Include="Service References\ChallengeService\Entelect.BattleCity.Challenge.ChallengeService.delta.datasource">
+ <DependentUpon>Reference.svcmap</DependentUpon>
+ </None>
+ <None Include="Service References\ChallengeService\Entelect.BattleCity.Challenge.ChallengeService.game.datasource">
+ <DependentUpon>Reference.svcmap</DependentUpon>
+ </None>
+ <None Include="Service References\ChallengeService\Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse.datasource">
+ <DependentUpon>Reference.svcmap</DependentUpon>
+ </None>
+ <None Include="Service References\ChallengeService\Entelect.BattleCity.Challenge.ChallengeService.loginResponse.datasource">
+ <DependentUpon>Reference.svcmap</DependentUpon>
+ </None>
+ <None Include="Service References\ChallengeService\Entelect.BattleCity.Challenge.ChallengeService.setActionResponse.datasource">
+ <DependentUpon>Reference.svcmap</DependentUpon>
+ </None>
+ <None Include="Service References\ChallengeService\Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse.datasource">
+ <DependentUpon>Reference.svcmap</DependentUpon>
+ </None>
+ <None Include="Service References\ChallengeService\Entelect.BattleCity.Challenge.ChallengeService.state.datasource">
+ <DependentUpon>Reference.svcmap</DependentUpon>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <WCFMetadata Include="Service References\" />
+ </ItemGroup>
+ <ItemGroup>
+ <WCFMetadataStorage Include="Service References\ChallengeService\" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Service References\ChallengeService\configuration91.svcinfo" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Service References\ChallengeService\configuration.svcinfo" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Service References\ChallengeService\Reference.svcmap">
+ <Generator>WCF Proxy Generator</Generator>
+ <LastGenOutput>Reference.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/GameInProgress.cs b/2013-battlecity/Entelect.BattleCity.Challenge/GameInProgress.cs
new file mode 100644
index 0000000..23a6550
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/GameInProgress.cs
@@ -0,0 +1,157 @@
+using System;
+using System.Windows;
+using System.Collections.Generic;
+using System.Threading;
+using System.Diagnostics;
+using System.Text;
+
+namespace Entelect.BattleCity.Challenge
+{
+ public class GameInProgress
+ {
+ private static ChallengeService.action _nullAction = ChallengeService.action.NONE;
+
+ private ChallengeService.ChallengeClient _service;
+ private ChallengeService.game _currentState;
+ private ChallengeService.player _me;
+ private ChallengeService.player _enemy;
+
+ private BoardCell[][] _board;
+
+ private AiAgent _tank1Ai;
+ private AiAgent _tank2Ai;
+
+ private Stopwatch _stepTimer;
+
+ public GameInProgress(ChallengeService.ChallengeClient service, ChallengeService.state?[][] board)
+ {
+ _service = service;
+ _board = getBoardCellArrayFromServiceStates(board);
+
+ updateGameStatus(true);
+ _board[_me.@base.x][_me.@base.y] = BoardCell.BASE;
+ _board[_enemy.@base.x][_enemy.@base.y] = BoardCell.BASE;
+
+ _tank1Ai = new AiAgent(_me.units[0].id, false);
+ _tank2Ai = new AiAgent(_me.units[1].id, true);
+ }
+
+
+
+ public void run()
+ {
+ while (true)
+ {
+ if (_currentState.millisecondsToNextTick-_stepTimer.ElapsedMilliseconds < 0)
+ {
+ updateGameStatus();
+ continue;
+ }
+ makeNextMove();
+ waitForNextTick();
+
+ updateGameStatus();
+ }
+ }
+
+ private void makeNextMove()
+ {
+ Move tank1Move = _tank1Ai.GetBestMove(_currentState, _board, _me, _enemy);
+ Move tank2Move = _tank2Ai.GetBestMove(_currentState, _board, _me, _enemy);
+
+ sendMovesToService(tank1Move, tank2Move);
+ }
+
+ private void sendMovesToService(Move tank1Move, Move tank2Move)
+ {
+ if (tank1Move != null && tank2Move != null)
+ {
+ _service.setActions(tank1Move.Action, tank2Move.Action);
+ }
+ else if (tank1Move != null)
+ {
+ _service.setAction(tank1Move.Tank, tank1Move.Action);
+ }
+ else if (tank2Move != null)
+ {
+ _service.setAction(tank2Move.Tank, tank2Move.Action);
+ }
+ }
+
+ private void waitForNextTick()
+ {
+ var sleepTime = TimeSpan.FromMilliseconds(_currentState.millisecondsToNextTick-_stepTimer.ElapsedMilliseconds+500);
+ if (sleepTime.Ticks > 0L)
+ {
+ try
+ {
+ Thread.Sleep(sleepTime);
+ }
+ catch (Exception ex)
+ {
+ }
+ }
+ }
+
+ private void updateGameStatus(bool firstTime = false)
+ {
+ if (firstTime)
+ {
+ _currentState = _service.getStatus();
+ }
+ else
+ {
+ var previousTick = _currentState.currentTick;
+ while (previousTick == _currentState.currentTick)
+ {
+ _currentState = _service.getStatus();
+ }
+ }
+ _stepTimer = Stopwatch.StartNew();
+
+ foreach (ChallengeService.player player in _currentState.players)
+ {
+ if (player.name.Equals(_currentState.playerName))
+ {
+ _me = player;
+ }
+ else
+ {
+ _enemy = player;
+ }
+ }
+ }
+
+ private BoardCell[][] getBoardCellArrayFromServiceStates(ChallengeService.state?[][] stateBoard)
+ {
+ BoardCell[][] newBoard = new BoardCell[stateBoard.Length][];
+ for (int x = 0; x < stateBoard.Length; ++x)
+ {
+ newBoard[x] = new BoardCell[stateBoard[x].Length];
+ for (int y = 0; y < stateBoard[x].Length; ++y)
+ {
+ switch (stateBoard[x][y])
+ {
+ case null:
+ case ChallengeService.state.NONE:
+ case ChallengeService.state.EMPTY:
+ newBoard[x][y] = BoardCell.EMPTY;
+ break;
+ case ChallengeService.state.FULL:
+ newBoard[x][y] = BoardCell.WALL;
+ break;
+ case ChallengeService.state.OUT_OF_BOUNDS:
+ newBoard[x][y] = BoardCell.OUT_OF_BOUNDS;
+ break;
+ default:
+ newBoard[x][y] = BoardCell.OUT_OF_BOUNDS;
+ break;
+ }
+
+ }
+ }
+
+ return newBoard;
+ }
+ }
+}
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Move.cs b/2013-battlecity/Entelect.BattleCity.Challenge/Move.cs
new file mode 100644
index 0000000..7fba664
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Move.cs
@@ -0,0 +1,24 @@
+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;
+ }
+
+ public override string ToString()
+ {
+ return string.Format("Tank {0}: {1}", Tank, Action.ToString());
+ }
+ }
+}
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Program.cs b/2013-battlecity/Entelect.BattleCity.Challenge/Program.cs
new file mode 100644
index 0000000..376807a
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Program.cs
@@ -0,0 +1,27 @@
+using System;
+using System.ServiceModel;
+
+namespace Entelect.BattleCity.Challenge
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ try
+ {
+ var endpointConfigurationName = "ChallengePort";
+ var address = new EndpointAddress(args[0]);
+ var service = new ChallengeService.ChallengeClient(endpointConfigurationName, address);
+ var board = service.login();
+
+ var game = new GameInProgress(service, board);
+ game.run();
+ }
+ catch (Exception ex)
+ {
+ Console.Error.WriteLine("Uncaught exception thrown. Exiting.");
+ Console.Error.WriteLine(ex.StackTrace.ToString());
+ }
+ }
+ }
+}
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Properties/AssemblyInfo.cs b/2013-battlecity/Entelect.BattleCity.Challenge/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..97397b4
--- /dev/null
+++ b/2013-battlecity/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/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/ChallengeService.wsdl b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/ChallengeService.wsdl
new file mode 100644
index 0000000..0d7d4a9
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/ChallengeService.wsdl
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://challenge.entelect.co.za/" name="ChallengeService" targetNamespace="http://challenge.entelect.co.za/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://challenge.entelect.co.za/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="getStatus" type="tns:getStatus" />
+ <xs:element name="getStatusResponse" type="tns:getStatusResponse" />
+ <xs:element name="login" type="tns:login" />
+ <xs:element name="loginResponse" type="tns:loginResponse" />
+ <xs:element name="setAction" type="tns:setAction" />
+ <xs:element name="setActionResponse" type="tns:setActionResponse" />
+ <xs:element name="setActions" type="tns:setActions" />
+ <xs:element name="setActionsResponse" type="tns:setActionsResponse" />
+ <xs:complexType name="getStatus">
+ <xs:sequence />
+ </xs:complexType>
+ <xs:complexType name="getStatusResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return" type="tns:game" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="game">
+ <xs:sequence>
+ <xs:element name="currentTick" type="xs:int" />
+ <xs:element minOccurs="0" name="events" type="tns:events" />
+ <xs:element name="millisecondsToNextTick" type="xs:long" />
+ <xs:element minOccurs="0" name="nextTickTime" type="xs:dateTime" />
+ <xs:element minOccurs="0" name="playerName" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="players" nillable="true" type="tns:player" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="events">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="blockEvents" nillable="true" type="tns:blockEvent" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="unitEvents" nillable="true" type="tns:unitEvent" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="blockEvent">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="newState" type="tns:state" />
+ <xs:element minOccurs="0" name="point" type="tns:point" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="point">
+ <xs:sequence>
+ <xs:element name="x" type="xs:int" />
+ <xs:element name="y" type="xs:int" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="unitEvent">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="bullet" type="tns:bullet" />
+ <xs:element name="tickTime" type="xs:int" />
+ <xs:element minOccurs="0" name="unit" type="tns:unit" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="bullet">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="direction" type="tns:direction" />
+ <xs:element name="id" type="xs:int" />
+ <xs:element name="x" type="xs:int" />
+ <xs:element name="y" type="xs:int" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="unit">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="action" type="tns:action" />
+ <xs:element minOccurs="0" name="direction" type="tns:direction" />
+ <xs:element name="id" type="xs:int" />
+ <xs:element name="x" type="xs:int" />
+ <xs:element name="y" type="xs:int" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="player">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="base" type="tns:base" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="bullets" nillable="true" type="tns:bullet" />
+ <xs:element minOccurs="0" name="name" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="units" nillable="true" type="tns:unit" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="base">
+ <xs:sequence>
+ <xs:element name="x" type="xs:int" />
+ <xs:element name="y" type="xs:int" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="abstractCollection" abstract="true">
+ <xs:sequence />
+ </xs:complexType>
+ <xs:complexType name="abstractList" abstract="true">
+ <xs:complexContent mixed="false">
+ <xs:extension base="tns:abstractCollection">
+ <xs:sequence />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="arrayList">
+ <xs:complexContent mixed="false">
+ <xs:extension base="tns:abstractList">
+ <xs:sequence />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="setAction">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:int" />
+ <xs:element minOccurs="0" name="arg1" type="tns:action" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="setActionResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return" type="tns:delta" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="delta">
+ <xs:sequence>
+ <xs:element name="millisecondsToNextTick" type="xs:long" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="login">
+ <xs:sequence />
+ </xs:complexType>
+ <xs:complexType name="loginResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return" type="tns:board" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="board">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="states" nillable="true" type="tns:stateArray" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="setActions">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="arg0" type="tns:action" />
+ <xs:element minOccurs="0" name="arg1" type="tns:action" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="setActionsResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return" type="tns:delta" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="state">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FULL" />
+ <xs:enumeration value="EMPTY" />
+ <xs:enumeration value="OUT_OF_BOUNDS" />
+ <xs:enumeration value="NONE" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="direction">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NONE" />
+ <xs:enumeration value="UP" />
+ <xs:enumeration value="DOWN" />
+ <xs:enumeration value="LEFT" />
+ <xs:enumeration value="RIGHT" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="action">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NONE" />
+ <xs:enumeration value="UP" />
+ <xs:enumeration value="DOWN" />
+ <xs:enumeration value="LEFT" />
+ <xs:enumeration value="RIGHT" />
+ <xs:enumeration value="FIRE" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="stateArray" final="#all">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="item" nillable="true" type="tns:state" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="EndOfGameException" type="tns:EndOfGameException" />
+ <xs:complexType name="EndOfGameException">
+ <xs:sequence />
+ </xs:complexType>
+ <xs:element name="NoBlameException" type="tns:NoBlameException" />
+ <xs:complexType name="NoBlameException">
+ <xs:sequence />
+ </xs:complexType>
+ </xs:schema>
+ </wsdl:types>
+ <wsdl:message name="setAction">
+ <wsdl:part name="parameters" element="tns:setAction" />
+ </wsdl:message>
+ <wsdl:message name="EndOfGameException">
+ <wsdl:part name="EndOfGameException" element="tns:EndOfGameException" />
+ </wsdl:message>
+ <wsdl:message name="setActions">
+ <wsdl:part name="parameters" element="tns:setActions" />
+ </wsdl:message>
+ <wsdl:message name="login">
+ <wsdl:part name="parameters" element="tns:login" />
+ </wsdl:message>
+ <wsdl:message name="setActionsResponse">
+ <wsdl:part name="parameters" element="tns:setActionsResponse" />
+ </wsdl:message>
+ <wsdl:message name="setActionResponse">
+ <wsdl:part name="parameters" element="tns:setActionResponse" />
+ </wsdl:message>
+ <wsdl:message name="loginResponse">
+ <wsdl:part name="parameters" element="tns:loginResponse" />
+ </wsdl:message>
+ <wsdl:message name="NoBlameException">
+ <wsdl:part name="NoBlameException" element="tns:NoBlameException" />
+ </wsdl:message>
+ <wsdl:message name="getStatus">
+ <wsdl:part name="parameters" element="tns:getStatus" />
+ </wsdl:message>
+ <wsdl:message name="getStatusResponse">
+ <wsdl:part name="parameters" element="tns:getStatusResponse" />
+ </wsdl:message>
+ <wsdl:portType name="Challenge">
+ <wsdl:operation name="getStatus">
+ <wsdl:input name="getStatus" message="tns:getStatus" />
+ <wsdl:output name="getStatusResponse" message="tns:getStatusResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="setAction">
+ <wsdl:input name="setAction" message="tns:setAction" />
+ <wsdl:output name="setActionResponse" message="tns:setActionResponse" />
+ <wsdl:fault name="EndOfGameException" message="tns:EndOfGameException" />
+ </wsdl:operation>
+ <wsdl:operation name="login">
+ <wsdl:input name="login" message="tns:login" />
+ <wsdl:output name="loginResponse" message="tns:loginResponse" />
+ <wsdl:fault name="NoBlameException" message="tns:NoBlameException" />
+ <wsdl:fault name="EndOfGameException" message="tns:EndOfGameException" />
+ </wsdl:operation>
+ <wsdl:operation name="setActions">
+ <wsdl:input name="setActions" message="tns:setActions" />
+ <wsdl:output name="setActionsResponse" message="tns:setActionsResponse" />
+ <wsdl:fault name="EndOfGameException" message="tns:EndOfGameException" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="ChallengeServiceSoapBinding" type="tns:Challenge">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getStatus">
+ <soap:operation soapAction="" style="document" />
+ <wsdl:input name="getStatus">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="getStatusResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="setAction">
+ <soap:operation soapAction="" style="document" />
+ <wsdl:input name="setAction">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="setActionResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ <wsdl:fault name="EndOfGameException">
+ <soap:fault use="literal" name="EndOfGameException" namespace="" />
+ </wsdl:fault>
+ </wsdl:operation>
+ <wsdl:operation name="login">
+ <soap:operation soapAction="" style="document" />
+ <wsdl:input name="login">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="loginResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ <wsdl:fault name="NoBlameException">
+ <soap:fault use="literal" name="NoBlameException" namespace="" />
+ </wsdl:fault>
+ <wsdl:fault name="EndOfGameException">
+ <soap:fault use="literal" name="EndOfGameException" namespace="" />
+ </wsdl:fault>
+ </wsdl:operation>
+ <wsdl:operation name="setActions">
+ <soap:operation soapAction="" style="document" />
+ <wsdl:input name="setActions">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="setActionsResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ <wsdl:fault name="EndOfGameException">
+ <soap:fault use="literal" name="EndOfGameException" namespace="" />
+ </wsdl:fault>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="ChallengeService">
+ <wsdl:port name="ChallengePort" binding="tns:ChallengeServiceSoapBinding">
+ <soap:address location="http://localhost:9090/ChallengePort" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.delta.datasource b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.delta.datasource
new file mode 100644
index 0000000..ba30593
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.delta.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="delta" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>Entelect.BattleCity.Challenge.ChallengeService.delta, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.game.datasource b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.game.datasource
new file mode 100644
index 0000000..295ea08
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.game.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="game" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>Entelect.BattleCity.Challenge.ChallengeService.game, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse.datasource b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse.datasource
new file mode 100644
index 0000000..6701b3e
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="getStatusResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.loginResponse.datasource b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.loginResponse.datasource
new file mode 100644
index 0000000..edbecd4
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.loginResponse.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="loginResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>Entelect.BattleCity.Challenge.ChallengeService.loginResponse, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionResponse.datasource b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionResponse.datasource
new file mode 100644
index 0000000..4992e1b
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionResponse.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="setActionResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>Entelect.BattleCity.Challenge.ChallengeService.setActionResponse, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse.datasource b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse.datasource
new file mode 100644
index 0000000..4ea2b14
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="setActionsResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.state.datasource b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.state.datasource
new file mode 100644
index 0000000..caa94f3
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Entelect.BattleCity.Challenge.ChallengeService.state.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="state" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>Entelect.BattleCity.Challenge.ChallengeService.state, Service References.ChallengeService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.cs b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.cs
new file mode 100644
index 0000000..f7fda50
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.cs
@@ -0,0 +1,1104 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// 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.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Entelect.BattleCity.Challenge.ChallengeService {
+
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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;
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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;
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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;
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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;
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool directionSpecified {
+ get {
+ return this.directionFieldSpecified;
+ }
+ set {
+ this.directionFieldSpecified = value;
+ this.RaisePropertyChanged("directionSpecified");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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 {
+
+ /// <remarks/>
+ NONE,
+
+ /// <remarks/>
+ UP,
+
+ /// <remarks/>
+ DOWN,
+
+ /// <remarks/>
+ LEFT,
+
+ /// <remarks/>
+ RIGHT,
+ }
+
+ /// <remarks/>
+ [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;
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool actionSpecified {
+ get {
+ return this.actionFieldSpecified;
+ }
+ set {
+ this.actionFieldSpecified = value;
+ this.RaisePropertyChanged("actionSpecified");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool directionSpecified {
+ get {
+ return this.directionFieldSpecified;
+ }
+ set {
+ this.directionFieldSpecified = value;
+ this.RaisePropertyChanged("directionSpecified");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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 {
+
+ /// <remarks/>
+ NONE,
+
+ /// <remarks/>
+ UP,
+
+ /// <remarks/>
+ DOWN,
+
+ /// <remarks/>
+ LEFT,
+
+ /// <remarks/>
+ RIGHT,
+
+ /// <remarks/>
+ FIRE,
+ }
+
+ /// <remarks/>
+ [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;
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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;
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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;
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool newStateSpecified {
+ get {
+ return this.newStateFieldSpecified;
+ }
+ set {
+ this.newStateFieldSpecified = value;
+ this.RaisePropertyChanged("newStateSpecified");
+ }
+ }
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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 {
+
+ /// <remarks/>
+ FULL,
+
+ /// <remarks/>
+ EMPTY,
+
+ /// <remarks/>
+ OUT_OF_BOUNDS,
+
+ /// <remarks/>
+ NONE,
+ }
+
+ /// <remarks/>
+ [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;
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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;
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool nextTickTimeSpecified {
+ get {
+ return this.nextTickTimeFieldSpecified;
+ }
+ set {
+ this.nextTickTimeFieldSpecified = value;
+ this.RaisePropertyChanged("nextTickTimeSpecified");
+ }
+ }
+
+ /// <remarks/>
+ [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");
+ }
+ }
+
+ /// <remarks/>
+ [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));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [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<Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse> 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<Entelect.BattleCity.Challenge.ChallengeService.setActionResponse> 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<Entelect.BattleCity.Challenge.ChallengeService.loginResponse> 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<Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse> 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<state>[][] @return;
+
+ public loginResponse() {
+ }
+
+ public loginResponse(System.Nullable<state>[][] @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>, 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.getStatusResponse> Entelect.BattleCity.Challenge.ChallengeService.Challenge.getStatusAsync(Entelect.BattleCity.Challenge.ChallengeService.getStatus request) {
+ return base.Channel.getStatusAsync(request);
+ }
+
+ public System.Threading.Tasks.Task<Entelect.BattleCity.Challenge.ChallengeService.getStatusResponse> 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.setActionResponse> Entelect.BattleCity.Challenge.ChallengeService.Challenge.setActionAsync(Entelect.BattleCity.Challenge.ChallengeService.setAction request) {
+ return base.Channel.setActionAsync(request);
+ }
+
+ public System.Threading.Tasks.Task<Entelect.BattleCity.Challenge.ChallengeService.setActionResponse> 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<state>[][] 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.loginResponse> Entelect.BattleCity.Challenge.ChallengeService.Challenge.loginAsync(Entelect.BattleCity.Challenge.ChallengeService.login request) {
+ return base.Channel.loginAsync(request);
+ }
+
+ public System.Threading.Tasks.Task<Entelect.BattleCity.Challenge.ChallengeService.loginResponse> 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.setActionsResponse> Entelect.BattleCity.Challenge.ChallengeService.Challenge.setActionsAsync(Entelect.BattleCity.Challenge.ChallengeService.setActions request) {
+ return base.Channel.setActionsAsync(request);
+ }
+
+ public System.Threading.Tasks.Task<Entelect.BattleCity.Challenge.ChallengeService.setActionsResponse> 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/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.svcmap b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.svcmap
new file mode 100644
index 0000000..8cd1468
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/Reference.svcmap
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ReferenceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="e8b44f4a-1597-4192-bc17-217131128c7c" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
+ <ClientOptions>
+ <GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
+ <GenerateTaskBasedAsynchronousMethod>true</GenerateTaskBasedAsynchronousMethod>
+ <EnableDataBinding>true</EnableDataBinding>
+ <ExcludedTypes />
+ <ImportXmlTypes>false</ImportXmlTypes>
+ <GenerateInternalTypes>false</GenerateInternalTypes>
+ <GenerateMessageContracts>false</GenerateMessageContracts>
+ <NamespaceMappings />
+ <CollectionMappings />
+ <GenerateSerializableTypes>true</GenerateSerializableTypes>
+ <Serializer>Auto</Serializer>
+ <UseSerializerForFaults>true</UseSerializerForFaults>
+ <ReferenceAllAssemblies>true</ReferenceAllAssemblies>
+ <ReferencedAssemblies />
+ <ReferencedDataContractTypes />
+ <ServiceContractMappings />
+ </ClientOptions>
+ <MetadataSources>
+ <MetadataSource Address="C:\Workspace\Development\Entelect\C#.bot - starter pack\Entelect.BattleCity.Challenge\ChallengeService.wsdl" Protocol="file" SourceId="1" />
+ </MetadataSources>
+ <Metadata>
+ <MetadataFile FileName="ChallengeService.wsdl" MetadataType="Wsdl" ID="8f3e4ac3-8695-416b-ac20-ca2048dd4ef5" SourceId="1" SourceUrl="file:///C:/Workspace/Development/Entelect/C%23.bot - starter pack/Entelect.BattleCity.Challenge/ChallengeService.wsdl" />
+ </Metadata>
+ <Extensions>
+ <ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
+ <ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
+ </Extensions>
+</ReferenceGroup> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration.svcinfo b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration.svcinfo
new file mode 100644
index 0000000..6bbf9a9
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration.svcinfo
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configurationSnapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-wcfconfigurationsnapshot">
+ <behaviors />
+ <bindings>
+ <binding digest="System.ServiceModel.Configuration.BasicHttpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data name=&quot;ChallengeServiceSoapBinding&quot; /&gt;" bindingType="basicHttpBinding" name="ChallengeServiceSoapBinding" />
+ </bindings>
+ <endpoints>
+ <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:9090/ChallengePort&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;ChallengeServiceSoapBinding&quot; contract=&quot;ChallengeService.Challenge&quot; name=&quot;ChallengePort&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:9090/ChallengePort&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;ChallengeServiceSoapBinding&quot; contract=&quot;ChallengeService.Challenge&quot; name=&quot;ChallengePort&quot; /&gt;" contractName="ChallengeService.Challenge" name="ChallengePort" />
+ </endpoints>
+</configurationSnapshot> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration91.svcinfo b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration91.svcinfo
new file mode 100644
index 0000000..fea37b0
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/Service References/ChallengeService/configuration91.svcinfo
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="ClmKNZHJo7S7Ca55qfTBnf2SHrs=">
+ <bindingConfigurations>
+ <bindingConfiguration bindingType="basicHttpBinding" name="ChallengeServiceSoapBinding">
+ <properties>
+ <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>ChallengeServiceSoapBinding</serializedValue>
+ </property>
+ <property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/allowCookies" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/bypassProxyOnLocal" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>StrongWildcard</serializedValue>
+ </property>
+ <property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>65536</serializedValue>
+ </property>
+ <property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/proxyAddress" isComplexType="false" isExplicitlyDefined="false" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
+ </property>
+ <property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>0</serializedValue>
+ </property>
+ <property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>0</serializedValue>
+ </property>
+ <property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>0</serializedValue>
+ </property>
+ <property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>0</serializedValue>
+ </property>
+ <property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>0</serializedValue>
+ </property>
+ <property path="/textEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.Text.Encoding, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.Text.UTF8Encoding</serializedValue>
+ </property>
+ <property path="/transferMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>Buffered</serializedValue>
+ </property>
+ <property path="/useDefaultWebProxy" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/messageEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.WSMessageEncoding, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>Text</serializedValue>
+ </property>
+ <property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.BasicHttpSecurityElement</serializedValue>
+ </property>
+ <property path="/security/mode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpSecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>None</serializedValue>
+ </property>
+ <property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.HttpTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.HttpTransportSecurityElement</serializedValue>
+ </property>
+ <property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpClientCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>None</serializedValue>
+ </property>
+ <property path="/security/transport/proxyCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpProxyCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>None</serializedValue>
+ </property>
+ <property path="/security/transport/extendedProtectionPolicy" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement</serializedValue>
+ </property>
+ <property path="/security/transport/extendedProtectionPolicy/policyEnforcement" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.PolicyEnforcement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>Never</serializedValue>
+ </property>
+ <property path="/security/transport/extendedProtectionPolicy/protectionScenario" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.ProtectionScenario, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>TransportSelected</serializedValue>
+ </property>
+ <property path="/security/transport/extendedProtectionPolicy/customServiceNames" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElementCollection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>(Collection)</serializedValue>
+ </property>
+ <property path="/security/transport/realm" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpMessageSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.BasicHttpMessageSecurityElement</serializedValue>
+ </property>
+ <property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpMessageCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>UserName</serializedValue>
+ </property>
+ <property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>Default</serializedValue>
+ </property>
+ </properties>
+ </bindingConfiguration>
+ </bindingConfigurations>
+ <endpoints>
+ <endpoint name="ChallengePort" contract="ChallengeService.Challenge" bindingType="basicHttpBinding" address="http://localhost:9090/ChallengePort" bindingConfiguration="ChallengeServiceSoapBinding">
+ <properties>
+ <property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>http://localhost:9090/ChallengePort</serializedValue>
+ </property>
+ <property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>basicHttpBinding</serializedValue>
+ </property>
+ <property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>ChallengeServiceSoapBinding</serializedValue>
+ </property>
+ <property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>ChallengeService.Challenge</serializedValue>
+ </property>
+ <property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
+ </property>
+ <property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>&lt;Header /&gt;</serializedValue>
+ </property>
+ <property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
+ </property>
+ <property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
+ </property>
+ <property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
+ </property>
+ <property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
+ </property>
+ <property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
+ </property>
+ <property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
+ </property>
+ <property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
+ </property>
+ <property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>My</serializedValue>
+ </property>
+ <property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>LocalMachine</serializedValue>
+ </property>
+ <property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>FindBySubjectDistinguishedName</serializedValue>
+ </property>
+ <property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>False</serializedValue>
+ </property>
+ <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue>ChallengePort</serializedValue>
+ </property>
+ <property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ <property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <serializedValue />
+ </property>
+ </properties>
+ </endpoint>
+ </endpoints>
+</SavedWcfConfigurationInformation> \ No newline at end of file
diff --git a/2013-battlecity/Entelect.BattleCity.Challenge/compile.bat b/2013-battlecity/Entelect.BattleCity.Challenge/compile.bat
new file mode 100644
index 0000000..4f3d152
--- /dev/null
+++ b/2013-battlecity/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/2013-battlecity/Entelect.BattleCity.Challenge/start.bat b/2013-battlecity/Entelect.BattleCity.Challenge/start.bat
new file mode 100644
index 0000000..521c376
--- /dev/null
+++ b/2013-battlecity/Entelect.BattleCity.Challenge/start.bat
@@ -0,0 +1 @@
+"bin/Release/Entelect.BattleCity.Challenge.exe" %1 \ No newline at end of file