Crafting System
In Abyssal Eats, I use Scriptable Objects to store card types, ingredients, dishes, and recipes. When a player plays cards into slots, an event triggers the crafting manager to combine the slot item names into a single string key. It then searches a list of recipes for a matching key, handling cards in any order. If a match is found, the system discards the ingredients, instantiates the final dish card, and adds it back into the player's hand.
Card Movement/Placement
For card movement, I use Unity's IPointer and IDrag interfaces to track mouse hovering and handling. When released, the card fires a raycast to detect if there are valid card slots below. If it finds one, the system updates the card's parent transform to the slot and snaps its position. If it doesn't find one, the card smoothly lerps back to its original position within the player's hand.