diff --git a/gameelement/canvas.go b/gameelement/canvas.go index 2ba4b6e..ee9c852 100644 --- a/gameelement/canvas.go +++ b/gameelement/canvas.go @@ -223,6 +223,9 @@ func (c *Canvas) Initialize() { //temporary c.hero.Action = elements.HeroActionDefault + + c.holster.SetActiveWeapon(gamedata.WeaponTypeGun) + c.laser.SetFiring(false) } func (c *Canvas) UpdateHero() { @@ -360,12 +363,13 @@ func (c *Canvas) UpdateProjectiles() { func (c *Canvas) UpdateLaser() { c.laser.Update() + + c.laser.SetFiring(c.lastInputs.Shot) + if c.lastInputs.Shot { c.laser.SetPosition(c.hero.Pos) c.laser.SetAngle(c.lastInputs.ShotAngle) - } - c.laser.SetFiring(c.lastInputs.Shot) - if c.lastInputs.Shot { + c.laserMask.Clear() lpos := c.laser.GetPosition() op := &ebiten.DrawImageOptions{} diff --git a/weapons/holster.go b/weapons/holster.go index ccd56dc..120965b 100644 --- a/weapons/holster.go +++ b/weapons/holster.go @@ -17,6 +17,13 @@ func NewHolster() *Holster { return holster } +func (h *Holster) SetActiveWeapon(wt gamedata.WeaponType) { + _, ok := h.guns[wt] + if ok { + h.activewp = wt + } +} + func (h *Holster) GetActiveWeapon() Weapon { return h.guns[h.activewp] }