Closed Qu3tzal closed 6 years ago
Pour le composant bonus je propose :
Selon la valeur de l'énumération, la lambda sera appelée avec le/les composants nécessaires. Par exemple, pour un pack de soin rendant 75 HP :
[](BasicStatsComponent* bsc) {
bsc->hp = std::max(bsc->maxhp, hp + 75);
}
Dans les fait, la lambda serait un peu plus complexe, car elle doit se baser sur le polymorphisme des composants.
[](kantan::Component* component) {
BasicStatsComponent* bsc = std::dynamic_cast<BasicStatsComponent*>(component);
if(bsc == nullptr)
return;
bsc->hp = std::max(bsc->maxhp, hp + 75);
}
Finalement, les bonus vont se limiter à des modifications des statistiques. Donc on peut faire un composant tout simple qui ne contient qu'une lambda à exécuter sur le composant de statistiques du joueur touché.
Etudier et créer un composant du type bonus qui confère des bonus de points de vie, d'armure ou d'expérience ou autre.