(function () { if (typeof Mario === "undefined") window.Mario = {}; Flag = Mario.Flag = function (pos) { //afaik flags always have the same height and Y-position this.pos = [pos, 49]; this.hitbox = [0, 0, 0, 0]; this.vel = [0, 0]; this.acc = [0, 0]; }; Flag.prototype.collideWall = function () {}; Flag.prototype.update = function (dt) { if (!this.done && this.pos[1] >= 170) { this.vel = [0, 0]; this.pos[1] = 170; player.exit(); this.done = true; } this.pos[1] += this.vel[1]; }; Flag.prototype.checkCollisions = function () { this.isPlayerCollided(); }; Flag.prototype.isPlayerCollided = function () { if (this.hit) return; if (player.pos[0] + 8 >= this.pos[0]) { music.overworld.pause(); sounds.flagpole.play(); setTimeout(function () { music.clear.play(); }, 2000); this.hit = true; player.flag(); this.vel = [0, 2]; } }; Flag.prototype.render = function () { level.flagpoleSprites[2].render( ctx, this.pos[0] - 8, this.pos[1], vX, vY, ); }; })();