diff options
author | Justin Wernick <justin@worthe-it.co.za> | 2022-04-19 21:22:50 +0200 |
---|---|---|
committer | Justin Wernick <justin@worthe-it.co.za> | 2022-04-19 21:22:50 +0200 |
commit | be89211af895548425be999f660a1195efe9fc8a (patch) | |
tree | 19fcd9aaae9c83fe51f81ef57c1f724392a93f8a /2013-battlecity/Entelect.BattleCity.Challenge | |
parent | 0856dc8dc80d3a8624f1d82b944dcbd9e0021446 (diff) |
Refile for merging repos
Diffstat (limited to '2013-battlecity/Entelect.BattleCity.Challenge')
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:<?xml version="1.0" encoding="utf-16"?><Data name="ChallengeServiceSoapBinding" />" bindingType="basicHttpBinding" name="ChallengeServiceSoapBinding" /> + </bindings> + <endpoints> + <endpoint normalizedDigest="<?xml version="1.0" encoding="utf-16"?><Data address="http://localhost:9090/ChallengePort" binding="basicHttpBinding" bindingConfiguration="ChallengeServiceSoapBinding" contract="ChallengeService.Challenge" name="ChallengePort" />" digest="<?xml version="1.0" encoding="utf-16"?><Data address="http://localhost:9090/ChallengePort" binding="basicHttpBinding" bindingConfiguration="ChallengeServiceSoapBinding" contract="ChallengeService.Challenge" name="ChallengePort" />" 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><Header /></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 |