private void InitializeBehaviourTree() { _behaviourTree = new Script_BehaviourTree(); SetupTreeFlags(); Script_Selector startSelector = new Script_Selector(_behaviourTree); Script_Sequence walkingSequence = new Script_Sequence(_behaviourTree); SetupWalkingSequence(walkingSequence); Script_Sequence pursuitSequence = new Script_Sequence(_behaviourTree); SetupPursuitSequence(pursuitSequence); Script_Sequence attackSequence = new Script_Sequence(_behaviourTree); SetupAttackSequence(attackSequence); Script_Sequence GetHighestThreatOrNearestSequence = new Script_Sequence(_behaviourTree); SetupGetHighestThreatOrNearestFriendlySequence(GetHighestThreatOrNearestSequence); Script_Sequence GetFreeSpaceSequence = new Script_Sequence(_behaviourTree); SetupGetFreeSpaceSequence(GetFreeSpaceSequence); startSelector.AddTask(GetFreeSpaceSequence); startSelector.AddTask(GetHighestThreatOrNearestSequence); startSelector.AddTask(pursuitSequence); startSelector.AddTask(attackSequence); startSelector.AddTask(walkingSequence); _behaviourTree.AddChild(startSelector); }
public Script_Action_SetEntityWithLowestHealth(Script_BehaviourTree p_tree, blackboard_flags p_entityListFlag, blackboard_flags p_entityWithLowestHealthFlag) { _tree = p_tree; _entityListFlag = p_entityListFlag; _entityWithLowestHealthFlag = p_entityWithLowestHealthFlag; }
public Script_Selector(Script_BehaviourTree p_tree) { _leafList = new List <Script_TreeNode> (); _currentLeafList = new List <Script_TreeNode> (); _tree = p_tree; }
public Script_Action_SetEnemyAttackingTarget(Script_BehaviourTree p_tree, blackboard_flags p_enemyListFlag, Script_IEntity p_targetEntity, blackboard_flags p_targetToAttackFlag) { _tree = p_tree; _enemyListFlag = p_enemyListFlag; _targetEntity = p_targetEntity; _targetToAttackFlag = p_targetToAttackFlag; }
public Script_Action_SetTargetToAttack(Script_BehaviourTree p_tree, blackboard_flags p_targetToAttackFlag, Script_IEntity p_enemyToSet) { _tree = p_tree; _targetToAttackFlag = p_targetToAttackFlag; _enemyToSet = p_enemyToSet; }
public Script_Condition_IsThreatOverThreshold(Script_BehaviourTree p_tree, blackboard_flags p_entityListFlag, Script_IEnemy p_threatReceiver, int p_threshold) { _tree = p_tree; _entityListFlag = p_entityListFlag; _threatReceiver = p_threatReceiver; _threatThreshold = p_threshold; }
public Script_Action_SetHighestThreatTargetFromList(Script_BehaviourTree p_tree, blackboard_flags p_entityListFlag, Script_IEnemy p_threatReceiver, blackboard_flags p_entityWithHighestThreatFlag) { _tree = p_tree; _entityListFlag = p_entityListFlag; _threatReceiver = p_threatReceiver; _entityWithHighestThreatFlag = p_entityWithHighestThreatFlag; }
public Script_Action_MoveTowardsEntity(Script_BehaviourTree p_tree, Script_Grid p_grid, blackboard_flags p_entityFlag, Script_IEntity p_entityToMove) { _tree = p_tree; _grid = p_grid; _entityFlag = p_entityFlag; _entityToMove = p_entityToMove; }
public Script_Action_MoveToLocation(Script_BehaviourTree p_tree, Script_IEntity p_entity, blackboard_flags p_locationFlag) { _locationFlag = p_locationFlag; _location = Vector3.zero; _entity = p_entity; _tree = p_tree; }
public Script_Action_SetNearestLocationSurroundingEntity(Script_BehaviourTree p_tree, Script_Grid p_grid, blackboard_flags p_entityToGetLocationAround, Script_IEntity p_fromEntity, blackboard_flags p_locationToMoveTowardsFlag) { _tree = p_tree; _grid = p_grid; _fromEntity = p_fromEntity; _locationToMoveTowardsFlag = p_locationToMoveTowardsFlag; _entityToGetLocationAround = p_entityToGetLocationAround; }
public Script_Action_SetRandomLocationWithinRange(Script_BehaviourTree p_tree, blackboard_flags p_locationFlag, Script_IEntity p_entityToCalculateFrom, Script_Grid p_grid, int p_range) { _tree = p_tree; _entity = p_entityToCalculateFrom; _locationFlag = p_locationFlag; _grid = p_grid; _range = p_range; }
public Script_Action_SetNearestEntityFromEntityWithinRange(Script_BehaviourTree p_tree, Script_Grid p_grid, blackboard_flags p_entityListFlag, int p_range, Script_IEntity p_fromEntity, blackboard_flags p_returnedEntityFlag) { _grid = p_grid; _tree = p_tree; _entityListFlag = p_entityListFlag; _range = p_range; _fromEntity = p_fromEntity; _returnedNearestEntityFlag = p_returnedEntityFlag; }
public Script_Action_Heal(Script_BehaviourTree p_tree, Script_GameManager p_manager, blackboard_flags p_targetEnemyFlag, blackboard_flags p_locationAnchorPointFlag, Script_IEntity p_entityToAttack, blackboard_flags p_isForwardSwingFlag) { _manager = p_manager; _tree = p_tree; _targetEnemyFlag = p_targetEnemyFlag; _entityToAttack = p_entityToAttack; _isForwardSwingFlag = p_isForwardSwingFlag; _swingDistance = _manager.GetTileSize() * 0.4f; }
public Script_Condition_IsEntityTypeNearby(Script_BehaviourTree p_tree, Script_Grid p_grid, blackboard_flags p_entityListFlag, Script_IEntity p_targetEntity, int p_range) { _tree = p_tree; _entityListFlag = p_entityListFlag; _grid = p_grid; _targetEntity = p_targetEntity; _range = p_range; }
public Script_Condition_IsEntityNearby(Script_BehaviourTree p_tree, Script_Grid p_grid, blackboard_flags p_entityFlag, Script_IEntity p_measuredFromEntity, int p_range) { _tree = p_tree; _entityFlag = p_entityFlag; _grid = p_grid; _measuredFromEntity = p_measuredFromEntity; _range = p_range; }
public Script_Action_SetEntitiesWithinRange(Script_BehaviourTree p_tree, Script_Grid p_grid, blackboard_flags p_listOfEntitiesFlag, blackboard_flags p_listOfEntitiesWithinRangeFlag, Script_IEntity p_entityToCalculateRangeFrom, int p_range) { _tree = p_tree; _range = p_range; _entityToCalculateRangeFrom = p_entityToCalculateRangeFrom; _listOfEntitiesFlag = p_listOfEntitiesFlag; _listOfEntitiesWithinRangeFlag = p_listOfEntitiesWithinRangeFlag; _grid = p_grid; }
public void InitializeBehaviourTree() { _behaviourTree = new Script_BehaviourTree(); SetupTreeFlags(); Script_Selector startSelector = new Script_Selector(_behaviourTree); Script_Sequence walkingSequence = new Script_Sequence(_behaviourTree); SetupWalkingSequence(walkingSequence); Script_Sequence moveNearDpsSequence = new Script_Sequence(_behaviourTree); SetupFollowingSequence(moveNearDpsSequence, GetDps() as Script_IEntity); Script_Sequence moveNearTankSequence = new Script_Sequence(_behaviourTree); SetupFollowingSequence(moveNearTankSequence, GetTank() as Script_IEntity); Script_Sequence healSequence = new Script_Sequence(_behaviourTree); SetupHealSequence(healSequence); Script_Sequence ChooseAttackingTargetSequence = new Script_Sequence(_behaviourTree); SetupChooseTargetToAttack(ChooseAttackingTargetSequence); Script_Sequence attackSequence = new Script_Sequence(_behaviourTree); SetupAttackSequence(attackSequence); Script_Sequence ChooseHealingTargetSequence = new Script_Sequence(_behaviourTree); SetupChooseTargetToHeal(ChooseHealingTargetSequence); Script_Sequence GetFreeSpaceSequence = new Script_Sequence(_behaviourTree); SetupGetFreeSpaceSequence(GetFreeSpaceSequence); startSelector.AddTask(GetFreeSpaceSequence); startSelector.AddTask(ChooseHealingTargetSequence); startSelector.AddTask(healSequence); startSelector.AddTask(ChooseAttackingTargetSequence); startSelector.AddTask(attackSequence); startSelector.AddTask(moveNearTankSequence); startSelector.AddTask(moveNearDpsSequence); startSelector.AddTask(walkingSequence); _behaviourTree.AddChild(startSelector); }
public override void DetermineIfDead() { if (_health <= 0) { _manager.DestroyMaterial(_objectMaterial); _manager.DestroyGameObject(_gameObject); _manager.RemoveEnemy(this); Vector3Int pos = _behaviourTree.GetBlackBoardElement <Vector3Int> (_locationFlag); _grid.AccessGridTile(pos.x, pos.z).SetOccupied(false); _behaviourTree.RemoveBlackboardElement(_locationFlag); _behaviourTree.RemoveBlackboardElement(_targetEntityFlag); _behaviourTree.RemoveBlackboardElement(_entityListFlag); _behaviourTree.RemoveBlackboardElement(_forwardSwingFlag); _behaviourTree.RemoveBlackboardElement(_getSpaceEntityListFlag); _behaviourTree = null; } }
public void InitializeBehaviourTree() { _behaviourTree = new Script_BehaviourTree(); SetupTreeFlags(); Script_Selector startSelector = new Script_Selector(_behaviourTree); Script_Sequence walkingSequence = new Script_Sequence(_behaviourTree); SetupWalkingSequence(walkingSequence); Script_Sequence pursuitSequence = new Script_Sequence(_behaviourTree); SetupPursuitSequence(pursuitSequence); Script_Sequence attackSequence = new Script_Sequence(_behaviourTree); SetupAttackSequence(attackSequence); Script_Sequence ChooseTargetSequence = new Script_Sequence(_behaviourTree); SetupChooseTargetSequence(ChooseTargetSequence); Script_Decorator_AlwaysFail alwaysFailWhileChoosingTarget = new Script_Decorator_AlwaysFail(_behaviourTree, ChooseTargetSequence); Script_Sequence GetFreeSpaceSequence = new Script_Sequence(_behaviourTree); SetupGetFreeSpaceSequence(GetFreeSpaceSequence); startSelector.AddTask(GetFreeSpaceSequence); startSelector.AddTask(alwaysFailWhileChoosingTarget); startSelector.AddTask(pursuitSequence); startSelector.AddTask(attackSequence); startSelector.AddTask(walkingSequence); _behaviourTree.AddChild(startSelector); }
public void InitializeBehaviourTree() { _behaviourTree = new Script_BehaviourTree(); SetupTreeFlags(); Script_Selector startSelector = new Script_Selector(_behaviourTree); Script_Sequence walkingSequence = new Script_Sequence(_behaviourTree); SetupWalkingSequence(walkingSequence); Script_Sequence moveNearTankSequence = new Script_Sequence(_behaviourTree); SetupMoveToTankSequence(moveNearTankSequence); Script_Sequence attackSequence = new Script_Sequence(_behaviourTree); SetupAttackSequence(attackSequence); Script_Sequence ChooseTargetSequence = new Script_Sequence(_behaviourTree); SetupChooseTargetToAttackSequence(ChooseTargetSequence); Script_Sequence GetFreeSpaceSequence = new Script_Sequence(_behaviourTree); SetupGetFreeSpaceSequence(GetFreeSpaceSequence); startSelector.AddTask(GetFreeSpaceSequence); startSelector.AddTask(ChooseTargetSequence); startSelector.AddTask(attackSequence); startSelector.AddTask(moveNearTankSequence); startSelector.AddTask(walkingSequence); _behaviourTree.AddChild(startSelector); }
public Script_Condition_AreAnyEntitiesAtEntityLocation(Script_BehaviourTree p_tree, blackboard_flags p_EntityListFlag, Script_IEntity p_entityToCalculateFrom) { _tree = p_tree; _entityToCalculateFrom = p_entityToCalculateFrom; _entityListFlag = p_EntityListFlag; }
public Script_Decorator_Inverter(Script_BehaviourTree p_tree, Script_TreeNode p_child) { _tree = p_tree; _childNode = p_child; }
public Script_Action_OccupyTile(Script_BehaviourTree p_tree, Script_Grid p_grid, blackboard_flags p_flag) { _tree = p_tree; _grid = p_grid; _flag = p_flag; }
public Script_Decorator_AlwaysFail(Script_BehaviourTree p_tree, Script_TreeNode p_child) { _tree = p_tree; _childNode = p_child; }
public Script_Condition_IsEntityNull(Script_BehaviourTree p_tree, blackboard_flags p_entityFlag) { _tree = p_tree; _entityFlag = p_entityFlag; }
public Script_Decorator_NeverSucceed(Script_BehaviourTree p_tree, Script_TreeNode p_child) { _tree = p_tree; _childNode = p_child; }
public Script_Condition_IsEntityHealthUnderThreshold(Script_BehaviourTree p_tree, blackboard_flags p_entityToCheckFlag, int p_healthThreshold) { _tree = p_tree; _entityToCheckFlag = p_entityToCheckFlag; _healthThreshold = p_healthThreshold; }
public Script_Action_SetFlag(Script_BehaviourTree p_tree, object p_valueToSet, blackboard_flags p_flag) { _object = p_valueToSet; _flag = p_flag; _tree = p_tree; }
public Script_Condition_IsEntityAtLocation(Script_BehaviourTree p_tree, blackboard_flags p_locationFlag, Script_IEntity p_entity) { _entity = p_entity; _tree = p_tree; _locationFlag = p_locationFlag; }