Example #1
0
        public void Craft(IPresent present, IDwarf dwarf)
        {
            IInstrument instrument = null;

            while (dwarf.Energy > 0 && dwarf.Instruments.Any(x => x.Power > 0))
            {
                instrument = dwarf.Instruments.FirstOrDefault(x => x.Power > 0);

                while (!present.IsDone() && dwarf.Energy > 0 && !instrument.IsBroken())
                {
                    dwarf.Work();
                    instrument.Use();
                    present.GetCrafted();
                }

                if (instrument.IsBroken())
                {
                    dwarf.Instruments.Remove(instrument);
                }

                if (present.IsDone())
                {
                    break;
                }
            }
        }
        public void Craft(IPresent present, IDwarf dwarf)
        {
            while (dwarf.Energy > 0 && dwarf.Instruments.Any()) // итерираме между инструментите
            {
                IInstrument currInstrument = dwarf.Instruments.First();

                while (!present.IsDone() && dwarf.Energy > 0 && !currInstrument.IsBroken()) // правим подаръка
                {
                    dwarf.Work(); // намаляме енергията
                    present.GetCrafted(); // намаляме необходимото за правенето на подаръка
                    currInstrument.Use(); // намаляме здравето на инструмента
                }

                if (currInstrument.IsBroken()) //ако заедно с направата на подарък се е счупил и инструмента !!!!
                {
                    dwarf.Instruments.Remove(currInstrument);
                }

                if (present.IsDone()) //подаръка е готов и излизаме
                {
                    break;
                }

            }
        }
Example #3
0
        IEnumerator MakeStep()
        {
            while (true)
            {
                bool flyFlag = _shassis.CheckForFly();

                if (_usingInstrumentFlag && !flyFlag)
                {
                    yield return(StartCoroutine(_instrument.Use(_forwardFlag)));
                }

                if (_movingFlag)
                {
                    yield return(StartCoroutine(_shassis.Move(_forwardFlag)));
                }

                yield return(null);
            }
        }
Example #4
0
 public void Craft(IPresent present, IDwarf dwarf)
 {
     while (dwarf.Energy > 0 && dwarf.Instruments.Count != 0)
     {
         IInstrument currentInstrument = dwarf.Instruments.First(i => !i.IsBroken());
         while (dwarf.Energy > 0 && currentInstrument.IsBroken() == false && present.IsDone() == false)
         {
             dwarf.Work();
             present.GetCrafted();
             currentInstrument.Use();
         }
         if (currentInstrument.IsBroken())
         {
             dwarf.Instruments.Remove(currentInstrument);
         }
         if (present.IsDone())
         {
             break;
         }
     }
 }
Example #5
0
        public void Craft(IPresent present, IDwarf dwarf)
        {
            while (dwarf.Energy > 0 && dwarf.Instruments.Any())
            {
                IInstrument currInstrument = dwarf.Instruments.First();
                while (!present.IsDone() && dwarf.Energy > 0 && !currInstrument.IsBroken())
                {
                    dwarf.Work();
                    present.GetCrafted();
                    currInstrument.Use();
                }

                if (currInstrument.IsBroken())
                {
                    dwarf.Instruments.Remove(currInstrument);
                }

                if (present.IsDone())
                {
                    break;
                }
            }

            //public void Craft(IPresent present, IDwarf dwarf)
            //{
            //    var currInstrument = dwarf.Instruments.FirstOrDefault(i => !(i.IsBroken()));
            //    if (dwarf.Energy > 0 && currInstrument != null)
            //    {
            //        dwarf.Work();
            //        present.GetCrafted();
            //        currInstrument.Use();
            //    }

            //    if (!present.IsDone() && dwarf.Energy > 0 && dwarf.Instruments.Any())
            //    {
            //        this.Craft(present, dwarf);
            //    }
            //}
        }
Example #6
0
        public void Craft(IPresent present, IDwarf dwarf)
        {
            while (dwarf.Energy > 0 && dwarf.Instruments.Any())
            {
                IInstrument currentInstrument = dwarf.Instruments.First();

                while (!present.IsDone() && dwarf.Energy > 0 && !currentInstrument.IsBroken())
                {
                    present.GetCrafted();
                    dwarf.Work();
                    currentInstrument.Use();
                }

                if (currentInstrument.IsBroken())
                {
                    dwarf.Instruments.Remove(currentInstrument);
                }

                if (present.IsDone())
                {
                    break;
                }
            }
        }