コード例 #1
0
 public PickUpAction(GameEntity entity, float energyCost, GameEntity itemToPickUp, IActionEffectFactory actionEffectFactory, IEntityDetector entityDetector, IUiFacade uiFacade)
     : base(entity, energyCost, actionEffectFactory)
 {
     _entityDetector = entityDetector;
     ItemToPickUp    = itemToPickUp;
     _uiFacade       = uiFacade;
 }
コード例 #2
0
 public ResolveAbilitiesPerTurnSystem(GameContext context, IEntityDetector entityDetector, IUiFacade uiFacade, IGameConfig gameConfig)
     : base(context)
 {
     _context        = context;
     _entityDetector = entityDetector;
     _uiFacade       = uiFacade;
     _gameConfig     = gameConfig;
 }
コード例 #3
0
 public ActionEffectFactory(IGridInfoProvider gridInfoProvider, IEntityDetector entityDetector, IWeaponColorizer weaponColorizer,
                            IUiConfig uiConfig)
 {
     _gridInfoProvider = gridInfoProvider;
     _entityDetector   = entityDetector;
     _weaponColorizer  = weaponColorizer;
     _uiConfig         = uiConfig;
 }
コード例 #4
0
ファイル: MoveEffect.cs プロジェクト: bmjoy/Osnowa
 public MoveEffect(GameEntity entity, Position previousPosition, IUnityGridInfoProvider unityGridInfoProvider,
                   IEntityDetector entityDetector)
 {
     _entity                = entity;
     PreviousPosition       = previousPosition;
     _unityGridInfoProvider = unityGridInfoProvider;
     _entityDetector        = entityDetector;
 }
コード例 #5
0
 public AscendAction(ActorData actorData, float energyCost, IActionEffectFactory actionEffectFactory, IGameContext gameContext,
                     IEntityDetector entityDetector, IEntityRemover entityRemover, ITextEffectPresenter textEffectPresenter)
     : base(actorData, energyCost, actionEffectFactory)
 {
     _gameContext         = gameContext;
     _entityDetector      = entityDetector;
     _entityRemover       = entityRemover;
     _textEffectPresenter = textEffectPresenter;
 }
コード例 #6
0
 public TileVisibilityUpdater(IGridInfoProvider gridInfoProvider, IFovCalculator fovCalculator,
                              ITilePresenter tilePresenter, IEntityPresenter entityPresenter, IEntityDetector entityDetector)
 {
     _fovCalculator    = fovCalculator;
     _tilePresenter    = tilePresenter;
     _entityPresenter  = entityPresenter;
     _entityDetector   = entityDetector;
     _gridInfoProvider = gridInfoProvider;
 }
コード例 #7
0
 public MoveEffect(ActorData actorData, Vector2Int previousPosition, IGridInfoProvider gridInfoProvider,
                   IEntityDetector entityDetector, IUiConfig uiConfig)
 {
     ActorData         = actorData;
     PreviousPosition  = previousPosition;
     _gridInfoProvider = gridInfoProvider;
     _entityDetector   = entityDetector;
     _uiConfig         = uiConfig;
     _actorAligner     = new ActorAligner();
 }
コード例 #8
0
 public PushAction(ActorData actorData, ActorData targetEnemy, float energyCost, IActionEffectFactory actionEffectFactory,
                   IRandomNumberGenerator rng, IGridInfoProvider gridInfoProvider, IEntityDetector entityDetector, IUiConfig uiConfig)
     : base(actorData, energyCost, actionEffectFactory)
 {
     _targetEnemy      = targetEnemy;
     _rng              = rng;
     _gridInfoProvider = gridInfoProvider;
     _entityDetector   = entityDetector;
     _uiConfig         = uiConfig;
 }
コード例 #9
0
 public DropAction(GameEntity entity, float energyCost, GameEntity itemToDrop, IActionEffectFactory actionEffectFactory, IFirstPlaceInAreaFinder firstPlaceInAreaFinder, IEntityDetector entityDetector, IGameConfig gameConfig, IUiFacade uiFacade, IPositionEffectPresenter positionEffectPresenter)
     : base(entity, energyCost, actionEffectFactory)
 {
     _itemToDrop             = itemToDrop;
     _firstPlaceInAreaFinder = firstPlaceInAreaFinder;
     _entityDetector         = entityDetector;
     _gameConfig             = gameConfig;
     _uiFacade = uiFacade;
     _positionEffectPresenter = positionEffectPresenter;
 }
