|
From: <kro...@us...> - 2007-04-10 11:58:20
|
Revision: 310
http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=310&view=rev
Author: kroko_koenig
Date: 2007-04-10 04:58:17 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
Initial Release
Added Paths:
-----------
trunk/plugins/My Hexxagon/Skin/
trunk/plugins/My Hexxagon/Skin/SimpleMP/
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx01.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx01F.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx02.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx02F.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx03.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx03F.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx04.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx04F.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx05.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx05F.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx06.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx06F.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx07.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx07F.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/hover_my hexxagon.png
trunk/plugins/My Hexxagon/Skin/SimpleMP/MyHexxagon.xml
trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/
trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxDouble.wav
trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxMove.wav
trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxSelect.wav
trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxZap.wav
trunk/plugins/My Hexxagon/Source/
trunk/plugins/My Hexxagon/Source/MyHexxagon/
trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/
trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.cs
trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.csproj
trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.xml
trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/Properties/
trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/Properties/AssemblyInfo.cs
trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.sln
trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.suo
trunk/plugins/My Hexxagon/hexxagon.jpg
trunk/plugins/My Hexxagon/readme.txt
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx01.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx01.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx01F.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx01F.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx02.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx02.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx02F.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx02F.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx03.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx03.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx03F.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx03F.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx04.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx04.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx04F.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx04F.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx05.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx05.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx05F.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx05F.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx06.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx06.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx06F.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx06F.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx07.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx07.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx07F.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/Hexxagon/MyHexx07F.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/hover_my hexxagon.png
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Media/hover_my hexxagon.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/MyHexxagon.xml
===================================================================
--- trunk/plugins/My Hexxagon/Skin/SimpleMP/MyHexxagon.xml (rev 0)
+++ trunk/plugins/My Hexxagon/Skin/SimpleMP/MyHexxagon.xml 2007-04-10 11:58:17 UTC (rev 310)
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<window>
+ <id>1234711</id>
+ <defaultcontrol>2</defaultcontrol>
+ <allowoverlay>yes</allowoverlay>
+ <autohidetopbar>yes</autohidetopbar>
+ <controls>
+ <import>common.time.xml</import>
+ <control>
+ <description>Hexxagon label</description>
+ <type>label</type>
+ <posX>55</posX>
+ <posY>20</posY>
+ <align>left</align>
+ <font>font48</font>
+ <label>Hexxagon</label>
+ <textcolor>20ffffff</textcolor>
+ <id>1</id>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>BackGround</description>
+ <type>image</type>
+ <id>1</id>
+ <posX>0</posX>
+ <posY>0</posY>
+ <width>720</width>
+ <height>576</height>
+ <texture>background.png</texture>
+ </control>
+ <control>
+ <description>text label</description>
+ <type>label</type>
+ <id>11</id>
+ <posX>250</posX>
+ <posY>70</posY>
+ <label>Hexxagon</label>
+ <font>font16</font>
+ <align>right</align>
+ <textcolor>ffffffff</textcolor>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>Start</description>
+ <type>button</type>
+ <id>2</id>
+ <posX>60</posX>
+ <posY>97</posY>
+ <label>Start</label>
+ <onleft>2</onleft>
+ <onright>22</onright>
+ <onup>4</onup>
+ <ondown>3</ondown>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>Mode</description>
+ <type>button</type>
+ <id>3</id>
+ <posX>60</posX>
+ <posY>131</posY>
+ <label>Mode: Play vs Computer</label>
+ <onleft>3</onleft>
+ <onright>3</onright>
+ <onup>2</onup>
+ <ondown>4</ondown>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>Level</description>
+ <type>button</type>
+ <id>4</id>
+ <posX>60</posX>
+ <posY>165</posY>
+ <label>Level: Amateur</label>
+ <onleft>4</onleft>
+ <onright>4</onright>
+ <onup>3</onup>
+ <ondown>6</ondown>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>text label</description>
+ <type>label</type>
+ <id>5</id>
+ <posX>70</posX>
+ <posY>204</posY>
+ <label>#Round</label>
+ <font>font12</font>
+ <align>Left</align>
+ <textcolor>ffffffff</textcolor>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>text label</description>
+ <type>label</type>
+ <id>7</id>
+ <posX>70</posX>
+ <posY>238</posY>
+ <label>#Player</label>
+ <font>font12</font>
+ <align>Left</align>
+ <textcolor>ffffffff</textcolor>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>Whatsthis</description>
+ <type>button</type>
+ <id>6</id>
+ <posX>60</posX>
+ <posY>267</posY>
+ <label>What's this?</label>
+ <onleft>6</onleft>
+ <onright>6</onright>
+ <onup>3</onup>
+ <ondown>2</ondown>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+
+ <control>
+ <description>text label</description>
+ <type>label</type>
+ <id>12</id>
+ <posX>70</posX>
+ <posY>310</posY>
+ <label>#Ply1.Count</label>
+ <font>font12</font>
+ <align>Left</align>
+ <textcolor>ff000000</textcolor>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>text label</description>
+ <type>label</type>
+ <id>13</id>
+ <posX>70</posX>
+ <posY>340</posY>
+ <label>#Ply2.Count</label>
+ <font>font12</font>
+ <align>Left</align>
+ <textcolor>ffffffff</textcolor>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>progress bar</description>
+ <type>progress</type>
+ <id>8</id>
+ <posX>100</posX>
+ <posY>310</posY>
+ <width>180</width>
+ <label>#Ply1.Percentage</label>
+ <visible>yes</visible>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>progress bar</description>
+ <type>progress</type>
+ <id>9</id>
+ <posX>100</posX>
+ <posY>340</posY>
+ <width>180</width>
+ <label>#Ply2.Percentage</label>
+ <visible>yes</visible>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ </controls>
+</window>
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxDouble.wav
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxDouble.wav
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxMove.wav
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxMove.wav
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxSelect.wav
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxSelect.wav
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxZap.wav
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Skin/SimpleMP/Sounds/HexxZap.wav
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.cs
===================================================================
--- trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.cs (rev 0)
+++ trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.cs 2007-04-10 11:58:17 UTC (rev 310)
@@ -0,0 +1,842 @@
+#region Copyright (C) 2005-2007 Team MediaPortal
+
+/*
+ * Copyright (C) 2005-2007 Team MediaPortal
+ * http://www.team-mediaportal.com
+ *
+ * This Program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Make; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows.Forms;
+using MediaPortal.GUI.Library;
+using MediaPortal.Dialogs;
+using MediaPortal.Util;
+
+namespace MediaPortal.GUI.MyHexxagon
+{
+ public class MyHexxagonGUI : GUIWindow, ISetupForm
+ {
+ #region SkinControl
+ [SkinControlAttribute(2)]
+ protected GUIButtonControl BtnStart = null;
+ [SkinControlAttribute(3)]
+ protected GUIButtonControl BtnMode = null;
+ [SkinControlAttribute(4)]
+ protected GUIButtonControl BtnLevel = null;
+ [SkinControlAttribute(6)]
+ protected GUIButtonControl BtnWhatsThis = null;
+
+ #endregion
+
+ #region Private variables
+
+ int ActPly = 0; // actual player
+ string Mode = "1p"; // one player
+ string Level = "Am"; // Choosen level
+
+ int player = 4; // constant player
+ int computer = 6; // constant computer
+
+ int wait = 0; // init wait timer for computer
+
+ // init board
+ int[] board = {0,0,0,0,0,0,0,0,0,0, // 0-9
+ 0,0,0,0,0,0,0,0,0,0, //10-19
+ 0,0,1,1,1,1,1,0,0,0, //20-29
+ 0,0,1,1,1,1,1,1,0,0, //30-39
+ 0,0,1,1,1,1,1,1,1,0, //40-49
+ 0,0,1,1,1,1,0,1,1,1, //50-59
+ 0,0,1,1,1,0,1,1,1,1, //60-69
+ 1,0,0,1,1,1,1,0,1,1, //70-79
+ 1,0,0,0,1,1,1,1,1,1, //80-89
+ 1,0,0,0,0,1,1,1,1,1, //90-99
+ 1,0,0,0,0,0,1,1,1,1, //100-109
+ 1,0,0,0,0,0,0,0,0,0, //110-119
+ 0,0,0,0,0,0,0,0,0,0, //120-129
+ 0,0,0}; //130-132
+
+ // distances for moves
+ int[] MoveDouble = { 10, 11, 1, -10, -11, -1 };
+ int[] MoveJump = { 9, 20, 21, 22, 12, 2, -9, -20, -21, -22, -12, -2 };
+
+ // last selected move
+ int lastHexx = 0;
+
+ // init counter
+ int cntPly1 = 0;
+ int cntPly2 = 0;
+ int round = 1;
+
+ // some help arrays for draw the board
+ int[] Draw = { 22, 32, 42, 52, 62, 73, 84, 95, 106 };
+ int[] DrawCnt = { 5, 6, 7, 8, 9, 8, 7, 6, 5 };
+
+ // values on the baord
+ // Off Double Jump On1 On1Select On2 On2Select
+ // 1 2 3 4 5 6 7
+
+ // game ticker for the computer
+ private System.Windows.Forms.Timer _Game = new System.Windows.Forms.Timer();
+
+ #endregion
+
+ #region ISetupForm Members
+
+ // Returns the name of the plugin which is shown in the plugin menu
+ public string PluginName()
+ {
+ return "My Hexxagon";
+ }
+
+ // Returns the description of the plugin is shown in the plugin menu
+ public string Description()
+ {
+ return "My Hexxagon";
+ }
+
+ // Returns the author of the plugin which is shown in the plugin menu
+ public string Author()
+ {
+ return "Mark Koenig (kroko)";
+ }
+
+ // show the setup dialog
+ public void ShowPlugin()
+ {
+ MessageBox.Show("Nothing to configure, this is just an example");
+ }
+
+ // Indicates whether plugin can be enabled/disabled
+ public bool CanEnable()
+ {
+ return true;
+ }
+
+ // get ID of windowplugin belonging to this setup
+ public int GetWindowId()
+ {
+ return 1234711;
+ }
+
+ // Indicates if plugin is enabled by default;
+ public bool DefaultEnabled()
+ {
+ return true;
+ }
+
+ // indicates if a plugin has its own setup screen
+ public bool HasSetup()
+ {
+ return false;
+ }
+
+ /// <summary>
+ /// If the plugin should have its own button on the main menu of MediaPortal then it
+ /// should return true to this method, otherwise if it should not be on home
+ /// it should return false
+ /// </summary>
+ /// <param name="strButtonText">text the button should have</param>
+ /// <param name="strButtonImage">image for the button, or empty for default</param>
+ /// <param name="strButtonImageFocus">image for the button, or empty for default</param>
+ /// <param name="strPictureImage">subpicture for the button or empty for none</param>
+ /// <returns>true : plugin needs its own button on home
+ /// false : plugin does not need its own button on home</returns>
+
+ public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage)
+ {
+ strButtonText = PluginName();
+ strButtonImage = String.Empty;
+ strButtonImageFocus = String.Empty;
+ strPictureImage = @"hover_my hexxagon.png";
+ return true;
+ }
+
+ #endregion
+
+ public override int GetID
+ {
+ get
+ {
+ return 1234711;
+ }
+ set
+ {
+ base.GetID = value;
+ }
+ }
+
+ public override bool Init()
+ {
+ bool result = Load(GUIGraphicsContext.Skin + @"\MyHexxagon.xml");
+ return result;
+ }
+
+ public override bool OnMessage(GUIMessage message)
+ {
+ return base.OnMessage(message);
+ }
+
+ public void Dispose()
+ {
+ _Game.Stop();
+ _Game.Tick -= new EventHandler(_Game_Tick);
+ }
+
+ protected override void OnPageLoad()
+ {
+ // start game ticker
+ _Game.Interval = 100;
+ _Game.Tick += new EventHandler(_Game_Tick);
+ _Game.Start();
+
+ base.OnPageLoad();
+
+ // get position from the start button
+ int StartX = GetControl(BtnStart.GetID).XPosition;
+ int StartY = GetControl(BtnStart.GetID).YPosition;
+ int Width = GetControl(BtnStart.GetID).Width;
+
+ // calc the position of the hexxagon
+ StartX = StartX + Width + 10;
+ StartY = StartY + 100;
+
+ // draw buttons
+ for (int j = 0; j < 9; j++)
+ {
+ for (int i = 0; i < DrawCnt[j]; i++)
+ {
+
+ int Nr = Draw[j] + i;
+ int XPos = StartX + (j * 45);
+ int YPos = 0;
+
+ if (j < 5)
+ YPos = StartY + (i * 37) - (19 * j);
+
+ if (j > 4)
+ YPos = StartY + (i * 37) - (19 * (8 - j));
+
+ CreateButton(Nr, XPos, YPos, 40, 60, "#F" + Nr, "#NF" + Nr);
+
+ //default navigation
+ int up = Nr - 1;
+ int dn = Nr + 1;
+ int le = Nr - 10;
+ int ri = Nr + 10;
+
+ //make it easier to navigate
+ if (j == 0 || j == 2 || j == 4 || j == 6 || j == 8)
+ {
+ le = Nr - 11;
+ ri = Nr + 11;
+ }
+ //block to top
+ if (i == 0)
+ up = Nr;
+ //block to bottom
+ if (i == (DrawCnt[j]-1))
+ dn = Nr;
+ //goto to start on left side
+ if (j == 0)
+ le = 2;
+ //block to right
+ if (j == 8)
+ ri = Nr;
+ // some exeption top row
+ if (i==0)
+ {
+ if (j == 2 || j == 4)
+ {
+ le = Nr - 10;
+ }
+ if (j == 5 || j==7)
+ {
+ ri = Nr + 11 ;
+ }
+ }
+ // some exeption bottom row
+ if ((i==5 && j==1) || (i==7 && j==3))
+ le = Nr - 11;
+ if ((i==8 && j==4) || (i==6 && j==6))
+ ri = Nr + 10;
+
+ //SetNavigation(U, D, L, R)
+ GetControl(Nr).SetNavigation(up, dn, le, ri);
+
+ }
+ }
+
+ // Disable some buttons
+ GUIControl.DisableControl(GetID, 56);
+ GUIControl.DisableControl(GetID, 65);
+ GUIControl.DisableControl(GetID, 77);
+
+ // Draw field
+ UpdateBoard();
+ }
+
+ protected override void OnPageDestroy(int new_windowId)
+ {
+ _Game.Stop();
+ _Game.Tick -= new EventHandler(_Game_Tick);
+ }
+
+ protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType)
+ {
+ if (control == BtnWhatsThis)
+ OnBtnWhatsThis();
+ if (control == BtnStart)
+ {
+ ActPly = 4; // Player 1 starts
+ round = 1; // reset round counter
+
+ // clear board
+ for (int i = 22; i < 111; i++)
+ {
+ if (board[i] > 1)
+ board[i] = 1;
+ }
+
+ // Set first tokens
+ board[22] = 4;
+ board[70] = 4;
+ board[106] = 4;
+ board[26] = 6;
+ board[62] = 6;
+ board[110] = 6;
+
+ // reset score
+ cntPly1 = 3;
+ cntPly2 = 3;
+
+ // draw field
+ UpdateBoard();
+
+ }
+ if (control == BtnLevel)
+ OnBtnLevel();
+ if (control == BtnMode )
+ OnBtnMode();
+
+ // check if some has clicked
+ if (board[controlId] == ActPly)
+ {
+ if (ActPly == 4 || (ActPly == 6 && Mode=="2p"))
+ Select(ActPly, controlId);
+ }
+ if (board[controlId] == 2 || board[controlId] == 3)
+ Move(ActPly, controlId);
+ }
+
+ protected override void OnShowContextMenu()
+ {
+ base.OnShowContextMenu();
+ }
+
+ private void CreateButton(int ID, int posx, int posy, int height, int width, string focusimg, string nofocusimg)
+ {
+ GUIButtonControl button = new GUIButtonControl(GetID, ID, posx, posy, width, height, focusimg, nofocusimg);
+ button.AllocResources();
+ GUIControl btnControl = (GUIControl)button;
+ Add(ref btnControl);
+ }
+
+ void _Game_Tick(object sender, EventArgs e)
+ {
+ // wait some time
+ if (wait > 0)
+ wait = wait - 1;
+
+ if (wait == 0 && ActPly == computer)
+ {
+ if (Mode=="1p")
+ // move the computer
+ CompSelect();
+ }
+ }
+
+ private void UpdateBoard()
+ {
+ // draw the board
+ for (int i = 22; i < 111; i++)
+ {
+ if (board[i] == 1)
+ {
+ GUIPropertyManager.SetProperty("#F" + i, @"\Hexxagon\MyHexx01F.png");
+ GUIPropertyManager.SetProperty("#NF" + i, @"\Hexxagon\MyHexx01.png");
+ }
+ if (board[i] == 2)
+ {
+ GUIPropertyManager.SetProperty("#F" + i, @"\Hexxagon\MyHexx02F.png");
+ GUIPropertyManager.SetProperty("#NF" + i, @"\Hexxagon\MyHexx02.png");
+ }
+ if (board[i] == 3)
+ {
+ GUIPropertyManager.SetProperty("#F" + i, @"\Hexxagon\MyHexx03F.png");
+ GUIPropertyManager.SetProperty("#NF" + i, @"\Hexxagon\MyHexx03.png");
+ }
+ if (board[i] == 4)
+ {
+ GUIPropertyManager.SetProperty("#F" + i, @"\Hexxagon\MyHexx04F.png");
+ GUIPropertyManager.SetProperty("#NF" + i, @"\Hexxagon\MyHexx04.png");
+ }
+ if (board[i] == 5)
+ {
+ GUIPropertyManager.SetProperty("#F" + i, @"\Hexxagon\MyHexx05F.png");
+ GUIPropertyManager.SetProperty("#NF" + i, @"\Hexxagon\MyHexx05.png");
+ }
+ if (board[i] == 6)
+ {
+ GUIPropertyManager.SetProperty("#F" + i, @"\Hexxagon\MyHexx06F.png");
+ GUIPropertyManager.SetProperty("#NF" + i, @"\Hexxagon\MyHexx06.png");
+ }
+ if (board[i] == 7)
+ {
+ GUIPropertyManager.SetProperty("#F" + i, @"\Hexxagon\MyHexx07F.png");
+ GUIPropertyManager.SetProperty("#NF" + i, @"\Hexxagon\MyHexx07.png");
+ }
+ if (ActPly == 4)
+ GUIPropertyManager.SetProperty("#Player", "Player 1");
+ if (ActPly == 6)
+ GUIPropertyManager.SetProperty("#Player", "Player 2");
+ if (ActPly == 0)
+ GUIPropertyManager.SetProperty("#Player", "Game over");
+
+ // display counter and so on
+ GUIPropertyManager.SetProperty("#Round", "Round: 1");
+ GUIPropertyManager.SetProperty("#Ply1.Count", cntPly1.ToString());
+ GUIPropertyManager.SetProperty("#Ply2.Count", cntPly2.ToString());
+
+ int p1 = (100 * cntPly1 / 58);
+ int p2 = (100 * cntPly2 / 58);
+
+ GUIPropertyManager.SetProperty("#Ply1.Percentage", p1.ToString());
+ GUIPropertyManager.SetProperty("#Ply2.Percentage", p2.ToString());
+ GUIPropertyManager.SetProperty("#Round", "Round: " + round);
+ }
+ }
+
+ private void Select(int ply, int pos)
+ {
+ // not game over
+ if (ActPly != 0)
+ {
+ // remember selected pos
+ lastHexx = pos;
+ // reset old selection
+ for (int i = 22; i < 111; i++)
+ {
+ if (board[i] == 2)
+ board[i] = 1;
+ if (board[i] == 3)
+ board[i] = 1;
+ if (board[i] == 5)
+ board[i] = 4;
+ if (board[i] == 7)
+ board[i] = 6;
+ }
+ // display selected pos
+ board[pos] = ply + 1;
+ MediaPortal.Util.Utils.PlaySound("HexxSelect.wav", false, true);
+ // draw selection for double
+ for (int i = 0; i < 6; i++)
+ {
+ // if not occupied and visible
+ if (board[pos + MoveDouble[i]] == 1)
+ board[pos + MoveDouble[i]] = 2;
+ }
+ // draw selection for jumpe
+ for (int i = 0; i < 12; i++)
+ {
+ // if not occupied and visible
+ if (board[pos + MoveJump[i]] == 1)
+ board[pos + MoveJump[i]] = 3;
+ }
+ UpdateBoard();
+ }
+ }
+
+ private void Move(int ply, int pos)
+ {
+ if (board[pos] == 2)
+ {
+ // double
+ board[pos] = ply;
+ Check(ply, pos);
+ MediaPortal.Util.Utils.PlaySound("HexxDouble.wav", false, true);
+ }
+ if (board[pos] == 3)
+ {
+ // jump
+ board[lastHexx] = 1;
+ board[pos] = ply;
+ Check(ply, pos);
+ MediaPortal.Util.Utils.PlaySound("HexxMove.wav", false, true);
+ }
+ // clear selection on the board
+ for (int i = 22; i < 111; i++)
+ {
+ if (board[i] == 2)
+ board[i] = 1;
+ if (board[i] == 3)
+ board[i] = 1;
+ if (board[i] == 5)
+ board[i] = 4;
+ if (board[i] == 7)
+ board[i] = 6;
+ }
+
+ // reset last stored
+ lastHexx = 0;
+
+ NextPlayer();
+ UpdateBoard();
+
+ }
+
+ private void Check(int ply, int pos)
+ {
+ bool signal = false;
+
+ // after move turn arround all surrounding tokens
+ for (int i = 0; i < 6; i++)
+ {
+ int next = ply + 2;
+ if (next > 6) next = 4;
+
+ if (board[pos + MoveDouble[i]] == next)
+ {
+ board[pos + MoveDouble[i]] = ply;
+ signal = true;
+ }
+ }
+ }
+
+ private void NextPlayer()
+ {
+ if (ActPly == 4)
+ {
+ ActPly = 6;
+ wait = 25;
+ //CompSelect();
+ }
+ else
+ {
+ ActPly = 4;
+ round = round + 1;
+ }
+ // check if there is a move left
+ NoMove(ActPly);
+ }
+
+ private void NoMove(int ply)
+ {
+ bool noMove = true;
+
+ for (int i = 22; i < 111; i++)
+ { // there is a move possible
+ if (noMove == false)
+ break;
+
+ if (board[i] == ply)
+ { // if this is a player field
+ for (int j = 0; j < 6; j++)
+ { // check double fields are empty
+ if (board[i + MoveDouble[j]] == 1)
+ {
+ noMove = false;
+ break;
+ }
+ }
+ for (int j = 0; j < 12; j++)
+ { // check jump fields are empty
+ if (board[i + MoveJump[j]] == 1)
+ {
+ noMove = false;
+ break;
+ }
+ }
+ }
+
+ }
+
+ if (noMove == true)
+ { // Player can not move fill rest with other player
+
+ ActPly = 0; // Game over
+
+ int next = ply + 2;
+ if (next > 6) next = 4;
+
+ for (int i = 22; i < 111; i++)
+ {
+ if (board[i] == 1)
+ board[i] = next;
+
+ }
+ }
+
+ // set counter to 0
+ cntPly1 = 0;
+ cntPly2 = 0;
+ //count all fields
+ for (int j = 22; j < 111; j++)
+ {
+ if (board[j] == 4 || board[j] == 5)
+ cntPly1 = cntPly1 + 1;
+ if (board[j] == 6 || board[j] == 7)
+ cntPly2 = cntPly2 + 1;
+ }
+ UpdateBoard();
+
+ // set message for game over
+ string msg = "";
+ if ((ActPly == 0) && (cntPly1 > cntPly2))
+ {
+ msg="Player 1 wins the game !";
+ }
+ if((ActPly == 0) && (cntPly1 < cntPly2))
+ {
+ msg="Player 2 wins the game !";
+ }
+ if((ActPly == 0) && (cntPly1 == cntPly2))
+ {
+ msg="It is a tie !";
+ }
+ // if game over
+ if (msg != "")
+ {
+ GUIDialogOK dlg = (GUIDialogOK)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_OK);
+ dlg.SetHeading(msg);
+ dlg.SetLine(1, msg);
+ dlg.SetLine(2, "Result");
+ dlg.SetLine(3, cntPly1.ToString() + " : " + cntPly2.ToString());
+ dlg.DoModal(GUIWindowManager.ActiveWindow);
+ }
+ }
+
+ private void CompSelect()
+ {
+ // search the best move
+ double[] thisBest = { 0, 0, 0, 0 };
+ double[] bestMove = { 0, 0, 0, 0 };
+
+ // check all fields
+ for (int i = 22; i < 111; i++)
+ {
+ int compHexx = 0;
+
+ // if field is computer
+ if (board[i]==computer)
+ compHexx = i;
+
+ if (compHexx != 0)
+ {
+ // Find the best move from every best move
+ thisBest = findBestMove(compHexx);
+
+ if (thisBest[0] > bestMove[0])
+ {
+ bestMove = thisBest;
+ } // Find best move if equal ranking
+ else if (thisBest[0] == bestMove[0])
+ {
+ if (thisBest[3] < bestMove[3])
+ {
+ bestMove = thisBest;
+ }
+ }
+ }
+ }
+
+ if (bestMove[2] != 0)
+ {
+ Select(computer, Convert.ToInt16(bestMove[1]));
+ Move(computer, Convert.ToInt16(bestMove[2]));
+ }
+
+ }
+
+ private double[] findBestMove(int compHexx)
+ {
+ double highestRanking = 0;
+ int hexxCheck = 0;
+ int hexxDest = 0;
+ int tryDest = 0;
+ double eqCount = 0;
+
+ Random randObj = new Random();
+
+ double [] returnArr = {0,0,0,0};
+
+ // calculate the value for selcted pos
+
+ for (int check = 0; check<3; check++)
+ {
+ for (int j = 0; j<6; j++)
+ {
+ double attackCount = 0;
+
+ if (check == 0)
+ {
+ // normal double
+ hexxCheck = MoveDouble[j];
+
+ double RND = Math.Round (randObj.NextDouble() * 1.5);
+ if (RND==1)
+ {
+ attackCount = 0.5;
+ }
+ else
+ {
+ attackCount = 1.5;
+ }
+ }
+ if (check == 1)
+ {
+ // jump part 1
+ hexxCheck = MoveJump[j];
+ }
+ if (check == 2)
+ {
+ // jump part 2
+ hexxCheck = MoveJump[j+6];
+ }
+
+ for (int k = 0; k<6; k++)
+ {
+ tryDest = compHexx + hexxCheck;
+ if (board[tryDest] == 1)
+ {
+ // If destination is not occupied...
+ if (board[tryDest+MoveDouble[k]] == player)
+ {
+ // Count attacks for each move
+ attackCount++;
+ }
+ }
+ }
+ if (attackCount>=highestRanking)
+ {
+ // Find the best available attacking move
+ if (board[tryDest] == 1)
+ {
+ highestRanking = attackCount;
+ hexxDest = tryDest;
+ }
+ }
+ // Find the better of two equally ranked moves
+ if (attackCount == highestRanking)
+ {
+ eqCount = 0;
+ for (int k = 0; k<6; k++)
+ {
+ if (board[compHexx + MoveDouble[k]] == computer)
+ {
+ // Only move if least of your kind surrounding you
+ eqCount++;
+ }
+ else
+ {
+ eqCount--;
+ }
+ }
+ }
+ }
+ }
+
+ // return values
+
+ returnArr[0] = highestRanking;
+ returnArr[1] = Convert.ToDouble(compHexx);
+ returnArr[2] = Convert.ToDouble(hexxDest);
+ returnArr[3] = eqCount;
+ return returnArr;
+ }
+
+ private void OnBtnWhatsThis()
+ {
+ GUIDialogText dlg = (GUIDialogText)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_TEXT);
+ dlg.SetHeading("What's Hexxagon");
+ dlg.SetText("Hexxagon is one of the most popular animated\n" +
+ "board games of strategy, loosely based upon\n" +
+ "Othello and Attaxx!. The original version was\n" +
+ "written in 1992 by Argo Games, and has been\n" +
+ "updated for the web by Neave. Finally I updated\n" +
+ "it for th MP.\n\n" +
+ "Game board design by Mikael S\xF6derstr\xF6m\n\n" +
+ "YOUR AIM: To take over the world! You can\n" +
+ "choose to play against the computer, or\n" +
+ "against another human opponent. There are\n" +
+ "two types of move, a jump or double, indicated\n" +
+ "hexxagon occupied by an opponent's piece will\n" +
+ "transform them into yours.\n\n" +
+ "Good luck\nkroko");
+ dlg.DoModal(GetID);
+ }
+
+ private void OnBtnLevel()
+ { //Choose level for the game
+ if (ActPly == 0 || (round==1 && ActPly == player ))
+ {
+ if (Level == "Nor")
+ {
+ GUIControl.SetControlLabel(GetID, BtnLevel.GetID, "Level: Professional");
+ Level = "Pro";
+ }
+ else if (Level == "Pro")
+ {
+ GUIControl.SetControlLabel(GetID, BtnLevel.GetID, "Level: Amateur");
+ Level = "Am";
+ }
+ else
+ {
+ GUIControl.SetControlLabel(GetID, BtnLevel.GetID, "Level: Normal");
+ Level = "Nor";
+ }
+ }
+ }
+
+ private void OnBtnMode()
+ { //Choose mode for the game
+ if (ActPly == 0 || (round == 1 && ActPly == player))
+ {
+ if (Mode == "2p")
+ {
+ GUIControl.SetControlLabel(GetID, BtnMode.GetID, "Mode: Play vs Computer");
+ Mode = "1p";
+ // Enable level selection
+ GUIControl.EnableControl(GetID, 4);
+ }
+ else
+ {
+ GUIControl.SetControlLabel(GetID, BtnMode.GetID, "Mode: Play vs Player");
+ Mode = "2p";
+ // Disable level selection
+ GUIControl.DisableControl(GetID, 4);
+ }
+ }
+ }
+
+ }
+
+}
\ No newline at end of file
Added: trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.csproj
===================================================================
--- trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.csproj (rev 0)
+++ trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.csproj 2007-04-10 11:58:17 UTC (rev 310)
@@ -0,0 +1,58 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.50727</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{7446DF9E-4F6D-41BF-89EB-7CFA23FA1DCD}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>MyHexxagon</RootNamespace>
+ <AssemblyName>MyHexxagon</AssemblyName>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <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' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>..\..\..\..\..\Programme\Team MediaPortal\MediaPortal\Plugins\Windows\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="Core, Version=0.2.2.0, Culture=neutral, processorArchitecture=x86">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\..\..\..\Programme\Team MediaPortal\MediaPortal\Core.DLL</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="Dialogs, Version=0.0.0.0, Culture=neutral, processorArchitecture=x86">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\..\..\..\Programme\Team MediaPortal\MediaPortal\Plugins\Windows\Dialogs.DLL</HintPath>
+ <Private>False</Private>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="MyHexxagon.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\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
Added: trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.xml
===================================================================
--- trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.xml (rev 0)
+++ trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/MyHexxagon.xml 2007-04-10 11:58:17 UTC (rev 310)
@@ -0,0 +1,151 @@
+<window>
+ <id>1234711</id>
+ <defaultcontrol>2</defaultcontrol>
+ <allowoverlay>yes</allowoverlay>
+ <autohidetopbar>yes</autohidetopbar>
+ <controls>
+ <import>common.time.xml</import>
+ <control>
+ <description>BackGround</description>
+ <type>image</type>
+ <id>1</id>
+ <posX>0</posX>
+ <posY>0</posY>
+ <width>720</width>
+ <height>576</height>
+ <texture>background.png</texture>
+ </control>
+ <control>
+ <description>text label</description>
+ <type>label</type>
+ <id>11</id>
+ <posX>60</posX>
+ <posY>70</posY>
+ <label>Hexxagon</label>
+ <font>font16</font>
+ <align>Left</align>
+ <textcolor>ffffffff</textcolor>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>Start</description>
+ <type>button</type>
+ <id>2</id>
+ <posX>60</posX>
+ <posY>97</posY>
+ <label>Start</label>
+ <onleft>2</onleft>
+ <onright>2</onright>
+ <onup>6</onup>
+ <ondown>3</ondown>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>Level</description>
+ <type>button</type>
+ <id>3</id>
+ <posX>60</posX>
+ <posY>131</posY>
+ <label>Level: Amateur</label>
+ <onleft>3</onleft>
+ <onright>3</onright>
+ <onup>2</onup>
+ <ondown>6</ondown>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>text label</description>
+ <type>label</type>
+ <id>4</id>
+ <posX>70</posX>
+ <posY>170</posY>
+ <label>#Round</label>
+ <font>font12</font>
+ <align>Left</align>
+ <textcolor>ffffffff</textcolor>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>text label</description>
+ <type>label</type>
+ <id>4</id>
+ <posX>70</posX>
+ <posY>204</posY>
+ <label>#Player</label>
+ <font>font12</font>
+ <align>Left</align>
+ <textcolor>ffffffff</textcolor>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>Whatsthis</description>
+ <type>button</type>
+ <id>6</id>
+ <posX>60</posX>
+ <posY>233</posY>
+ <label>What's this?</label>
+ <onleft>6</onleft>
+ <onright>6</onright>
+ <onup>3</onup>
+ <ondown>2</ondown>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+
+ <control>
+ <description>text label</description>
+ <type>label</type>
+ <id>12</id>
+ <posX>70</posX>
+ <posY>280</posY>
+ <label>#Ply1.Count</label>
+ <font>font12</font>
+ <align>Left</align>
+ <textcolor>ff000000</textcolor>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>text label</description>
+ <type>label</type>
+ <id>13</id>
+ <posX>70</posX>
+ <posY>310</posY>
+ <label>#Ply2.Count</label>
+ <font>font12</font>
+ <align>Left</align>
+ <textcolor>ffffffff</textcolor>
+ <animation effect="fade" time="150">WindowOpen</animation>
+ <animation effect="fade" time="150">WindowClose</animation>
+ </control>
+ <control>
+ <description>progress bar</description>
+ <type>progress</type>
+ <id>8</id>
+ <posX>100</posX>
+ <posY>280</posY>
+ <width>180</width>
+ <label>#Ply1.Percentage</label>
+ <visible>yes</visible>
+ <animation effect="fade" time="250">WindowOpen</animation>
+ <animation effect="fade" time="500">WindowClose</animation>
+ </control>
+ <control>
+ <description>progress bar</description>
+ <type>progress</type>
+ <id>9</id>
+ <posX>100</posX>
+ <posY>310</posY>
+ <width>180</width>
+ <label>#Ply2.Percentage</label>
+ <visible>yes</visible>
+ <animation effect="fade" time="250">WindowOpen</animation>
+ <animation effect="fade" time="500">WindowClose</animation>
+ </control>
+ </controls>
+</window>
Added: trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/Properties/AssemblyInfo.cs
===================================================================
--- trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/Properties/AssemblyInfo.cs (rev 0)
+++ trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon/Properties/AssemblyInfo.cs 2007-04-10 11:58:17 UTC (rev 310)
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die mit einer Assembly verknüpft sind.
+[assembly: AssemblyTitle("MyHexxagon")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("MyHexxagon")]
+[assembly: AssemblyCopyright("Copyright © 2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
+// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
+// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("529d6960-1821-438c-90c9-8850e9fac04f")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+// Hauptversion
+// Nebenversion
+// Buildnummer
+// Revision
+//
+// Sie können alle Werte angeben oder die standardmäßigen Revisions- und Buildnummern
+// übernehmen, indem Sie "*" eingeben:
+[assembly: AssemblyVersion("0.1.0.0")]
+[assembly: AssemblyFileVersion("0.1.0.0")]
Added: trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.sln
===================================================================
--- trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.sln (rev 0)
+++ trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.sln 2007-04-10 11:58:17 UTC (rev 310)
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyHexxagon", "MyHexxagon\MyHexxagon.csproj", "{7446DF9E-4F6D-41BF-89EB-7CFA23FA1DCD}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7446DF9E-4F6D-41BF-89EB-7CFA23FA1DCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7446DF9E-4F6D-41BF-89EB-7CFA23FA1DCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7446DF9E-4F6D-41BF-89EB-7CFA23FA1DCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7446DF9E-4F6D-41BF-89EB-7CFA23FA1DCD}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
Added: trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.suo
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/Source/MyHexxagon/MyHexxagon.suo
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/hexxagon.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/plugins/My Hexxagon/hexxagon.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/plugins/My Hexxagon/readme.txt
===================================================================
--- trunk/plugins/My Hexxagon/readme.txt (rev 0)
+++ trunk/plugins/My Hexxagon/readme.txt 2007-04-10 11:58:17 UTC (rev 310)
@@ -0,0 +1,42 @@
+Visit the forum
+http://forum.team-mediaportal.com/hexxagon_game-t20507.html
+
+Hexxagon
+--------
+-Initial release
+-1 and 2 player support
+-Gameboard design by Mikael S\xF6derstr\xF6m for the SimpleMP
+
+This nice game from MB as a MP version. You can play with
+- the mouse
+- remote
+
+Copy the plugin and skin files into your favorite skin folder.
+It works also for the Blue Two Skin.
+
+
+Description:
+------------
+Hexxagon is one of the most popular animated
+board games of strategy, loosely based upon
+Othello and Attaxx!. The original version was
+written in 1992 by Argo Games, and has been
+updated for the web by Neave. Finally I updated
+it for th MP.
+Game board design by Mikael S\xF6derstr\xF6m
+YOUR AIM: To take over the world! You can
+choose to play against the computer, or
+against another human opponent. There are
+two types of move, a jump or double, indicated
+hexxagon occupied by an opponent's piece will
+transform them into yours.
+
+Good luck
+kroko
+
+
+
+Have fun.
+
+Greetz
+kroko
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|