Changeset 960 for 2010/24


Ignore:
Timestamp:
2010-06-17 19:36:39 (10 years ago)
Author:
ramipasa
Message:

Peli alkaa valmistua.. nyt yksinpeli toimii tekoälyä ja teknologioita (joita en mahda tehdäkään) lukuunottamatta. Ohjelma vaatii myös ALTKCore- ja BaseRules?-kirjastot. Tein myös uuden 1vs1-kartan, koska tekoälyn skriptaaminen viidelle pelaajalle olisi ollut liian hankalaa (ei ole enää aikaa varsinaisen tekoälymoottorin tekemiselle, jonka aloin tehdä alunperin). Myös luvattu 30-pelaajan moninpeli jää pois.

Location:
2010/24/ramipasa/ALTKTileEngine
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2010/24/ramipasa/ALTKTileEngine/Content/Maps/1/base.txt

    r838 r960  
    11// ALTK MAP file 
    22// Kaikki sisältö tulee olla täsmälleen samoissa kohdissa 
    3 MapWidth=50 
    4 MapHeight=24 
     3MapWidth=35 
     4MapHeight=18 
    55 
    6 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 
    7 VTTTTTTTTTTTTTTT  TTTT      TTTTTTTTTTTTTTTTTTTTTV 
    8 VTTTTTTT                        TTTTTTTTTTTTTTTTTV 
    9 V     TTTTT                          TTTTTTTTTTTTV 
    10 VTTTTT                                 TTTTTTTTTTV 
    11 VTTTTTTTT                                 TTTTTTTV 
    12 VTTTT                                      TTTTTTV 
    13 VTTT                                        TTTTTV 
    14 VTT                                          TTTTV 
    15 VT                                            TTTV 
    16 V                                            TTTTV 
    17 V                         AAAAA                 TV 
    18 V                                                V 
    19 V                                                V 
    20 V               AAAAAAAAA                        V 
    21 V                                                V 
    22 V                                                V 
    23 V                                                V 
    24 V                                                V 
    25 V                                     AAAAAAA    V 
    26 V      AAAAAA                       AAAAAA       V 
    27 V       AAAAAAAAA                      AAAAAAA   V 
    28 V     AAAAAA                             AAAAAA  V 
    29 V                                    AAAAAAAAAAA V 
    30 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 
     6VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 
     7V    AAAAAA                       V 
     8V  AAAA   AAAA                    V 
     9V   AAAAAA  AAAAAAA               V 
     10VAAAAAAAAAAAAA                    V 
     11V                                 V 
     12V                                 V 
     13V                                 V 
     14V                                 V 
     15V                                 V 
     16V                                 V 
     17V                                 V 
     18V                                 V 
     19V        T                        V 
     20V TT    TT   TTT      TTT   TTTT  V 
     21V TTT  TTTTTTTTTTTTT   TTTT  TTTTTV 
     22V TTTTTTTTTTTTT  TT   TTTT  TTTT  V 
     23VTTTTTTTTTTTTTTT TTTT    TTT  TTTTV 
     24VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 
    3125 
    32 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 
    33 V  KKKKK             KKKKKMMK           KKKKKKKK V 
    34 V    1      VVV  KKKKKMM KKK               KKKKKKV 
    35 V KKKKK       VVV   VVVKKKM          0    KKKKKKKV 
    36 V  KKKMMMK     VVVMMMKK                    VVVVVVV 
    37 VKKK  VVVVV    KKKMM       MMM            VVVVVVVV 
    38 V  KKKK VVV MMKKK KKM       MMMMMM  K        VVVVV 
    39 V   VVVV VVVV MMK          MMMM                  V 
    40 V KKKKKK   VVVV  MMMMM                     VV    V 
    41 V                  MMMMMM          VVVVVVV       V 
    42 V        MMMMMMMMMMM  MMMMMMM       VVV          V 
    43 VMMMM       MMMMM VVVVV                    2     V 
    44 V  VVVVVV            VVVVVV  VVV                 V 
    45 V MMM VVV    3     MMMMMMMMM VVV   VVV           V 
    46 V   VVVMMMM           VVV MMM  VV        VVVVVVVVV 
    47 V  MMMMM          MMMM VV MMM  VV            VVV V 
    48 V        VVV    VVV  MMMM   VVVVV          VVVV  V 
    49 VMMMM  VVV      VVV  MMMM VVVV    M    VVVVVVVVVVV 
    50 V        VVVV     VVV            MMMM    VVVV    V 
    51 V                                   VVVVVVVV     V 
    52 V           MMMMM        MMMMM                   V 
    53 V     4    VVVVV    VV        VV        5        V 
    54 V          VVV    VVV        VVV                 V 
    55 V                VVVV                            V 
    56 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 
     26VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 
     27VVVV      1                 MMMMM V 
     28V                          MM     V 
     29V   1              VVVVMMMM VVVV  V 
     30V              V      VVVVV  VVV  V 
     31V     KKK      VV VVVMMMM    VVV  V 
     32V     1      KKKK                 V 
     33VVVVKKKKK     VVVVVVVVMMM         V 
     34VVVKKKK                     0     V 
     35V1    MMMMM   VVVVVVVV            V 
     36V   MMMMVVVMMMM  VVVMMMM          V 
     37VKKK  MMMVVVMMMMM VVVMMMMM        V 
     38V      VVVV       VVVVMMMMM  VVVVVV 
     39V MMMMM   MMMM KK  VVVVV   KKKVVVVV 
     40V MMMM   MMMMM   KK KKKKKK KKK  VVV 
     41VVVVMMMMM  VVVKKK    VVVVKKK  VVVVV 
     42VVVVVVV    VVVVV   KKKKVVVVKKVVVVVV 
     43VVVVV     VVVV      KKKVVVKKKKVVVVV 
     44VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 
  • 2010/24/ramipasa/ALTKTileEngine/Peli.cs

    r941 r960  
    1313using ALTKAIBehaviour; 
    1414using BaseRules;                     // Avaruuslaatikon sääntötiedosto, helpottaa modien tekemistä 
     15using System.Threading;              // voin käyttää Thread.Sleepiä 
    1516 
    1617namespace ALTKTileEngine 
     
    6364        int CurrentPlayer; 
    6465 
     66        bool CityPlaceSelection; 
     67        bool TileClickAllowed = false; 
     68 
     69        bool UnitBuildingMode = false; 
     70        bool UnitPositioningMode = false; 
     71        int currentunit = new int(); 
     72 
    6573        // perusmaastotyypit 
    6674        const int Aavikko = 2, Tundra = 3, Vuoristo = 1, Lehtimetsa = 0; 
     
    239247                    UnitTile[i, j].X = (j * 48) - mapWidthJ; 
    240248                    UnitTile[i, j].Y = (i * 48) - mapHeightJ; 
    241                     UnitTile[i, j].Image = LoadImage(OwnershipColorPath + "unitsOnTile"); 
     249                    UnitTile[i, j].Image = LoadImage(Textpath + "nothing"); 
     250                    Add(UnitTile[i, j]); 
    242251                } 
    243252            } 
     
    258267                    tile[i, j].Image = LoadImage(getTexture_fromTerrainType(TerrainMap[i, j], 0, i, j)); 
    259268                    Add(tile[i, j]); 
    260                     Mouse.ListenOn(tile[i, j], MouseButton.Left, Jypeli.ButtonState.Pressed, TileClicked, "", i, j); 
     269                    Mouse.ListenOn(tile[i, j], MouseButton.Left, Jypeli.ButtonState.Released, TileClicked, "", i, j); 
    261270                    //Mouse.ListenMovement(tile[i, j], showTileInfo_forTileDisp, null, i, j); 
    262271                    // MessageBox.Show(Convert.ToString(TerrainMap[i, j])); 
     
    279288                    TileOwnership[i, j].X = (j * 48) - mapWidthJ; 
    280289                    TileOwnership[i, j].Y = (i * 48) - mapHeightJ; 
    281                     //TileOwnership[i, j].Image = LoadImage(Textpath + "nothing"); poistettu optimisoinnin takia 
    282                     //Add(TileOwnership[i, j]); eihän näitä tarvitse vielä lisätä, optimisointia 
     290                    TileOwnership[i, j].Image = LoadImage(Textpath + "nothing"); 
     291                    Add(TileOwnership[i, j]); 
    283292                    //MessageBox.Show(TileOwnership[i, j].X + "x" + TileOwnership[i, j].Y + " " + DTile[i, j].X + "x" + DTile[i, j].Y + " Params: " + i + " " + j); 
    284293                    // MessageBox.Show(Convert.ToString(TerrainMap[i, j])); 
     
    439448        private void TileClicked(int i, int j) 
    440449        { 
    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         } 
     450            //MessageBox.Show(i + " " + j + Convert.ToString(CityPlaceSelection) + " " + Convert.ToString(UnitPositioningMode)); 
     451            //if (TileClickAllowed == true) 
     452            //{ 
     453                if (CityPlaceSelection == true) 
     454                { 
     455                    if (OwnershipMap[i, j] > -1 && OwnershipMap[i, j] != CurrentPlayer) 
     456                    { 
     457                        MessageDisplay.Add("Ruutu on vihollisen (" + Rules.pCivs[OwnershipMap[i, j]].Name + ") hallinnassa, etkä voi rakentaa siihen kaupunkia."); 
     458                    } 
     459                    else 
     460                    { 
     461                        if (DTerrainMap[i, j] == Vuoristo | DTerrainMap[i, j] > 9) 
     462                        { 
     463                            if (DTerrainMap[i, j] == Vuoristo) 
     464                            { 
     465                                MessageDisplay.Add("Et voi rakentaa kaupunkia vuorelle!"); 
     466                            } 
     467                            else 
     468                            { 
     469                                MessageDisplay.Add("Et voi rakentaa kaupunkia valmiin kaupungin päälle!"); 
     470                            } 
     471                        } 
     472                        else 
     473                        { 
     474                            bool cityAllowed = false; 
     475                            int b; 
     476                            int c; 
     477 
     478                            int d; 
     479                            int e; 
     480                            int f; 
     481                            for (int a = 0; a <= Rules.pCivs[CurrentPlayer].NumberofCities - 1; a++) 
     482                            { 
     483                                b = Rules.pCivs[CurrentPlayer].CityCoords[a, 0]; 
     484                                c = Rules.pCivs[CurrentPlayer].CityCoords[a, 1]; 
     485 
     486                                d = i - b; 
     487                                e = j - c; 
     488                                if (d == 2 | d == 1 | d == 0 | d == -1 | d == -2) 
     489                                { 
     490                                    if (e == 2 | e == 1 | e == 0 | e == -1 | e == -2) 
     491                                    { 
     492                                        cityAllowed = true; 
     493                                    } 
     494                                } 
     495                            } 
     496                            if (cityAllowed == true) 
     497                            { 
     498                                BuildCityDisp.TextColor = Color.Green; 
     499                                BuildCityDisp.X = BuildCityDisp.X + 20; 
     500                                Rules.pCivs[CurrentPlayer].BuiltFromCity = 0; 
     501                                Rules.pCivs[CurrentPlayer].Production = Rules.pCivs[CurrentPlayer].Production + 10; 
     502                                Rules.pCivs[CurrentPlayer].NumberofCities = Rules.pCivs[CurrentPlayer].NumberofCities + 1; 
     503                                Rules.pCivs[CurrentPlayer].CityCoords[Rules.pCivs[CurrentPlayer].NumberofCities - 1, 0] = i; 
     504                                Rules.pCivs[CurrentPlayer].CityCoords[Rules.pCivs[CurrentPlayer].NumberofCities - 1, 1] = j; 
     505                                BuildCityDisp.Text = "Rakenna kaupunki (B) (" + Rules.pCivs[CurrentPlayer].BuiltFromCity + " / " + Rules.pCivs[CurrentPlayer].Production + ")"; 
     506                                CityPlaceSelection = false; 
     507                                ChangeProductionDispText(); 
     508                                DTerrainMap[i, j] = CurrentPlayer + 10; 
     509                                DTile[i, j].Image = LoadImage(Textpath + "cityancient"); 
     510                                if (OwnershipMap[i, j] == -1) 
     511                                { 
     512                                    OwnershipMap[i, j] = CurrentPlayer; 
     513                                    DrawOwnership(i, j); 
     514                                    CheckAndRemoveShroud_FromPos(i, j); 
     515                                } 
     516                            } 
     517                            else 
     518                            { 
     519                                MessageDisplay.Add("Valitsemasi sijainti on liian kaukana; Maksimietäisyys muista kaupungeista on 2 ruutua."); 
     520                            } 
     521                        } 
     522                    } 
     523                } 
     524                else if (UnitPositioningMode == true) 
     525                { 
     526                    MessageBox.Show(Convert.ToString(UnitPositioningMode)); 
     527                    if (DTerrainMap[i, j] == CurrentPlayer + 10) 
     528                    { 
     529                        CreateUnit(i, j, BaseRules.Rules.getUnit_FromId(currentunit), CurrentPlayer); 
     530                        UnitPositioningMode = false; 
     531                        BuildUnitsClicked(); 
     532                        MessageDisplay.Add("Rakensit yksikön " + BaseRules.Rules.getUnit_FromId(currentunit).Name + " kohteeseen " + i + "; " + j + "."); 
     533                        currentunit = -1; 
     534                    } 
     535                    else 
     536                    { 
     537                        MessageDisplay.Add("Yksikkö täytyy rakentaa kaupunkiin."); 
     538                    } 
     539                } 
     540                else 
     541                { 
     542                    if (OwnershipMap[i, j] == 0 && UnitMap[i, j] > -1) 
     543                    { 
     544                        UnitSelect(i, j); 
     545                    } 
     546                } 
     547            } 
     548        //} 
    447549 
    448550        private void UnitSelect(int i, int j) 
     
    475577        private void DrawOwnership(int i, int j) 
    476578        { 
    477             if (ShroudMap[i, j] == 0 && TileOwnership[i, j].IsAddedToGame == false) 
     579            if (ShroudMap[i, j] == 0) 
    478580            { 
    479581                TileOwnership[i, j].Image = LoadImage(OwnershipColorPath + Rules.pCivs[OwnershipMap[i, j]].Color); 
    480                 Add(TileOwnership[i, j]); 
     582                //if (TileOwnership[i, j].IsAddedToGame == false | TileOwnership[i, j]. == true) 
     583                //{ 
     584                //try 
     585                //{ 
     586                //    Add(TileOwnership[i, j]); 
     587                //} 
     588                //catch 
     589                //{ 
     590                //    //MessageDisplay.Add("TileOwnership not added at " + i + "; " + j + " ;; because of an exception."); 
     591                //} 
     592                //} 
    481593            } 
    482594            //MessageBox.Show(TileOwnership[i, j].X + "x" + TileOwnership[i, j].Y + " " + DTile[i, j].X + "x" + DTile[i, j].Y + " Params: " + i + " " + j); 
    483595        } 
    484596 
    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         } 
     597        //private void DrawUnit(int i, int j) 
     598        //{ 
     599        //    if (UnitTile[i, j].IsAddedToGame == false) 
     600        //    { 
     601        //        Add(UnitTile[i, j]); 
     602        //        //Mouse.ListenOn(UnitTile[i, j], MouseButton.Left, Jypeli.ButtonState.Pressed, UnitSelect, "Valitse yksikkö painamalla ruutua", i, j); 
     603        //    } 
     604        //} 
    493605 
    494606        private void RemoveOwnership(int i, int j) 
     
    535647            UnitMap[i, j] = civnumber; 
    536648 
    537             DrawUnit(i, j); 
     649            UnitTile[i, j].Image = LoadImage(OwnershipColorPath + "unitsOnTile"); 
    538650 
    539651            if (OwnershipMap[i, j] == -1) 
     
    634746        private void RemoveUnit(int i, int j, int civnumber, ALTKUnits.UnitClass unittype, double unitHP) 
    635747        { 
    636             MessageBox.Show(i + " " + j + " " + civnumber); 
     748            //MessageBox.Show(i + " " + j + " " + civnumber); 
    637749            int unitpos = GetUnit_FromPositionForRemoval(i, j, unittype, unitHP); 
    638750            if (unitpos > 0 && Rules.pCivs[civnumber].NumberofUnits > 2) 
     
    676788            Rules.pCivs[civnumber].NumberofUnits = Rules.pCivs[civnumber].NumberofUnits - 1; 
    677789        } 
     790 
    678791        public string setAIOwnershipColor(int playernumber) 
    679792        { 
     
    791904 
    792905            BuildCityDisp = new TextDisplay(); 
    793             BuildCityDisp.X = Screen.Right - 180; 
     906            BuildCityDisp.X = Screen.Right - 200; 
    794907            BuildCityDisp.Y = Screen.Top - 150; 
    795908            BuildCityDisp.TextColor = Color.Green; 
    796909            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"); 
     910 
     911            //Mouse.ListenOn(BuildCityDisp, MouseButton.Left, Jypeli.ButtonState.Pressed, BuildCityClicked, "Rakenna kaupunki"); 
     912            Keyboard.Listen(Key.B, Jypeli.ButtonState.Pressed, BuildCityClicked, "Rakenna kaupunki"); 
    800913 
    801914            BuildUnitsDisp = new TextDisplay(); 
     
    803916            BuildUnitsDisp.Y = Screen.Top - 200; 
    804917            BuildUnitsDisp.TextColor = Color.Green; 
    805             BuildUnitsDisp.Text = "Rakenna yksiköitä"; 
     918            BuildUnitsDisp.Text = "Rakenna yksiköitä (U)"; 
     919 
     920            Keyboard.Listen(Key.U, Jypeli.ButtonState.Pressed, BuildUnitsClicked, "Näytä yksikkövalikko"); 
    806921 
    807922            Unit1Disp = new TextDisplay(); 
    808             Unit1Disp.X = Screen.Right - 100; 
     923            Unit1Disp.X = Screen.Right - 150; 
    809924            Unit1Disp.Y = Screen.Top - 250; 
    810925            Unit1Disp.TextColor = Color.DarkGreen; 
    811             Unit1Disp.Text = "1. puun yksikkö"; 
     926            Unit1Disp.Text = ""; 
     927 
     928            Keyboard.Listen(Key.D1, Jypeli.ButtonState.Pressed, BuildUnit, "Rakenna 1. puun yksikkö", 1); 
    812929 
    813930            Unit2Disp = new TextDisplay(); 
    814             Unit2Disp.X = Screen.Right - 100; 
     931            Unit2Disp.X = Screen.Right - 150; 
    815932            Unit2Disp.Y = Screen.Top - 300; 
    816933            Unit2Disp.TextColor = Color.DarkGreen; 
    817             Unit2Disp.Text = "2. puun yksikkö"; 
     934            Unit2Disp.Text = ""; 
     935 
     936            Keyboard.Listen(Key.D2, Jypeli.ButtonState.Pressed, BuildUnit, "Rakenna 2. puun yksikkö", 2); 
    818937 
    819938            Unit3Disp = new TextDisplay(); 
    820             Unit3Disp.X = Screen.Right - 100; 
     939            Unit3Disp.X = Screen.Right - 150; 
    821940            Unit3Disp.Y = Screen.Top - 350; 
    822941            Unit3Disp.TextColor = Color.DarkGreen; 
    823             Unit3Disp.Text = "3. puun yksikkö"; 
     942            Unit3Disp.Text = ""; 
     943 
     944            Keyboard.Listen(Key.D3, Jypeli.ButtonState.Pressed, BuildUnit, "Rakenna 3. puun yksikkö", 3); 
    824945 
    825946            Unit4Disp = new TextDisplay(); 
    826             Unit4Disp.X = Screen.Right - 100; 
     947            Unit4Disp.X = Screen.Right - 150; 
    827948            Unit4Disp.Y = Screen.Top - 400; 
    828949            Unit4Disp.TextColor = Color.DarkGreen; 
    829             Unit4Disp.Text = "4. puun yksikkö"; 
     950            Unit4Disp.Text = ""; 
     951 
     952            Keyboard.Listen(Key.D4, Jypeli.ButtonState.Pressed, BuildUnit, "Rakenna 4. puun yksikkö", 4); 
    830953 
    831954            ResearchDisp = new TextDisplay(); 
     
    852975            Add(BuildCityDisp); 
    853976            Add(BuildUnitsDisp); 
    854             //Add(Unit1Disp); 
    855             //Add(Unit2Disp); 
    856             //Add(Unit3Disp); 
    857             //Add(Unit4Disp); 
     977            Add(Unit1Disp); 
     978            Add(Unit2Disp); 
     979            Add(Unit3Disp); 
     980            Add(Unit4Disp); 
    858981            Add(ResearchDisp); 
    859982            Add(ClicktoResearch); 
    860983        } 
    861984 
     985        private void BuildUnit(int unittree) 
     986        { 
     987            if (UnitBuildingMode == true) 
     988            { 
     989                int UnitCost = new int(); 
     990                if (unittree == 1) 
     991                { 
     992                    UnitCost = 20; 
     993                } 
     994                else if (unittree == 2) 
     995                { 
     996                    UnitCost = 30; 
     997                } 
     998                else if (unittree == 3) 
     999                { 
     1000                    UnitCost = 30; 
     1001                } 
     1002                else if (unittree == 4) 
     1003                { 
     1004                    UnitCost = 40; 
     1005                } 
     1006 
     1007                if (UnitCost > CurrProduction) 
     1008                { 
     1009                    MessageDisplay.Add("Sinulla ei ole tarpeeksi tuotantoa yksikön rakentamiseen."); 
     1010                } 
     1011                else 
     1012                { 
     1013                    CurrProduction = CurrProduction - UnitCost; 
     1014                    ChangeProductionDispText(); 
     1015                    MessageDisplay.Add("Rakensit yksikön " + GetBuildableUnit(unittree).Name + ". Valitse kaupunki, mihin yksikkö rakennetaan."); 
     1016                    currentunit = GetBuildableUnit(unittree).UnitId; 
     1017                    UnitPositioningMode = true; 
     1018                } 
     1019            } 
     1020            else 
     1021            { 
     1022                MessageDisplay.Add("Et ole yksikönrakennustilassa."); 
     1023            } 
     1024        } 
     1025 
     1026        private ALTKUnits.UnitClass GetBuildableUnit(int unittree) 
     1027        { 
     1028            if (unittree == 1) 
     1029            { 
     1030                return BaseRules.Rules.Warrior; 
     1031            } 
     1032            if (unittree == 2) 
     1033            { 
     1034                return BaseRules.Rules.Archer; 
     1035            } 
     1036            if (unittree == 3) 
     1037            { 
     1038                return BaseRules.Rules.Spearman; 
     1039            } 
     1040            if (unittree == 4) 
     1041            { 
     1042                return BaseRules.Rules.Horseman; 
     1043            } 
     1044            return BaseRules.Rules.Warrior; 
     1045        } 
     1046 
     1047        private void BuildUnitsClicked() 
     1048        { 
     1049            if (UnitPositioningMode == true) 
     1050            { 
     1051                MessageDisplay.Add("Määritä aikaisemmalle yksikölle rakennussijainti."); 
     1052            } 
     1053 
     1054            if (UnitBuildingMode == true) 
     1055            { 
     1056                Unit1Disp.Text = ""; 
     1057                Unit2Disp.Text = ""; 
     1058                Unit3Disp.Text = ""; 
     1059                Unit4Disp.Text = ""; 
     1060                UnitBuildingMode = false; 
     1061            } 
     1062            else 
     1063            { 
     1064                UnitBuildingMode = true; 
     1065 
     1066                // Muutetaan tekstit 
     1067                SetUnitDispText(1); 
     1068                SetUnitDispText(2); 
     1069                SetUnitDispText(3); 
     1070                SetUnitDispText(4); 
     1071            } 
     1072        } 
     1073 
     1074        private void SetUnitDispText(int unitdisp) 
     1075        { 
     1076            if (unitdisp == 1) 
     1077            { 
     1078                Unit1Disp.Text = "Rakenna " + BaseRules.Rules.getUnit_FromId(BaseRules.Rules.T1Units[0]).Name + " [1] (20)"; 
     1079            } 
     1080            else if (unitdisp == 2) 
     1081            { 
     1082                Unit2Disp.Text = "Rakenna " + BaseRules.Rules.getUnit_FromId(BaseRules.Rules.T2Units[0]).Name + " [2] (30)"; 
     1083            } 
     1084            else if (unitdisp == 3) 
     1085            { 
     1086                Unit3Disp.Text = "Rakenna " + BaseRules.Rules.getUnit_FromId(BaseRules.Rules.T3Units[0]).Name + " [3] (30)"; 
     1087            } 
     1088            else if (unitdisp == 4) 
     1089            { 
     1090                Unit4Disp.Text = "Rakenna " + BaseRules.Rules.getUnit_FromId(BaseRules.Rules.T4Units[0]).Name + " [4] (40)"; 
     1091            } 
     1092        } 
     1093 
    8621094        private void BuildCityClicked() 
    8631095        { 
    864             Rules.pCivs[CurrentPlayer].BuiltFromCity = Rules.pCivs[CurrentPlayer].BuiltFromCity + CurrProduction; 
     1096            TileClickAllowed = false; 
     1097            if (CityPlaceSelection == false) 
     1098            { 
     1099                Rules.pCivs[CurrentPlayer].BuiltFromCity = Rules.pCivs[CurrentPlayer].BuiltFromCity + CurrProduction; 
     1100                CurrProduction = 0; 
     1101                BuildCityDisp.Text = "Rakenna kaupunki (B) (" + Rules.pCivs[CurrentPlayer].BuiltFromCity + " / " + Rules.pCivs[CurrentPlayer].Production + ")"; 
     1102                ChangeProductionDispText(); 
     1103                if (Rules.pCivs[CurrentPlayer].BuiltFromCity > Rules.pCivs[CurrentPlayer].Production | Rules.pCivs[CurrentPlayer].BuiltFromCity == Rules.pCivs[CurrentPlayer].Production) 
     1104                { 
     1105                    CurrProduction = Rules.pCivs[CurrentPlayer].BuiltFromCity - Rules.pCivs[CurrentPlayer].Production; 
     1106                    MessageDisplay.Add("Sait kaupungin valmiiksi; valitse uuden kaupungin sijainti."); 
     1107                    BuildCityDisp.Text = "Peruuta kaupungin rakentaminen (B) (" + Rules.pCivs[CurrentPlayer].Production / 2 + ")"; 
     1108                    BuildCityDisp.TextColor = Color.Red; 
     1109                    BuildCityDisp.X = BuildCityDisp.X - 20; 
     1110                    ChangeProductionDispText(); 
     1111                    CityPlaceSelection = true; 
     1112                } 
     1113            } 
     1114            else 
     1115            { 
     1116                BuildCityDisp.TextColor = Color.Green; 
     1117                BuildCityDisp.X = BuildCityDisp.X + 20; 
     1118                Rules.pCivs[CurrentPlayer].BuiltFromCity = 0; 
     1119                BuildCityDisp.Text = "Rakenna kaupunki (B) (" + Rules.pCivs[CurrentPlayer].BuiltFromCity + " / " + Rules.pCivs[CurrentPlayer].Production + ")"; 
     1120                CityPlaceSelection = false; 
     1121                CurrProduction = CurrProduction + (Rules.pCivs[CurrentPlayer].Production / 2); 
     1122                ChangeProductionDispText(); 
     1123            } 
     1124            TileClickAllowed = true; 
     1125        } 
     1126 
     1127        private void ChangeProductionDispText() 
     1128        { 
     1129            ProductionDisp.Text = "Vuoro: " + TurnNumber + Environment.NewLine + 
     1130                "Tuotantoa vuorossa: " + Rules.pCivs[CurrentPlayer].Production + Environment.NewLine + 
     1131                "Tuotantoa jäljellä: " + CurrProduction; 
    8651132        } 
    8661133 
     
    9191186                "Tuotantoa vuorossa: " + Rules.pCivs[playernumber].Production + Environment.NewLine + 
    9201187                "Tuotantoa jäljellä: " + CurrProduction; 
    921             BuildCityDisp.Text = "Rakenna kaupunki (" + Rules.pCivs[playernumber].BuiltFromCity + " / " + Rules.pCivs[playernumber].Production + ")"; 
     1188            BuildCityDisp.Text = "Rakenna kaupunki (B) (" + Rules.pCivs[playernumber].BuiltFromCity + " / " + Rules.pCivs[playernumber].Production + ")"; 
    9221189            if (TurnNumber == 1) 
    9231190            { 
     
    9711238            string tileinfo; 
    9721239            int Defensebonus = new int(); 
    973             tileinfo = " "; 
     1240            tileinfo = i + "; " + j + " :" + Environment.NewLine; 
    9741241            //MessageBox.Show(i + " " + j); 
    9751242            // Maaston perustiedot 
    9761243            if (TerrainMap[i, j] == 0) 
    9771244            { 
    978                 tileinfo = "Ruohotasankoa"; 
     1245                tileinfo = tileinfo + "Ruohotasankoa"; 
    9791246            } 
    9801247            else if (TerrainMap[i, j] == 1) 
    9811248            { 
    982                 tileinfo = "Vuoristoa"; 
     1249                tileinfo = tileinfo + "Vuoristoa"; 
    9831250            } 
    9841251            else if (TerrainMap[i, j] == 2) 
    9851252            { 
    986                 tileinfo = "Aavikkoa"; 
     1253                tileinfo = tileinfo + "Aavikkoa"; 
    9871254                Defensebonus = Defensebonus - 25; 
    9881255            } 
    9891256            else if (TerrainMap[i, j] == 3) 
    9901257            { 
    991                 tileinfo = "Tundraa"; 
     1258                tileinfo = tileinfo + "Tundraa"; 
    9921259                Defensebonus = Defensebonus + 10; 
    9931260            } 
     
    11161383            Keyboard.Listen(Key.NumPad8, Jypeli.ButtonState.Pressed, MoveUnit, "Liikuta yksikköä pohjoiseen.", 8); 
    11171384            Keyboard.Listen(Key.NumPad9, Jypeli.ButtonState.Pressed, MoveUnit, "Liikuta yksikköä koilliseen.", 9); 
     1385            Keyboard.Listen(Key.End, Jypeli.ButtonState.Pressed, SelectUnits, "Valitsee yksiköitä."); 
     1386            Keyboard.Listen(Key.Home, Jypeli.ButtonState.Pressed, SelectNextUnit, "Valitsee seuraavan yksikön."); 
    11181387 
    11191388            //Keyboard.Disable(Key.NumPad1); 
     
    11351404            NegMouseScreenHeight = new int(); 
    11361405            NegMouseScreenHeight = Convert.ToInt32(Peli.Screen.Height / -2) + 20; 
     1406        } 
     1407 
     1408        private void EnterCombat(int i, int j, int ab, int bb) 
     1409        { 
     1410            if (DTerrainMap[i, j] > 9) 
     1411            { 
     1412                if (UnitMap[i, j] > -1) 
     1413                { 
     1414 
     1415                } 
     1416                else 
     1417                { 
     1418                    CityCapture(i, j, ab, bb); 
     1419                } 
     1420            } 
     1421        } 
     1422 
     1423        private void CityCapture(int i, int j, int ab, int bb) 
     1424        { 
     1425            RemoveCity_FromCivFromPosition(i, j); 
     1426            Rules.pCivs[OwnershipMap[i, j]].NumberofCities = Rules.pCivs[OwnershipMap[i, j]].NumberofCities - 1; 
     1427            Rules.pCivs[OwnershipMap[i, j]].Production = Rules.pCivs[OwnershipMap[i, j]].Production - 10; 
     1428            MessageDisplay.TextColor = Color.Red; 
     1429            MessageDisplay.Add(Rules.pCivs[CurrentPlayer].Name + " on valloittanut kaupungin ruudusta " + i + "; " + j + " (" + Rules.pCivs[OwnershipMap[i, j]].Name + ")"); 
     1430            Thread.Sleep(1000); 
     1431            if (Rules.pCivs[OwnershipMap[i, j]].NumberofCities == 0) 
     1432            { 
     1433                MessageDisplay.Add(Rules.pCivs[OwnershipMap[i, j]].Name + " has been destroyed!"); 
     1434                Rules.pCivs[OwnershipMap[i, j]].Enabled = false; 
     1435            } 
     1436            OwnershipMap[i, j] = CurrentPlayer; 
     1437            DrawOwnership(i, j); 
     1438            Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY = i; 
     1439            Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX = j; 
     1440            MessageDisplay.TextColor = Color.Orange; 
     1441            AddCity(i, j); 
     1442 
     1443            if (GetUnit_FromPositionForSelection(ab, bb) == -1) 
     1444            { 
     1445                OwnershipMap[ab, bb] = -1; 
     1446                TileOwnership[ab, bb].Image = LoadImage(Textpath + "nothing"); 
     1447            } 
     1448            DrawUnit(i, j); 
     1449        } 
     1450 
     1451        private void AddCity(int i, int j) 
     1452        { 
     1453            Rules.pCivs[CurrentPlayer].Production = Rules.pCivs[CurrentPlayer].Production + 10; 
     1454            Rules.pCivs[CurrentPlayer].NumberofCities = Rules.pCivs[CurrentPlayer].NumberofCities + 1; 
     1455            Rules.pCivs[CurrentPlayer].CityCoords[Rules.pCivs[CurrentPlayer].NumberofCities - 1, 0] = i; 
     1456            Rules.pCivs[CurrentPlayer].CityCoords[Rules.pCivs[CurrentPlayer].NumberofCities - 1, 1] = j; 
     1457            BuildCityDisp.Text = "Rakenna kaupunki (B) (" + Rules.pCivs[CurrentPlayer].BuiltFromCity + " / " + Rules.pCivs[CurrentPlayer].Production + ")"; 
     1458            CityPlaceSelection = false; 
     1459            ChangeProductionDispText(); 
     1460            DTerrainMap[i, j] = CurrentPlayer + 10; 
     1461            DTile[i, j].Image = LoadImage(Textpath + "cityancient"); 
     1462            CheckAndRemoveShroud_FromPos(i, j); 
     1463            if (OwnershipMap[i, j] == -1) 
     1464            { 
     1465                OwnershipMap[i, j] = CurrentPlayer; 
     1466                DrawOwnership(i, j); 
     1467                CheckAndRemoveShroud_FromPos(i, j); 
     1468            } 
     1469        } 
     1470 
     1471        public int GetCityPosInArray_ForRemoval(int i, int j, int civid) 
     1472        { 
     1473            for (int a = 0; a <= Rules.pCivs[civid].NumberofCities - 1; a++) 
     1474            { 
     1475                if (Rules.pCivs[civid].CityCoords[a, 0] == i && Rules.pCivs[civid].CityCoords[a, 1] == j) 
     1476                { 
     1477                    return a; 
     1478                } 
     1479            } 
     1480            return 0; 
     1481        } 
     1482 
     1483        private void RemoveCity_FromCivFromPosition(int i, int j) 
     1484        { 
     1485            int civowner = new int(); 
     1486            civowner = OwnershipMap[i, j]; 
     1487            int cityPosInArray = GetCityPosInArray_ForRemoval(i, j, civowner); 
     1488 
     1489            if (cityPosInArray > 0 && Rules.pCivs[civowner].NumberofCities > 2) 
     1490            { 
     1491                for (int a = cityPosInArray + 1; a <= Rules.pCivs[civowner].NumberofCities - 1; a++) 
     1492                { 
     1493                    Rules.pCivs[civowner].CityCoords[a - 1, 0] = Rules.pCivs[civowner].CityCoords[a, 0]; 
     1494                    Rules.pCivs[civowner].CityCoords[a - 1, 1] = Rules.pCivs[civowner].CityCoords[a, 1]; 
     1495                } 
     1496                Rules.pCivs[civowner].CityCoords[Rules.pCivs[civowner].NumberofCities - 1, 0] = 0; 
     1497                Rules.pCivs[civowner].CityCoords[Rules.pCivs[civowner].NumberofCities - 1, 1] = 0; 
     1498            } 
     1499            else if (cityPosInArray == 0 && Rules.pCivs[civowner].NumberofCities > 1) 
     1500            { 
     1501                for (int a = 1; a <= Rules.pCivs[civowner].NumberofCities - 1; a++) 
     1502                { 
     1503                    Rules.pCivs[civowner].CityCoords[a - 1, 0] = Rules.pCivs[civowner].CityCoords[a, 0]; 
     1504                    Rules.pCivs[civowner].CityCoords[a - 1, 1] = Rules.pCivs[civowner].CityCoords[a, 1]; 
     1505                } 
     1506                Rules.pCivs[civowner].CityCoords[Rules.pCivs[civowner].NumberofCities - 1, 0] = 0; 
     1507                Rules.pCivs[civowner].CityCoords[Rules.pCivs[civowner].NumberofCities - 1, 1] = 0; 
     1508            } 
     1509            else if (Rules.pCivs[civowner].NumberofCities == 1) 
     1510            { 
     1511                Rules.pCivs[civowner].CityCoords[0, 0] = 0; 
     1512                Rules.pCivs[civowner].CityCoords[0, 1] = 0; 
     1513                Rules.pCivs[civowner].Enabled = false; 
     1514            } 
     1515        //    int unitpos = GetUnit_FromPositionForRemoval(i, j, unittype, unitHP); 
     1516        //    if (unitpos > 0 && Rules.pCivs[civnumber].NumberofUnits > 2) 
     1517        //    { 
     1518        //        MessageBox.Show("FirstMethod"); 
     1519        //        for (int a = unitpos + 1; a <= Rules.pCivs[civnumber].NumberofUnits - 1; a++) 
     1520        //        { 
     1521        //            Rules.pCivs[civnumber].Units[a - 1].HP = Rules.pCivs[civnumber].Units[a].HP; 
     1522        //            Rules.pCivs[civnumber].Units[a - 1].PosY = Rules.pCivs[civnumber].Units[a].PosY; 
     1523        //            Rules.pCivs[civnumber].Units[a - 1].PosX = Rules.pCivs[civnumber].Units[a].PosX; 
     1524        //            Rules.pCivs[civnumber].Units[a - 1].UnitType = Rules.pCivs[civnumber].Units[a].UnitType; 
     1525        //        } 
     1526        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosX = 0; 
     1527        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosY = 0; 
     1528        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].HP = 0.0; 
     1529        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].UnitType = null; 
     1530        //    } 
     1531        //    else if (unitpos == 0 && Rules.pCivs[civnumber].NumberofUnits > 1) 
     1532        //    { 
     1533        //        MessageBox.Show("SecondMethod"); 
     1534        //        for (int a = 1; a <= Rules.pCivs[civnumber].NumberofUnits - 1; a++) 
     1535        //        { 
     1536        //            Rules.pCivs[civnumber].Units[a - 1].HP = Rules.pCivs[civnumber].Units[a].HP; 
     1537        //            Rules.pCivs[civnumber].Units[a - 1].PosY = Rules.pCivs[civnumber].Units[a].PosY; 
     1538        //            Rules.pCivs[civnumber].Units[a - 1].PosX = Rules.pCivs[civnumber].Units[a].PosX; 
     1539        //            Rules.pCivs[civnumber].Units[a - 1].UnitType = Rules.pCivs[civnumber].Units[a].UnitType; 
     1540        //        } 
     1541        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosX = 0; 
     1542        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosY = 0; 
     1543        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].HP = 0.0; 
     1544        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].UnitType = null; 
     1545        //    } 
     1546        //    else if (unitpos == 0 && Rules.pCivs[civnumber].NumberofUnits == 1) 
     1547        //    { 
     1548        //        MessageBox.Show("ThirdMethod"); 
     1549        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosX = 0; 
     1550        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].PosY = 0; 
     1551        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].HP = 0.0; 
     1552        //        Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits - 1].UnitType = null; 
     1553        //    } 
     1554        //    Rules.pCivs[civnumber].NumberofUnits = Rules.pCivs[civnumber].NumberofUnits - 1; 
     1555        //} 
     1556        } 
     1557 
     1558        private void SelectNextUnit() 
     1559        { 
     1560            try 
     1561            { 
     1562                SelectedUnit = SelectedUnit + 1; 
     1563                UnitsSelected = true; 
     1564                UnitTile[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX].Image = LoadImage(OwnershipColorPath + "unitsOnTileSelected"); 
     1565                MessageDisplay.Add("Valitsit yksikön " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].UnitType.Name + " kohteesta " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + "; " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1566                MessageDisplay.Add("Liikuta valittua yksikköä Numpadista."); 
     1567                UnitStatsDisp.Text = "Valittu yksikkö:" + Environment.NewLine + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].UnitType.Name + 
     1568                    Environment.NewLine + "-Voimakkuus: " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].UnitType.Strength + Environment.NewLine + 
     1569                    "-Liikkuvuus: " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].UnitType.Movement + Environment.NewLine + 
     1570                    Rules.pCivs[CurrentPlayer].Units[SelectedUnit].UnitType.Description + Environment.NewLine + 
     1571                    " HP: " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].HP * 100 + "/100"; 
     1572                return; 
     1573            } 
     1574            catch 
     1575            { 
     1576                SelectedUnit = -1; 
     1577                UnitsSelected = false; 
     1578                MessageDisplay.Add("Ei ole enempää yksiköitä valittavaksi."); 
     1579            } 
     1580        } 
     1581 
     1582        private void SelectUnits() 
     1583        { 
     1584            //MessageBox.Show("SelectNextUnit"); 
     1585            for (int a = 0; a <= Rules.pCivs[CurrentPlayer].NumberofUnits - 1; a++) 
     1586            { 
     1587                if (Rules.pCivs[CurrentPlayer].Units[a].CurrentMovementPoints == 1 | Rules.pCivs[CurrentPlayer].Units[a].CurrentMovementPoints > 1) 
     1588                { 
     1589                    SelectedUnit = a; 
     1590                    UnitsSelected = true; 
     1591                    UnitTile[Rules.pCivs[CurrentPlayer].Units[a].PosY, Rules.pCivs[CurrentPlayer].Units[a].PosX].Image = LoadImage(OwnershipColorPath + "unitsOnTileSelected"); 
     1592                    MessageDisplay.Add("Valitsit yksikön " + Rules.pCivs[CurrentPlayer].Units[a].UnitType.Name + " kohteesta " + Rules.pCivs[CurrentPlayer].Units[a].PosY + "; " + Rules.pCivs[CurrentPlayer].Units[a].PosX); 
     1593                    MessageDisplay.Add("Liikuta valittua yksikköä Numpadista."); 
     1594                    UnitStatsDisp.Text = "Valittu yksikkö:" + Environment.NewLine + Rules.pCivs[CurrentPlayer].Units[a].UnitType.Name + 
     1595                        Environment.NewLine + "-Voimakkuus: " + Rules.pCivs[CurrentPlayer].Units[a].UnitType.Strength + Environment.NewLine + 
     1596                        "-Liikkuvuus: " + Rules.pCivs[CurrentPlayer].Units[a].UnitType.Movement + Environment.NewLine + 
     1597                        Rules.pCivs[CurrentPlayer].Units[a].UnitType.Description + Environment.NewLine + 
     1598                        " HP: " + Rules.pCivs[CurrentPlayer].Units[a].HP * 100 + "/100"; 
     1599                    return; 
     1600                } 
     1601            } 
    11371602        } 
    11381603 
     
    12181683            else 
    12191684            { 
     1685                if (Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints == 0 | Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints < 0) 
     1686                { 
     1687                    MessageDisplay.Add("Valitulla yksiköllä ei ollut liikkumapisteitä."); 
     1688                    return; 
     1689                } 
     1690                if (OwnershipMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + a, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + b] != -1 && OwnershipMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + a, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + b] != (CurrentPlayer + 10)) 
     1691                { 
     1692                    EnterCombat(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + a, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + b, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1693                    return; 
     1694                } 
    12201695                Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + b; 
    12211696                Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + a; 
    12221697                // 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) 
     1698                //try 
     1699                //{ 
     1700                int posyK; 
     1701                int posxK; 
     1702                posyK = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1); 
     1703                posxK = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1); 
     1704                OwnershipMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX] = CurrentPlayer; 
     1705                DrawOwnership(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1706                UnitMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX] = CurrentPlayer; 
     1707                CheckAndRemoveShroud_FromPos(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1708                Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints - 1; 
     1709                DrawUnit(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     1710                //MessageBox.Show(Convert.ToString(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints)); 
     1711                if (GetUnit_FromPositionForSelection(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1)) == -1) 
     1712                { 
     1713                    UnitMap[posyK, posxK] = -1; 
     1714                    UnitTile[posyK, posxK].Image = LoadImage(Textpath + "nothing"); 
     1715                    if (CheckforCityinPos(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1), CurrentPlayer) == -1) 
    12331716                    { 
    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                         } 
     1717                        OwnershipMap[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1)] = -1; 
     1718                        TileOwnership[Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX + (b * -1)].Image = LoadImage(Textpath + "nothing"); 
    12411719                    } 
    12421720                } 
    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             } 
     1721                //catch 
     1722                //{ 
     1723                //MessageDisplay.Add("Et voi liikkua kartan ulkopuolelle!"); 
     1724                //Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX - b; 
     1725                //Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY - a; 
     1726                //} 
     1727                //} 
     1728            } 
     1729        } 
     1730 
     1731        private void DrawUnit(int i, int j) 
     1732        { 
     1733            UnitTile[i, j].Image = LoadImage(OwnershipColorPath + "unitsOnTileSelected"); 
     1734            UnitTile[i, j].IsVisible = true; 
     1735            //Add(UnitTile[i, j]); 
    12501736        } 
    12511737 
  • 2010/24/ramipasa/ALTKTileEngine/Properties/AssemblyInfo.cs

    r810 r960  
    66// set of attributes. Change these attribute values to modify the information 
    77// associated with an assembly. 
    8 [assembly: AssemblyTitle("ALTKTileEngine")] 
     8[assembly: AssemblyTitle("Avaruuslaatikko 5 - Extensive Duel")] 
    99[assembly: AssemblyProduct("ALTKTileEngine")] 
    1010[assembly: AssemblyDescription("")] 
Note: See TracChangeset for help on using the changeset viewer.