class StatsMenu extends Phaser.Sprite {
    constructor (game, player) {
        
        // this is the grossest stuff that exists
        // please if there is a deity in the stars above
        // forgive me this transgression
        // i know it will be hard
        // but i'm begging you
        // it was just how it had to be
        
        super(game, 30, 60, 'stats-menu')
        this.game.add.existing(this)
        
        this.player = player
        this.fixedToCamera = true
        
        this.title = this.game.add.text(115, 90, 'Stats', { font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333', fontSize: '30px' })
        this.title.fixedToCamera = true
        
        this.horse = this.game.add.sprite(60, 120, 'horse', 0)
        this.horse.animations.add('running')
        this.horse.animations.play('running', 30, true)
        this.horse.fixedToCamera = true
        
        this.health = this.game.add.group()
        
        this.health.text = this.game.add.text(60, 280, 'Health', { font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333', fontSize: '30px' })
        this.health.text.fixedToCamera = true
        
        this.health.value = this.game.add.text(190, 280, this.player.health + '/' + this.player.stats.health, { font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333', fontSize: '30px' })
        this.health.value.fixedToCamera = true
        
        this.money = this.game.add.group ()
        
        this.money.text = this.game.add.text(60, 310, 'Money', { font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333', fontSize: '30px' })
        this.money.text.fixedToCamera = true
        
        this.money.value = this.game.add.text(190, 310, this.player.money, { font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333', fontSize: '30px' })
        this.money.value.fixedToCamera = true
        
        this.packages = this.game.add.group()
        
        this.packages.text = this.game.add.text(60, 340, 'Packages', { font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333', fontSize: '30px' })
        this.packages.text.fixedToCamera = true
        
        this.packages.value = this.game.add.text(190, 340, this.player.packages.length + '/' + this.player.stats.carryingCapacity, { font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333', fontSize: '30px' })
        this.packages.value.fixedToCamera = true
        
        for(var p = 0; p < 3 && p < this.player.packages.length; p++) {
            var pkg = this.player.packages[p]
            var pkgText = this.game.add.text(60, 400 + (60 * p), pkg.destination, { font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333', fontSize: '30px' })
            pkgText.fixedToCamera = true
            var pkgValue = this.game.add.text(190, 400 + (60 * p), pkg.bounty, { font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333', fontSize: '30px' })
            pkgValue.fixedToCamera = true
            
        }
            
        
        this.button = this.game.add.button(39, 572, 'button', function (e) {
            console.log(this.map.dumps())
            this.game.state.start('upgrade', true, false, this.player.dumps(), this.map.dumps())
        }, this.game.state.states.overworld)
        this.button.fixedToCamera = true
        this.button.text = this.game.add.text(100, 576, 'Upgrade', { font: 'Inconsolata, monospace', fill: '#e9bb8a', stroke: '#333333', fontSize: '30px' })
        this.button.text.fixedToCamera = true
    }
}
@@ -2483,17 +2483,17 @@
  0; p %3C 
-3
+7
  && p %3C 
@@ -2590,21 +2590,20 @@
     
-var pkgText =
+%0A           
  thi
@@ -2621,33 +2621,33 @@
 text(60, 400 + (
-6
+2
 0 * p), pkg.dest
@@ -2740,84 +2740,280 @@
 e: '
-3
+2
 0px' %7D)
-%0A            pkgText.fixedToCamera = true%0A            var pkgValue =
+.fixedToCamera = true%0A            %0A            this.game.add.text(220, 400 + (20 * p), pkg.bounty, %7B font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333', fontSize: '20px' %7D).fixedToCamera = true%0A            %0A            if(p === 6) %7B%0A               
  thi
@@ -3032,110 +3032,388 @@
 ext(
-19
+6
 0, 
+%0A                                   
 400 + (
-6
+2
 0 * p
-), pkg.bounty, %7B font: 'Inconsolata, monospace', fill: '#333333', stroke: '#333333',
+ + 1), %0A                                   '...and more', %0A                                   %7B %0A                                        font: 'Inconsolata, monospace', %0A                                        fill: '#333333', %0A                                        stroke: '#333333', %0A                                       
  fon
@@ -3424,37 +3424,88 @@
 e: '
-3
+2
 0px' 
-%7D)%0A            pkgValue
+%0A                                    %7D%0A                                  )
 .fix
@@ -3526,32 +3526,33 @@
 rue%0A            
+%7D
 %0A        %7D%0A     

Handle large package counts