コード例 #10
0
ファイル: EntitySpawner.cs プロジェクト: azsdaja/7drl-2018
 public EntitySpawner(ItemBehaviour.Factory itemBehaviourFactory, ActorBehaviour.Factory actorBehaviourFactory,
                      IGameContext gameContext, IGameConfig gameConfig, IRandomNumberGenerator rng, IEntityDetector entityDetector, IGridInfoProvider gridInfoProvider)
 {
     _itemBehaviourFactory  = itemBehaviourFactory;
     _actorBehaviourFactory = actorBehaviourFactory;
     _gameContext           = gameContext;
     _gameConfig            = gameConfig;
     _rng              = rng;
     _entityDetector   = entityDetector;
     _gridInfoProvider = gridInfoProvider;
 }
コード例 #11
0
ファイル: ConditionContext.cs プロジェクト: bmjoy/Osnowa
 public ConditionContext(IGameConfig gameConfig, ISceneContext sceneContext,
                         IEntityDetector entityDetector, GameContext context, IFriendshipResolver friendshipResolver,
                         IExampleContextManager contextManager)
 {
     GameConfig         = gameConfig;
     SceneContext       = sceneContext;
     EntityDetector     = entityDetector;
     Context            = context;
     FriendshipResolver = friendshipResolver;
     ContextManager     = contextManager;
 }
コード例 #12
0
ファイル: MouseCellSelector.cs プロジェクト: bmjoy/Osnowa
 public void Init(IUnityGridInfoProvider unityGridInfoProvider, IUiFacade uiFacade, IOsnowaContextManager contextManager,
                  ITileByIdProvider tileByIdProvider, IGameConfig gameConfig, IEntityDetector entityDetector, GameContext context)
 {
     _tileByIdProvider      = tileByIdProvider;
     _contextManager        = contextManager;
     _uiFacade              = uiFacade;
     _unityGridInfoProvider = unityGridInfoProvider;
     _gameConfig            = gameConfig;
     _entityDetector        = entityDetector;
     _context = context;
 }
コード例 #13
0
        public void FindForItem_FirstDestinationIsWalkableAndUnoccupied_ReturnsFirstDestination()
        {
            var             checkedPosition = new Position(1, 1);
            IGrid           gip             = Mock.Of <IGrid>(p => p.IsWalkable(checkedPosition) == true);
            IEntityDetector entityDetector  = Mock.Of <IEntityDetector>(d =>
                                                                        d.DetectEntities(checkedPosition) == Enumerable.Empty <GameEntity>());
            var finder = new FirstPlaceInAreaFinder(gip, entityDetector, new RandomNumberGenerator(93432));

            Position?result = finder.FindForItem(checkedPosition);

            result.Should().Be(checkedPosition);
        }
コード例 #14
0
        public void FindForItem_NoNeighboursAndFirstDestinationIsUnoccupiedButWalkable_ReturnsFailure()
        {
            var             checkedPosition = new Position(1, 1);
            IGrid           gip             = Mock.Of <IGrid>(p => p.IsWalkable(It.IsAny <Position>()) == false);
            IEntityDetector entityDetector  = Mock.Of <IEntityDetector>(d =>
                                                                        d.DetectEntities(checkedPosition) == Enumerable.Empty <GameEntity>());
            var finder = new FirstPlaceInAreaFinder(gip, entityDetector, new RandomNumberGenerator(93432));

            Position?result = finder.FindForItem(checkedPosition);

            result.Should().BeNull();
        }
コード例 #15
0
 public NeedHandler(IEntityDetector entityDetector, IGameConfig gameConfig, IUiConfig uiConfig,
                    IDeathHandler deathHandler, IMaxSwordCalculator maxSwordCalculator, IPlayerSpaceResolver playerSpaceResolver, IGameContext gameContext, ITextEffectPresenter textEffectPresenter)
 {
     _entityDetector      = entityDetector;
     _gameConfig          = gameConfig;
     _uiConfig            = uiConfig;
     _deathHandler        = deathHandler;
     _maxSwordCalculator  = maxSwordCalculator;
     _playerSpaceResolver = playerSpaceResolver;
     _gameContext         = gameContext;
     _textEffectPresenter = textEffectPresenter;
 }
