public void Move(IBee bee, Rectangle environmentDimmensions) { //Random Behavior if (_beeCommon.BeeBehaviorIsRandom(bee.BeeEnvironmentBehavior)) { bee = _beeBehaviorResolver.UpdateBeeInfo_OnRandomMovement(bee, environmentDimmensions); } //targeted Behavior if (_beeCommon.BeeBehaviorIsTargeted(bee.BeeEnvironmentBehavior)) { bee = _beeBehaviorResolver.UpdateBeeInfo_OnTargetedMovement(bee); } //Move Bee Indoors if (_beeCommon.BeeIsIndoors(bee.BeeEnvironmentBehavior)) { Point newLocationPoint = _linearMovementStrategy.GetNewLinearMovementPoint(bee.BeeIndoorsMovementDirection); bee.BeeIndoorsSize = _interactionManager.GetNewLocationPoint(bee.BeeIndoorsSize, newLocationPoint); } //Move Bee Outer World if (_beeCommon.BeeIsInOuterWorld(bee.BeeEnvironmentBehavior)) { Point newLocationPoint = _linearMovementStrategy.GetNewLinearMovementPoint(bee.BeeOuterWorldMovementDirection); bee.BeeInOuterWorldSize = _interactionManager.GetNewLocationPoint(bee.BeeInOuterWorldSize, newLocationPoint); } }