public override Handler DoEat(ParsedInput input) { if (input.Words.Length == 1) { return(Handler.HANDLED(MESSAGE_ENUM.ERROR_WHAT, "Eat".ToParagraph())); } else if (input.Words.Length > 2) { return(Handler.HANDLED(MESSAGE_ENUM.ERROR_BAD_INPUT)); } if (IsDead) { return(Handler.HANDLED(MESSAGE_ENUM.ERROR_PLAYER_IS_DEAD)); } EntityHand hand = Hands.GetHandWithItem(input.Words[1], ITEM_TYPE.FOOD); if (hand != null) { MESSAGE_ENUM message = MESSAGE_ENUM.PLAYER_EAT; // hand is holding food ItemFood food = hand.Item as ItemFood; if (food.NumberOfBites == 1) { message = MESSAGE_ENUM.PLAYER_EAT_LAST; hand.Item = null; } else { food.NumberOfBites--; } return(Handler.HANDLED(message, food.NameAsParagraph, food.HealthPerBite.ToString().ToParagraph(), food.NumberOfBites.ToString().ToParagraph())); } else { // not holding food; check room ItemFood food = CurrentRoom.Items.Find(input.Words[1], ITEM_TYPE.FOOD) as ItemFood; if (food != null) { MESSAGE_ENUM message = MESSAGE_ENUM.PLAYER_EAT_GROUND_ITEM; if (food.NumberOfBites == 1) { message = MESSAGE_ENUM.PLAYER_EAT_LAST_GROUND_ITEM; hand.Item = null; } else { food.NumberOfBites--; } return(Handler.HANDLED(message, food.NameAsParagraph, food.HealthPerBite.ToString().ToParagraph(), food.NumberOfBites.ToString().ToParagraph())); } else { return(Handler.HANDLED(MESSAGE_ENUM.ERROR_BAD_INPUT)); } } }
protected ItemFood(ItemFood template) : base(template) { NumberOfBites = template.NumberOfBites; HealthPerBite = template.HealthPerBite; }