Hi ood,
I have not run your code.. but it does look like you might be referring to $target sometimes when you mean $init_obj and other times $actor.
Its probably safest using $actor at all times during this code to refer to your golem, and $init_obj being the player.. $target can change sometimes during some cowmands so leave it out for now.
Sometimes I grab a copy of $target before I start doing things and only refer to my copy eg:
$otarget = $target;
if $otarget's heath < 0 then...
If it helps read the info about target
eg:
var $mana to $init_obj's mana;
print "$mana";
print "$init_obj's mana";
take $mana from $target's health;
I think that should be the $init_obj not the $target. Mind you that line is redundant considering the line that follows.. and IM not entirly sure you can do what you want to here.. I thought add, take, subtract and divide all worked on simple variables like $mana not on objects fields.
You also refer to the $target here:
if $target's health < 0 then finishit else nope;
when I think you mean $actor