Пример #1
0
        private int _calcBattlePvp(BattleFleets atakerReport, BattleFleets defendorReport, BattleResult status)
        {
            //  if (status == BattleResult.DeadHeat) return 0;
            //if (status == BattleResult.AtackerEscape) return 0;
            var destroedHp = 0;
            var lostHp     = 0;

            if (status == BattleResult.AtackerWin)
            {
                lostHp     = FleetStats.SetPowerFleet(atakerReport.Lose).Hp;
                destroedHp = FleetStats.SetPowerFleet(defendorReport.Lose).Hp;
            }
            else if (status == BattleResult.DefenderWin)
            {
                lostHp     = FleetStats.SetPowerFleet(defendorReport.Lose).Hp;
                destroedHp = FleetStats.SetPowerFleet(atakerReport.Lose).Hp;
            }
            var pvpMod  = 1.1;
            var lost    = 0;
            var destroy = 0;

            if (lostHp > 2)
            {
                lost = lostHp / 2;
            }
            if (destroedHp > 0)
            {
                destroy = destroedHp;
            }

            var resultPvp = (int)Math.Floor((lost + destroy) * pvpMod);

            return(resultPvp);
        }
Пример #2
0
        private int _calcCc(BattleFleets skagryFleetReport, bool skagryIsAtacker)
        {
            var mod        = skagryIsAtacker ? 2.0 : 1.0;
            var skagryHp   = FleetStats.SetPowerFleet(skagryFleetReport.Before).Hp;
            var proportion = 100.0;
            var cc         = mod * skagryHp / proportion;

            return((int)Math.Floor(cc));
        }
Пример #3
0
 public BattleFleetsCalculator(Dictionary <UnitType, int> sourceBefore, Dictionary <UnitType, int> targetBefore)
 {
     Source = new BattleFleets {
         Before = _cloneUnits(sourceBefore),
         After  = new Dictionary <UnitType, int>(),
         Lose   = new Dictionary <UnitType, int>()
     };
     Target = new BattleFleets {
         Before = _cloneUnits(targetBefore),
         After  = new Dictionary <UnitType, int>(),
         Lose   = new Dictionary <UnitType, int>()
     };
 }
        private IHttpActionResult TestBattle()
        {
            var srcUnits    = _gDetailPlanetService.GetPlanetAsync(6).hangar;
            var targetUnits = _gDetailPlanetService.GetPlanetAsync(7).hangar;


            var buttle = BattleFleets.SetUnits(JsonConvert.DeserializeObject <Dictionary <string, int> >(srcUnits),
                                               JsonConvert.DeserializeObject <Dictionary <string, int> >(targetUnits));
            var b = buttle.Battle();

            var allResult = new
            {
                results = b,
                buttle.Source,
                buttle.Target
            };

            return(Json(allResult));
        }
Пример #5
0
        public static Dictionary <UnitType, ReportFleetOut> ConvertBattleFleetsToReportFleetView(
            BattleFleets battleFleets)
        {
            var resultCollection = CreateBaseReportUnits();
            var keys             = resultCollection.Keys.ToList();

            foreach (var key in keys)
            {
                if (battleFleets.Before.ContainsKey(key))
                {
                    resultCollection[key].StartUnitCount = battleFleets.Before[key];
                }
                if (battleFleets.Lose.ContainsKey(key))
                {
                    resultCollection[key].LostUnitCount = battleFleets.Lose[key];
                }
            }

            return(resultCollection);
        }