void main()
{
object oPC = GetLastUsedBy();
int hd = GetHitDice(oPC);
int dam = d12(hd)+d6(hd);
location lLoc = GetLocation(GetNearestObjectByTag("heartbox"));
if (GetIsPC(oPC) && !GetIsDM(oPC)){
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(dam, DAMAGE_TYPE_FIRE, DAMAGE_POWER_ENERGY),oPC);
}
object box =  (GetNearestObjectByTag("heartbox"));
AssignCommand(box, ActionUnlockObject(box));

ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_FIRE),lLoc, 2.0);

}