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) { 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.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; } } }
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); // } //} }
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; } } }