public void activate(Duel duel, Duelist duelist) {
		int c;
		int materialCount = 0;
		if(this.threeOfAKind()) {
			if(duelist.field.containsCardId(this.materials.get(0), 3))
				materialCount = 3;
		} else {
			for(Integer card : materials) {
				if(duelist.field.containsCardId(card)) {
					materialCount++;
				}
			}
		}
		int zone = -1;
		if(materialCount >= this.materials.size()) {
			materialCount = this.materials.size();
			for(Integer card : this.materials) {
				if(zone == -1) {
					try {
						zone = duelist.field.getPos(duelist.field.getZoneWithCardId(card));
					} catch (NoZoneOpenException e) {
					}
				}
				duelist.field.removeCardId(card, duel, null);
			}
			MonsterCard mc = MonsterCard.class.cast(Card.fromId(this.result).freshCopy());
			mc.star = mc.stars[0];
			duelist.selectedStar = 0;
			duelist.fused = true;
			duelist.faceup = true;
			duelist.selectedCard = mc;
			duelist.selectedZone = zone;
			duelist.phase = 2;
			duel.applyTerrain(duel.terrain, mc, false);
		}
	}