Changeset 963 for 2010/24


Ignore:
Timestamp:
2010-06-18 08:53:13 (9 years ago)
Author:
ramipasa
Message:

Lisätty taistelusysteemi (joka tosin on vielä buginen ja kaataa pelin).

File:
1 edited

Legend:

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

    r960 r963  
    3434        int TurnNumber; // vuoron numero 
    3535        int CurrProduction; // pelaajan tämänhetkinen tuotanto 
     36        int PlayerAmount = 2; 
    3637 
    3738        // !!!!!!!!!!!!!!!!!!!!!!!!!!! 
     
    979980            Add(Unit3Disp); 
    980981            Add(Unit4Disp); 
    981             Add(ResearchDisp); 
    982             Add(ClicktoResearch); 
     982            //Add(ResearchDisp); 
     983            //Add(ClicktoResearch); 
    983984        } 
    984985 
     
    11771178        } 
    11781179 
     1180        private void TurnSystem_PlayAITurn(int playernumber) 
     1181        { 
     1182            //DisableInput(); 
     1183            int AIProduction = new int(); 
     1184            double AIProduction2 = new double(); 
     1185            AIProduction = Rules.pCivs[playernumber].Production; 
     1186            AIProduction2 = Rules.GetDifficulty_FromInt(currDiffLevel).ComputerProductionBonus * AIProduction; 
     1187            CurrProduction = Convert.ToInt32(AIProduction2); 
     1188            if (TurnNumber == 1) 
     1189            { 
     1190                for (int a = 0; a <= Rules.pCivs[playernumber].NumberofCities - 1; a++) 
     1191                { 
     1192                    for (int b = 0; b <= 4 + currDiffLevel; b++) 
     1193                    { 
     1194                        CreateUnit(Rules.pCivs[playernumber].CityCoords[a, 0], Rules.pCivs[playernumber].CityCoords[a, 1], Rules.Archer, playernumber); 
     1195                    } 
     1196                } 
     1197            } 
     1198            //MessageBox.Show(Convert.ToString(CurrProduction)); 
     1199            EnableInput(); 
     1200            EndTurn(); 
     1201        } 
     1202 
    11791203        private void TurnSystem_Start(int playernumber) 
    11801204        { 
     1205            if (Rules.pCivs[playernumber].HumanPlayer == false) 
     1206            { 
     1207                TurnSystem_PlayAITurn(playernumber); 
     1208                return; 
     1209            } 
    11811210            TurnNumber = TurnNumber + 1; 
    11821211            MessageDisplay.Add("Vuorosi on alkanut!"); 
     
    13571386        private void EndTurn() 
    13581387        { 
    1359             MessageDisplay.Add("Lopetit vuorosi.."); 
     1388            if (Rules.pCivs[CurrentPlayer].HumanPlayer == true) 
     1389            { 
     1390                MessageDisplay.Add("Lopetit vuorosi.."); 
     1391            } 
    13601392            if (SelectedUnit > -1) 
    13611393            { 
    13621394                DeselectUnit(); 
    13631395            } 
     1396            if (CurrentPlayer == PlayerAmount - 1) 
     1397            { 
     1398                CurrentPlayer = CurrentPlayer - 1; 
     1399            } 
     1400            else 
     1401            { 
     1402                CurrentPlayer = CurrentPlayer + 1; 
     1403            } 
    13641404            TurnSystem_Start(CurrentPlayer); 
     1405        } 
     1406 
     1407        private void DisableInput() 
     1408        { 
     1409            Keyboard.Disable(Key.NumPad1); 
     1410            Keyboard.Disable(Key.NumPad2); 
     1411            Keyboard.Disable(Key.NumPad3); 
     1412            Keyboard.Disable(Key.NumPad4); 
     1413            Keyboard.Disable(Key.NumPad5); 
     1414            Keyboard.Disable(Key.NumPad6); 
     1415            Keyboard.Disable(Key.NumPad7); 
     1416            Keyboard.Disable(Key.NumPad8); 
     1417            Keyboard.Disable(Key.NumPad9); 
     1418 
     1419            Keyboard.Disable(Key.B); 
     1420            Keyboard.Disable(Key.U); 
     1421            Keyboard.Disable(Key.D1); 
     1422            Keyboard.Disable(Key.D2); 
     1423            Keyboard.Disable(Key.D3); 
     1424            Keyboard.Disable(Key.D4); 
     1425            Keyboard.Disable(Key.End); 
     1426            Keyboard.Disable(Key.Home); 
     1427 
     1428            Mouse.Disable(MouseButton.Left); 
     1429        } 
     1430 
     1431        private void EnableInput() 
     1432        { 
     1433            Keyboard.Enable(Key.NumPad1); 
     1434            Keyboard.Enable(Key.NumPad2); 
     1435            Keyboard.Enable(Key.NumPad3); 
     1436            Keyboard.Enable(Key.NumPad4); 
     1437            Keyboard.Enable(Key.NumPad5); 
     1438            Keyboard.Enable(Key.NumPad6); 
     1439            Keyboard.Enable(Key.NumPad7); 
     1440            Keyboard.Enable(Key.NumPad8); 
     1441            Keyboard.Enable(Key.NumPad9); 
     1442 
     1443            Keyboard.Enable(Key.B); 
     1444            Keyboard.Enable(Key.U); 
     1445            Keyboard.Enable(Key.D1); 
     1446            Keyboard.Enable(Key.D2); 
     1447            Keyboard.Enable(Key.D3); 
     1448            Keyboard.Enable(Key.D4); 
     1449            Keyboard.Enable(Key.End); 
     1450            Keyboard.Enable(Key.Home); 
     1451 
     1452            Mouse.Enable(MouseButton.Left); 
    13651453        } 
    13661454 
     
    14061494        } 
    14071495 
     1496        # region Combat 
     1497        public double CalculateAttackerStrength(int unit, int terraintype, int dterraintype, int civid, int i, int j) 
     1498        { 
     1499            double returnvalue = new double(); 
     1500            double baseStrength = new double(); 
     1501 
     1502            baseStrength = Rules.pCivs[civid].Units[unit].UnitType.Strength; 
     1503 
     1504            if (Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.FirstStrikes > 0) 
     1505            { 
     1506                if (Rules.pCivs[civid].Units[unit].UnitType.FirstStrikes == 0 | Rules.pCivs[civid].Units[unit].UnitType.FSOnAttack == false) 
     1507                { 
     1508                    baseStrength = baseStrength - ((Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Strength / 4) * Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.FirstStrikes); 
     1509                } 
     1510            } 
     1511 
     1512            if (dterraintype > 9) 
     1513            { 
     1514                baseStrength = (baseStrength * (Rules.pCivs[civid].Units[unit].UnitType.CityAttackBonus + 1.00)); 
     1515            } 
     1516 
     1517            returnvalue = (baseStrength * Rules.pCivs[civid].Units[unit].UnitType.HP); 
     1518 
     1519            return returnvalue; 
     1520        } 
     1521 
     1522        public double CalculateDefenderStrength(int unit, int terraintype, int dterraintype, int civid, int i, int j) 
     1523        { 
     1524            double returnvalue = new double(); 
     1525            double baseStrength = new double(); 
     1526 
     1527            baseStrength = Rules.pCivs[civid].Units[unit].UnitType.Strength; 
     1528 
     1529            if (dterraintype > 9) 
     1530            { 
     1531                baseStrength = (baseStrength * (Rules.pCivs[civid].Units[unit].UnitType.CityDefenseBonus + 1.00)); 
     1532            } 
     1533 
     1534            returnvalue = (baseStrength * Rules.pCivs[civid].Units[unit].UnitType.HP); 
     1535 
     1536            return returnvalue; 
     1537        } 
     1538 
    14081539        private void EnterCombat(int i, int j, int ab, int bb) 
    14091540        { 
     
    14121543                if (UnitMap[i, j] > -1) 
    14131544                { 
    1414  
     1545                    double attackerStrength; 
     1546                    double defenderStrength; 
     1547                    int chances = new int(); 
     1548                    attackerStrength = CalculateAttackerStrength(SelectedUnit, TerrainMap[i, j], DTerrainMap[i, j], CurrentPlayer, i, j); 
     1549                    defenderStrength = CalculateDefenderStrength(GetUnit_FromPositionForSelection(i, j), TerrainMap[i, j], DTerrainMap[i, j], OwnershipMap[i, j], i, j); 
     1550                    chances = CountChances(attackerStrength, defenderStrength); 
     1551                    int WinNumber = RandomGen.NextInt(1, 100); 
     1552                    double dNumber = new double(); 
     1553                    if (chances > WinNumber) 
     1554                    { 
     1555                        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!"); 
     1556                        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); 
     1557                        dNumber = ((chances - WinNumber) / 100); 
     1558                        Rules.pCivs[CurrentPlayer].Units[SelectedUnit].HP = Rules.pCivs[CurrentPlayer].Units[SelectedUnit].HP - dNumber; 
     1559                    } 
     1560                    else 
     1561                    { 
     1562                        MessageDisplay.Add("Sinun " + Rules.pCivs[CurrentPlayer].Units[SelectedUnit].UnitType.Name + " on kuollut hyökätessään vihollisen " + Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].UnitType.Name + "iin!"); 
     1563                        RemoveUnit(ab, bb, OwnershipMap[ab, bb], Rules.pCivs[OwnershipMap[ab, bb]].Units[SelectedUnit].UnitType, Rules.pCivs[OwnershipMap[ab, bb]].Units[SelectedUnit].HP); 
     1564                        DeselectUnit(); 
     1565                        dNumber = ((chances - WinNumber) / 100); 
     1566                        Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP = Rules.pCivs[OwnershipMap[i, j]].Units[GetUnit_FromPositionForSelection(i, j)].HP - dNumber; 
     1567                    } 
    14151568                } 
    14161569                else 
     
    14181571                    CityCapture(i, j, ab, bb); 
    14191572                } 
     1573            } 
     1574        } 
     1575 
     1576        public int CountChances(double attackerStrength, double defenderStrength) 
     1577        { 
     1578            int chances = new int(); 
     1579            if (defenderStrength > attackerStrength) 
     1580            { 
     1581                MessageBox.Show(Convert.ToString((((defenderStrength / attackerStrength) / 2) * 100))); 
     1582                chances = Convert.ToInt32((((attackerStrength / defenderStrength) / 2) * 100)); 
     1583                return chances; 
     1584            } 
     1585            else 
     1586            { 
     1587                MessageBox.Show(Convert.ToString((((defenderStrength / attackerStrength) / 2) * 100))); 
     1588                chances = Convert.ToInt32((((defenderStrength / attackerStrength) / 2) * 100)); 
     1589                return chances; 
    14201590            } 
    14211591        } 
     
    14481618            DrawUnit(i, j); 
    14491619        } 
    1450  
     1620        # endregion 
    14511621        private void AddCity(int i, int j) 
    14521622        { 
Note: See TracChangeset for help on using the changeset viewer.