<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>Silverlight TruckWars</title><link>http://www.codeplex.com/SilverlightTruckWars/Project/ProjectRss.aspx</link><description>TruckWars is a simple SilverLight real-time-strategy game.  For each level, you control various trucks &amp;#40;and other vehicles&amp;#41;, and use them to push down all the green buttons. Enemy trucks will try t...</description><item><title>UPDATED RELEASE: Release 1.3 (Nov 16, 2007)</title><link>http://www.codeplex.com/SilverlightTruckWars/Release/ProjectReleases.aspx?ReleaseId=8458</link><description>&lt;div&gt;
Release 1.3 (Silverlight Alpha) is the first formal release of the SilverlightTruckWars source code.&lt;br&gt;Eventually I'll add this to the CodePlex SVN feature.&lt;br&gt;
&lt;/div&gt;</description><author></author><pubDate>Sun, 29 Jun 2008 18:39:44 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: Release 1.3 (Nov 16, 2007) 20080629063944P</guid></item><item><title>CREATED ISSUE: Add difficulty levels</title><link>http://www.codeplex.com/SilverlightTruckWars/WorkItem/View.aspx?WorkItemId=185</link><description>Need different levels of difficulty, like Easy-Medium-Hard. Perhaps make a dropdown at the top of the page that the user can select at the start of the level.&lt;br /&gt;</description><author>timstall</author><pubDate>Mon, 19 Nov 2007 03:53:49 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Add difficulty levels 20071119035349A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;TruckWars is a simple SilverLight real-time-strategy game.  For each level, you control various trucks &amp;#40;and other vehicles&amp;#41;, and use them to push down all the green buttons. Enemy trucks will try to stop you.
&lt;br /&gt; &lt;br /&gt;The intent is to have a system of interacting objects where the whole is more that the sum of the parts. For example, units can move, attack, push, carry, grow, heal, crush, and even clone. The board includes various blocks - like open space, water, and stop blocks - to allow for different strategy. There is usually several ways to solve each board.&lt;br /&gt; &lt;br /&gt;You can play the latest game online at &lt;a href="http://timstall.dotnetdevelopersjournal.com/silverlight__truck_wars_strategy_game.htm" class="externalLink"&gt;http://timstall.dotnetdevelopersjournal.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=SilverlightTruckWars&amp;amp;DownloadId=22179" alt="truckwars_screenshot_1_2.jpeg" /&gt;&lt;br /&gt; &lt;br /&gt;The intent is that eventually developers can easily create their own boards and creatures. (See: &lt;a href="http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewCreature&amp;amp;referringTitle=Home"&gt;MakeNewCreature&lt;/a&gt; or &lt;a href="http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewBoard&amp;amp;referringTitle=Home"&gt;MakeNewBoard&lt;/a&gt; )&lt;br /&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 20:43:43 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071117084343P</guid></item><item><title>UPDATED WIKI: MakeNewBoard</title><link>http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewBoard&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
See also: &lt;a href="http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewCreature&amp;amp;referringTitle=MakeNewBoard"&gt;MakeNewCreature&lt;/a&gt;&lt;br /&gt;----&lt;br /&gt;&lt;h2&gt;
Overview
&lt;/h2&gt;Because there are so many ways for creatures to interact, there are many different boards that could demonstrate those interactions.&lt;br /&gt; &lt;br /&gt;While you can make a developer test board by tweaking the CreateTest() method in &amp;quot;Tank\Tank.Test\Tank.Core\Level.cs&amp;quot;, release versions will need the boards in an Xml file format. Ultimately I hope to create an online board editor so that anyone can easily make new boards, but for now, there's only the xml files.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Xml Files
&lt;/h2&gt;Each Xml file has a name of the form &amp;quot;&amp;lt;masterIndex&amp;gt;.xml&amp;quot;, where masterIndex is a unique integer that indexes that level. Each file contains:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The header:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;index - masterIndex - the user never sees this.&lt;/li&gt;&lt;li&gt;subLevel - a user-friendly level, like &amp;quot;1.2&amp;quot;&lt;/li&gt;&lt;li&gt;allowedTimeMinutes - how many minutes to complete the level?&lt;/li&gt;&lt;li&gt;title - the title for the level&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Message - an opening message to describe the level&lt;/li&gt;&lt;li&gt;Board - a 16x10 CSV list of integers. Each int corresponds to a block ID. Currently there are only a few blocks, listed in method &amp;quot;GetBlockImageName()&amp;quot; of &amp;quot;Tank\Tank.Test\Tank.Core\Board.cs&amp;quot;&lt;/li&gt;&lt;li&gt;Creatures - a list of creatures. Each Creature node has:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;type - the .Net type&lt;/li&gt;&lt;li&gt;boardPosition - the position on the board (usually x=0-15 and y=0-9). Decimals values are allowed. So, (5.5,7.2) is ok.&lt;/li&gt;&lt;li&gt;team - the team that this belongs to (Hero, Neutral, or Enemy1). Most neutral objects are implied.&lt;/li&gt;&lt;li&gt;value - an additional attribute to define etxra info for that creature. For example, the message in a signpost. This gets set via CreatureBase.LoadFromXmlValue()&lt;/li&gt;&lt;li&gt;treasure - a 'treasure' that this leaves behind when destroyed - such as a powerup&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;A simple xml file looks like so:&lt;br /&gt;&lt;pre&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;Level&amp;gt;
  &amp;lt;Header index=&amp;quot;2&amp;quot; subLevel=&amp;quot;1.2&amp;quot; allowedTimeMinutes=&amp;quot;15&amp;quot; title=&amp;quot;Tutorial: Attacking Units&amp;quot;&amp;gt;&amp;lt;/Header&amp;gt;
  &amp;lt;Message&amp;gt;Some opening message to describe the level&amp;lt;/Message&amp;gt;
  &amp;lt;Board&amp;gt;
    1,1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,
    0,0,0,0,0,0,0,0,1,1,3,3,1,1,0,0,
    0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,
    0,0,0,0,0,1,1,1,1,1,3,3,1,2,0,0,
    0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
    0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
    0,0,0,0,0,1,1,1,1,1,3,3,1,2,2,2,
    0,0,0,0,0,0,0,0,3,3,3,3,2,2,2,2,
    0,0,0,0,0,0,0,0,3,3,3,3,2,2,2,2
  &amp;lt;/Board&amp;gt;
  &amp;lt;Creatures&amp;gt;
    &amp;lt;Creature type=&amp;quot;TankUnit&amp;quot; boardPosition=&amp;quot;1.5, 3&amp;quot; team=&amp;quot;Hero&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;Sign&amp;quot; boardPosition=&amp;quot;.2, 4.5&amp;quot; team=&amp;quot;Neutral&amp;quot; value=&amp;quot;Here is a special message.&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;PushButtonStayDown&amp;quot; boardPosition=&amp;quot;14, 8&amp;quot; team=&amp;quot;Neutral&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;SpecialEffect&amp;quot; boardPosition=&amp;quot;14, 8&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;TankUnitEnemy&amp;quot; boardPosition=&amp;quot;13, 5.5&amp;quot; team=&amp;quot;Enemy1&amp;quot; treasure=&amp;quot;PowerUpThrust&amp;quot; /&amp;gt;
  &amp;lt;/Creatures&amp;gt;
