Beispiel #1
0
        public virtual ICollection <InventoryItem> OnHit(IWorldController worldController, InventoryItem activeItem)
        {
            _health -= activeItem.DamageAmount(this);

            if (_health <= 0)
            {
                return(_dropsOnDeath);
            }
            return(null);
        }
Beispiel #2
0
        private void HitBlock(Block block, IWorldController worldController)
        {
            if (block == null)
            {
                return;
            }
            var newItems = block.OnHit(worldController, Inventory.GetActiveItem());

            if (newItems == null)
            {
                return;
            }
            foreach (var item in newItems)
            {
                Inventory.AddItem(item);
            }
        }
Beispiel #3
0
        public override ICollection <InventoryItem> OnHit(IWorldController worldController, InventoryItem activeItem)
        {
            var items = new List <InventoryItem>();

            _health -= activeItem.DamageAmount(this);

            var blockAbove = ChunkPosition + Position - new Models.Position(0, 1);
            var bAbove     = worldController.GetBlock(blockAbove);

            if (bAbove != null && bAbove is Tree)
            {
                items.AddRange(bAbove.OnHit(worldController, activeItem));
            }

            if (_health <= 0)
            {
                items.AddRange(_dropsOnDeath);
            }
            return(items);
        }
 public GameUpdateService(IKeyboardService keyboardService, IStatsService statsService, IWorldController worldController)
 {
     KeyboardService = keyboardService;
     StatsService    = statsService;
     WorldController = worldController;
 }
Beispiel #5
0
        protected void Render(NativeWindow window, SKCanvas canvas, IUtilityService utility, IWorldController world, HUDController hud, EntityController entities, Position windowSize, ScreensController screens)
        {
            canvas.Clear(utility.ColorToSkia(Colors.Background));

            var gameService = new GameRenderService(canvas, utility, windowSize);

            world.Render(gameService);
            hud.Render(gameService);
            entities.Render(gameService);
            screens.Render(gameService);

            canvas.Flush();
            window.SwapBuffers();
        }
Beispiel #6
0
 protected void Update(NativeWindow window, IStatsService statsService, IGameUpdateService gameService, IKeyboardService keyboard, IWorldController world, HUDController hud, EntityController entities, ScreensController screens)
 {
     world.Update(gameService);
     hud.Update(gameService);
     entities.Update(gameService);
     screens.Update(gameService);
 }