I've only known how to code in eclipse for a week or two now, and so far, I haven't run into many bumps. I've been able to add custom entities with fun and unique features. I've been able to create gems that spawn in specific biomes based on a random selection at the creation of a new world. Most importantly, I understand how I'm doing it. If I don't know how something works, I won't stop trying to figure it out until I do.
However, there's one thing that I can't seem to find anything on, and it plays a big part in the idea for my mod. I need to be able to add mechanics to preexisting mobs and blocks. For example, I want to make zombies turn into giants when they are struck by lightning. I know how to do this if I make my own entity that implements Zombie, but I dont know how this can be done to the preexisting mob. I've looked this up, and everyone seems to claim that this is impossible, but I can't get myself to believe this until I've tried absolutely everything. If you have any useful info, please leave a comment below. If i find any way to solve this, I will comment this in return.
Well any time you want to change vanilla behavior you should look for ways in the following order:
1) Look for public fields and methods. For example, entity AI lists are public so you can fully replace them how you want.
2) Look for Forge events and other hooks. For example, if you want to change a zombie into a giant when they are struck by lightning just handle the EntityStruckByLightning event and replace the zombie with a giant.
3) Use Java reflection. If there isn't anything in #1 or #2 you might be able to find a vanilla field or method that is private scope that could be useful, in which case you can make it accessible using the ReflectionHelper class.