bool Creature::IsAlive(void);
/*!
- * @brief \8eó\82¯\82½\91®\90«\8cø\89Ê\82ð\8f\88\97\9d\82·\82é
- * @param effectPtr
- * @param amount
- */
+ * @brief \8eó\82¯\82½\91®\90«\8cø\89Ê\82ð\8f\88\97\9d\82·\82é
+ * @param effectPtr
+ * @param amount
+ */
bool Creature::TakeEffect(Effect* effectPtr, POWER amount);
/*!
{
commandID = gameSurface->GetCommand();
code = DoGameCommand(commandID);
+ ProcessDeadCreatures();
}
return PLAY_EXIT_QUIT;
bool GameEngine::CombatCreatures(Creature *attackerPtr, Creature *targetPtr)
{
- attackerPtr->CalcHP(-Dice::Cast(1, 6));
- targetPtr->CalcHP(-Dice::Cast(1, 6));
+ attackerPtr->TakeEffect(NULL, Dice::Cast(1, 6));
+ targetPtr->TakeEffect(NULL, Dice::Cast(1, 6));
this->gameSurface->UpdateSideCreatureStatus(gameWorld->GetPlayerCreature());
+
return true;
}
+ int GameEngine::ProcessDeadCreatures()
+ {
+ int deadNum = 0;
+ std::map<ID, boost::shared_ptr<Creature>>::iterator creatureIt, creatureItCurrent;
+ std::map<ID, boost::shared_ptr<Creature>> *creatureList = gameWorld->GetCreatureList();
+
+ creatureIt = creatureList->begin();
+
+ while(creatureIt != creatureList->end())
+ {
+ creatureItCurrent = creatureIt;
+ creatureIt++;
+ if(!creatureItCurrent->second->IsAlive())
+ {
+ creatureList->erase(creatureItCurrent);
+ }
+ }
+
+ return deadNum;
+ }
+
}
*/
bool GameEngine::CombatCreatures(Creature *attackerPtr, Creature *targetPtr);
+ /*!
+ * @brief \83N\83\8a\81[\83`\83\83\81[\82Ì\8e\80\96S\8fó\91Ô\82ð\91\96\8d¸\81A\8f\88\97\9d\82·\82é
+ * @return \8e\80\96S\8f\88\97\9d\82ð\8ds\82Á\82½\83N\83\8a\81[\83`\83\83\81[\82Ì\91\8d\90\94
+ */
+ int GameEngine::ProcessDeadCreatures();
};
}