When declaring a dynamic state, all of the states have to be declared. This also allows you to start thinking of any other states the Titan, or your object might get involved in. Also, if you're using rubocop
this follows the new 1.9 lambda syntax for anyone who got stuck with that.
Solution:
state_machine :state, initial: ->(t) { t.active? ? :seeking_flesh : :dormant } do
state :dormant, :seeking_flesh, :attacking # this must be present
end