You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AIs should have pieces activated/deactivated depending on other AI decisions, maybe with a stack of states with a pop based on flags (es explore > combat > autorez > explore, popping autorez and combat at once), or the popped AI should pop itself if there's nothing to do (chain popping).
Pushing an AI on the stack enables/disables scheduled actions by flag currently executing and to be scheduled.
Each AI could choose to allow/disallow to be pushed/popped.
Scheduled tasks should be cancellable and pausable&resumeable.
Maybe passing the scheduled action as parameter to cancel action
Scheduled tasks might be handled like AIs with their own state
The base AI in the stack is empty/idle or with a passive react state.
Each unit test could be a particular AI. The AI could have an Update() method or use only scheduled actions with greater intervals.
ScheduleAction() should return an int as action id to be used to cancel the action.
Most of BotGame methods should also be moved down to AutomatedGame.
The documentation should be updated about this too.
Maybe instead of a simple stack of AIs it could be better a priority based LinkedList that allows to insert AIs in the middle, for example a bot exploring areas (ExplorerAI) which is fighting an enemy (CombatAI) and that gets invited to a party (FollowPartyLeaderAI) should finish the fight then follow the leader till it is in a party, then go on exploring/fighting as soon as it leaves party and follow again the leader if it gets invited again.
There could be different AI buckets all updated, like WhatToDoAIs and HowToDoAIs and TopPriorityAIs (i.e. combat, staying alive), with callbacks and status updates
CombatAI and MovementAI could be properties of AutomatedGame that always exist and called by other AIs (go there, stop, passive combat, aggressive combat)
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The text was updated successfully, but these errors were encountered: