AngularJS decorate factory method

decorate a factory method didn't work as expected when that method used as contructor to create a object inside another method in same factory

HTML

<script src="https://code.angularjs.org/1.4.7/angular.min.js"></script>
<div ng-controller="myCtrl">
    <p>{{text}}</p>
</div>

JavaScript

var app = angular.module('myApp', []);
var one = "1";
app.factory('playerFactory', function(one){
  
  Player = function(){
  	this.type = "Taekwondo";
		this.level = 1;
  }
  
  Player.prototype.upgrade = function(){
  	this.level++;
  }
    
  getPlayer = function(){
  	var p = new Player();
		return p;
	}
  
	return {
    getPlayer: getPlayer
	}               
});

app.controller('myCtrl', function($scope, playerFactory){
		var p = playerFactory.getPlayer();
    p.upgrade();
    $scope.text = "Level "+p.level+" "+p.type+" player";
});

app.decorator('playerFactory', function($delegate){
                   
    $delegate.Player = function(){
      this.type = one;
      this.level = 3;
    }

    return $delegate;
});