public boolean cast (Sorcerer sorcerer, Trigger trigger, Event event)
      {
        if (trigger.isInteractTriggered())
          {
            PlayerInteractEvent interactEvent = (PlayerInteractEvent) event;
            interactEvent.setCancelled(true);
            if (trigger == Trigger.LEFT_CLICK_BLOCK
                || trigger == Trigger.RIGHT_CLICK_BLOCK)
              {
                Block block = interactEvent.getClickedBlock();
                Material mat = block.getType();
                if ( !mat.isTransparent() && mat.isSolid())
                  {
                    
                    Block blockUp =
                        interactEvent.getClickedBlock().getRelative(
                            BlockFace.UP);
                    if (blockUp.getType() == Material.AIR)
                      {
                        blockUp.setType(Material.FIRE);
                      }
                    else
                      return false;
                  }
                else
                  return false;
                Merlin.getInstance().createParticles(
                    block.getLocation().add(0.5, 1.5, 0.5), false,
                    Particle.FLAME, 0.1f, 5);
              }
          }
        else if (trigger.isDamageTriggered())
          {
            EntityDamageByEntityEvent damageEvent =
                (EntityDamageByEntityEvent) event;
            damageEvent.getEntity().setFireTicks(120);
            Merlin.getInstance().createParticles(
                damageEvent.getEntity().getLocation().add(0, 1.5, 0), false,
                Particle.FLAME, 0.1f, 5);
          }
        return true;
      }