示例#1
0
 // コンストラクタ
 private void Start()
 {
     _platoon     = Platoon.Unfinished;
     _cardManager = GameObject.FindGameObjectWithTag("CardManager").GetComponent <CardManager>();
     _cardCheck   = this.GetComponent <CardCheck>();
     _save        = GameObject.FindGameObjectWithTag("Save").GetComponent <Save>();
 }
        public async Task <IActionResult> PutPlatoon([FromRoute] int id, [FromBody] Platoon platoon)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != platoon.Id)
            {
                return(BadRequest());
            }

            _context.Entry(platoon).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PlatoonExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        private Platoon ConvertTrainingSet(TrainingSet set, int numberOfPlayers, int minimumFireteamSize, TeamSide side)
        {
            var chosenPlatoon = ChoosePlatoon(set, numberOfPlayers, minimumFireteamSize);

            Platoon platoon = new Platoon(side, minimumFireteamSize);

            platoon.SupportingRoles = int.Parse(chosenPlatoon.players);

            int squadCounter = 0;

            foreach (TrainingSetPlatoonSquad trainingSquad in chosenPlatoon.Squad)
            {
                var squad = platoon.AddSquad((SquadSign)squadCounter);
                squad.SupportingRoles = int.Parse(trainingSquad.players);

                foreach (TrainingSetPlatoonSquadFireteam trainingFireteam in trainingSquad.Fireteam)
                {
                    squad.AddFireTeam(int.Parse(trainingFireteam.players));
                }

                squadCounter++;
            }

            return(platoon);
        }
示例#4
0
        /// <summary>
        /// Приспособленец
        /// </summary>
        public static void GoFlyweightPlatoonSpecialty()
        {
            PlatoonFactory platoonFactory = new PlatoonFactory();
            Platoon        platoon        = platoonFactory.GetPlatoon("Танкисты");

            if (platoon != null)
            {
                platoon.SetTitleAndConnect("2Т-15");
                platoon.SetTitleAndConnect("4Т-16");
                platoon.SetTitleAndConnect("1Т-18");
            }

            platoon = platoonFactory.GetPlatoon("Артиллеристы");
            if (platoon != null)
            {
                platoon.SetTitleAndConnect("3М-08");
            }

            platoon = platoonFactory.GetPlatoon("Связисты");
            if (platoon != null)
            {
                platoon.SetTitleAndConnect("2С-12");
            }

            platoon = platoonFactory.GetPlatoon("Медицинский");
            if (platoon != null)
            {
                platoon.SetTitleAndConnect("5М-17");
                platoon.SetTitleAndConnect("5М-18");
            }

            Console.ReadKey();
        }
