I can think of several things which wouldn't break with this?
var x = Creep.prototype.move.
var x = Creep.prototype.moveTo.
var x = Creep.prototype.moveByPath.
c.moveTo()with any arguments
- replacing the Creep move prototype with
Creep.prototype.move = x;and having creep movement use the new function
- replacing the Creep moveByPath prototype with
Creep.prototype.moveByPath = x;and having creep movement use the new function
- replacing the Creep moveTo prototype with
Creep.prototype.moveTo = x;and having creep movement use the new function
The only thing which would break, as far as I can tell, are:
Creep.prototype.moveTo = x;and then expecting
somePowerCreep.moveTo()to use the new creep moveTo function
Creep.prototype.moveByPath = x;and then expecting
somePowerCreep.moveByPath()to use the new Creep
Both of these things are breaking only to people who've written PowerCreep code in the time since they've been out, and both have the easily fixable solution of overwriting
Moveable.moveByPath. There's no way this can affect idle users, even if they extensively use the prototype system.