public override int GetHashCode() { return (Count|(Charges<<8)|(NumRecharged<<16)|((byte)Flags<<32))^Type<<16; }