public override void Execute(Miner pMiner) { pMiner.IncreaseFatigue(); pMiner.IncreaseHunger(); if (pMiner.GoldInPockets > 0) { pMiner.DepositIntoTheBank(pMiner.GoldInPockets); Console.WriteLine(String.Format("\n{0}: Я положил {1} золота в банк. Теперь у меня всего в банке {2} золота", EntityManager.Instance().GetNameOfEntity(pMiner.ID), pMiner.GoldInPockets, pMiner.GoldInBank)); pMiner.EmptyPockets(); if (pMiner.Wealthy()) { pMiner.ChangeState(GoHomeAndSleepTilRested.Instance()); //pMiner.GetFSM().SetGlobalState(GoHomeAndSleepTilRested.Instance()); } else { pMiner.ChangeState(EnterMineAndDigForNugget.Instance()); } } else { Console.WriteLine(String.Format("\n{0}: У меня нет золота с собой. Зачем я пришел в банк?", EntityManager.Instance().GetNameOfEntity(pMiner.ID))); pMiner.ChangeState(EnterMineAndDigForNugget.Instance()); } }
public static State <Miner> Instance() { if (instance == null) { instance = new EnterMineAndDigForNugget(); } return(instance); }
public override void Execute(Miner pMiner) { pMiner.IncreaseFatigue(); pMiner.IncreaseHunger(); Console.WriteLine(String.Format("\n{0}: О, этот могучий восхитительный ликер", EntityManager.Instance().GetNameOfEntity(pMiner.ID))); pMiner.SpendNugget(); pMiner.CleanThirst(); pMiner.ChangeState(EnterMineAndDigForNugget.Instance()); }
public override void Execute(Miner pMiner) { pMiner.IncreaseFatigue(); Console.WriteLine(String.Format("\n{0}: ZZZZ...", EntityManager.Instance().GetNameOfEntity(pMiner.ID))); pMiner.Sleep(); if (pMiner.Fatigue == 0) { pMiner.ChangeState(EnterMineAndDigForNugget.Instance()); //pMiner.GetFSM().SetGlobalState(null); } }
public override void Execute(Miner pMiner) { OrderItem CurrentDish = pMiner.GetNextDish(); if (CurrentDish != null) { switch (CurrentDish.Type) { case food_type.BigTasty: { Console.WriteLine(String.Format("\n{0}: Мммм, этот биг тейсти просто восхитителен!", EntityManager.Instance().GetNameOfEntity(pMiner.ID))); break; } case food_type.CocaCola: { Console.WriteLine(String.Format("\n{0}: Пью кока-колу", EntityManager.Instance().GetNameOfEntity(pMiner.ID))); pMiner.CleanThirst(); break; } case food_type.Free: { Console.WriteLine(String.Format("\n{0}: 'Фри' с сырным соусом. Ммм...", EntityManager.Instance().GetNameOfEntity(pMiner.ID))); break; } case food_type.IceCream: { Console.WriteLine(String.Format("\n{0}: Мороженое как нельзя лучше охлаждает после изнурительной работы в шахте", EntityManager.Instance().GetNameOfEntity(pMiner.ID))); break; } } } else { //all dishes are over, change state Console.WriteLine(String.Format("\n{0}: Спасибо!", EntityManager.Instance().GetNameOfEntity(pMiner.ID))); pMiner.ClearOrder(); pMiner.ResetHunger(); pMiner.ChangeState(EnterMineAndDigForNugget.Instance()); } }