@Override
    public void execute(VGDLSprite sprite1, VGDLSprite sprite2, Game game)
    {
        VGDLSprite s = sprite1;
        if (itype != -1) {
            ArrayList<Integer> subtypes = game.getSubTypes(itype);
            for (Integer i : subtypes) {
                Iterator<VGDLSprite> spriteIt = game.getSpriteGroup(i);
                if (spriteIt != null) while (spriteIt.hasNext()) {
                    try {
                        s = spriteIt.next();
                        break;
                    } catch (ClassCastException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        s.healthPoints -= value;
        if(s.healthPoints <= limit)
        {
            //boolean variable set to false to indicate the sprite was not transformed
            game.killSprite(s, false);
        }
    }