Changeset 998 for 2010/24


Ignore:
Timestamp:
2010-06-18 13:47:26 (11 years ago)
Author:
ramipasa
Message:

Otettu pois muutamat debug-viestit sekä tekoäly nyt rakentaa jousiampujia valloittamiinsa kaupunkeihin.

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

Legend:

Unmodified
Added
Removed
  • 2010/24/ramipasa/ALTKTileEngine/Peli.cs

    r971 r998  
    3939        int PlayerAmount = 2; 
    4040 
     41        int PlayerCapitalCoordY; 
     42        int PlayerCapitalCoordX; 
     43 
     44        int AICapitalCoordY; 
     45        int AICapitalCoordX; 
    4146        // !!!!!!!!!!!!!!!!!!!!!!!!!!! 
    4247        // Pitänee tehdä vielä yksi ALTKSUnit-namespace ALTKCoreen. 
     
    4550 
    4651        int SelectedUnit = -1; 
     52        int AISelectedUnit = -1; 
    4753 
    4854        bool UnitsSelected = new bool(); 
     
    740746        private void AICreateUnit(int i, int j, ALTKUnits.UnitClass unittype, int civnumber, int path) 
    741747        { 
    742             //MessageBox.Show(i + " " + j); 
     748            //MessageBox.Show(i + " " + j + " " + "Path: " + path); 
    743749            Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits] = new BaseRules.Unit(); 
    744750            Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits].HP = 1.00; 
     
    747753            Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits].UnitType = unittype; 
    748754            Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits].CurrentMovementPoints = unittype.Movement; 
    749             Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits].AIPathfindingNumber = path; 
     755            Rules.pCivs[civnumber].Units[Rules.pCivs[civnumber].NumberofUnits].AIPathfindingRoute = path; 
    750756            Rules.pCivs[civnumber].NumberofUnits = Rules.pCivs[civnumber].NumberofUnits + 1; 
    751757            UnitMap[i, j] = civnumber; 
     
    9961002 
    9971003            UnitStatsDisp = new TextDisplay(); 
    998             UnitStatsDisp.X = Screen.Left + 300; 
     1004            UnitStatsDisp.X = Screen.Left + 400; 
    9991005            UnitStatsDisp.Y = Screen.Bottom + 400; 
    10001006            UnitStatsDisp.Text = "d23"; 
     
    12811287        } 
    12821288 
     1289        public int AI_GetNextDirection(int PathRoute, int PathNumber) 
     1290        { 
     1291            return AIPaths[PathRoute - 1, PathNumber + 1]; 
     1292        } 
     1293 
    12831294        private void TurnSystem_PlayAITurn(int playernumber) 
    12841295        { 
     
    12911302            if (TurnNumber == 1) 
    12921303            { 
     1304                AICapitalCoordY = Rules.pCivs[playernumber].CityCoords[1, 0]; 
     1305                AICapitalCoordX = Rules.pCivs[playernumber].CityCoords[1, 1]; 
    12931306                Rules.pCivs[playernumber].Behaviour = Rules.Rusher; 
    12941307                for (int a = 0; a <= Rules.pCivs[playernumber].NumberofCities - 1; a++) 
     
    13001313                } 
    13011314            } 
     1315            int path = new int(); 
     1316            path = RandomGen.NextInt(1, 2); 
     1317            for (int hproduction = 0; hproduction <= (CurrProduction / 40); hproduction++) 
     1318            { 
     1319                //MessageBox.Show(Convert.ToString(path)); 
     1320                AICreateUnit(Rules.pCivs[playernumber].CityCoords[1, 0], Rules.pCivs[playernumber].CityCoords[1, 1], Rules.Horseman, playernumber, path); 
     1321            } 
     1322 
    13021323            for (int a = 0; a < Rules.pCivs[playernumber].NumberofUnits; a++) 
    13031324            { 
    13041325                Rules.pCivs[playernumber].Units[a].CurrentMovementPoints = Rules.pCivs[playernumber].Units[a].UnitType.Movement; 
    13051326                Rules.pCivs[playernumber].Units[a].HP = 1.00; 
    1306             } 
    1307             int path = new int(); 
    1308             for (int hproduction = 0; hproduction <= (CurrProduction / 40); hproduction++) 
    1309             { 
    1310                 path = RandomGen.NextInt(1, 2); 
    1311                 AICreateUnit(Rules.pCivs[playernumber].CityCoords[0, 0], Rules.pCivs[playernumber].CityCoords[0, 1], Rules.Horseman, playernumber, path); 
    1312             } 
     1327 
     1328                if (Rules.pCivs[playernumber].Units[a].AIPathfindingRoute == 1) 
     1329                { 
     1330                    //MessageBox.Show("AIPathfindingRoute == 1"); 
     1331                    AISelectedUnit = a; 
     1332                    AIMoveUnit(AI_GetNextDirection(Rules.pCivs[playernumber].Units[a].AIPathfindingRoute, Rules.pCivs[playernumber].Units[a].AIPathfindingNumber)); 
     1333                    if (Rules.pCivs[playernumber].Units[a].CurrentMovementPoints > 0) 
     1334                    { 
     1335                        AIMoveUnit(AI_GetNextDirection(Rules.pCivs[playernumber].Units[a].AIPathfindingRoute, Rules.pCivs[playernumber].Units[a].AIPathfindingNumber)); 
     1336                    } 
     1337                } 
     1338 
     1339                if (Rules.pCivs[playernumber].Units[a].AIPathfindingRoute == 2) 
     1340                { 
     1341                    //MessageBox.Show("AIPathfindingRoute == 2"); 
     1342                    AISelectedUnit = a; 
     1343                    AIMoveUnit(AI_GetNextDirection(Rules.pCivs[playernumber].Units[a].AIPathfindingRoute, Rules.pCivs[playernumber].Units[a].AIPathfindingNumber)); 
     1344                    if (Rules.pCivs[playernumber].Units[a].CurrentMovementPoints > 0) 
     1345                    { 
     1346                        AIMoveUnit(AI_GetNextDirection(Rules.pCivs[playernumber].Units[a].AIPathfindingRoute, Rules.pCivs[playernumber].Units[a].AIPathfindingNumber)); 
     1347                    } 
     1348                } 
     1349            } 
     1350 
    13131351            //MessageBox.Show(Convert.ToString(CurrProduction)); 
    13141352            EnableInput(); 
     
    13331371            if (TurnNumber == 1) 
    13341372            { 
     1373                PlayerCapitalCoordY = Rules.pCivs[playernumber].CityCoords[0, 0]; 
     1374                PlayerCapitalCoordX = Rules.pCivs[playernumber].CityCoords[0, 1]; 
    13351375                CreateUnit(Rules.pCivs[playernumber].CityCoords[0, 0], Rules.pCivs[playernumber].CityCoords[0, 1], Rules.Crossbowman, playernumber); 
    13361376                CreateUnit(Rules.pCivs[playernumber].CityCoords[0, 0], Rules.pCivs[playernumber].CityCoords[0, 1], Rules.Archer, playernumber); 
     
    15241564                CurrentPlayer = CurrentPlayer + 1; 
    15251565            } 
     1566 
     1567            if (OwnershipMap[PlayerCapitalCoordY, PlayerCapitalCoordX] != 0) 
     1568            { 
     1569                MessageDisplay.TextColor = Color.Red; 
     1570                MessageDisplay.Add("You've been defeated!"); 
     1571                return; 
     1572            } 
     1573            if (TurnNumber != 1) 
     1574            { 
     1575                if (OwnershipMap[AICapitalCoordY, AICapitalCoordX] != 1) 
     1576                { 
     1577                    MessageDisplay.TextColor = Color.Green; 
     1578                    MessageDisplay.Add("You are victorious!"); 
     1579                    return; 
     1580                } 
     1581            } 
     1582            AISelectedUnit = -1; 
    15261583            TurnSystem_Start(CurrentPlayer); 
    15271584        } 
     
    16241681            double modifier = 1; 
    16251682 
     1683            //MessageBox.Show(civid + " " + unit); 
    16261684            baseStrength = Rules.pCivs[civid].Units[unit].UnitType.Strength; 
    16271685 
     
    16911749 
    16921750            return returnvalue; 
     1751        } 
     1752 
     1753        private void AIEnterCombat(int i, int j, int ab, int bb) 
     1754        { 
     1755            if (DTerrainMap[i, j] > 9) 
     1756            { 
     1757                if (UnitMap[i, j] > -1) 
     1758                { 
     1759                    double attackerStrength; 
     1760                    double defenderStrength; 
     1761                    int chances = new int(); 
     1762                    attackerStrength = CalculateAttackerStrength(AISelectedUnit, TerrainMap[i, j], DTerrainMap[i, j], CurrentPlayer, i, j); 
     1763                    defenderStrength = CalculateDefenderStrength(GetUnit_FromPositionForSelection(i, j), TerrainMap[i, j], DTerrainMap[i, j], OwnershipMap[i, j], i, j); 
     1764                    //MessageBox.Show(attackerStrength + " " + defenderStrength); 
     1765                    chances = CountChances(attackerStrength, defenderStrength); 
     1766                    //MessageBox.Show("Chances: " + chances + " AttackerStrength: " + attackerStrength + " DefenderStrength: " + defenderStrength); 
     1767                    int WinNumber = RandomGen.NextInt(1, 100); 
     1768                    double dNumber = new double(); 
     1769                    if (attackerStrength > defenderStrength) 
     1770                    { 
     1771                        //MessageBox.Show("attacker > defender" + " " +WinNumber + " " + chances); 
     1772                        if (chances < WinNumber) 
     1773                        { 
     1774                            MessageDisplay.Add("Sinun " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + " on kuollut puolustautuessaan vihollisen " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + "ia vastaan kohteessa " + i + "; " + j + "!"); 
     1775                            RemoveUnit(i, j, OwnershipMap[i, j], Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType, Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP); 
     1776                            dNumber = ((WinNumber - chances)); 
     1777                            dNumber = dNumber / 10; 
     1778                            dNumber = dNumber / 10; 
     1779                            //MessageBox.Show(Convert.ToString(dNumber)); 
     1780                            //Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP = Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP - dNumber; 
     1781                            //UnitStatsDisp.Text = "Valittu yksikkö " + "(" + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + "; " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + "):" + Environment.NewLine + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + 
     1782                            //Environment.NewLine + "-Voimakkuus: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Strength + Environment.NewLine + 
     1783                            //"-Liikkuvuus: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Movement + Environment.NewLine + 
     1784                            //Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Description + Environment.NewLine + 
     1785                            //" HP: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP * 100 + "/100"; 
     1786                            CombatEnabled = false; 
     1787                            CheckForUnits(i, j); 
     1788                        } 
     1789                        else 
     1790                        { 
     1791                            MessageDisplay.Add("Sinun " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + " on kuollut hyökätessään vihollisen " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + "iin!"); 
     1792                            RemoveUnit(ab, bb, OwnershipMap[ab, bb], Rules.pCivs[OwnershipMap[ab, bb]].Units[AISelectedUnit].UnitType, Rules.pCivs[OwnershipMap[ab, bb]].Units[AISelectedUnit].HP); 
     1793                            DeselectUnit(); 
     1794                            dNumber = ((chances - WinNumber) / 100); 
     1795                            Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP = Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP - dNumber; 
     1796                            CombatEnabled = false; 
     1797                            CheckForUnits(ab, bb); 
     1798                        } 
     1799                    } 
     1800                    else 
     1801                    { 
     1802                        //MessageBox.Show("defender > attacker" + " " + WinNumber + " " + chances); 
     1803                        if (chances > WinNumber) 
     1804                        { 
     1805                            MessageDisplay.Add("Sinun " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + " on kuollut puolustautuessaan vihollisen " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + "ia vastaan kohteessa " + i + "; " + j + "!"); 
     1806                            RemoveUnit(i, j, OwnershipMap[i, j], Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType, Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP); 
     1807                            dNumber = ((WinNumber - chances)); 
     1808                            dNumber = dNumber / 10; 
     1809                            dNumber = dNumber / 10; 
     1810                            //MessageBox.Show(Convert.ToString(dNumber)); 
     1811                            //Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP = Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP - dNumber; 
     1812                            //UnitStatsDisp.Text = "Valittu yksikkö " + "(" + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + "; " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + "):" + Environment.NewLine + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + 
     1813                            //Environment.NewLine + "-Voimakkuus: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Strength + Environment.NewLine + 
     1814                            //"-Liikkuvuus: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Movement + Environment.NewLine + 
     1815                            //Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Description + Environment.NewLine + 
     1816                            //" HP: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP * 100 + "/100"; 
     1817                            CombatEnabled = false; 
     1818                            CheckForUnits(i, j); 
     1819                        } 
     1820                        else 
     1821                        { 
     1822                            MessageDisplay.Add("Sinun " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + " on tuhonnut vihollisen " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + "in puolustautuessaan kohteessa " + i + "; " + j + "!"); 
     1823                            RemoveUnit(ab, bb, OwnershipMap[ab, bb], Rules.pCivs[OwnershipMap[ab, bb]].Units[AISelectedUnit].UnitType, Rules.pCivs[OwnershipMap[ab, bb]].Units[AISelectedUnit].HP); 
     1824                            DeselectUnit(); 
     1825                            dNumber = ((chances - WinNumber) / 100); 
     1826                            Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP = Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP - dNumber; 
     1827                            CombatEnabled = false; 
     1828                            CheckForUnits(ab, bb); 
     1829                        } 
     1830                    } 
     1831                } 
     1832                else 
     1833                { 
     1834                    CityCaptureAI(i, j, ab, bb); 
     1835                    UnitMap[i, j] = CurrentPlayer; 
     1836                    CombatEnabled = false; 
     1837                } 
     1838            } 
     1839            else 
     1840            { 
     1841                double attackerStrength; 
     1842                double defenderStrength; 
     1843                int chances = new int(); 
     1844                attackerStrength = CalculateAttackerStrength(AISelectedUnit, TerrainMap[i, j], DTerrainMap[i, j], CurrentPlayer, i, j); 
     1845                defenderStrength = CalculateDefenderStrength(GetUnit_FromPositionForSelection(i, j), TerrainMap[i, j], DTerrainMap[i, j], OwnershipMap[i, j], i, j); 
     1846                //MessageBox.Show(attackerStrength + " " + defenderStrength); 
     1847                chances = CountChances(attackerStrength, defenderStrength); 
     1848                int WinNumber = RandomGen.NextInt(1, 100); 
     1849                double dNumber = new double(); 
     1850                //MessageBox.Show(WinNumber + " " + chances); 
     1851                if (attackerStrength > defenderStrength) 
     1852                { 
     1853                    if (chances < WinNumber) 
     1854                    { 
     1855                        MessageDisplay.Add("Sinun " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + " on kuollut puolustautuessaan vihollisen " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + "ia vastaan kohteessa " + i + "; " + j + "!"); 
     1856                        RemoveUnit(i, j, OwnershipMap[i, j], Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType, Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP); 
     1857                        dNumber = ((WinNumber - chances)); 
     1858                        dNumber = dNumber / 10; 
     1859                        dNumber = dNumber / 10; 
     1860                        //MessageBox.Show(Convert.ToString(dNumber)); 
     1861                        //Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP = Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP - dNumber; 
     1862                        //UnitStatsDisp.Text = "Valittu yksikkö " + "(" + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + "; " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + "):" + Environment.NewLine + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + 
     1863                        //Environment.NewLine + "-Voimakkuus: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Strength + Environment.NewLine + 
     1864                        //"-Liikkuvuus: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Movement + Environment.NewLine + 
     1865                        //Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Description + Environment.NewLine + 
     1866                        //" HP: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP * 100 + "/100"; 
     1867                        CombatEnabled = false; 
     1868                        CheckForUnits(i, j); 
     1869                    } 
     1870                    else 
     1871                    { 
     1872                        MessageDisplay.Add("Sinun " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + " on tuhonnut vihollisen " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + "in puolustautuessaan kohteessa " + i + "; " + j + "!"); 
     1873                        RemoveUnit(ab, bb, OwnershipMap[ab, bb], Rules.pCivs[OwnershipMap[ab, bb]].Units[AISelectedUnit].UnitType, Rules.pCivs[OwnershipMap[ab, bb]].Units[AISelectedUnit].HP); 
     1874                        DeselectUnit(); 
     1875                        dNumber = ((chances - WinNumber) / 100); 
     1876                        Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP = Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP - dNumber; 
     1877                        CombatEnabled = false; 
     1878                        CheckForUnits(ab, bb); 
     1879                    } 
     1880                } 
     1881                else 
     1882                { 
     1883                    if (chances > WinNumber) 
     1884                    { 
     1885                        MessageDisplay.Add("Sinun " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + " on kuollut puolustautuessaan vihollisen " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + "ia vastaan kohteessa " + i + "; " + j + "!"); 
     1886                        RemoveUnit(i, j, OwnershipMap[i, j], Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType, Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP); 
     1887                        dNumber = ((WinNumber - chances)); 
     1888                        dNumber = dNumber / 10; 
     1889                        dNumber = dNumber / 10; 
     1890                        //MessageBox.Show(Convert.ToString(dNumber)); 
     1891                        //Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP = Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP - dNumber; 
     1892                        //UnitStatsDisp.Text = "Valittu yksikkö " + "(" + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + "; " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + "):" + Environment.NewLine + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + 
     1893                        //Environment.NewLine + "-Voimakkuus: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Strength + Environment.NewLine + 
     1894                        //"-Liikkuvuus: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Movement + Environment.NewLine + 
     1895                        //Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Description + Environment.NewLine + 
     1896                        //" HP: " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].HP * 100 + "/100"; 
     1897                        CombatEnabled = false; 
     1898                        CheckForUnits(i, j); 
     1899                    } 
     1900                    else 
     1901                    { 
     1902                        MessageDisplay.Add("Sinun " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + " on tuhonnut vihollisen " + Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].UnitType.Name + "in puolustautuessaan kohteessa " + i + "; " + j + "!"); 
     1903                        RemoveUnit(ab, bb, OwnershipMap[ab, bb], Rules.pCivs[OwnershipMap[ab, bb]].Units[AISelectedUnit].UnitType, Rules.pCivs[OwnershipMap[ab, bb]].Units[AISelectedUnit].HP); 
     1904                        DeselectUnit(); 
     1905                        dNumber = ((chances - WinNumber) / 100); 
     1906                        Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP = Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP - dNumber; 
     1907                        CombatEnabled = false; 
     1908                        CheckForUnits(ab, bb); 
     1909                    } 
     1910                } 
     1911            } 
     1912            CombatEnabled = false; 
    16931913        } 
    16941914 
     
    17151935                        { 
    17161936                            int WinMessage = RandomGen.NextInt(1, 2); 
    1717                             if (WinMessage == 1) 
     1937                            if (WinMessage == 1 && Rules.pCivs[CurrentPlayer].HumanPlayer == true) 
    17181938                            { 
    17191939                                MessageDisplay.Add("Sinun " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].UnitType.Name + " on hyökätessään tuhonnut vihollisen " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + "in!"); 
    17201940                            } 
    1721                             else 
     1941                            else if (WinMessage == 2 && Rules.pCivs[CurrentPlayer].HumanPlayer == true) 
    17221942                            { 
    17231943                                MessageDisplay.Add("Sinun " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].UnitType.Name + " on hyökätessään tehnyt historiaa vihollisen " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + "ista!"); 
     
    18062026                int WinNumber = RandomGen.NextInt(1, 100); 
    18072027                double dNumber = new double(); 
    1808                 MessageBox.Show(WinNumber + " " + chances); 
     2028                //MessageBox.Show(WinNumber + " " + chances); 
    18092029                if (attackerStrength > defenderStrength) 
    18102030                { 
     
    19142134                return chances; 
    19152135            } 
     2136        } 
     2137 
     2138        private void CityCaptureAI(int i, int j, int ab, int bb) 
     2139        { 
     2140            RemoveCity_FromCivFromPosition(i, j); 
     2141            Rules.pCivs[OwnershipMap[i, j]].NumberofCities = Rules.pCivs[OwnershipMap[i, j]].NumberofCities - 1; 
     2142            Rules.pCivs[OwnershipMap[i, j]].Production = Rules.pCivs[OwnershipMap[i, j]].Production - 10; 
     2143            MessageDisplay.TextColor = Color.Red; 
     2144            MessageDisplay.Add(Rules.pCivs[CurrentPlayer].Name + " on valloittanut kaupungin ruudusta " + i + "; " + j + " (" + Rules.pCivs[OwnershipMap[i, j]].Name + ")"); 
     2145            Thread.Sleep(1000); 
     2146            if (Rules.pCivs[OwnershipMap[i, j]].NumberofCities == 0) 
     2147            { 
     2148                MessageDisplay.Add(Rules.pCivs[OwnershipMap[i, j]].Name + " has been destroyed!"); 
     2149                Rules.pCivs[OwnershipMap[i, j]].Enabled = false; 
     2150            } 
     2151            OwnershipMap[i, j] = CurrentPlayer; 
     2152            DrawOwnership(i, j); 
     2153            Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY = i; 
     2154            Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX = j; 
     2155            MessageDisplay.TextColor = Color.Orange; 
     2156            AddCity(i, j); 
     2157            for (int c = 2; c < 2 + currDiffLevel; c++) 
     2158            { 
     2159                CreateUnit(i, j, Rules.Archer, CurrentPlayer); 
     2160            } 
     2161            if (GetUnit_FromPositionForSelection(ab, bb) == -1) 
     2162            { 
     2163                OwnershipMap[ab, bb] = -1; 
     2164                TileOwnership[ab, bb].Image = LoadImage(Textpath + "nothing"); 
     2165            } 
     2166            DrawUnit(i, j); 
    19162167        } 
    19172168 
     
    20972348        } 
    20982349 
     2350        private void AIMoveUnit(int direction) 
     2351        { 
     2352            if (direction == 1) 
     2353            { 
     2354                AIUnitMovementMain(-1, -1); 
     2355            } 
     2356            else if (direction == 2) 
     2357            { 
     2358                AIUnitMovementMain(-1, 0); 
     2359            } 
     2360            else if (direction == 3) 
     2361            { 
     2362                AIUnitMovementMain(-1, 1); 
     2363            } 
     2364            else if (direction == 4) 
     2365            { 
     2366                AIUnitMovementMain(0, -1); 
     2367            } 
     2368            else if (direction == 5) 
     2369            { 
     2370                //SelectNextUnitOnTile(-1, 0); 
     2371            } 
     2372            else if (direction == 6) 
     2373            { 
     2374                AIUnitMovementMain(0, 1); 
     2375            } 
     2376            else if (direction == 7) 
     2377            { 
     2378                AIUnitMovementMain(1, -1); 
     2379            } 
     2380            else if (direction == 8) 
     2381            { 
     2382                AIUnitMovementMain(1, 0); 
     2383            } 
     2384            else if (direction == 9) 
     2385            { 
     2386                AIUnitMovementMain(1, 1); 
     2387            } 
     2388            else if (direction == 0) 
     2389            { 
     2390            } 
     2391        } 
     2392 
     2393        private void AIUnitMovementMain(int a, int b) 
     2394        { 
     2395            if (TerrainMap[Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + a, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + b] == Vuoristo | DTerrainMap[Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + a, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + b] == Vuoristo) 
     2396            { 
     2397                //MessageDisplay.Add("AI Pathfinding Error! at " + a + "; " + b); 
     2398            } 
     2399            else 
     2400            { 
     2401                if (Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].CurrentMovementPoints == 0 | Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].CurrentMovementPoints < 0) 
     2402                { 
     2403                    //MessageDisplay.Add("Valitulla yksiköllä ei ollut liikkumapisteitä."); 
     2404                    //DeselectUnit(); 
     2405                    return; 
     2406                } 
     2407                if (OwnershipMap[Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + a, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + b] != -1 && OwnershipMap[Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + a, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + b] != (CurrentPlayer)) 
     2408                { 
     2409                    AIEnterCombat(Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + a, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + b, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX); 
     2410                    CombatEnabled = true; 
     2411                    return; 
     2412                } 
     2413                Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX = Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + b; 
     2414                Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY = Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + a; 
     2415                // MessageBox.Show(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosY + " " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].PosX); 
     2416                //try 
     2417                //{ 
     2418                int posyK; 
     2419                int posxK; 
     2420                posyK = Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + (a * -1); 
     2421                posxK = Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + (b * -1); 
     2422                OwnershipMap[Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX] = CurrentPlayer; 
     2423                DrawOwnership(Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX); 
     2424                UnitMap[Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX] = CurrentPlayer; 
     2425                Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].CurrentMovementPoints = Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].CurrentMovementPoints - 1; 
     2426                DrawUnit(Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY, Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX); 
     2427                Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].AIPathfindingNumber = Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].AIPathfindingNumber + 1; 
     2428                //MessageBox.Show(Convert.ToString(Rules.pCivs[CurrentPlayer].Units[SelectedUnit].CurrentMovementPoints)); 
     2429                if (GetUnit_FromPositionForSelection(Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + (b * -1)) == -1) 
     2430                { 
     2431                    UnitMap[posyK, posxK] = -1; 
     2432                    UnitTile[posyK, posxK].Image = LoadImage(Textpath + "nothing"); 
     2433                    if (CheckforCityinPos(Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + (b * -1), CurrentPlayer) == -1) 
     2434                    { 
     2435                        OwnershipMap[Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + (b * -1)] = -1; 
     2436                        TileOwnership[Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosY + (a * -1), Rules.pCivs[CurrentPlayer].Units[AISelectedUnit].PosX + (b * -1)].Image = LoadImage(Textpath + "nothing"); 
     2437                    } 
     2438                } 
     2439            } 
     2440        } 
     2441 
    20992442        private void MoveUnit(int direction) 
    21002443        { 
Note: See TracChangeset for help on using the changeset viewer.