Changeset 941 for 2010/24


Ignore:
Timestamp:
2010-06-17 11:31:04 (9 years ago)
Author:
ramipasa
Message:

Lisätty pelilogiikkaa (nyt 2500 riviä koodia!) ja selkeytetty käyttöliittymää.

Location:
2010/24/ramipasa/ALTKTileEngine
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • 2010/24/ramipasa/ALTKTileEngine/ALTKTileEngine.csproj

    r895 r941  
    6565      <HintPath>..\..\BaseRules.dll</HintPath> 
    6666    </Reference> 
    67     <Reference Include="Jypeli2, Version=2.1.7.0, Culture=neutral, processorArchitecture=x86"> 
     67    <Reference Include="Jypeli2, Version=2.1.8.0, Culture=neutral, processorArchitecture=x86"> 
    6868      <SpecificVersion>False</SpecificVersion> 
    6969      <HintPath>..\..\..\..\lib\Jypeli2.dll</HintPath> 
  • 2010/24/ramipasa/ALTKTileEngine/Content/Content.contentproj

    r915 r941  
    4040      <Importer>XImporter</Importer> 
    4141    </Content> 
     42    <Compile Include="Textures\Ownership\unitsOnTileSelected.png"> 
     43      <Name>unitsOnTileSelected</Name> 
     44      <Importer>TextureImporter</Importer> 
     45      <Processor>TextureProcessor</Processor> 
     46    </Compile> 
     47    <Compile Include="Textures\Ownership\unitsOnTile.png"> 
     48      <Name>unitsOnTile</Name> 
     49      <Importer>TextureImporter</Importer> 
     50      <Processor>TextureProcessor</Processor> 
     51    </Compile> 
    4252    <Compile Include="Textures\fogofwar.png"> 
    4353      <Name>fogofwar</Name> 
  • 2010/24/ramipasa/ALTKTileEngine/Peli.cs

    r915 r941  
    2525        int[,] OwnershipMap; // ruudukon omistuskartta (kenen pelaajan hallinnassa on mikäkin ruutu) 
    2626        int[,] ShroudMap; // pelaajan näkymää pienentävä Shroudmap 
     27        int[,] UnitMap; // yksikkökartta 
    2728 
    2829        string Textpath; 
     
    3839        // (karttakoordinaatit säilyttää myös UnitMap, josta on helppo tarkastaa esim. liikuttaessa yksiköitä, onko ruudussa jo esim. vihollisyksiköitä. 
    3940 
     41        int SelectedUnit = -1; 
     42 
     43        bool UnitsSelected = new bool(); 
     44 
    4045        TextDisplay TileDisp; 
    4146        TextDisplay UnitStatsDisp; 
    4247        TextDisplay ProductionDisp; 
     48        TextDisplay BuildCityDisp; 
     49        TextDisplay BuildUnitsDisp; 
     50        TextDisplay Unit1Disp; 
     51        TextDisplay Unit2Disp; 
     52        TextDisplay Unit3Disp; 
     53        TextDisplay Unit4Disp; 
     54        TextDisplay ResearchDisp; 
     55        TextDisplay ResearchableTech1; 
     56        TextDisplay ResearchableTech2; 
     57        TextDisplay ResearchableTech3; 
     58        TextDisplay ClicktoResearch; 
    4359 
    4460        int kartanLeveys; 
    4561        int kartanKorkeus; 
    4662 
     63        int CurrentPlayer; 
     64 
    4765        // perusmaastotyypit 
    4866        const int Aavikko = 2, Tundra = 3, Vuoristo = 1, Lehtimetsa = 0; 
     
    5169        const int Havumetsa = 2, Tyhja = 0, Kuusimetsa = 3; 
    5270 
    53         // Pelissä on kaksi eri tasoa, toisella perusmaasto ja toisella tarkempaa tietoa (esim. onko ruutu metsää ym.) 
     71        // Pelissä on viisi eri tasoa, toisella perusmaasto ja toisella tarkempaa tietoa (esim. onko ruutu metsää ym.) 
     72        // Kolmas taso kertoo, kenen valtion hallinnassa ruutu on, neljäs on Fog of War, ja viides piirtää yksiköt. 
    5473        GameObject[,] tile; 
    5574        GameObject[,] DTile; 
    5675        GameObject[,] TileOwnership; 
    5776        GameObject[,] ShroudTile; 
     77        GameObject[,] UnitTile; 
    5878        //Vector tileVector; 
    5979 
     
    184204            OwnershipMap = new int[kartanKorkeus, kartanLeveys]; 
    185205            ShroudMap = new int[kartanKorkeus, kartanLeveys]; 
     206            UnitMap = new int[kartanKorkeus, kartanLeveys]; 
    186207            InitTerrain(0); 
    187208            InitTerrain(1); 
    188209            InitTerrain(2); 
    189210            InitTerrain(3); 
     211            InitTerrain(4); 
    190212 
    191213            tile = new GameObject[kartanKorkeus, kartanLeveys]; 
     
    193215            TileOwnership = new GameObject[kartanKorkeus, kartanLeveys]; 
    194216            ShroudTile = new GameObject[kartanKorkeus, kartanLeveys]; 
     217            UnitTile = new GameObject[kartanKorkeus, kartanLeveys]; 
    195218            InitTerrainGraphics(0); 
    196219            InitTerrainGraphics(1); 
    197220            InitTerrainGraphics(2); 
    198221            InitTerrainGraphics(3); 
     222            InitTerrainGraphics(4); 
     223 
     224            for (i = 0; i <= (kartanKorkeus - 1); i++) 
     225            { 
     226                for (j = 0; j <= (kartanLeveys - 1); j++) 
     227                { 
     228                    UnitMap[i, j] = -1; 
     229                } 
     230            } 
     231 
     232            // Initialisoidaan Unitmap 
     233 
     234            for (i = 0; i <= (kartanKorkeus - 1); i++) 
     235            { 
     236                for (j = 0; j <= (kartanLeveys - 1); j++) 
     237                { 
     238                    UnitTile[i, j].Shape = Shapes.Rectangle; 
     239                    UnitTile[i, j].X = (j * 48) - mapWidthJ; 
     240                    UnitTile[i, j].Y = (i * 48) - mapHeightJ; 
     241                    UnitTile[i, j].Image = LoadImage(OwnershipColorPath + "unitsOnTile"); 
     242                } 
     243            } 
    199244 
    200245            // Koodi käännetty RGE:n VB.netistä 
     
    206251                for (j = 0; j <= (kartanLeveys - 1); j++) 
    207252                { 
    208                     // MessageBox.Show(mLine + " " + j + " " + i); 
     253                    // MessageBox.Show(mLine + " " + j + " " + i);s 
    209254                    tile[i, j].Shape = Shapes.Rectangle; 
    210255                    tile[i, j].X = (j * 48) - mapWidthJ; 
     
    213258                    tile[i, j].Image = LoadImage(getTexture_fromTerrainType(TerrainMap[i, j], 0, i, j)); 
    214259                    Add(tile[i, j]); 
    215  
     260                    Mouse.ListenOn(tile[i, j], MouseButton.Left, Jypeli.ButtonState.Pressed, TileClicked, "", i, j); 
    216261                    //Mouse.ListenMovement(tile[i, j], showTileInfo_forTileDisp, null, i, j); 
    217262                    // MessageBox.Show(Convert.ToString(TerrainMap[i, j])); 
     
    254299                } 
    255300            } 
     301 
    256302 
    257303            // Asettaa ja piirtää erikoismaaston 
     
    300346            Level.BackgroundColor = Color.Black; 
    301347            InitGUI(); 
     348 
     349            Application.DoEvents(); 
    302350            TurnSystem_Start(0); // Antaa pelin alkaa! 
    303         } 
    304  
    305         private void InitGUI() 
    306         { 
    307             TileDisp = new TextDisplay(); 
    308             TileDisp.X = Screen.Left + 120; 
    309             TileDisp.Y = Screen.Bottom + 200; 
    310             TileDisp.TextColor = Color.White; 
    311  
    312             UnitStatsDisp = new TextDisplay(); 
    313             UnitStatsDisp.X = Screen.Left + 120; 
    314             UnitStatsDisp.Y = Screen.Bottom + 300; 
    315             UnitStatsDisp.Text = "d23"; 
    316             UnitStatsDisp.TextColor = Color.DarkRed; 
    317  
    318             ProductionDisp = new TextDisplay(); 
    319             ProductionDisp.X = Screen.Right - 150; 
    320             ProductionDisp.Y = Screen.Top - 50; 
    321             ProductionDisp.Text = "Tuotanto: 10/120"; 
    322             ProductionDisp.TextColor = Color.Wheat; 
    323  
    324             Add(TileDisp); 
    325             Add(UnitStatsDisp); 
    326             Add(ProductionDisp); 
    327351        } 
    328352 
     
    344368            if (tlayer == 2) { return OwnershipMap; } 
    345369            if (tlayer == 3) { return ShroudMap; } 
     370            if (tlayer == 4) { return UnitMap; } 
    346371            return TerrainMap; 
    347372        } 
     
    364389            if (tlayer == 2) { return TileOwnership; } 
    365390            if (tlayer == 3) { return ShroudTile; } 
     391            if (tlayer == 4) { return UnitTile; } 
    366392            return tile; 
    367393        } 
     
    411437        } 
    412438 
     439        private void TileClicked(int i, int j) 
     440        { 
     441            //MessageBox.Show(OwnershipMap[i, j] + " " + UnitMap[i, j]); 
     442            if (OwnershipMap[i, j] == 0 && UnitMap[i, j] > -1) 
     443            { 
     444                UnitSelect(i, j); 
     445            } 
     446        } 
     447 
     448        private void UnitSelect(int i, int j) 
     449        { 
     450            //MessageBox.Show("UnitSelect: " + Convert.ToString(Rules.pCivs[CurrentPlayer].Units[GetUnit_FromPositionForSelection(i, j)].CurrentMovementPoints)); 
     451            if (Rules.pCivs[CurrentPlayer].Units[GetUnit_FromPositionForSelection(i, j)].CurrentMovementPoints > 0) 
     452            { 
     453                MessageDisplay.Add("Valitsit yksikön " + Rules.pCivs[CurrentPlayer].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + " kohteesta " + Rules.pCivs[CurrentPlayer].Units[GetUnit_FromPositionForSelection(i, j)].PosY + "; " + Rules.pCivs[CurrentPlayer].Units[GetUnit_FromPositionForSelection(i, j)].PosX); 
     454                MessageDisplay.Add("Liikuta valittua yksikköä Numpadista."); 
     455                UnitStatsDisp.Text = "Valittu yksikkö:" + Environment.NewLine + Rules.pCivs[CurrentPlayer].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + 
     456                    Environment.NewLine + "-Voimakkuus: " + Rules.pCivs[CurrentPlayer].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Strength + Environment.NewLine + 
     457                    "-Liikkuvuus: " + Rules.pCivs[CurrentPlayer].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Movement + Environment.NewLine + 
     458                    Rules.pCivs[CurrentPlayer].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Description + Environment.NewLine +  
     459                    " HP: " + Rules.pCivs[CurrentPlayer].Units[GetUnit_FromPositionForSelection(i, j)].HP * 100 + "/100"; 
     460                SelectedUnit = GetUnit_FromPositionForSelection(i, j); 
     461                UnitTile[i, j].Image = LoadImage(OwnershipColorPath + "unitsOnTileSelected"); 
     462                UnitsSelected = true; 
     463                //Keyboard.Enable(Key.NumPad1); 
     464                //Keyboard.Enable(Key.NumPad2); 
     465                //Keyboard.Enable(Key.NumPad3); 
     466                //Keyboard.Enable(Key.NumPad4); 
     467                //Keyboard.Enable(Key.NumPad5); 
     468                //Keyboard.Enable(Key.NumPad6); 
     469                //Keyboard.Enable(Key.NumPad7); 
     470                //Keyboard.Enable(Key.NumPad8); 
     471                //Keyboard.Enable(Key.NumPad9); 
     472            } 
     473        } 
     474         
    413475        private void DrawOwnership(int i, int j) 
    414476        { 
    415             if (ShroudMap[i, j] == 0) 
     477            if (ShroudMap[i, j] == 0 && TileOwnership[i, j].IsAddedToGame == false) 
    416478            { 
    417479                TileOwnership[i, j].Image = LoadImage(OwnershipColorPath + Rules.pCivs[OwnershipMap[i, j]].Color); 
     
    421483        } 
    422484 
     485        private void DrawUnit(int i, int j) 
     486        { 
     487            if (UnitTile[i, j].IsAddedToGame == false) 
     488            { 
     489                Add(UnitTile[i, j]); 
     490                //Mouse.ListenOn(UnitTile[i, j], MouseButton.Left, Jypeli.ButtonState.Pressed, UnitSelect, "Valitse yksikkö painamalla ruutua", i, j); 
     491            } 
     492        } 
     493 
     494        private void RemoveOwnership(int i, int j) 
     495        { 
     496            OwnershipMap[i, j] = -1; 
     497            TileOwnership[i, j].Destroy(); 
     498        } 
     499 
    423500        private void AddStartingCity(int playernumber, int i, int j) 
    424501        { 
    425502            //MessageBox.Show(TileOwnership[i, j].X + "x" + TileOwnership[i, j].Y + " " + DTile[i, j].X + "x" + DTile[i, j].Y + " Params: " + i + " " + j); 
    426503            Rules.pCivs[playernumber].Production = Rules.pCivs[playernumber].Production + 10; 
    427             Rules.pCivs[playernumber].NumberofCities = Rules.pCivs[playernumber].NumberofCities + 1; 
    428504            Rules.pCivs[playernumber].CityCoords[Rules.pCivs[playernumber].NumberofCities, 0] = i; 
    429505            Rules.pCivs[playernumber].CityCoords[Rules.pCivs[playernumber].NumberofCities, 1] = j; 
     506            Rules.pCivs[playernumber].NumberofCities = Rules.pCivs[playernumber].NumberofCities + 1; 
     507            //MessageBox.Show("AddStartingCity: " + i + " " + j + " Playernumber: " + playernumber + "CityCoords: " + Rules.pCivs[playernumber].CityCoords[0, 0] + " " + Rules.pCivs[playernumber].CityCoords[0, 1]); 
    430508            if (Rules.pCivs[playernumber].HumanPlayer == false) 
    431509            { 
     
    436514            else 
    437515            { 
    438                 RemoveShroud(i, j); 
    439                 for (int shri = i - 2; shri <= i + 2; shri++) 
    440                 { 
    441                     for (int shrj = j - 2; shrj <= j + 2; shrj++) 
    442                     { 
    443                         RemoveShroud(shri, shrj); 
    444                     } 
    445                 } 
     516                CheckAndRemoveShroud_FromPos(i, j); 
    446517            } 
    447518            OwnershipMap[i, j] = playernumber; 
     
    452523        } 
    453524 
     525        // Aliohjelma yksikön luomiseen 
     526        private void CreateUnit(int i, int j, ALTKUnits.UnitClass unittype, int civnumber) 
     527        { 
     528            //MessageBox.Show(i + " " + j); 
     529            Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits] = new BaseRules.Unit(); 
     530            Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits].HP = 1.00; 
     531            Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits].PosY = i; 
     532            Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits].PosX = j; 
     533            Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits].UnitType = unittype; 
     534            Rules.pCivs[civnumber].NumberofUnits = Rules.pCivs[civnumber].NumberofUnits + 1; 
     535            UnitMap[i, j] = civnumber; 
     536 
     537            DrawUnit(i, j); 
     538 
     539            if (OwnershipMap[i, j] == -1) 
     540            { 
     541            } 
     542            else 
     543            { 
     544                OwnershipMap[i, j] = civnumber; 
     545                DrawOwnership(i, j); 
     546            } 
     547        } 
     548 
     549        public string GetUnits_FromPositionForView(int i, int j) 
     550        { 
     551            //MessageBox.Show("GetUnits..."); 
     552            string units = ""; 
     553            int civid; 
     554            civid = OwnershipMap[i, j]; 
     555            //int[] UnitAmount = new int[23]; 
     556            //MessageBox.Show("GetUnits... Stage 0.5"); 
     557            //for (int c = 0; c <= 23; c++) 
     558            //{ 
     559                //MessageBox.Show("GetUnits... Stage 0.8"); 
     560                //UnitAmount[c] = new int(); 
     561            //} 
     562            //MessageBox.Show("GetUnits... Stage 1"); 
     563            for (int a = 0; a <= Rules.pCivs[civid].NumberofUnits - 1; a++) 
     564            { 
     565                //MessageBox.Show("GetUnits... Stage 2"); 
     566                if (Rules.pCivs[civid].Units[a].PosY == i && Rules.pCivs[civid].Units[a].PosX == j) // && (units.Contains(Rules.pCivs[civid].Units[a].UnitType.Name))) 
     567                { 
     568                    //MessageBox.Show("ffff"); 
     569                    // UnitAmount[Rules.pCivs[civid].Units[a].UnitType.UnitId] = UnitAmount[Rules.pCivs[civid].Units[a].UnitType.UnitId] + 1; 
     570                    units = units + Rules.pCivs[civid].Units[a].UnitType.Name + "(" + BaseRules.Rules.GetUnitType_FromInt(Rules.pCivs[civid].Units[a].UnitType.UnitType) + BaseRules.Rules.GetMountedStatus_FromBool(Rules.pCivs[civid].Units[a].UnitType.Mounted) + ") HP: " + Rules.pCivs[civid].Units[a].HP * 100 + ";; " + Rules.pCivs[civid].Units[a].UnitType.Strength + " : " +  
     571                        Rules.pCivs[civid].Units[a].UnitType.Movement + " : " + Rules.pCivs[civid].Units[a].UnitType.Description + Environment.NewLine; 
     572                        //UnitAmount[Rules.pCivs[civid].Units[a].UnitType.UnitId] = Rules.pCivs[civid].Units[a].UnitType.UnitId + 1; 
     573                } 
     574            } 
     575            return units; 
     576            //} 
     577            //return units; 
     578            //MessageBox.Show(units); 
     579            //MessageBox.Show("GetUnits... Stage 5"); 
     580            //for (int b = 0; b <= 23; b++) 
     581            //{ 
     582            //    if (UnitAmount[b] > 0) 
     583            //    { 
     584            //        // MessageBox.Show("GetUnits... Stage 6"); 
     585            //        if (UnitAmount[b] > 1) 
     586            //        { 
     587            //            //MessageBox.Show("GetUnits... Stage 7"); 
     588            //            units = units + BaseRules.Rules.getUnit_FromId(UnitAmount[b]).Name + " x" + UnitAmount[b] + Environment.NewLine; 
     589            //            return units; 
     590            //        } 
     591            //        else if (UnitAmount[b] == 1) 
     592            //        { 
     593            //             // MessageBox.Show("GetUnits... Stage 8"); 
     594            //            units = units + BaseRules.Rules.getUnit_FromId(UnitAmount[b]).Name + Environment.NewLine; 
     595            //            return units; 
     596            //        } 
     597            //    } 
     598            //} 
     599            //return units; 
     600            //    //MessageBox.Show("GetUnits... Stage 9"); 
     601 
     602           // MessageBox.Show("GetUnits... Stage 10"); 
     603        } 
     604 
     605        public int GetUnit_FromPositionForSelection(int i, int j) 
     606        { 
     607            int civid; 
     608            civid = OwnershipMap[i, j]; 
     609            for (int a = 0; a <= Rules.pCivs[civid].NumberofUnits - 1; a++) 
     610            { 
     611                if (Rules.pCivs[civid].Units[a].PosY == i && Rules.pCivs[civid].Units[a].PosX == j) 
     612                { 
     613                    return a; 
     614                } 
     615            } 
     616            return -1; 
     617        } 
     618 
     619        public int GetUnit_FromPositionForRemoval(int i, int j, ALTKUnits.UnitClass unittype, double unitHP) 
     620        { 
     621           // MessageBox.Show("GetUnit_FromPosition: " + i + " " + j); 
     622            int civid; 
     623            civid = OwnershipMap[i, j]; 
     624            for (int a = 0; a <= Rules.pCivs[civid].NumberofUnits - 1; a++) 
     625            { 
     626                if (Rules.pCivs[civid].Units[a].PosY == i && Rules.pCivs[civid].Units[a].PosX == j && Rules.pCivs[civid].Units[a].UnitType.Equals(unittype) && Rules.pCivs[civid].Units[a].HP == unitHP) 
     627                { 
     628                    return a; 
     629                } 
     630            } 
     631            return -1; 
     632        } 
     633 
     634        private void RemoveUnit(int i, int j, int civnumber, ALTKUnits.UnitClass unittype, double unitHP) 
     635        { 
     636            MessageBox.Show(i + " " + j + " " + civnumber); 
     637            int unitpos = GetUnit_FromPositionForRemoval(i, j, unittype, unitHP); 
     638            if (unitpos > 0 && Rules.pCivs[civnumber].NumberofUnits > 2) 
     639            { 
     640                MessageBox.Show("FirstMethod"); 
     641                for (int a = unitpos + 1; a <= Rules.pCivs[civnumber].NumberofUnits - 1; a++) 
     642                { 
     643                    Rules.pCivs[civnumber].Units[a - 1].HP = Rules.pCivs[civnumber].Units[a].HP; 
     644                    Rules.pCivs[civnumber].Units[a - 1].PosY = Rules.pCivs[civnumber].Units[a].PosY; 
     645                    Rules.pCivs[civnumber].Units[a - 1].PosX = Rules.pCivs[civnumber].Units[a].PosX; 
     646                    Rules.pCivs[civnumber].Units[a - 1].UnitType = Rules.pCivs[civnumber].Units[a].UnitType; 
     647                } 
     648                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosX = 0; 
     649                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosY = 0; 
     650                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].HP = 0.0; 
     651                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].UnitType = null; 
     652            } 
     653            else if (unitpos == 0 && Rules.pCivs[civnumber].NumberofUnits > 1) 
     654            { 
     655                MessageBox.Show("SecondMethod"); 
     656                for (int a = 1; a <= Rules.pCivs[civnumber].NumberofUnits - 1; a++) 
     657                { 
     658                    Rules.pCivs[civnumber].Units[a - 1].HP = Rules.pCivs[civnumber].Units[a].HP; 
     659                    Rules.pCivs[civnumber].Units[a - 1].PosY = Rules.pCivs[civnumber].Units[a].PosY; 
     660                    Rules.pCivs[civnumber].Units[a - 1].PosX = Rules.pCivs[civnumber].Units[a].PosX; 
     661                    Rules.pCivs[civnumber].Units[a - 1].UnitType = Rules.pCivs[civnumber].Units[a].UnitType; 
     662                } 
     663                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosX = 0; 
     664                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosY = 0; 
     665                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].HP = 0.0; 
     666                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].UnitType = null; 
     667            } 
     668            else if (unitpos == 0 && Rules.pCivs[civnumber].NumberofUnits == 1) 
     669            { 
     670                MessageBox.Show("ThirdMethod"); 
     671                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosX = 0; 
     672                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosY = 0; 
     673                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].HP = 0.0; 
     674                Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].UnitType = null; 
     675            } 
     676            Rules.pCivs[civnumber].NumberofUnits = Rules.pCivs[civnumber].NumberofUnits - 1; 
     677        } 
    454678        public string setAIOwnershipColor(int playernumber) 
    455679        { 
     
    547771        # endregion 
    548772 
     773        private void InitGUI() 
     774        { 
     775            TileDisp = new TextDisplay(); 
     776            TileDisp.X = Screen.Left + 120; 
     777            TileDisp.Y = Screen.Bottom + 200; 
     778            TileDisp.TextColor = Color.White; 
     779 
     780            UnitStatsDisp = new TextDisplay(); 
     781            UnitStatsDisp.X = Screen.Left + 300; 
     782            UnitStatsDisp.Y = Screen.Bottom + 400; 
     783            UnitStatsDisp.Text = "d23"; 
     784            UnitStatsDisp.TextColor = Color.DarkRed; 
     785 
     786            ProductionDisp = new TextDisplay(); 
     787            ProductionDisp.X = Screen.Right - 150; 
     788            ProductionDisp.Y = Screen.Top - 50; 
     789            ProductionDisp.Text = "Tuotanto: 10/120"; 
     790            ProductionDisp.TextColor = Color.Wheat; 
     791 
     792            BuildCityDisp = new TextDisplay(); 
     793            BuildCityDisp.X = Screen.Right - 180; 
     794            BuildCityDisp.Y = Screen.Top - 150; 
     795            BuildCityDisp.TextColor = Color.Green; 
     796            BuildCityDisp.Text = "Rakenna kaupunki"; 
     797            //BuildCityDisp.ClickEventHandler bCityHandler = new ScreenObject.ClickEventHandler(BuildCityDisp); 
     798 
     799            Mouse.ListenOn(BuildCityDisp, MouseButton.Left, Jypeli.ButtonState.Pressed, BuildCityClicked, "Rakenna kaupunki"); 
     800 
     801            BuildUnitsDisp = new TextDisplay(); 
     802            BuildUnitsDisp.X = Screen.Right - 120; 
     803            BuildUnitsDisp.Y = Screen.Top - 200; 
     804            BuildUnitsDisp.TextColor = Color.Green; 
     805            BuildUnitsDisp.Text = "Rakenna yksiköitä"; 
     806 
     807            Unit1Disp = new TextDisplay(); 
     808            Unit1Disp.X = Screen.Right - 100; 
     809            Unit1Disp.Y = Screen.Top - 250; 
     810            Unit1Disp.TextColor = Color.DarkGreen; 
     811            Unit1Disp.Text = "1. puun yksikkö"; 
     812 
     813            Unit2Disp = new TextDisplay(); 
     814            Unit2Disp.X = Screen.Right - 100; 
     815            Unit2Disp.Y = Screen.Top - 300; 
     816            Unit2Disp.TextColor = Color.DarkGreen; 
     817            Unit2Disp.Text = "2. puun yksikkö"; 
     818 
     819            Unit3Disp = new TextDisplay(); 
     820            Unit3Disp.X = Screen.Right - 100; 
     821            Unit3Disp.Y = Screen.Top - 350; 
     822            Unit3Disp.TextColor = Color.DarkGreen; 
     823            Unit3Disp.Text = "3. puun yksikkö"; 
     824 
     825            Unit4Disp = new TextDisplay(); 
     826            Unit4Disp.X = Screen.Right - 100; 
     827            Unit4Disp.Y = Screen.Top - 400; 
     828            Unit4Disp.TextColor = Color.DarkGreen; 
     829            Unit4Disp.Text = "4. puun yksikkö"; 
     830 
     831            ResearchDisp = new TextDisplay(); 
     832            ResearchDisp.X = Screen.Right - 200; 
     833            ResearchDisp.Y = Screen.Top - 500; 
     834            ResearchDisp.TextColor = Color.Green; 
     835            ResearchDisp.Text = "Teknologia:" + Environment.NewLine + "Horseback Riding 199/200"; 
     836 
     837            ResearchableTech1 = new TextDisplay(); 
     838            ResearchableTech2 = new TextDisplay(); 
     839            ResearchableTech3 = new TextDisplay(); 
     840 
     841            ClicktoResearch = new TextDisplay(); 
     842            ClicktoResearch.X = Screen.Right - 200; 
     843            ClicktoResearch.Y = Screen.Top - 600; 
     844            ClicktoResearch.TextColor = Color.Green; 
     845            ClicktoResearch.Text = "Kehitä teknologiaa"; 
     846 
     847            MessageDisplay.TextColor = Color.Orange; 
     848 
     849            Add(TileDisp); 
     850            Add(UnitStatsDisp); 
     851            Add(ProductionDisp); 
     852            Add(BuildCityDisp); 
     853            Add(BuildUnitsDisp); 
     854            //Add(Unit1Disp); 
     855            //Add(Unit2Disp); 
     856            //Add(Unit3Disp); 
     857            //Add(Unit4Disp); 
     858            Add(ResearchDisp); 
     859            Add(ClicktoResearch); 
     860        } 
     861 
     862        private void BuildCityClicked() 
     863        { 
     864            Rules.pCivs[CurrentPlayer].BuiltFromCity = Rules.pCivs[CurrentPlayer].BuiltFromCity + CurrProduction; 
     865        } 
     866 
    549867        private void InitRules() 
    550868        { 
     
    559877        private void RemoveShroud(int i, int j) 
    560878        { 
    561             ShroudMap[i, j] = 0; 
    562             ShroudTile[i, j].Destroy(); 
    563                     try 
     879            try 
     880            { 
     881                ShroudMap[i, j] = 0; 
     882                ShroudTile[i, j].Destroy(); 
     883                try 
     884                { 
     885                    if (OwnershipMap[i, j] > -1) 
    564886                    { 
    565                         if (OwnershipMap[i, j] > -1) 
    566                         { 
    567                             DrawOwnership(i, j); 
    568                         } 
     887                        DrawOwnership(i, j); 
    569888                    } 
    570                     catch 
    571                     { 
    572                     } 
     889                } 
     890                catch 
     891                { 
     892                } 
     893            } 
     894            catch 
     895            { 
     896                MessageDisplay.Add("Shroud not removed from tile " + i + "; " + j + " because of IndexoutofRange exception."); 
     897            } 
     898        } 
     899 
     900        private void CheckAndRemoveShroud_FromPos(int i, int j) 
     901        { 
     902            RemoveShroud(i, j); 
     903            for (int shri = i - 2; shri <= i + 2; shri++) 
     904            { 
     905                for (int shrj = j - 2; shrj <= j + 2; shrj++) 
     906                { 
     907                    RemoveShroud(shri, shrj); 
     908                } 
     909            } 
    573910        } 
    574911 
     
    576913        { 
    577914            TurnNumber = TurnNumber + 1; 
     915            MessageDisplay.Add("Vuorosi on alkanut!"); 
     916            CurrentPlayer = playernumber; 
     917            CurrProduction = Rules.pCivs[playernumber].Production; 
    578918            ProductionDisp.Text = "Vuoro: " + TurnNumber + Environment.NewLine + 
    579919                "Tuotantoa vuorossa: " + Rules.pCivs[playernumber].Production + Environment.NewLine + 
    580920                "Tuotantoa jäljellä: " + CurrProduction; 
     921            BuildCityDisp.Text = "Rakenna kaupunki (" + Rules.pCivs[playernumber].BuiltFromCity + " / " + Rules.pCivs[playernumber].Production + ")"; 
     922            if (TurnNumber == 1) 
     923            { 
     924                //CreateUnit(Rules.pCivs[playernumber].CityCoords[0, 0], Rules.pCivs[playernumber].CityCoords[0, 1], Rules.Archer, playernumber); 
     925                //CreateUnit(Rules.pCivs[playernumber].CityCoords[0, 0], Rules.pCivs[playernumber].CityCoords[0, 1], Rules.Archer, playernumber); 
     926                CreateUnit(Rules.pCivs[playernumber].CityCoords[0, 0], Rules.pCivs[playernumber].CityCoords[0, 1], Rules.Deathbringer, playernumber); 
     927                //RemoveUnit(Rules.pCivs[playernumber].Units[0].PosY, Rules.pCivs[playernumber].Units[0].PosX, playernumber); 
     928            } 
     929            for (int a = 0; a < Rules.pCivs[playernumber].NumberofUnits; a++) 
     930            { 
     931                Rules.pCivs[playernumber].Units[a].CurrentMovementPoints = Rules.pCivs[playernumber].Units[a].UnitType.Movement; 
     932            } 
    581933        } 
    582934 
     
    596948                        { 
    597949                            TileDisp.Text = getTileInfo_forTileDisp(i, j); 
     950                            if (UnitsSelected == false) 
     951                            { 
     952                                UnitStatsDisp.Text = getUnitDisp(i, j, 0); 
     953                            } 
     954                            //Application.DoEvents(); 
    598955                        } 
    599956                        //Mouse.ListenMovement(tile[i, j], showTileInfo_forTileDisp, null, i, j); 
     
    6571014            else 
    6581015            { 
    659                // MessageBox.Show(Convert.ToString(ShroudMap[i, j])); 
     1016                // MessageBox.Show(Convert.ToString(ShroudMap[i, j])); 
    6601017                if (ShroudMap[i, j] == 0) 
    6611018                { 
     
    6651022                        { 
    6661023                            tileinfo = tileinfo + Environment.NewLine + "Kaupunki"; 
    667                             tileinfo = tileinfo + Environment.NewLine + Rules.pCivs[OwnershipMap[i, j]].Name; 
    6681024                        } 
    6691025                    } 
     
    6731029                } 
    6741030            } 
    675             if (Defensebonus != 0) 
    676             { 
    677                 return tileinfo + Environment.NewLine + "Puolustusbonus: " + Defensebonus + "%"; 
    678             } 
    679             else 
    680             { 
    681                 return tileinfo; 
    682             } 
     1031 
     1032            if (ShroudMap[i, j] == 0) 
     1033            { 
     1034                try 
     1035                { 
     1036                    if (OwnershipMap[i, j] > -1) 
     1037                    { 
     1038                        tileinfo = tileinfo + Environment.NewLine + Rules.pCivs[OwnershipMap[i, j]].Name; 
     1039                    } 
     1040                } 
     1041                catch 
     1042                { 
     1043                } 
     1044 
     1045                if (Defensebonus != 0) 
     1046                { 
     1047                    return tileinfo = tileinfo + Environment.NewLine + "Puolustusbonus: " + Defensebonus + "%"; 
     1048                } 
     1049                else 
     1050                { 
     1051                    return tileinfo; 
     1052                } 
     1053            } 
     1054            return tileinfo; 
     1055        } 
     1056 
     1057        public string getUnitDisp(int i, int j, int s) 
     1058        { 
     1059            string unitinfo = ""; 
     1060            if (ShroudMap[i, j] == 0) 
     1061            { 
     1062                try 
     1063                { 
     1064                    if (OwnershipMap[i, j] > -1) 
     1065                    { 
     1066                        //MessageBox.Show("OwnershipMap passed:" + i + " " + j + " UnitMap: " + UnitMap[i, j]); 
     1067                        //MessageBox.Show(Convert.ToString(0 > -1)); 
     1068                        if (UnitMap[i, j] > -1) 
     1069                        { 
     1070                            //MessageBox.Show("UnitMap passed:" + i + " " + j); 
     1071                            //string unitstats; 
     1072                            if (s == 0) 
     1073                            { 
     1074                                unitinfo = "Ruudun yksiköt: " + Environment.NewLine + GetUnits_FromPositionForView(i, j); 
     1075                            } 
     1076                            else if (s == 1) 
     1077                            { 
     1078                                unitinfo = "Valitut yksiköt: " + Environment.NewLine + GetUnits_FromPositionForView(i, j); 
     1079                            } 
     1080                        } 
     1081                    } 
     1082                } 
     1083                catch 
     1084                { 
     1085                } 
     1086            } 
     1087            return unitinfo; 
     1088        } 
     1089 
     1090        private void EndTurn() 
     1091        { 
     1092            MessageDisplay.Add("Lopetit vuorosi.."); 
     1093            if (SelectedUnit > -1) 
     1094            { 
     1095                DeselectUnit(); 
     1096            } 
     1097            TurnSystem_Start(CurrentPlayer); 
    6831098        } 
    6841099 
     
    6901105            Keyboard.Listen(Key.Down, Jypeli.ButtonState.Down, MoveCamera, null, 3); 
    6911106            Keyboard.Listen(Key.Tab, Jypeli.ButtonState.Down, ActivateDebug, null, 0); 
     1107            Keyboard.Listen(Key.Enter, Jypeli.ButtonState.Pressed, EndTurn, null); 
     1108 
     1109            Keyboard.Listen(Key.NumPad1, Jypeli.ButtonState.Pressed, MoveUnit, "Liikuta yksikköä lounaaseen.", 1); 
     1110            Keyboard.Listen(Key.NumPad2, Jypeli.ButtonState.Pressed, MoveUnit, "Liikuta yksikköä etelään.", 2); 
     1111            Keyboard.Listen(Key.NumPad3, Jypeli.ButtonState.Pressed, MoveUnit, "Liikuta yksikköä kaakkoon.", 3); 
     1112            Keyboard.Listen(Key.NumPad4, Jypeli.ButtonState.Pressed, MoveUnit, "Liikuta yksikköä länteen.", 4); 
     1113            Keyboard.Listen(Key.NumPad5, Jypeli.ButtonState.Pressed, MoveUnit, "Hyppää yksikkö yli.", 5); 
     1114            Keyboard.Listen(Key.NumPad6, Jypeli.ButtonState.Pressed, MoveUnit, "Liikuta yksikköä itään.", 6); 
     1115            Keyboard.Listen(Key.NumPad7, Jypeli.ButtonState.Pressed, MoveUnit, "Liikuta yksikköä luoteeseen.", 7); 
     1116            Keyboard.Listen(Key.NumPad8, Jypeli.ButtonState.Pressed, MoveUnit, "Liikuta yksikköä pohjoiseen.", 8); 
     1117            Keyboard.Listen(Key.NumPad9, Jypeli.ButtonState.Pressed, MoveUnit, "Liikuta yksikköä koilliseen.", 9); 
     1118 
     1119            //Keyboard.Disable(Key.NumPad1); 
     1120            //Keyboard.Disable(Key.NumPad2); 
     1121            //Keyboard.Disable(Key.NumPad3); 
     1122            //Keyboard.Disable(Key.NumPad4); 
     1123            //Keyboard.Disable(Key.NumPad5); 
     1124            //Keyboard.Disable(Key.NumPad6); 
     1125            //Keyboard.Disable(Key.NumPad7); 
     1126            //Keyboard.Disable(Key.NumPad8); 
     1127            //Keyboard.Disable(Key.NumPad9); 
    6921128 
    6931129            MouseScreenWidth = new int(); 
     
    7011137        } 
    7021138 
     1139        private void MoveUnit(int direction) 
     1140        { 
     1141            if (SelectedUnit == -1) 
     1142            { 
     1143                MessageDisplay.Add("Ei ole yksikköä valittuna."); 
     1144            } 
     1145            else 
     1146            { 
     1147                if (direction == 1) 
     1148                { 
     1149                    UnitMovementMain(-1, -1); 
     1150                } 
     1151                else if (direction == 2) 
     1152                { 
     1153                    UnitMovementMain(-1, 0); 
     1154                } 
     1155                else if (direction == 3) 
     1156                { 
     1157                    UnitMovementMain(-1, 1); 
     1158                } 
     1159                else if (direction == 4) 
     1160                { 
     1161                    UnitMovementMain(0, -1); 
     1162                } 
     1163                else if (direction == 5) 
     1164                { 
     1165                    //SelectNextUnitOnTile(-1, 0); 
     1166                } 
     1167                else if (direction == 6) 
     1168                { 
     1169                    UnitMovementMain(0, 1); 
     1170                } 
     1171                else if (direction == 7) 
     1172                { 
     1173                    UnitMovementMain(1, -1); 
     1174                } 
     1175                else if (direction == 8) 
     1176                { 
     1177                    UnitMovementMain(1, 0); 
     1178                } 
     1179                else if (direction == 9) 
     1180                { 
     1181                    UnitMovementMain(1, 1); 
     1182                } 
     1183                if (Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints == 0) 
     1184                { 
     1185                    DeselectUnit(); 
     1186                } 
     1187                else 
     1188                { 
     1189                    UnitTile[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX].Image = LoadImage(OwnershipColorPath + "unitsOnTileSelected"); 
     1190                } 
     1191            } 
     1192            //Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX - 1; 
     1193            //Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY - 1; 
     1194            //OwnershipMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX] = CurrentPlayer; 
     1195            //DrawOwnership(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1196            //UnitMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX] = CurrentPlayer; 
     1197            //DrawUnit(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1198            //CheckAndRemoveShroud_FromPos(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1199            //Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints - 1; 
     1200            //if (GetUnit_FromPositionForSelection(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + 1, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + 1) == -1) 
     1201            //{ 
     1202            //    UnitMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + 1, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + 1] = -1; 
     1203            //    UnitTile[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + 1, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + 1].Destroy(); 
     1204            //    if (CheckforCityinPos(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + 1, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + 1, CurrentPlayer) == -1) 
     1205            //    { 
     1206            //        OwnershipMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + 1, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + 1] = -1; 
     1207            //        TileOwnership[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + 1, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + 1].Destroy(); 
     1208            //    } 
     1209            //} 
     1210        } 
     1211 
     1212        private void UnitMovementMain(int a, int b) 
     1213        { 
     1214            if (TerrainMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + a, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + b] == Vuoristo | DTerrainMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + a, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + b] == Vuoristo) 
     1215            { 
     1216                MessageDisplay.Add("Et voi liikkua vuorten läpi!"); 
     1217            } 
     1218            else 
     1219            { 
     1220                Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + b; 
     1221                Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + a; 
     1222                // MessageBox.Show(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + " " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1223                try 
     1224                { 
     1225                    OwnershipMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX] = CurrentPlayer; 
     1226                    DrawOwnership(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1227                    UnitMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX] = CurrentPlayer; 
     1228                    DrawUnit(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1229                    CheckAndRemoveShroud_FromPos(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1230                    Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints - 1; 
     1231                    //MessageBox.Show(Convert.ToString(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints)); 
     1232                    if (GetUnit_FromPositionForSelection(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1)) == -1) 
     1233                    { 
     1234                        UnitMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1)] = -1; 
     1235                        UnitTile[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1)].Destroy(); 
     1236                        if (CheckforCityinPos(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1), CurrentPlayer) == -1) 
     1237                        { 
     1238                            OwnershipMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1)] = -1; 
     1239                            TileOwnership[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1)].Destroy(); 
     1240                        } 
     1241                    } 
     1242                } 
     1243                catch 
     1244                { 
     1245                    MessageDisplay.Add("Et voi liikkua kartan ulkopuolelle!"); 
     1246                    Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX - b; 
     1247                    Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY - a; 
     1248                } 
     1249            } 
     1250        } 
     1251 
     1252        private void DeselectUnit() 
     1253        { 
     1254                UnitTile[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX].Image = LoadImage(OwnershipColorPath + "unitsOnTile"); 
     1255                UnitsSelected = false; 
     1256                SelectedUnit = -1; 
     1257                //Keyboard.Disable(Key.NumPad1); 
     1258                //Keyboard.Disable(Key.NumPad2); 
     1259                //Keyboard.Disable(Key.NumPad3); 
     1260                //Keyboard.Disable(Key.NumPad4); 
     1261                //Keyboard.Disable(Key.NumPad5); 
     1262                //Keyboard.Disable(Key.NumPad6); 
     1263                //Keyboard.Disable(Key.NumPad7); 
     1264                //Keyboard.Disable(Key.NumPad8); 
     1265                //Keyboard.Disable(Key.NumPad9); 
     1266        } 
     1267 
     1268        public int CheckforCityinPos(int i, int j, int civid) 
     1269        { 
     1270            int returnvalue = new int(); 
     1271            if (DTerrainMap[i, j] - 10 == civid) 
     1272            { 
     1273                returnvalue = civid; 
     1274            } 
     1275            else 
     1276            { 
     1277                returnvalue = -1; 
     1278            } 
     1279            return returnvalue; 
     1280        } 
     1281 
    7031282        private void ActivateDebug(int asd) 
    7041283        { 
     
    7191298        { 
    7201299            if (gamestarted == false) { return; } 
    721             if ((dir == 0)  && (Camera.Position.X < (tile[kartanKorkeus - 1, kartanLeveys - 1].X) - (Peli.Screen.Width / 2))) 
     1300            if ((dir == 0)  && (Camera.Position.X < (tile[kartanKorkeus - 1, kartanLeveys - 1].X) - ((Peli.Screen.Width / 2) - 200))) 
    7221301            { 
    7231302                Camera.Move(CamSpeedEast); 
Note: See TracChangeset for help on using the changeset viewer.