There are three potential ways I would do this; a class array in the Inspector, a database, or a text file. The first of those is the easiest, but if you’re planning a large project and you’re going to have a lot of these cards, I’d try option number 2, and a text file as your last resort (as it’s the same as a database but with less structure).
In the above example, I’ve created a CardManager that stores an array of Card. Each card has the example fields you listed above, with the exception of AbilityMethod; I didn’t know if this and TargetMethod were meant as actually methods, however, if they were meant as fields, you could use a switch statement on the Ability enum, to determine the method? (just a suggestion as I don’t know much about the project)
If you want an example of a database then I can try to draw one up for you, but the basics of it would be a setup similar to the classes listed above, a table each for; Card, Ability and Targetting. (In modern database programs you should be able to link the image field in the table to an actual image on the HDD, but it depends what you’re working with). Once read using something like OLE DB, you will still have to load the images using the string that will likely be the actual version of the ‘image’ used in the database.
And finally for the text (CSV) file you would have to use a string path for the location of the image instead, and use a StreamReader for reading/writing.
Update - 17/04/16 (20:50)
As @Soraphis mentioned, using an Excel spreadsheet/Google Sheets file to create the data would be a good idea. Then export the spreadsheet as a .csv file (alternatively, as I’m about to explain, you could just use the CardManager, and then Serialize the data). Next I would create a custom inspector, that allowed you to browse for this CSV file, and import the data into a List of your Card class. From here you can then re-export the data read in, but in a binary file format. This secures the data as only you know what the data structure of the Card class is, how you wrote this list to the file, and how to read it back out. Below is an example a full solution for this, so if you want to try it for yourself first then here are the links;
- BinaryFormatter (Serialize & Deserialize)
The derived solution would take up way too much room, as such here is a video of me walking through what I came up with;
As for directly pointing to methods, I still think it would be best to just have a separate class that knows what methods each enum ability and target point to.
I hope this helped.