void main()
{
object oPC = GetLastUsedBy();
int iUsed = GetLocalInt(OBJECT_SELF,"hasused");
int iRandom = d10();
float fTime = IntToFloat(d6()*120);
   if (iUsed != 1)
     {
switch (iRandom)
        {
        case 1:
        {
        effect ePoly = EffectPolymorph(POLYMORPH_TYPE_COW,FALSE);
        SetLocalInt(OBJECT_SELF,"hasused",1);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePoly,oPC,fTime);
        break;
        }
        case 2:
        {
        effect ePoly = EffectPolymorph(POLYMORPH_TYPE_MINOTAUR,FALSE);
        SetLocalInt(OBJECT_SELF,"hasused",1);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePoly,oPC,fTime);
        break;
        }
        case 3:
        {
        effect ePoly = EffectPolymorph(POLYMORPH_TYPE_BADGER,FALSE);
        SetLocalInt(OBJECT_SELF,"hasused",1);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePoly,oPC,fTime);
        break;
        }
        case 4:
        {
        effect ePoly = EffectPolymorph(POLYMORPH_TYPE_MANTICORE,FALSE);
        SetLocalInt(OBJECT_SELF,"hasused",1);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePoly,oPC,fTime);
        break;
        }
        case 5:
        {
        effect ePoly = EffectPolymorph(POLYMORPH_TYPE_PENGUIN,FALSE);
        SetLocalInt(OBJECT_SELF,"hasused",1);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePoly,oPC,fTime);
        break;
        }
        case 6:
        {
        effect ePoly = EffectPolymorph(POLYMORPH_TYPE_DOOM_KNIGHT,FALSE);
        SetLocalInt(OBJECT_SELF,"hasused",1);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePoly,oPC,fTime);
        break;
        }
        case 7:
        {
        effect ePoly = EffectPolymorph(POLYMORPH_TYPE_CHICKEN,FALSE);
        SetLocalInt(OBJECT_SELF,"hasused",1);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePoly,oPC,fTime);
        break;
        }
        case 8:
        {
        effect ePoly = EffectPolymorph(POLYMORPH_TYPE_VROCK,FALSE);
        SetLocalInt(OBJECT_SELF,"hasused",1);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePoly,oPC,fTime);
        break;
        }
        case 9:
        {
        effect ePoly = EffectPolymorph(POLYMORPH_TYPE_IMP,FALSE);
        SetLocalInt(OBJECT_SELF,"hasused",1);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePoly,oPC,fTime);
        break;
        }
        case 10:
        {
        effect ePoly = EffectPolymorph(POLYMORPH_TYPE_BEHOLDER,FALSE);
        SetLocalInt(OBJECT_SELF,"hasused",1);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY,ePoly,oPC,fTime);
        break;
        }
        }

     SendMessageToPC(oPC,"You see yourself differently.");
     return;
     }
   SendMessageToPC(oPC,"Nothing happens.");
}