示例#1
0
        private void ProcessUnit(Unit unit)
        {
            if (unit.IsDefeated)
            {
                var currentTask = unit.Tasks.FirstOrDefault();
                if (currentTask != null && !currentTask.Storyline)
                {
                    unit.Tasks.Remove(currentTask);
                }

                unit.UpdateRessuraction();
                return;
            }

            if (unit.Tasks.Any())
            {
                var currentTask = unit.Tasks.First();
                if (currentTask.Storyline && dice.TestCombat())
                {
                    GenerateCombatTask(unit);
                }
                else
                {
                    ProcessUnitTask(unit, currentTask);
                }
            }
            else
            {
                GenerateStorylineTask(unit);
            }
        }