Consume pop capacity + evade AI boiler plate

This commit is contained in:
2024-01-23 21:43:58 +01:00
parent 07d1852fb9
commit 0423a962df
14 changed files with 125 additions and 28 deletions

View File

@@ -167,6 +167,23 @@ bool init(void *userData) {
// Just a single action for now
node = bzBTAction(nodePool, root, (BzBTActionFn) aiMoveTo);
bzBTNodeSetName(node, "moveTo");
}
// evade
BzBTNode *evade = NULL;
{
BzBTNode *node = NULL;
evade = bzBTMakeRoot(nodePool);
BzBTNode *evadeSeq = bzBTCompSequence(nodePool, evade);
{
node = bzBTAction(nodePool, evadeSeq, (BzBTActionFn) aiIsEnemyNearby);
bzBTNodeSetName(node, "enemyNearby");
node = bzBTAction(nodePool, evadeSeq, (BzBTActionFn) aiEvadeTarget);
bzBTNodeSetName(node, "evadeTarget");
}
}
// worker harvest
{
@@ -175,9 +192,10 @@ bool init(void *userData) {
root = bzBTMakeRoot(nodePool);
game->BTs.workerHarvest = root;
//node = bzBTDecorUntilFail(nodePool, root);
BzBTNode *pSel = bzBTCompPSelector(nodePool, root);
bzBTSubTree(evade, pSel);
BzBTNode *collectSeq = bzBTCompSequence(nodePool, root);
BzBTNode *collectSeq = bzBTCompSequence(nodePool, pSel);
BzBTNode *untilFail = bzBTDecorUntilFail(nodePool, collectSeq);
{