SetEntityPlayerInteractCallback should do the trick.
Here's the code:
void OnStart()
{
SetEntityPlayerInteractCallback("cog_name", "func_name", true);
}
void func_name(string &in asEntity)
{
SetEntityActive("waterlurker_name", true);
}
And for the monsters: It depends. Do you want to let him patrol or chase the player?
For patrolling:
AddEnemyPatrolNode("waterlurker_name", "pathnode_name", 0(or any time you want to let the monster wait), "");
If you have more nodes, just duplicate this with the right name of the node.
If you want him to chase the player:
ShowEnemyPlayerPosition("waterlurker_name");
This means the monster'll run straight to the player. He will get stuck behind corners and debris, so it's good if he has to chase him in a long, clean corridor.
Also,
this.