I've heard many writers say that every character thinks they are a good person. I've even had someone say that to me in real life. And I don't think it's true. I've met people who don't think they are good, they think they are the only person, and others who outright reject the idea and gleefully embrace trying to make the world a worse place for everyone. There are many people who just don't think about whether they are good or evil at all, and others who simply don't care. Why shouldn;t this be reflected in writing? They may think they are the 'hero', but that's hero in the form of the Greek sense: a protagonist who moves the action, not a good or modern-day heroic person. So why is it standard writing advice to make sure that everyone thinks they are good? It can make the characters seem a bit flat.