protected override void DoHurt(int damage, int attackDir) { if (HurtTime > 0 || InvulnerableTime > 0) { return; } GameEffectManager.Play("playerhurt"); Level.Add(new TextParticle($"{damage}", X, Y, Color.Get(-1, 504, 504, 504))); Health -= damage; if (attackDir == 0) { YKnockback = +6; } if (attackDir == 1) { YKnockback = -6; } if (attackDir == 2) { XKnockback = -6; } if (attackDir == 3) { XKnockback = +6; } HurtTime = 10; InvulnerableTime = 30; }
public void Take(Player player) { GameEffectManager.Play("pickup"); player.Score++; Item.OnTake(this); Remove(); }
public override bool Interact(Level level, int xt, int yt, Player player, Item item, int attackDir) { var toolItem = item as ToolItem; if (toolItem == null) { return(false); } ToolItem tool = toolItem; if (tool.ObjectType == ToolType.Shovel && player.PayStamina(4 - tool.Level)) { level.SetTile(xt, yt, Hole, 0); level.Add(new ItemEntity(new ResourceItem(Resource.Dirt), xt * 16 + Random.NextInt(10) + 3, yt * 16 + Random.NextInt(10) + 3)); GameEffectManager.Play("monsterhurt"); return(true); } if (tool.ObjectType != ToolType.Hoe || !player.PayStamina(4 - tool.Level)) { return(false); } level.SetTile(xt, yt, Farmland, 0); GameEffectManager.Play("monsterhurt"); return(true); }
protected override void Die() { base.Die(); if (Level.Player != null) { Level.Player.Score += 1000; Level.Player.GameWon(); } GameEffectManager.Play("bossdeath"); }
public override void Tick() { if (Input.Menu.Clicked) { Game.SetMenu(null); } if (Input.Up.Clicked) { _selected--; } if (Input.Down.Clicked) { _selected++; } int len = _recipes.Size(); if (len == 0) { _selected = 0; } if (_selected < 0) { _selected += len; } if (_selected >= len) { _selected -= len; } if (Input.Attack.Clicked && len > 0) { Recipe r = _recipes.Get(_selected); r.CheckCanCraft(_player); if (r.CanCraft) { r.DeductCost(_player); r.Craft(_player); GameEffectManager.Play("craft"); _recipes.Sort(new RecipeSorter()); } for (int i = 0; i < _recipes.Size(); i++) { _recipes.Get(i).CheckCanCraft(_player); } } }
protected internal override void HandleInput(InputHandler input) { if (!input.Attack.Clicked && !input.Menu.Clicked) { return; } if (!Enabled) { return; } if (ClickSound) { GameEffectManager.Play("test"); } _game.SetMenu(new AnimatedTransitionMenu(_goto)); }
protected internal override void HandleInput(InputHandler input) { if (!input.Attack.Clicked && !input.Menu.Clicked) { return; } if (!Enabled) { return; } if (ClickSound) { GameEffectManager.Play("test"); } _function?.Invoke(); }
protected virtual void DoHurt(int damage, int attackDir) { if (HurtTime > 0) { return; } if (Level.Player != null) { int xd = Level.Player.X - X; int yd = Level.Player.Y - Y; if (xd * xd + yd * yd < 80 * 80) { GameEffectManager.Play("monsterhurt"); } } Level.Add(new TextParticle($"{damage}", X, Y, Color.Get(-1, 500, 500, 500))); Health -= damage; if (attackDir == 0) { YKnockback = +6; } if (attackDir == 1) { YKnockback = -6; } if (attackDir == 2) { XKnockback = -6; } if (attackDir == 3) { XKnockback = +6; } HurtTime = 10; }
public SmashParticle(int x, int y) { X = x; Y = y; GameEffectManager.Play("monsterhurt"); }
public override void Tick() { Game.UiManager.Tick(); var index = _options.IndexOf(_options[_selected]); if (Input.Up.Clicked) { GameEffectManager.Play("menu_move"); _selected--; _selectedItem--; if (_selected < 0) { _selected = 0; } if (_selectedItem < 0) { var item = _options.Skip(_selected).Take(1).FirstOrDefault(); if (item != null) { if (_options.IndexOf(item) != index) { _visible.RemoveAt(_visible.Count - 1); _visible.Insert(0, item); } _selectedItem = 0; } } } if (Input.Down.Clicked) { GameEffectManager.Play("menu_move"); _selected++; _selectedItem++; if (_selected > _options.Count - 1) { _selected = _options.Count - 1; } if (_selectedItem > MaxToShow - 1) { var item = _options.Skip(_selected).Take(1).FirstOrDefault(); if (item != null) { if (_options.IndexOf(item) != index) { _visible.RemoveAt(0); _visible.Insert(_visible.Count, item); } _selectedItem = _visible.Count - 1; } } } _options[_selected].HandleInput(Input); }
protected override void Die() { base.Die(); GameEffectManager.Play("death"); }