To be honest it's mixed bunch because project started more than 10 years ago and there is both: some decent code as well as terrible one.
Good sides: it's fully client-server, AI implemented via pluggable libraries while all saving / networking implemented using serialization based off Boost.Serialization.