added getStateId to MagicObject
prefer getStateId to getId
MagicItemOnStack gets hash of MagicEvent without source to prevent infinite loop as MagicCardOnStack could be source for MagicEvent