コード例 #16
0
 public AiActionResolver(IGameContext gameContext, IGridInfoProvider gridInfoProvider, IRandomNumberGenerator rng,
                         IActionFactory actionFactory, INavigator navigator, IEntityDetector entityDetector, ITextEffectPresenter textEffectPresenter, IActiveNeedResolver activeNeedResolver, IClearWayBetweenTwoPointsDetector clearWayBetweenTwoPointsDetector)
 {
     _gameContext      = gameContext;
     _gridInfoProvider = gridInfoProvider;
     _rng                 = rng;
     _actionFactory       = actionFactory;
     _navigator           = navigator;
     _entityDetector      = entityDetector;
     _textEffectPresenter = textEffectPresenter;
     _activeNeedResolver  = activeNeedResolver;
     _clearWayBetweenTwoPointsDetector = clearWayBetweenTwoPointsDetector;
 }
コード例 #17
0
ファイル: MoveAction.cs プロジェクト: azsdaja/7drl-2018
 public MoveAction(ActorData actorData, float energyCost, IActionEffectFactory actionEffectFactory,
                   Vector2Int direction, IGridInfoProvider gridInfoProvider, IEntityDetector entityDetector,
                   IGameContext gameContext, ITextEffectPresenter textEffectPresenter, IUiConfig uiConfig, IDeathHandler deathHandler)
     : base(actorData, energyCost, actionEffectFactory, direction)
 {
     GuardDirection(direction);
     _gridInfoProvider    = gridInfoProvider;
     _entityDetector      = entityDetector;
     _gameContext         = gameContext;
     _textEffectPresenter = textEffectPresenter;
     _uiConfig            = uiConfig;
     _deathHandler        = deathHandler;
 }
コード例 #18
0
        public AttackActivity(IActionFactory actionFactory, INavigator navigator, int giveUpDistance, GameEntity targetEntity, string name, IRandomNumberGenerator rng, IGameConfig gameConfig, IEntityDetector entityDetector)
            : base(name)
        {
            _targetEntity   = targetEntity;
            _rng            = rng;
            _gameConfig     = gameConfig;
            _entityDetector = entityDetector;
            _giveUpDistance = giveUpDistance;
            _actionFactory  = actionFactory;
            _navigator      = navigator;

            _lastTargetPosition = targetEntity.position.Position;
        }
コード例 #19
0
        private Position GetHerdCenterOf(IEntityDetector detector, GameEntity entity, IFriendshipResolver friendshipResolver)
        {
            List <GameEntity> meAndFriendsAround = detector.DetectEntities(entity.position.Position, entity.vision.PerceptionRange)
                                                   .Where(e => friendshipResolver.AreFriends(entity, e))
                                                   .Union(new[] { entity })
                                                   .ToList();
            int averageX = meAndFriendsAround.Sum(f => f.position.Position.x) / meAndFriendsAround.Count;
            int averageY = meAndFriendsAround.Sum(f => f.position.Position.y) / meAndFriendsAround.Count;

            //Debug.Log($"me and friends: {meAndFriendsAround.Count}");

            return(new Position(averageX, averageY));
        }
コード例 #20
0
 public PlayerActionResolver(IEntityDetector entityDetector, IInputHolder inputHolder,
                             IActionFactory actionFactory, IArrowsVisibilityManager arrowsVisibilityManager, IWeaponColorizer weaponColorizer,
                             IClearWayBetweenTwoPointsDetector clearWayBetweenTwoPointsDetector, IGameContext gameContext, IUiConfig uiConfig, ITextEffectPresenter textEffectPresenter)
 {
     _entityDetector                   = entityDetector;
     _inputHolder                      = inputHolder;
     _actionFactory                    = actionFactory;
     _arrowsVisibilityManager          = arrowsVisibilityManager;
     _weaponColorizer                  = weaponColorizer;
     _clearWayBetweenTwoPointsDetector = clearWayBetweenTwoPointsDetector;
     _gameContext                      = gameContext;
     _uiConfig            = uiConfig;
     _textEffectPresenter = textEffectPresenter;
 }
コード例 #21
0
ファイル: UseItemAction.cs プロジェクト: azsdaja/7drl-2018
 public UseItemAction(ActorData actorData, ItemDefinition item, bool fromInventory, float energyCost, IEntitySpawner entitySpawner,
                      IUiConfig uiConfig, IActionEffectFactory actionEffectFactory, IEntityDetector entityDetector, IRandomNumberGenerator rng,
                      ITextEffectPresenter textEffectPresenter, IGameContext gameContext, IEntityRemover entityRemover)
     : base(actorData, energyCost, actionEffectFactory)
 {
     _item                = item;
     _fromInventory       = fromInventory;
     _entitySpawner       = entitySpawner;
     _uiConfig            = uiConfig;
     _entityDetector      = entityDetector;
     _rng                 = rng;
     _textEffectPresenter = textEffectPresenter;
     _gameContext         = gameContext;
     _entityRemover       = entityRemover;
 }