&amp;lt;/Level&amp;gt;
 
&lt;/pre&gt; &lt;br /&gt;&lt;h2&gt;
Loading that xml file into the engine
&lt;/h2&gt;The easiest way is to just override an existing xml file.&lt;br /&gt; &lt;br /&gt;However, you can add new levels:&lt;br /&gt; &lt;br /&gt;Once you've created an xml file, you can load it into the engine with a few steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Ensure that it has a unique masterIndex (both fileName, and header.index property in the xml)&lt;/li&gt;&lt;li&gt;Put the file in the directory: &amp;quot;Tank\Tank.Gui\Levels&amp;quot;&lt;/li&gt;&lt;li&gt;Modify &amp;quot;Tank\Tank.Gui\Levels\LevelNames.cs&amp;quot;. This is used to specify the SelectLevel dropdown.&lt;/li&gt;&lt;li&gt;Modify &amp;quot;Tank\Tank.Test\Tank.Core\Level.cs&amp;quot;, set MaxLevelCount to the new value.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 13:49:12 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: MakeNewBoard 20071117014912P</guid></item><item><title>UPDATED WIKI: MakeNewBoard</title><link>http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewBoard&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
See also: &lt;a href="http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewCreature&amp;amp;referringTitle=MakeNewBoard"&gt;MakeNewCreature&lt;/a&gt;&lt;br /&gt;----&lt;br /&gt;&lt;h2&gt;
Overview
&lt;/h2&gt;Because there are so many ways for creatures to interact, there are many different boards that could demonstrate those interactions.&lt;br /&gt; &lt;br /&gt;While you can make a developer test board by tweaking the CreateTest() method in &amp;quot;Tank\Tank.Test\Tank.Core\Level.cs&amp;quot;, release versions will need the boards in an Xml file format. Ultimately I hope to create an online board editor so that anyone can easily make new boards, but for now, there's only the xml files.&lt;br /&gt; &lt;br /&gt;!!Xml Files&lt;br /&gt;Each Xml file has a name of the form &amp;quot;&amp;lt;masterIndex&amp;gt;.xml&amp;quot;, where masterIndex is a unique integer that indexes that level. Each file contains:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The header:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;index - masterIndex - the user never sees this.&lt;/li&gt;&lt;li&gt;subLevel - a user-friendly level, like &amp;quot;1.2&amp;quot;&lt;/li&gt;&lt;li&gt;allowedTimeMinutes - how many minutes to complete the level?&lt;/li&gt;&lt;li&gt;title - the title for the level&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Message - an opening message to describe the level&lt;/li&gt;&lt;li&gt;Board - a 16x10 CSV list of integers. Each int corresponds to a block ID. Currently there are only a few blocks, listed in method &amp;quot;GetBlockImageName()&amp;quot; of &amp;quot;Tank\Tank.Test\Tank.Core\Board.cs&amp;quot;&lt;/li&gt;&lt;li&gt;Creatures - a list of creatures. Each Creature node has:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;type - the .Net type&lt;/li&gt;&lt;li&gt;boardPosition - the position on the board (usually x=0-15 and y=0-9). Decimals values are allowed. So, (5.5,7.2) is ok.&lt;/li&gt;&lt;li&gt;team - the team that this belongs to (Hero, Neutral, or Enemy1). Most neutral objects are implied.&lt;/li&gt;&lt;li&gt;value - an additional attribute to define etxra info for that creature. For example, the message in a signpost. This gets set via CreatureBase.LoadFromXmlValue()&lt;/li&gt;&lt;li&gt;treasure - a 'treasure' that this leaves behind when destroyed - such as a powerup&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;A simple xml file looks like so:&lt;br /&gt;&lt;pre&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;Level&amp;gt;
  &amp;lt;Header index=&amp;quot;2&amp;quot; subLevel=&amp;quot;1.2&amp;quot; allowedTimeMinutes=&amp;quot;15&amp;quot; title=&amp;quot;Tutorial: Attacking Units&amp;quot;&amp;gt;&amp;lt;/Header&amp;gt;
  &amp;lt;Message&amp;gt;Some opening message to describe the level&amp;lt;/Message&amp;gt;
  &amp;lt;Board&amp;gt;
    1,1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,
    0,0,0,0,0,0,0,0,1,1,3,3,1,1,0,0,
    0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,
    0,0,0,0,0,1,1,1,1,1,3,3,1,2,0,0,
    0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
    0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
    0,0,0,0,0,1,1,1,1,1,3,3,1,2,2,2,
    0,0,0,0,0,0,0,0,3,3,3,3,2,2,2,2,
    0,0,0,0,0,0,0,0,3,3,3,3,2,2,2,2
  &amp;lt;/Board&amp;gt;
  &amp;lt;Creatures&amp;gt;
    &amp;lt;Creature type=&amp;quot;TankUnit&amp;quot; boardPosition=&amp;quot;1.5, 3&amp;quot; team=&amp;quot;Hero&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;Sign&amp;quot; boardPosition=&amp;quot;.2, 4.5&amp;quot; team=&amp;quot;Neutral&amp;quot; value=&amp;quot;Here is a special message.&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;PushButtonStayDown&amp;quot; boardPosition=&amp;quot;14, 8&amp;quot; team=&amp;quot;Neutral&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;SpecialEffect&amp;quot; boardPosition=&amp;quot;14, 8&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;TankUnitEnemy&amp;quot; boardPosition=&amp;quot;13, 5.5&amp;quot; team=&amp;quot;Enemy1&amp;quot; treasure=&amp;quot;PowerUpThrust&amp;quot; /&amp;gt;
  &amp;lt;/Creatures&amp;gt;
