The name of the variables don't matter, just the number of them and how you use them.
Example:
in a package
function Armor::onCollision(%turkey, %ham, %bacon, %fryer, %degrees)
Would work the same as:
in a package
function Armor::onCollision(%this,%obj,%col,%vec,%speed)
As long as you know that:
%turkey/%this is the datablock.
%ham/%obj is the player.
%bacon/%col is what they touched.
%fryer/%vec is the direction they're moving in.
%degrees/%speed is how fast they were going.
Second question: Yes. But if normal onCollision stuff stop working, add Parent::onCollision(stuff...) to it.
A package wont be needed for this one.