JavaScript 1.8, 93 chars
function c(x)!+x.replace(/([a-z])\1*/g,function(m)m.length+m.charCodeAt(0)-96-a-a++,a=1)*a+15
I dare you to make sense of it :)
function c(x)!+x.replace(/([a-z])\1*/g,function(m)m.length+m.charCodeAt(0)-96-a-a++,a=1)*a+15
I dare you to make sense of it :)