&amp;lt;/Level&amp;gt;
 
&lt;/pre&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 13:28:36 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: MakeNewBoard 20071117012836P</guid></item><item><title>UPDATED WIKI: MakeNewBoard</title><link>http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewBoard&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
See also: &lt;a href="http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewCreature&amp;amp;referringTitle=MakeNewBoard"&gt;MakeNewCreature&lt;/a&gt;&lt;br /&gt;----&lt;br /&gt;&lt;h2&gt;
Overview
&lt;/h2&gt;Because there are so many ways for creatures to interact, there are many different boards that could demonstrate those interactions.&lt;br /&gt; &lt;br /&gt;While you can make a developer test board by tweaking the CreateTest() method in &amp;quot;Tank\Tank.Test\Tank.Core\Level.cs&amp;quot;, release versions will need the boards in an Xml file format. Ultimately I hope to create an online board editor so that anyone can easily make new boards, but for now, there's only the xml files.&lt;br /&gt; &lt;br /&gt;A simple xml file looks like so:&lt;br /&gt;&lt;pre&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;Level&amp;gt;
  &amp;lt;Header index=&amp;quot;2&amp;quot; subLevel=&amp;quot;1.2&amp;quot; password=&amp;quot;ABC987&amp;quot; allowedTimeMinutes=&amp;quot;15&amp;quot; title=&amp;quot;Tutorial: Attacking Units&amp;quot;&amp;gt;&amp;lt;/Header&amp;gt;
  &amp;lt;Message&amp;gt;Attack a unit by dragging and dropping (i.e. moving) into it. Your mouse cursor changes to a red target when you're read to attack.&amp;lt;/Message&amp;gt;
  &amp;lt;Board&amp;gt;
    1,1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,
    0,0,0,0,0,0,0,0,1,1,3,3,1,1,0,0,
    0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,
    0,0,0,0,0,1,1,1,1,1,3,3,1,2,0,0,
    0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
    0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
    0,0,0,0,0,1,1,1,1,1,3,3,1,2,2,2,
    0,0,0,0,0,0,0,0,3,3,3,3,2,2,2,2,
    0,0,0,0,0,0,0,0,3,3,3,3,2,2,2,2
  &amp;lt;/Board&amp;gt;
  &amp;lt;Creatures&amp;gt;
    &amp;lt;Creature type=&amp;quot;TankUnit&amp;quot; boardPosition=&amp;quot;1.5, 3&amp;quot; team=&amp;quot;Hero&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;Sign&amp;quot; boardPosition=&amp;quot;.2, 4.5&amp;quot; team=&amp;quot;Neutral&amp;quot; value=&amp;quot;Here is a special message.&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;PushButtonStayDown&amp;quot; boardPosition=&amp;quot;14, 8&amp;quot; team=&amp;quot;Neutral&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;SpecialEffect&amp;quot; boardPosition=&amp;quot;14, 8&amp;quot; /&amp;gt;
    &amp;lt;Creature type=&amp;quot;TankUnitEnemy&amp;quot; boardPosition=&amp;quot;13, 5.5&amp;quot; team=&amp;quot;Enemy1&amp;quot; treasure=&amp;quot;PowerUpThrust&amp;quot; /&amp;gt;
  &amp;lt;/Creatures&amp;gt;
