Please implement the following game in C++. Design and implement it according to your professional standards, as if it were a task at work.
The player controls a hero who fights two monsters: an orc and a dragon. The hero has 40 health points, the orc has 7, the dragon has 20. Every 1300ms, the orc attacks the hero for 1 damage, which means that the hero loses 1 health point. Every 2500ms, the dragon attacks the hero for 3 damage. Each time the player types "attack orc" or "attack dragon", the hero attacks the corresponding monster for 2 damage. If the orc's or dragon's health points are reduced to zero, it is dead and can neither attack nor be attacked. If both monsters die, the player wins the game. If the hero's health points are reduced to zero, the player loses the game. Display text messages to keep the player informed when something happens, e.g. "Hero hits orc. Orc health is 3"