if (your_fault && !g->u.has_trait(PF_CANNIBAL)) {
if (is_friend())
{
// Very long duration, about 7d, decay starts after 10h.
g->u.add_morale(MORALE_KILLED_FRIEND, -500, 0, 10000, 600);
}
else if (!is_enemy() || this->hit_by_player)
{
// Very long duration, about 3.5d, decay starts after 5h.
g->u.add_morale(MORALE_KILLED_INNOCENT, -100, 0, 5000, 300);
}
}
As you can see, killing an innocent does have a -100 morale penalty that apparently lasts ~3.5 days. He killed 2 and didn’t have the cannibal trait, so there you go.