&amp;lt;/Level&amp;gt;
 
&lt;/pre&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 13:14:54 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: MakeNewBoard 20071117011454P</guid></item><item><title>UPDATED WIKI: MakeNewCreature</title><link>http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewCreature&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
See also: &lt;a href="http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewBoard&amp;amp;referringTitle=MakeNewCreature"&gt;MakeNewBoard&lt;/a&gt;&lt;br /&gt;----&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Overview
&lt;/h2&gt;The TruckWars engine is designed to be flexible enough that you can easily create your own creatues.&lt;br /&gt; &lt;br /&gt;All creatures are currently defined in Tank.Core. They inherit from CreatureBase. The actual instances of are stored in the &amp;quot;Creatures&amp;quot; folder.&lt;br /&gt; &lt;br /&gt;Perhaps the best way to create a new creature is to just find an existing one, copy it, and then modify that. Although CreatureBase has many methods, there are only a few main relevant ones:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Update - The main method to update the creature's position, attributes, and attempted actions. The Update method call call the &amp;quot;TryAttack&amp;quot; method, which indirecly calls the AttackDo.&lt;/li&gt;&lt;li&gt;AttackDo - The unit's attack method- such as firing a projectile (for the tank), or healing other units (for the ambulance) &lt;/li&gt;&lt;li&gt;GotHit - What happens when the unit gets hit?&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Additional Attributes via Interfaces
&lt;/h2&gt;There are also certain attributes that creatures can implement via interfaces (stored in &amp;quot;Interfaces.cs&amp;quot;).&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;IProjectile - is this a projectile?&lt;/li&gt;&lt;li&gt;INotAttackable - can you not attack this? For example, certain things (like a sign post) are neutral, and there's no benefit to attacking them.&lt;/li&gt;&lt;li&gt;IFiresProjectile - indicates that this unit is a ranged unit, like a tank&lt;/li&gt;&lt;li&gt;ICanHoldItem - indicates that this unit can pickup items (like keys). For example, the pickup truck implements ICanHoldItem.&lt;/li&gt;
&lt;/ul&gt;While several of these interfaces have no extra methods, they are useful simply to detect (via polymorphism) if a creature has certain abilities.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Creature Hierachy
&lt;/h2&gt;While all creatures ultimately inherit from CreatureBase, there is a hierarchy:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;CreatureBase&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;PowerupBase - all powerups&lt;/li&gt;&lt;li&gt;PushButtonBase - all pushButtons&lt;/li&gt;&lt;li&gt;HoldableItemBase - all holdable items (like a key)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Adding your creature to a board
&lt;/h2&gt;There are two ways to actually get your creature to show up on a board.&lt;br /&gt;Method 1: If the engine is reading xml files (for release mode), modify one of the xml files, like &amp;quot;Tank.Gui\Levels\1.xml&amp;quot;.  (i.e. if in Tank.Gui\DevConfig.cs, constant &amp;quot;UseHttpXmlBoards&amp;quot; = true)&lt;br /&gt; &lt;br /&gt;Method 2: If the engine is not using xml files (for developer mode), goto &amp;quot;Tank\Tank.Test\Tank.Core\Level.cs&amp;quot; and modify the method &amp;quot;CreateTest()&amp;quot;. You can either add a creature by instantiating it, or using the AddCreature method.&lt;br /&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 13:10:42 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: MakeNewCreature 20071117011042P</guid></item><item><title>UPDATED WIKI: MakeNewCreature</title><link>http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewCreature&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Overview
&lt;/h2&gt;The TruckWars engine is designed to be flexible enough that you can easily create your own creatues.&lt;br /&gt; &lt;br /&gt;All creatures are currently defined in Tank.Core. They inherit from CreatureBase. The actual instances of are stored in the &amp;quot;Creatures&amp;quot; folder.&lt;br /&gt; &lt;br /&gt;Perhaps the best way to create a new creature is to just find an existing one, copy it, and then modify that. Although CreatureBase has many methods, there are only a few main relevant ones:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Update - The main method to update the creature's position, attributes, and attempted actions. The Update method call call the &amp;quot;TryAttack&amp;quot; method, which indirecly calls the AttackDo.&lt;/li&gt;&lt;li&gt;AttackDo - The unit's attack method- such as firing a projectile (for the tank), or healing other units (for the ambulance) &lt;/li&gt;&lt;li&gt;GotHit - What happens when the unit gets hit?&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Additional Attributes via Interfaces
&lt;/h2&gt;There are also certain attributes that creatures can implement via interfaces (stored in &amp;quot;Interfaces.cs&amp;quot;).&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;IProjectile - is this a projectile?&lt;/li&gt;&lt;li&gt;INotAttackable - can you not attack this? For example, certain things (like a sign post) are neutral, and there's no benefit to attacking them.&lt;/li&gt;&lt;li&gt;IFiresProjectile - indicates that this unit is a ranged unit, like a tank&lt;/li&gt;&lt;li&gt;ICanHoldItem - indicates that this unit can pickup items (like keys). For example, the pickup truck implements ICanHoldItem.&lt;/li&gt;
&lt;/ul&gt;While several of these interfaces have no extra methods, they are useful simply to detect (via polymorphism) if a creature has certain abilities.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Creature Hierachy
&lt;/h2&gt;While all creatures ultimately inherit from CreatureBase, there is a hierarchy:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;CreatureBase&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;PowerupBase - all powerups&lt;/li&gt;&lt;li&gt;PushButtonBase - all pushButtons&lt;/li&gt;&lt;li&gt;HoldableItemBase - all holdable items (like a key)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Adding your creature to a board
&lt;/h2&gt;There are two ways to actually get your creature to show up on a board.&lt;br /&gt;Method 1: If the engine is reading xml files (for release mode), modify one of the xml files, like &amp;quot;Tank.Gui\Levels\1.xml&amp;quot;.  (i.e. if in Tank.Gui\DevConfig.cs, constant &amp;quot;UseHttpXmlBoards&amp;quot; = true)&lt;br /&gt; &lt;br /&gt;Method 2: If the engine is not using xml files (for developer mode), goto &amp;quot;Tank\Tank.Test\Tank.Core\Level.cs&amp;quot; and modify the method &amp;quot;CreateTest()&amp;quot;. You can either add a creature by instantiating it, or using the AddCreature method.&lt;br /&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 13:09:39 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: MakeNewCreature 20071117010939P</guid></item><item><title>UPDATED WIKI: MakeNewCreature</title><link>http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewCreature&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
!!Overview&lt;br /&gt;The TruckWars engine is designed to be flexible enough that you can easily create your own creatues.&lt;br /&gt; &lt;br /&gt;All creatures are currently defined in Tank.Core. They inherit from CreatureBase. The actual instances of are stored in the &amp;quot;Creatures&amp;quot; folder.&lt;br /&gt; &lt;br /&gt;Perhaps the best way to create a new creature is to just find an existing one, copy it, and then modify that. Although CreatureBase has many methods, there are only a few main relevant ones:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Update - The main method to update the creature's position, attributes, and attempted actions. The Update method call call the &amp;quot;TryAttack&amp;quot; method, which indirecly calls the AttackDo.&lt;/li&gt;&lt;li&gt;AttackDo - The unit's attack method- such as firing a projectile (for the tank), or healing other units (for the ambulance) &lt;/li&gt;&lt;li&gt;GotHit - What happens when the unit gets hit?&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;!!Additional Attributes via Interfaces&lt;br /&gt;There are also certain attributes that creatures can implement via interfaces (stored in &amp;quot;Interfaces.cs&amp;quot;).&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;IProjectile - is this a projectile?&lt;/li&gt;&lt;li&gt;INotAttackable - can you not attack this? For example, certain things (like a sign post) are neutral, and there's no benefit to attacking them.&lt;/li&gt;&lt;li&gt;IFiresProjectile - indicates that this unit is a ranged unit, like a tank&lt;/li&gt;&lt;li&gt;ICanHoldItem - indicates that this unit can pickup items (like keys). For example, the pickup truck implements ICanHoldItem.&lt;/li&gt;
&lt;/ul&gt;While several of these interfaces have no extra methods, they are useful simply to detect (via polymorphism) if a creature has certain abilities.&lt;br /&gt; &lt;br /&gt;!!Creature Hierachy&lt;br /&gt;While all creatures ultimately inherit from CreatureBase, there is a hierarchy:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;CreatureBase&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;PowerupBase - all powerups&lt;/li&gt;&lt;li&gt;PushButtonBase - all pushButtons&lt;/li&gt;&lt;li&gt;HoldableItemBase - all holdable items (like a key)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 13:05:18 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: MakeNewCreature 20071117010518P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=Home&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;TruckWars is a simple SilverLight real-time-strategy game.  For each level, you control various trucks &amp;#40;and other vehicles&amp;#41;, and use them to push down all the green buttons. Enemy trucks will try to stop you.
&lt;br /&gt; &lt;br /&gt;The intent is to have a system of interacting objects where the whole is more that the sum of the parts. For example, units can move, attack, push, carry, grow, heal, crush, and even clone. The board includes various blocks - like open space, water, and stop blocks - to allow for different strategy. There is usually several ways to solve each board.&lt;br /&gt; &lt;br /&gt;The intent is that eventually developers can easily create their own boards and creatures. (See: &lt;a href="http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewCreature&amp;amp;referringTitle=Home"&gt;MakeNewCreature&lt;/a&gt; or &lt;a href="http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=MakeNewBoard&amp;amp;referringTitle=Home"&gt;MakeNewBoard&lt;/a&gt; )&lt;br /&gt; &lt;br /&gt;You can play the latest game online at &lt;a href="http://timstall.dotnetdevelopersjournal.com/silverlight__truck_wars_strategy_game.htm" class="externalLink"&gt;http://timstall.dotnetdevelopersjournal.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=SilverlightTruckWars&amp;amp;DownloadId=22179" alt="truckwars_screenshot_1_2.jpeg" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 12:53:11 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071117125311P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=Home&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;TruckWars is a simple SilverLight real-time-strategy game.  For each level, you control various trucks &amp;#40;and other vehicles&amp;#41;, and use them to push down all the green buttons. Enemy trucks will try to stop you.
&lt;br /&gt; &lt;br /&gt;The intent is to have a system of interacting objects where the whole is more that the sum of the parts. For example, units can move, attack, push, carry, grow, heal, crush, and even clone. The board includes various blocks - like open space, water, and stop blocks - to allow for different strategy. There is usually several ways to solve each board.&lt;br /&gt; &lt;br /&gt;You can play the latest game online at &lt;a href="http://timstall.dotnetdevelopersjournal.com/silverlight__truck_wars_strategy_game.htm" class="externalLink"&gt;http://timstall.dotnetdevelopersjournal.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=SilverlightTruckWars&amp;amp;DownloadId=22179" alt="truckwars_screenshot_1_2.jpeg" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 12:50:07 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071117125007P</guid></item><item><title>CREATED ISSUE: Make better Artificial Intelligence (AI)</title><link>http://www.codeplex.com/SilverlightTruckWars/WorkItem/View.aspx?WorkItemId=176</link><description>Current the enemy creature movement is really simple - each creature acts independently, with little awareness of the other creatures. It would be nice to have a creature-management system that coordinate all the creatures to act together with a better AI.&lt;br /&gt;&lt;br /&gt;For example, a tank on the other side of the board should come over to help if its buddy is getting attacked.&lt;br /&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 12:45:24 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Make better Artificial Intelligence (AI) 20071117124524P</guid></item><item><title>CREATED ISSUE: Create a board editor</title><link>http://www.codeplex.com/SilverlightTruckWars/WorkItem/View.aspx?WorkItemId=175</link><description>Instead of directly typing the Xml files, create an online board editor &amp;#40;ideally in Silverlight&amp;#41; so that anyone can easily make their own boards. Then, provide a way to load up those boards so that anyone can actually play them.&lt;br /&gt;&lt;br /&gt;The intent would be to allow community involvement in creating lots of innovative boards.&lt;br /&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 12:43:08 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Create a board editor 20071117124308P</guid></item><item><title>NEW POST: Welcome</title><link>http://www.codeplex.com/SilverlightTruckWars/Thread/View.aspx?ThreadId=17967</link><description>&lt;div class="wikidoc"&gt;
Welcome to Silverlight TruckWars. Please feel free to use the discussion boards.&lt;br /&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 12:38:31 GMT</pubDate><guid isPermaLink="false">NEW POST: Welcome 20071117123831P</guid></item><item><title>UPDATED RELEASE: Release 1.3 (Nov 16, 2007)</title><link>http://www.codeplex.com/SilverlightTruckWars/Release/ProjectReleases.aspx?ReleaseId=8458</link><description>Release 1.3 is the first formal release of the SilverlightTruckWars source code.&lt;br /&gt;Eventually I&amp;#39;ll add this to the CodePlex SVN feature.</description><author></author><pubDate>Sat, 17 Nov 2007 12:37:27 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: Release 1.3 (Nov 16, 2007) 20071117123727P</guid></item><item><title>CREATED ISSUE: Add buildings</title><link>http://www.codeplex.com/SilverlightTruckWars/WorkItem/View.aspx?WorkItemId=173</link><description>Currently there are only units, but no buildings. I&amp;#39;d like to add things like a &amp;#34;Garage&amp;#34; that let you create new units.&lt;br /&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 03:58:01 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Add buildings 20071117035801A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/SilverlightTruckWars/Wiki/View.aspx?title=Home&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;TruckWars is a simple SilverLight real-time-strategy game.  For each level, you control various trucks &amp;#40;and other vehicles&amp;#41;, and use them to push down all the green buttons. Enemy trucks will try to stop you.
&lt;br /&gt; &lt;br /&gt;You can play the latest game online at &lt;a href="http://timstall.dotnetdevelopersjournal.com/silverlight__truck_wars_strategy_game.htm" class="externalLink"&gt;http://timstall.dotnetdevelopersjournal.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=SilverlightTruckWars&amp;amp;DownloadId=22179" alt="truckwars_screenshot_1_2.jpeg" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 03:56:49 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071117035649A</guid></item><item><title>RELEASED: Release 1.3 (Nov 16, 2007)</title><link>http://www.codeplex.com/SilverlightTruckWars/Release/ProjectReleases.aspx?ReleaseId=8458</link><description>Release 1.3 is the first formal release of the SilverlightTruckWars source code.&lt;br /&gt;Eventually I&amp;#39;ll add this to the CodePlex SVN feature.</description><author></author><pubDate>Sat, 17 Nov 2007 03:53:28 GMT</pubDate><guid isPermaLink="false">RELEASED: Release 1.3 (Nov 16, 2007) 20071117035328A</guid></item><item><title>UPDATED RELEASE: Release 1.3 (Nov 16, 2007)</title><link>http://www.codeplex.com/SilverlightTruckWars/Release/ProjectReleases.aspx?ReleaseId=8458</link><description>Release 1.3 is the first formal release of the SilverlightTruckWars source code.&lt;br /&gt;Eventually I&amp;#39;ll add this to the CodePlex SVN feature.</description><author></author><pubDate>Sat, 17 Nov 2007 03:53:28 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: Release 1.3 (Nov 16, 2007) 20071117035328A</guid></item><item><title>CREATED ISSUE: Make splash screen while game is loading</title><link>http://www.codeplex.com/SilverlightTruckWars/WorkItem/View.aspx?WorkItemId=172</link><description>Make splash screen while game is loading&lt;br /&gt;</description><author>timstall</author><pubDate>Sat, 17 Nov 2007 03:51:51 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Make splash screen while game is loading 20071117035151A</guid></item></channel></rss>