Craft

From Kolmafia
Jump to navigation Jump to search

Function Syntax

int craft(string mode ,int count ,item item1 ,item item2 )

  • mode can be "combine", "cook", "cocktail", "smith", "jewelry".
  • count count is how many of each ingredient to use.
  • item1, item2 are the ingredients.

This is a raw crafting function that will attempt to craft raw materials without considering the outcome of that crafting.

It can be useful for specialized tasks such as gaining the "Color Wheel of Yuck" trophy since that requires you to craft many items using different methods to create the same results.

It returns the number of each ingredient used. Ideally, this is equal to the "count" parameter, but could be less if, for example, your box servant blew up, you require box servants, and auto-repair was either disabled or failed.

Examples

Just an example of how to make vials of brown slime in two different ways.

craft("cook", 1, $item[vial of red slime], $item[vial of green slime]);
craft("cook", 1, $item[vial of red slime], $item[vial of chartreuse slime]);

Transmuting wads requires craft() since mafia does not support the recipes.

boolean cook_wad(item it) {
   item [item] to_make;
      to_make [$item[cold wad]] = $item[hot wad];
      to_make [$item[spooky wad]] = $item[cold wad];
      to_make [$item[stench wad]] = $item[spooky wad];
      to_make [$item[sleaze wad]] = $item[stench wad];
      to_make [$item[hot wad]] = $item[sleaze wad];
   
   if(!have_skill($skill[The Way of Sauce])) {
      print("You don't have the skill to transmute wads.", "red");
      return false;
   }
   if(item_amount(to_make[it]) < 1 || item_amount($item[twinkly wad]) < 1) {
      print("To make a "+ it+ " requires a twinkly wad and a "+ to_make[it]+ ". You do not have the ingredients.", "red");
      return false;
   }
   
   print("Cooking a twinkly wad with a "+ it+ " to make a "+ to_make[it]+ ".");
   craft("cook", 1, $item[twinkly wad], to_make[it]);
   return true;
}