Exemple #1
0
        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;
        }
Exemple #2
0
 public void Take(Player player)
 {
     GameEffectManager.Play("pickup");
     player.Score++;
     Item.OnTake(this);
     Remove();
 }
Exemple #3
0
        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);
        }
Exemple #4
0
 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));
 }
Exemple #7
0
 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();
 }
Exemple #8
0
        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");
 }
Exemple #10
0
        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);
        }
Exemple #11
0
 protected override void Die()
 {
     base.Die();
     GameEffectManager.Play("death");
 }