blippothehippo
New member
An example with the flank behavior:
The group initially flanks as intended. Then once they've started to attack, They never go back to a flanking behavior again. They just beeline straight for the target continuously attacking. This is not flanking. Additionally, the behavior never returns TaskStatus.Success unless the target dies.
Assuming that the flank will be successful everytime and that no setup of a new flank is ever needed is not a flanking behavior working as intended.
When the flank is executed, the task should return successful.
There should also be a way to have the task fail strategically, which could be done with a timeout.
This holds true for a lot of the tactical pack behaviors:
Charge (Should return successful after an executed charge instead of when target dies, so you could do something like Charge -> Retreat -> Repeat)
Marching fire (Should return success after reaching group reaches certain distance from target,not when target is dead, timeout would be nice, but can be implemented in tree by user)
Flank (Should return success after executed flank, not when target is dead, timeout would be nice, but can be implemented in tree by user)
Surround (Should return success after executed Surround, , not when target is dead, timeout would be nice, but can be implemented in tree by user)
Defend works more like you'd expect, but it too does not have any fail condition. Of course the Defend behavior should return TaskStatus.Failure if the Defend Object dies.
If Ambush, Hold and Leapfrog are just a form of strategical search, then it should return success when it finds a target, and then go into Attack behavior using the tree.
Retreat works as expected, although assumes that the agent does not freeze in place when using an attack. Having "attackWhileRetreating" as an inspector variable would be much preferable to account for several attack types.
When reinforcements responding agents arrive they should return Success and start attacking the target. If the reinforcements requesting agent dies the reinforcement responders should return failure.
Attack I think is fine, timeout would be nice but can be implemented in tree by user.
2019-08-08 09-11-50 GIF by kirikorostudios | Gfycat
Watch and share 2019-08-08 09-11-50 GIFs by kirikorostudios on Gfycat
gfycat.com
The group initially flanks as intended. Then once they've started to attack, They never go back to a flanking behavior again. They just beeline straight for the target continuously attacking. This is not flanking. Additionally, the behavior never returns TaskStatus.Success unless the target dies.
Assuming that the flank will be successful everytime and that no setup of a new flank is ever needed is not a flanking behavior working as intended.
When the flank is executed, the task should return successful.
There should also be a way to have the task fail strategically, which could be done with a timeout.
This holds true for a lot of the tactical pack behaviors:
Charge (Should return successful after an executed charge instead of when target dies, so you could do something like Charge -> Retreat -> Repeat)
Marching fire (Should return success after reaching group reaches certain distance from target,not when target is dead, timeout would be nice, but can be implemented in tree by user)
Flank (Should return success after executed flank, not when target is dead, timeout would be nice, but can be implemented in tree by user)
Surround (Should return success after executed Surround, , not when target is dead, timeout would be nice, but can be implemented in tree by user)
Defend works more like you'd expect, but it too does not have any fail condition. Of course the Defend behavior should return TaskStatus.Failure if the Defend Object dies.
If Ambush, Hold and Leapfrog are just a form of strategical search, then it should return success when it finds a target, and then go into Attack behavior using the tree.
Retreat works as expected, although assumes that the agent does not freeze in place when using an attack. Having "attackWhileRetreating" as an inspector variable would be much preferable to account for several attack types.
When reinforcements responding agents arrive they should return Success and start attacking the target. If the reinforcements requesting agent dies the reinforcement responders should return failure.
Attack I think is fine, timeout would be nice but can be implemented in tree by user.