Battle API implementation

Also added some effects!