public virtual ICollection <InventoryItem> OnHit(IWorldController worldController, InventoryItem activeItem) { _health -= activeItem.DamageAmount(this); if (_health <= 0) { return(_dropsOnDeath); } return(null); }
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); } }
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; }
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(); }
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); }