示例#5
0
        public async Task <IActionResult> Edit(int id, [Bind("PlatoonId,PlatoonName,ArmyId")] Platoon platoon)
        {
            if (id != platoon.PlatoonId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(platoon);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PlatoonExists(platoon.PlatoonId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ArmyId"] = new SelectList(_context.Armies, "ArmyId", "ArmyId", platoon.ArmyId);
            return(View(platoon));
        }
示例#6
0
    // 隊列チェック
    public void CheckPlatoon(CardData[] cardDatas)
    {
        _timeNow = DateTime.Now;

        for (int num = 0; num < cardDatas.Length; num++)
        {
            _cardList.Add(cardDatas[num]);
            _totalNumber += cardDatas[num]._number;
        }

        SortNum();

        if (Wedge())
        {
            _platoon = Platoon.Wedge;
        }
        else if (Phalanx())
        {
            _platoon = Platoon.Phalanx;
        }
        else if (Battalion())
        {
            _platoon = Platoon.Battalion;
        }
        else if (Skirmisher())
        {
            _platoon = Platoon.Skirmisher;
        }
        else
        {
            _platoon = Platoon.Host;
        }
    }
    public void SpawnPlatoon(string prefabName, Vector3[] positions, int rows, int cols, Dictionary <Colors, int> colorRates, float fireRate)
    {
        Platoon pl = new Platoon(prefabName, positions, rows, cols, colorRates, fireRate);

        platoons.Add(pl);
        pl.OnPlatoonDefeat += OnPlatoonDefeat;
    }
        public TroopDistributionResult Calculate(TroopDistributionCommand command)
        {
            var trainingDataResult = _dataProvider.GetTrainingData();

            var bluforPlayers = (int)Math.Ceiling(command.IsPvp ? GetBluforPlayersForPvp(command) : command.PlayersForCalculation);
            var opforPlayers  = command.PlayersForCalculation - bluforPlayers;

            Platoon blufor = ConvertTrainingSet(trainingDataResult, bluforPlayers, command.MinimumFireteamSize, TeamSide.Blufor);
            Platoon opfor  = null;

            if (opforPlayers != 0)
            {
                opfor = ConvertTrainingSet(trainingDataResult, opforPlayers, command.MinimumFireteamSize, TeamSide.Opfor);
            }

            var unusedPlayers = command.PlayersForCalculation - (bluforPlayers + opforPlayers);

            return(new TroopDistributionResult
            {
                Blufor = blufor,
                Opfor = opfor,
                SpecialRoles = command.SpecialRolePlayers != 0 ? new SpecialPlatoon("Special roles", command.SpecialRolePlayers) : null,
                ExtraPlayers = unusedPlayers != 0 ? new SpecialPlatoon("Unused players", unusedPlayers) : null,
                Zeus = command.IsPvp ? null : new SpecialPlatoon("Zeus", command.NumberOfZeuses)
            });
        }
示例#9
0
        /// <summary>
        /// Мост
        /// </summary>
        public static void GoBridgeStartWar()
        {
            Platoon platoon = new Platoon("2СИ-15");

            platoon.AddSolder("Халилов ", "Старший стрелок");
            platoon.AddSolder("Одилов  ", "Гранатометчик");
            platoon.AddSolder("Шарков  ", "Помощник гранатометчика");
            platoon.AddSolder("Лепезин ", "Стрелок");
            platoon.AddSolder("Дадашев ", "Стрелок");
            platoon.AddSolder("Нагель  ", "Пулеметчик");
            platoon.AddSolder("Андрюков", "Снайпер");

            RollCall rollCall = new RollCall();

            Print(rollCall.Begin(platoon));

            Console.WriteLine("\nВзвод {0} готов к войне:\n", platoon.title);

            War war = new GoodConditions(new PlanA());

            Print(war.plan.Greeting);
            Print(war.Greeting);
            Print(war.Attack());
            Print(war.Respite());
            Print(war.BearALoss());
            war.plan = new PlanB();
            Print(war.plan.Greeting);
            Print(war.Greeting);
            Print(war.Respite());
            Print(war.Attack());
            Print(war.Report());

            Console.ReadKey();
        }
示例#10
0
    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
    {
        trackBinding = playerData as Platoon;

        if (trackBinding == null)
        {
            return;
        }

        if (!firstFrameHappened)
        {
            defaultPositions   = trackBinding.GetCurrentPositions();
            firstFrameHappened = true;
        }

        //different behaviour depending if Unity is in Play mode or not,
        //because NavMeshAgent is not available in Edit mode
        if (Application.isPlaying)
        {
            ProcessPlayModeFrame(playable);
        }
        else
        {
            ProcessEditModeFrame(playable);
        }
    }
示例#11
0
 public Session(Platoon platoon, Subject subject, CheckListClass checkList, Student student, bool isTest)
 {
     this.Platoon   = platoon;
     this.Subject   = subject;
     this.CheckList = checkList;
     this.Student   = student;
     this.IsTest    = isTest;
 }
示例#12
0
    // コンストラクタ
    private void Start()
    {
        _platoonFlag = false;

        _platoon = Platoon.Unfinished;

        _totalNumber = 0;
    }
示例#13
0
 public PlatoonDto(Platoon p)
 {
     PlatoonId = p.PlatoonId;
     a         = new ArcherDto(p.Archers);
     h         = new HorsemanDto(p.Horsemans);
     s         = new EliteDto(p.Soldiers);
     c         = new CountryDto(p.Owner);
 }
示例#14
0
 private void Awake()
 {
     selectedPlatoon  = GetComponent <Platoon>();
     Cursor.lockState = CursorLockMode.Confined;
             #if UNITY_EDITOR
     Application.targetFrameRate = 30;         //just to keep things "smooth" during presentations
             #endif
 }
示例#15
0
        /// <summary>
        /// Возвращает силу урона отряда.
        /// </summary>
        /// <param name="platoon">Отряд.</param>
        /// <returns>Сила урона.</returns>
        public int GetCasualties(Platoon platoon)
        {
            int casualties = platoon.UnitList.Sum(u => u.Casualties);

            platoon.Force = casualties;

            return(casualties);
        }
示例#16
0
 public void OpenPanel() //выполняет открытие меню редактирования списка студентов
 {
     CreatePanel.SetActive(true);
     SelectedPlatoon  = PlatoonsManager.GetPlatoon(SelectPlatoon.captionText.text);
     NamePlatoon.text = SelectedPlatoon.NamePlatoon;
     Students         = new List <Student>(SelectedPlatoon.Students);
     Debug.Log(Students.Count);
     Debug.Log(Students.ToArray()[0].NameStudent);
     Invoke("UpdateTable", (float)0.5); //задержка для подгрузки данных
 }
        public async Task <IActionResult> PostPlatoon([FromBody] Platoon platoon)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Platoon.Add(platoon);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPlatoon", new { id = platoon.Id }, platoon));
        }
示例#18
0
        public async Task <IActionResult> Create([Bind("PlatoonId,PlatoonName,ArmyId")] Platoon platoon)
        {
            if (ModelState.IsValid)
            {
                _context.Add(platoon);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ArmyId"] = new SelectList(_context.Armies, "ArmyId", "ArmyId", platoon.ArmyId);
            return(View(platoon));
        }
示例#19
0
        /// <summary>
        /// Наступление первого отряда на второй.
        /// </summary>
        /// <param name="pl_1">Нападающий отряд.</param>
        /// <param name="pl_2">Обороняющийся отряд.</param>
        /// <returns>Обороняющийся отряд.</returns>
        public Platoon Offensive(Platoon pl_1, Platoon pl_2)
        {
            Console.WriteLine($"Начало атаки {pl_1} на {pl_2}.");
            logger.Trace($"Начало атаки {pl_1} на {pl_2}.");

            List <Unit> result = new List <Unit>();

            // Урон, который может нанести отряд.
            int сasualties = _platoonService.GetCasualties(pl_1);

            Console.WriteLine($"Сила удара {сasualties}.");

            var lst = pl_2.UnitList;

            int t = 0;
            int c = сasualties;

            while (lst.Count > 1)
            {
                // Индекс случайно выбранной жертвы.
                int index = ArmyService.RND.Next(lst.Count());

                // Величина удара.
                t = ArmyService.RND.Next(c + 1);

                // Нанесение удара.
                lst[index].Life -= t;
                c -= t;

                if (lst[index].Life > 0)
                {
                    result.Add(lst[index]);
                }

                lst.RemoveAt(index);
            }

            // Удар по последнему юниту.
            lst[0].Life -= c;

            if (lst[0].Life > 0)
            {
                result.Add(lst[0]);
            }

            pl_2.UnitList = result;

            Console.WriteLine($"Конец атаки.");
            logger.Trace($"Конец атаки {pl_1} на {pl_2}.");

            return(pl_2);
        }
示例#20
0
        static void InfantryPlt()
        {
            Soldier joe     = new Enlisted();
            Soldier pl      = new Officer();
            Weapon  rifle   = new Rifle();
            Units   platoon = new Platoon();

            Console.WriteLine($"A typical Infantry company consists of: {platoon.strength} Personnel");
            Console.WriteLine("All the enlisted men say " + joe.Describe());
            Console.WriteLine("While the officer says " + pl.Describe());
            Console.WriteLine("Every Soldier carries a " + rifle.Name);
            Console.WriteLine("Loaded with " + rifle.Load());
        }
示例#21
0
        public bool CreatePlatoon(PlatoonCreate model)
        {
            var entity = new Platoon()
            {
                Name     = model.Name,
                Familiar = model.Familiar
            };

            using (var ctx = new ApplicationDbContext())
            {
                ctx.PlatoonDbSet.Add(entity);
                return(ctx.SaveChanges() == 1);
            }
        }
示例#22
0
        public void Offensive_UnitLife_Decreased()
        {
            Platoon pl_1 = _platoonService.Create("Кентавр", 3, 150, 60);
            Platoon pl_2 = _platoonService.Create("Скелет", 3, 40, 10);

            int life_sum_1 = pl_2.UnitList.Sum(u => u.Life);

            Platoon result = _gameService.Offensive(pl_1, pl_2);

            int life_sum_2 = pl_2.UnitList.Sum(u => u.Life);

            Assert.IsTrue(life_sum_2 < life_sum_1,
                          String.Format("Сумма жизней юнитов отряда-жертвы не изменилась. life_sum = {0}", life_sum_2));
        }
示例#23
0
文件: Sq.cs 项目: Konversys/PLArmy
        /// <summary>
        /// Добавить доп. взводы
        /// </summary>
        public void AddSubPlatoon()
        {
            PlatoonFactory platoonFactory = new PlatoonFactory();
            Platoon        platoon        = platoonFactory.GetPlatoonClear("Артиллеристы");

            platoon.SetTitleAndConnect("5F-13");
            sq.Add(platoon);
            platoon = platoonFactory.GetPlatoon("Медицинский");
            platoon.SetTitleAndConnect("5М-17");
            sq.Add(platoon);
            platoon = platoonFactory.GetPlatoon("Связисты");
            platoon.SetTitleAndConnect("3C-17");
            sq.Add(platoon);
        }
示例#24
0
        public void PostPlatoon(int id)
        {
            var Owner = _dbcontext.Countries.Where(c => c.CountryId == id).FirstOrDefault();
            var p     = new Platoon()
            {
                Owner     = Owner,
                Archers   = new Archer(),
                Horsemans = new Horseman(),
                Soldiers  = new Elite()
            };

            _dbcontext.Platoons.Add(p);
            _dbcontext.SaveChanges();
        }
示例#25
0
    public static void OnChangePlatoonDropdownOut(Dropdown SelectPlatoon, UnityUITable.Table Table, Text PlatoonNameLabel) //внешний обработчик события изменения выбранного взвода
    {
        SelectedPlatoon       = PlatoonsManager.GetPlatoon(SelectPlatoon.captionText.text);
        PlatoonNameLabel.text = "Взвод: " + SelectPlatoon.captionText.text;
        byte number = 1;

        Students.Clear();
        foreach (Student student in SelectedPlatoon.Students)
        {
            Students.Add(new Student(student.NameStudent, number));
            number++;
        }
        Table.UpdateContent();
    }
示例#26
0
        private static void Tank()
        {
            Soldier joe     = new Enlisted();
            Soldier pl      = new Officer();
            Soldier chief   = new Warrant();
            Weapon  tank    = new Tank();
            Units   platoon = new Platoon();

            Console.WriteLine($"A typical armor platoon consists of: {platoon.strength} Personnel");
            Console.WriteLine("All the enlisted men say " + joe.Describe());
            Console.WriteLine("While the officer says " + pl.Describe());
            Console.WriteLine("The maintenance chief says " + chief.Describe());
            Console.WriteLine("Soldiers use the " + tank.Name);
            Console.WriteLine("With a " + tank.Load());
        }
示例#27
0
        public void Offensive_UnitCount_Decreased()
        {
            Platoon pl_1 = _platoonService.Create("Кентавр", 3, 70, 33);

            pl_1.UnitList[0].Casualties = 34; //34 33 33

            Platoon pl_2 = _platoonService.Create("Скелет", 3, 33, 10);

            Platoon result = _gameService.Offensive(pl_1, pl_2);

            int life_sum_2 = pl_2.UnitList.Sum(u => u.Life);

            Assert.IsTrue(pl_2.UnitList.Count < 3,
                          String.Format("Количество юнитов отряда-жертвы не изменилось. pl_2.UnitList.Count = {0}", pl_2.UnitList.Count));
        }
示例#28
0
        /// <summary>
        /// Добавить доп. взводы
        /// </summary>
        public List <string> AddSubPlatoon()
        {
            List <string>  vs             = new List <string>();
            PlatoonFactory platoonFactory = new PlatoonFactory();
            Platoon        platoon        = platoonFactory.GetPlatoonClear("Артиллеристы");

            vs.Add(platoon.SetTitleAndConnect("5F-13"));
            sq.Add(platoon);
            platoon = platoonFactory.GetPlatoon("Медицинский");
            vs.Add(platoon.SetTitleAndConnect("5М-17"));
            sq.Add(platoon);
            platoon = platoonFactory.GetPlatoon("Связисты");
            vs.Add(platoon.SetTitleAndConnect("3C-17"));
            sq.Add(platoon);
            return(vs);
        }
示例#29
0
        public static IEnumerable <Platoon> ParseKingdom(string line, List <string> terrains)
        {
            var platoons = new List <Platoon>();

            if (!ValidateKingdom(line))
            {
                throw new Exception(string.Format("Invalid kingdom: {0}", line));
            }

            var platoonList = line.Split(";");

            //foreach(var p in platoonList)
            //{
            //    if (!ValidatePlatoon(p))
            //    {
            //        throw new Exception(string.Format("Invalid platoon: {0}", p));
            //    }

            //    var chunks = p.Split("#");

            //    var platoon = new Platoon();
            //    platoon.Class = chunks[0];
            //    platoon.NumberOfSoldiers = Convert.ToInt32(chunks[1]);

            //    platoons.Add(platoon);
            //}

            for (var i = 0; i < platoonList.Length; i++)
            {
                var p = platoonList[i];
                if (!ValidatePlatoon(p))
                {
                    throw new Exception(string.Format("Invalid platoon: {0}", p));
                }

                var chunks = p.Split("#");

                var platoon = new Platoon();
                platoon.Class            = chunks[0];
                platoon.NumberOfSoldiers = Convert.ToInt32(chunks[1]);
                platoon.Terrain          = terrains[i];
                platoons.Add(platoon);
            }

            return(platoons);
        }
示例#30
0
        /// <summary>
        /// Итератор
        /// </summary>
        public static void GoIteratorPlatoonRollCall()
        {
            Platoon platoon = new Platoon("2СИ-15");

            platoon.AddSolder("Халилов ", "Старший стрелок");
            platoon.AddSolder("Одилов  ", "Гранатометчик");
            platoon.AddSolder("Шарков  ", "Помощник гранатометчика");
            platoon.AddSolder("Лепезин ", "Стрелок");
            platoon.AddSolder("Дадашев ", "Стрелок");
            platoon.AddSolder("Нагель  ", "Пулеметчик");
            platoon.AddSolder("Андрюков", "Снайпер");

            RollCall rollCall = new RollCall();

            Print(rollCall.Begin(platoon));

            Console.ReadKey();
        }
        public int Add(Platoon platoon)
        {
            this.platoons.Add(platoon);

            return this.platoons.SaveChanges();
        }
        public int Delete(Platoon id)
        {
            this.platoons.Delete(id);

            return this.platoons.SaveChanges();
        }
        public int Update(Platoon platoon)
        {
            this.platoons.Update(platoon);

            return this.platoons.SaveChanges();
        }