コード例 #22
0
        public EnvironmentPresenter(ISceneContext sceneContext, IPositionEffectPresenter positionEffectPresenter,
                                    IEntityDetector entityDetector, ITilePresenter tilePresenter, IGameConfig gameConfig,
                                    IGrid gipGrid, GameContext context)
        {
            _sceneContext = sceneContext;

            _positionEffectPresenter = positionEffectPresenter;
            _entityDetector          = entityDetector;
            _tilePresenter           = tilePresenter;
            _gameConfig = gameConfig;
            _grid       = gipGrid;
            _context    = context;

            _positionEffectsShown   = new List <PositionEffect>();
            _defaultUnseenMaskAlpha = _sceneContext.UnseenMaskTilemap.color.a;
        }
コード例 #23
0
        public void FindForItem_FirstDestinationAndMostNeighboursAreNotEligibleButOneNeighbourIs_ReturnsNeighbour()
        {
            var   checkedPosition   = new Position(1, 1);
            var   eligibleNeighbour = new Position(2, 1);
            IGrid gip = Mock.Of <IGrid>(p =>
                                        p.IsWalkable(
                                            It.Is <Position>(v => PositionUtilities.Neighbours8(checkedPosition).Contains(v))
                                            ) == false &&
                                        p.IsWalkable(eligibleNeighbour) == true);
            IEntityDetector entityDetector = Mock.Of <IEntityDetector>(d =>
                                                                       d.DetectEntities(checkedPosition) == Enumerable.Empty <GameEntity>());
            var finder = new FirstPlaceInAreaFinder(gip, entityDetector, new RandomNumberGenerator(93432));

            Position?result = finder.FindForItem(checkedPosition);

            result.Should().Be(eligibleNeighbour);
        }
コード例 #24
0
 public ActionFactory(IGridInfoProvider gridInfoProvider, IActionEffectFactory actionEffectFactory,
                      ITextEffectPresenter textEffectPresenter, INeedHandler needHandler, IRandomNumberGenerator randomNumberGenerator,
                      IDeathHandler deathHandler, IEntityRemover entityRemover, IEntityDetector entityDetector, IGameContext gameContext,
                      IEntitySpawner entitySpawner, IUiConfig uiConfig)
 {
     _gridInfoProvider      = gridInfoProvider;
     _actionEffectFactory   = actionEffectFactory;
     _textEffectPresenter   = textEffectPresenter;
     _needHandler           = needHandler;
     _randomNumberGenerator = randomNumberGenerator;
     _deathHandler          = deathHandler;
     _entityRemover         = entityRemover;
     _entityDetector        = entityDetector;
     _gameContext           = gameContext;
     _entitySpawner         = entitySpawner;
     _uiConfig = uiConfig;
 }
コード例 #25
0
        public PlayerActionResolver(IGameConfig gameConfig, IEntityDetector entityDetector,
                                    IActionFactory actionFactory, IFriendshipResolver friendshipResolver, GameContext context, IActivityInterruptor activityInterruptor)
        {
            _gameConfig          = gameConfig;
            _entityDetector      = entityDetector;
            _actionFactory       = actionFactory;
            _friendshipResolver  = friendshipResolver;
            _context             = context;
            _activityInterruptor = activityInterruptor;

            _moveInputs = new HashSet <Decision>
            {
                Decision.MoveUpLeft, Decision.MoveUp, Decision.MoveUpRight,
                Decision.MoveLeft, Decision.MoveRight,
                Decision.MoveDownLeft, Decision.MoveDown, Decision.MoveDownRight
            };
        }
コード例 #26
0
ファイル: PostHeartbeatSystem.cs プロジェクト: bmjoy/Osnowa
 public PostHeartbeatSystem(IEntityDetector entityDetector, IGameConfig gameConfig,
                            ICalculatedAreaAccessor calculatedAreaAccessor, IStimulusReceiver stimulusReceiver, IPathfinder pathfinder,
                            IBroadcastStimulusSender broadcastStimulusSender, IPositionEffectPresenter positionEffectPresenter,
                            GameContext context, IFriendshipResolver friendshipResolver,
                            IUiFacade uiFacade, IOsnowaContextManager contextManager)
     : base(context)
 {
     _entityDetector          = entityDetector;
     _gameConfig              = gameConfig;
     _calculatedAreaAccessor  = calculatedAreaAccessor;
     _stimulusReceiver        = stimulusReceiver;
     _pathfinder              = pathfinder;
     _broadcastStimulusSender = broadcastStimulusSender;
     _positionEffectPresenter = positionEffectPresenter;
     _friendshipResolver      = friendshipResolver;
     _uiFacade       = uiFacade;
     _contextManager = contextManager;
     _context        = context;
 }
コード例 #27
0
 public ActivityCreationContext(INavigator navigator, IRandomNumberGenerator rng, IActionFactory actionFactory, ISceneContext sceneContext,
                                IExampleContextManager contextManager, IGameConfig gameConfig, IEntityDetector entityDetector, ICalculatedAreaAccessor calculatedAreaAccessor,
                                IUiFacade uiFacade, IRasterLineCreator rasterLineCreator, IPositionEffectPresenter positionEffectPresenter,
                                IFriendshipResolver friendshipResolver, GameContext context)
 {
     Navigator               = navigator;
     Rng                     = rng;
     ActionFactory           = actionFactory;
     SceneContext            = sceneContext;
     ContextManager          = contextManager;
     GameConfig              = gameConfig;
     EntityDetector          = entityDetector;
     CalculatedAreaAccessor  = calculatedAreaAccessor;
     UiFacade                = uiFacade;
     RasterLineCreator       = rasterLineCreator;
     PositionEffectPresenter = positionEffectPresenter;
     FriendshipResolver      = friendshipResolver;
     Context                 = context;
 }
コード例 #28
0
        public WorldClock(ISceneContext sceneContext, IGameConfig gameConfig,
                          IUiFacade uiFacadeUiFacade, IEntityDetector entityDetector, ITileMatrixUpdater tileMatrixUpdater,
                          IRandomNumberGenerator rng, IViewCreator viewCreator,
                          IOsnowaContextManager contextManager)
        {
            _sceneContext = sceneContext;

            _gameConfig        = gameConfig;
            _uiFacade          = uiFacadeUiFacade;
            _entityDetector    = entityDetector;
            _tileMatrixUpdater = tileMatrixUpdater;
            _rng            = rng;
            _viewCreator    = viewCreator;
            _contextManager = contextManager;
            _gameContext    = Contexts.sharedInstance.game;

            double minutesInDay = new TimeSpan(1, 0, 0, 0).TotalMinutes;

            _minutesInTurn = minutesInDay / _gameConfig.TurnsInDay;
        }
コード例 #29
0
ファイル: ActionFactory.cs プロジェクト: bmjoy/Osnowa
 public ActionFactory(IGrid grid, IActionEffectFactory actionEffectFactory, IUnityGridInfoProvider unityGridInfoProvider, IPositionEffectPresenter positionEffectPresenter, IRandomNumberGenerator randomNumberGenerator, IDeathHandler deathHandler, ISceneContext sceneContext, IGameConfig gameConfig, IViewCreator viewCreator, ITileMatrixUpdater tileMatrixUpdater, IFirstPlaceInAreaFinder firstPlaceInAreaFinder, IBroadcastStimulusSender stimulusBroadcaster, IEntityDetector entityDetector, LoadViewSystem loadViewSystem, IUiFacade uiFacade, IOsnowaContextManager contextManager, IEntityViewBehaviourInitializer entityViewBehaviourInitializer, IAggressionTriggerer aggressionTriggerer, IEntityGenerator entityGenerator, ReactiveFeature reactiveFeature)
 {
     _grid = grid;
     _unityGridInfoProvider   = unityGridInfoProvider;
     _positionEffectPresenter = positionEffectPresenter;
     _randomNumberGenerator   = randomNumberGenerator;
     _deathHandler            = deathHandler;
     _actionEffectFactory     = actionEffectFactory;
     _sceneContext            = sceneContext;
     _gameConfig             = gameConfig;
     _viewCreator            = viewCreator;
     _tileMatrixUpdater      = tileMatrixUpdater;
     _firstPlaceInAreaFinder = firstPlaceInAreaFinder;
     _stimulusBroadcaster    = stimulusBroadcaster;
     _entityDetector         = entityDetector;
     _loadViewSystem         = loadViewSystem;
     _uiFacade       = uiFacade;
     _contextManager = contextManager;
     _entityViewBehaviourInitializer = entityViewBehaviourInitializer;
     _aggressionTriggerer            = aggressionTriggerer;
     _entityGenerator = entityGenerator;
     _reactiveFeature = reactiveFeature;
 }
コード例 #30
0
 public SkillEvaluationContext(IRandomNumberGenerator rng, IEntityDetector entityDetector, IExampleContextManager contextManager)
 {
     Rng            = rng;
     EntityDetector = entityDetector;
     ContextManager = contextManager;
 }